pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/lang/parrot Update to version 1.7.0.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/7ce21c1d75c2
branches:  trunk
changeset: 568257:7ce21c1d75c2
user:      he <he%pkgsrc.org@localhost>
date:      Wed Dec 09 09:23:50 2009 +0000

description:
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

diffstat:

 lang/parrot/Makefile         |    5 +-
 lang/parrot/PLIST            |    5 +-
 lang/parrot/distinfo         |   11 ++-
 lang/parrot/patches/patch-ai |   30 +++--------
 lang/parrot/patches/patch-ak |  109 +++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 127 insertions(+), 33 deletions(-)

diffs (249 lines):

diff -r 633b08b18df2 -r 7ce21c1d75c2 lang/parrot/Makefile
--- a/lang/parrot/Makefile      Wed Dec 09 09:02:08 2009 +0000
+++ b/lang/parrot/Makefile      Wed Dec 09 09:23:50 2009 +0000
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.23 2009/10/21 14:23:13 he Exp $
+# $NetBSD: Makefile,v 1.24 2009/12/09 09:23:50 he Exp $
 #
 
-VERSION=               1.6.0
-PKGREVISION=           1
+VERSION=               1.7.0
 RTYPE=                 devel
 DISTNAME=              parrot-${VERSION}
 CATEGORIES=            lang
diff -r 633b08b18df2 -r 7ce21c1d75c2 lang/parrot/PLIST
--- a/lang/parrot/PLIST Wed Dec 09 09:02:08 2009 +0000
+++ b/lang/parrot/PLIST Wed Dec 09 09:23:50 2009 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.9 2009/09/20 10:57:04 he Exp $
+@comment $NetBSD: PLIST,v 1.10 2009/12/09 09:23:50 he Exp $
 bin/parrot
 bin/parrot_config
 bin/parrot_debugger
@@ -28,7 +28,6 @@
 include/parrot/${PKGVERSION}/parrot/enums.h
 include/parrot/${PKGVERSION}/parrot/events.h
 include/parrot/${PKGVERSION}/parrot/exceptions.h
-include/parrot/${PKGVERSION}/parrot/exec.h
 include/parrot/${PKGVERSION}/parrot/exit.h
 include/parrot/${PKGVERSION}/parrot/extend.h
 include/parrot/${PKGVERSION}/parrot/extend_vtable.h
@@ -64,7 +63,6 @@
 include/parrot/${PKGVERSION}/parrot/oplib/ops.h
 include/parrot/${PKGVERSION}/parrot/packfile.h
 include/parrot/${PKGVERSION}/parrot/parrot.h
-include/parrot/${PKGVERSION}/parrot/pic.h
 include/parrot/${PKGVERSION}/parrot/platform.h
 include/parrot/${PKGVERSION}/parrot/platform_interface.h
 include/parrot/${PKGVERSION}/parrot/pmc.h
@@ -293,7 +291,6 @@
 share/doc/parrot/${PKGVERSION}/pod/ops/io.pod
 share/doc/parrot/${PKGVERSION}/pod/ops/math.pod
 share/doc/parrot/${PKGVERSION}/pod/ops/object.pod
-share/doc/parrot/${PKGVERSION}/pod/ops/pic.pod
 share/doc/parrot/${PKGVERSION}/pod/ops/pmc.pod
 share/doc/parrot/${PKGVERSION}/pod/ops/set.pod
 share/doc/parrot/${PKGVERSION}/pod/ops/string.pod
diff -r 633b08b18df2 -r 7ce21c1d75c2 lang/parrot/distinfo
--- a/lang/parrot/distinfo      Wed Dec 09 09:02:08 2009 +0000
+++ b/lang/parrot/distinfo      Wed Dec 09 09:23:50 2009 +0000
@@ -1,11 +1,12 @@
-$NetBSD: distinfo,v 1.18 2009/10/22 11:31:44 he Exp $
+$NetBSD: distinfo,v 1.19 2009/12/09 09:23:50 he Exp $
 
-SHA1 (parrot-1.6.0.tar.gz) = 2258c3a0da32ed8c1ce55ee460e81a841d06a2c1
-RMD160 (parrot-1.6.0.tar.gz) = ca5907643a9e972971daac51afd1b95a30103fa5
-Size (parrot-1.6.0.tar.gz) = 3977952 bytes
+SHA1 (parrot-1.7.0.tar.gz) = 68e4b330f879549f920497332754ebf651c7e82e
+RMD160 (parrot-1.7.0.tar.gz) = 11831164b7c203ee83fb911b84c94873ea112fcc
+Size (parrot-1.7.0.tar.gz) = 3810349 bytes
 SHA1 (patch-ad) = 9002a7ca55f8f960bea669e383431b3eeb83a878
 SHA1 (patch-ae) = 72e4752112dab2f0b72ede5c45b77fd5b5554606
 SHA1 (patch-af) = f2d67ac311aec9960a47b54eacdc8b72e83521eb
 SHA1 (patch-ag) = 7a43d15e4e6fb76d4c4619affee4c3c8e0dd3444
-SHA1 (patch-ai) = 7430f01b99ed95996e5c76c2ffdc8122084bb822
+SHA1 (patch-ai) = c4b610754c00bd5e2dcf2df7b730aa96bb69da5a
 SHA1 (patch-aj) = df1d64aa5a3b5f3ed7389a72a855baa14dc7df38
+SHA1 (patch-ak) = 2caa175c26fcf717f6377fadd04b74a7c9cf750d
diff -r 633b08b18df2 -r 7ce21c1d75c2 lang/parrot/patches/patch-ai
--- a/lang/parrot/patches/patch-ai      Wed Dec 09 09:02:08 2009 +0000
+++ b/lang/parrot/patches/patch-ai      Wed Dec 09 09:23:50 2009 +0000
@@ -1,11 +1,11 @@
-$NetBSD: patch-ai,v 1.1 2009/10/21 14:23:13 he Exp $
+$NetBSD: patch-ai,v 1.2 2009/12/09 09:23:51 he Exp $
 
-I beleive this test works for all relevant pkgsrc platforms.
-It has been similarly transformed upstream after 1.7.0 was released.
+Mirror a change committed just after the release: the open_pipe_for_writing
+test should work everywhere.
 
---- t/op/io.t.orig     2008-12-18 06:19:20.000000000 +0100
+--- t/op/io.t.orig     2009-10-20 23:30:03.000000000 +0200
 +++ t/op/io.t
-@@ -51,28 +51,9 @@ Tests various io opcodes.
+@@ -51,22 +51,6 @@ Tests various io opcodes.
      ok(1, 'open with null mode')
  .end
  
@@ -15,7 +15,7 @@
 -    .include 'sysinfo.pasm'
 -    $S0 = sysinfo .SYSINFO_PARROT_OS
 -    if $S0 == 'linux' goto tt661_ok
--    if $S0 == 'MSWin32' goto tt661_ok
+-#    if $S0 == 'MSWin32' goto tt661_ok
 -    if $S0 == 'darwin' goto tt661_ok
 -    if $S0 == 'openbsd' goto tt661_ok
 -
@@ -28,35 +28,23 @@
  .include 'iglobals.pasm'
  
  .sub 'open_pipe_for_reading'
--    $I0 = tt661_todo_test()
--    unless $I0 goto open_pipe_for_reading_todoed
--
-     .local pmc interp
-     interp = getinterp
- 
-@@ -103,15 +84,9 @@ Tests various io opcodes.
-   open_pipe_for_reading_failed:
-     nok(1, 'open pipe for reading')
-     .return ()
--
--  open_pipe_for_reading_todoed:
--    todo(1, 'Unimplemented in this platform, TT #661')
+@@ -103,8 +87,6 @@ Tests various io opcodes.
  .end
  
  .sub 'open_pipe_for_writing'
 -    $I0 = tt661_todo_test()
 -    unless $I0 goto open_pipe_for_writing_todoed
--
      .local pmc interp
      interp = getinterp
  
-@@ -144,9 +119,6 @@ Tests various io opcodes.
+@@ -137,10 +119,6 @@ Tests various io opcodes.
    open_pipe_for_writing_failed:
      nok(1, 'open pipe for writing')
      .return ()
 -
 -  open_pipe_for_writing_todoed:
 -    todo(1, 'Unimplemented in this platform, TT #661')
+-
  .end
  
  # Local Variables:
diff -r 633b08b18df2 -r 7ce21c1d75c2 lang/parrot/patches/patch-ak
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/parrot/patches/patch-ak      Wed Dec 09 09:23:50 2009 +0000
@@ -0,0 +1,109 @@
+$NetBSD: patch-ak,v 1.1 2009/12/09 09:23:51 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.
+
+Index: config/gen/platform/generic/dl.c
+===================================================================
+--- config/gen/platform/generic/dl.c   (revision 42823)
++++ config/gen/platform/generic/dl.c   (working copy)
+@@ -22,11 +22,69 @@
+ */
+ 
+ #ifdef PARROT_HAS_HEADER_DLFCN
++#  include <stddef.h>
++#  include <stdlib.h>
+ #  include <dlfcn.h>
+ #endif
+ 
+ #define PARROT_DLOPEN_FLAGS RTLD_LAZY
+ 
++#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 = 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<void * Parrot_dlopen(const char *filename)>
+@@ -39,7 +97,11 @@
+ Parrot_dlopen(const char *filename)
+ {
+ #ifdef PARROT_HAS_HEADER_DLFCN
+-    return dlopen(filename, PARROT_DLOPEN_FLAGS);
++    void *h;
++
++    h = dlopen(filename, PARROT_DLOPEN_FLAGS);
++    push_handle_entry(h);
++    return h;
+ #else
+     return 0;
+ #endif
+@@ -93,7 +155,13 @@
+ Parrot_dlclose(void *handle)
+ {
+ #ifdef PARROT_HAS_HEADER_DLFCN
+-    return dlclose(handle);
++    int rv;
++
++    if (find_handle_entry(handle)) {
++      remove_handle_entry(handle);
++      rv = dlclose(handle);
++      return rv;
++    }
+ #else
+     return -1;
+ #endif



Home | Main Index | Thread Index | Old Index