head 1.5; access; symbols pkgsrc-2013Q2:1.5.0.4 pkgsrc-2013Q2-base:1.5 pkgsrc-2012Q4:1.5.0.2 pkgsrc-2012Q4-base:1.5 pkgsrc-2012Q2:1.4.0.12 pkgsrc-2012Q2-base:1.4 pkgsrc-2012Q1:1.4.0.10 pkgsrc-2012Q1-base:1.4 pkgsrc-2011Q4:1.4.0.8 pkgsrc-2011Q4-base:1.4 pkgsrc-2011Q3:1.4.0.6 pkgsrc-2011Q3-base:1.4 pkgsrc-2011Q2:1.4.0.4 pkgsrc-2011Q2-base:1.4 pkgsrc-2011Q1:1.4.0.2 pkgsrc-2011Q1-base:1.4 pkgsrc-2010Q4:1.3.0.6 pkgsrc-2010Q4-base:1.3 pkgsrc-2010Q3:1.3.0.4 pkgsrc-2010Q3-base:1.3 pkgsrc-2010Q2:1.3.0.2 pkgsrc-2010Q2-base:1.3 pkgsrc-2010Q1:1.2.0.2 pkgsrc-2010Q1-base:1.2 pkgsrc-2009Q4:1.1.0.2 pkgsrc-2009Q4-base:1.1; locks; strict; comment @# @; 1.5 date 2012.07.07.10.46.52; author he; state dead; branches; next 1.4; 1.4 date 2011.02.19.13.07.48; author he; state Exp; branches; next 1.3; 1.3 date 2010.04.23.14.08.17; author he; state Exp; branches; next 1.2; 1.2 date 2010.02.18.07.59.38; author he; state Exp; branches; next 1.1; 1.1 date 2009.12.09.09.23.51; author he; state Exp; branches; next ; desc @@ 1.5 log @Update lang/parrot to 4.3.0. Pkgsrc changes: * Remove patch-ak, as the fix is now adopted upstream. Upstream changes: - Core + Winxed snapshot updated to 1.7.0 + Add type introspection to lexical variables. + New 'tools/release/parrot_github_release.pl' script to automate updates to the 'parrot.github.com' and 'parrot-docsx' repositories. + Numerous casting and consting fixes thanks to GCC 4.8. - Documentation + Updated 'docs/projects/release_manager_guide.pod' + Updated 'docs/projects/release_parrot_github_guide.pod' + Improved function documentation. - Tests - Community - Platforms + Fixed alignment issues on ia64, sparc and mipsel. + Fixed a platform-specific issue with dlclose(). @ text @$NetBSD: patch-ak,v 1.4 2011/02/19 13:07:48 he Exp $ Prevent problem exposed by "library cloning", where the dlopen()-returned handle is copied, causing dlclose() to be called twice with the same handle, which in turn triggers a warning from ld.elf_so on NetBSD. Ref. http://trac.parrot.org/parrot/ticket/1340. --- src/platform/generic/dl.c.orig 2010-03-22 13:39:23.000000000 +0100 +++ src/platform/generic/dl.c @@@@ -23,6 +23,8 @@@@ Parrot functions which wrap around stand #include "parrot/parrot.h" #ifdef PARROT_HAS_HEADER_DLFCN +# include +# include # include #endif @@@@ -30,6 +32,62 @@@@ Parrot functions which wrap around stand /* HEADERIZER HFILE: none */ + +#ifdef PARROT_HAS_HEADER_DLFCN + +struct handle_entry { + void *handle; + struct handle_entry *next; +}; + +struct handle_entry *handle_list = NULL; + +static void +push_handle_entry(void *handle) +{ + struct handle_entry *e; + + e = (struct handle_entry *) malloc(sizeof(struct handle_entry)); + if (!e) { return; } + e->handle = handle; + e->next = handle_list; + handle_list = e; +} + +static void * +find_handle_entry(void *handle) +{ + struct handle_entry *e; + + for(e = handle_list; e; e = e->next) { + if (e->handle == handle) + return handle; + } + return NULL; +} + +static void +remove_handle_entry(void *handle) +{ + struct handle_entry *cur, *prev, *p; + + if (handle_list) { + if (handle_list->handle == handle) { + p = handle_list; + handle_list = p->next; + free(p); + } else { + for (cur = handle_list; cur; prev = cur, cur = cur->next) { + if (cur->handle == handle) { + prev->next = cur->next; + free(cur); + } + } + } + } +} +#endif /* PARROT_HAS_HEADER_DLFCN */ + /* =item C @@@@ -46,8 +104,12 @@@@ void * Parrot_dlopen(const char *filename, Parrot_dlopen_flags flags) { #ifdef PARROT_HAS_HEADER_DLFCN - return dlopen(filename, PARROT_DLOPEN_FLAGS - | ((flags & Parrot_dlopen_global_FLAG) ? RTLD_GLOBAL : 0)); + void *h; + + h = dlopen(filename, PARROT_DLOPEN_FLAGS + | ((flags & Parrot_dlopen_global_FLAG) ? RTLD_GLOBAL : 0)); + push_handle_entry(h); + return h; #else return 0; #endif @@@@ -112,10 +174,15 @@@@ int Parrot_dlclose(void *handle) { #ifdef PARROT_HAS_HEADER_DLFCN - return dlclose(handle); -#else - return -1; + int rv; + + if (find_handle_entry(handle)) { + remove_handle_entry(handle); + rv = dlclose(handle); + return rv; + } #endif + return -1; } /* @ 1.4 log @Update parrot to version 3.1.0. Pkgsrc changes: o Adapt to changes in installed files o One of the files which are patched have changed location Upstream changes: New in 3.1.0 - Core + Exception PMCs are now subclassable from PIR + IPv6 is now supported and tested + Added Parrot_ext_try function to extend API (experimental), to allow implementation of try .. catch construcs in C extensions. + We now have a YAML library called YAML::Tiny, a port of YAML::Tiny from Perl 5 + Deprecated/experimental features are now stored in api.yaml in an easy-to-parse format, which will allow automated tools easy access to this data. This replaces DEPRECATED.pod, which no longer exists. + Improved GC latency + Improved GC performance on low-memory systems + Improved packfile annotation lookup complexity + Removal of unused code and SVN based code - NQP + A repository for a new NQP version which has a new object model is created at http://github.com/perl6/nqp - Languages + Cardinal (Ruby on Parrot) now compiles and passes it's test suite on master and is looking for developers : https://github.com/parrot/cardinal + Cardinal can send smoke reports with "rake smoke" or "parrot setup.pir smoke" + Jaspers, an implementation of Javascript on Parrot, now has a Github repo and is looking for developers: https://github.com/leto/jaspers - Community + The following Parrot Google Code-In students were grand prize winners: Fernando Brito, Brazil David Czech, Canada Nolan Lum, United States Matt Rajca, United States Tony Young, New Zealand Daniel Kang, United States We are very proud of them for their fine work and congratulate them for achieving top finalist status! For more info, see: http://google-opensource.blogspot.com/2011/02/google-code-in-grand-prize... - Documentation + Many new Parrot-related terms were added to docs/glossary.pod + Removal of most remaining references to SVN + Internal project documentation is included in html output - Tests + Test suite now passes on NetBSD 5.1 + Test coverage increased greatly for the Embed/Extend subsystem, thanks to a TPF grant: http://leto.net/dukeleto.pl/2011/01/parrot-embed-grant-update-2.html @ text @d1 1 a1 1 $NetBSD: patch-ak,v 1.3 2010/04/23 14:08:17 he Exp $ @ 1.3 log @Update parrot from version 2.2.0 to 2.3.0. Pkgsrc changes: o Adapt our patches to up-stream changes. o Fix PLIST to match what's being installed. Upstream changes: - Core + Allow passing parameters to the dynamic linker ('dlopen' improved) + loadlib opcode added + Calling conventions are now much more consistent, and follows natural semantics of handling arguments and return values + Recursive make for src/dynpmc removed + Datatype STRINGNULL for a single Null STRING added + config_lib.pasm replaced with config_lib.pir - Platforms + Improved handling of new compilers + Cygwin packages will be updated again with Parrot releases + Fedora packages add desktop files + gzip and bzip2 compressed tar files for releases - Tools + tapir executable added; tapir is a TAP test harness + Added TAP options --merge --ignore-exit - Miscellaneous + 3 month cycle for supported releases + Review and vote of GSoC applications @ text @d1 1 a1 1 $NetBSD: patch-ak,v 1.2 2010/02/18 07:59:38 he Exp $ d8 4 a11 4 --- config/gen/platform/generic/dl.c.orig 2010-03-22 13:39:23.000000000 +0100 +++ config/gen/platform/generic/dl.c @@@@ -22,11 +22,69 @@@@ Dynlib stuff */ d19 3 a21 1 #define PARROT_DLOPEN_FLAGS RTLD_LAZY d82 1 a82 1 @@@@ -39,8 +97,12 @@@@ void * d97 1 a97 1 @@@@ -94,10 +156,15 @@@@ int @ 1.2 log @Update parrot from version 2.0.0 to 2.1.0. Pkgsrc changes: o Adapt patch to work around dl-handle re-use to eliminate warnings o Adapt PLIST to new contents Upstream changes: - Core changes + GC performance and encapsulation were greatly improved. + PMC freeze refactored. + More Makefile and build improvements. - API Changes + The Array PMC was removed. + Several deprecated vtables were removed. + The OrderedHash PMC was substantialy improved. - Platforms + Packaging improvements on some operating systems. - Tools + Some cases in pbc_merge are now handled. + Improvements were made to the dependency checker. + New tool nativecall.pir added. @ text @d1 1 a1 1 $NetBSD: patch-ak,v 1.1 2009/12/09 09:23:51 he Exp $ d8 1 a8 3 Index: config/gen/platform/generic/dl.c =================================================================== --- config/gen/platform/generic/dl.c.orig 2009-12-12 01:16:58.000000000 +0100 d21 1 a76 1 + d79 3 a81 3 =item C @@@@ -39,7 +97,11 @@@@ void * Parrot_dlopen(const char *filename) d84 2 a85 1 - return dlopen(filename, PARROT_DLOPEN_FLAGS); d88 2 a89 1 + h = dlopen(filename, PARROT_DLOPEN_FLAGS); d95 1 a95 1 @@@@ -93,10 +155,15 @@@@ int @ 1.1 log @Update to version 1.7.0. Pkgsrc changes: o Adapt the patch to t/op/io.t to a change done upstream slightly after 1.7.0 was released. o Add a patch which fixes a problem exposed by one of the tests, related to library cloning, which caused dlclose() to be called twice with the same handle value, ref. Parrot ticket 1340. Upstream changes: New in 1.7.0 - Functionality + Parrot_capture_lex has been added to the PARROT_EXPORT API + PARROT_MAX_ARGS has been increased from 8 to 16 to allow for ops that take mo re than 8 args - Performance + The profiling runcore now caches metadata for improved performance - Maintenance and cleanup + Expanded the Parrot debugger documentation + Parrot debugger now uses the new Parrot STRING API + Continue to port rest of internals to use the STRING API - Deprecations + The JIT subsystem has been removed and is being written from the ground up. More information can be found at https://trac.parrot.org/parrot/wiki/JITRewrite + Implicit optional named parameters (eligible in 2.1) + Continuation-based ExceptionHandlers (eligible in 2.1) + Use of undocumented variables in class_init (eligible in 2.1) + Parrot_oo_get_namespace (eligible in 2.1) - Bugfix + Improved line number tracking in IMCC - Tests + Converted many more Perl 5 tests to PIR + Expanded test coverage of the CallSignature, Namespace, FixedPMCArray, ResizeableIntegerArray and ExceptionHandler PMCs @ text @d1 1 a1 1 $NetBSD$ d10 3 a12 3 --- config/gen/platform/generic/dl.c (revision 42823) +++ config/gen/platform/generic/dl.c (working copy) @@@@ -22,11 +22,69 @@@@ d37 1 a37 1 + e = malloc(sizeof(struct handle_entry)); d82 1 a82 1 @@@@ -39,7 +97,11 @@@@ d95 1 a95 1 @@@@ -93,7 +155,13 @@@@ d100 2 a108 2 #else return -1; d110 4 @