Author: leo
Date: Fri Aug  5 05:00:34 2005
New Revision: 8817

Modified:
   branches/leo-ctx5/CREDITS
   branches/leo-ctx5/NEWS
   branches/leo-ctx5/PLATFORMS
   branches/leo-ctx5/build_tools/parrotdef.pl
   branches/leo-ctx5/encodings/fixed_8.c
   branches/leo-ctx5/encodings/utf8.c
   branches/leo-ctx5/languages/tcl/lib/tclconst.pir
   branches/leo-ctx5/languages/tcl/t/tcl_backslash.t
Log:
merge -r8806:8816 from trunk

Modified: branches/leo-ctx5/CREDITS
==============================================================================
--- branches/leo-ctx5/CREDITS   (original)
+++ branches/leo-ctx5/CREDITS   Fri Aug  5 05:00:34 2005
@@ -31,9 +31,13 @@ N: Alex Gough
 D: bignum
 
 N: Allison Randal
-D: P6C
+D: P6C and Punie (Perl 1)
 
-A: Andrew Rodland
+N: Amir Karger
+D: editor bugfixes
+E: [EMAIL PROTECTED]
+
+N: Andrew Rodland
 D: vim syntax files and editor doc
 
 N: Andy Dougherty
@@ -50,11 +54,14 @@ D: Buffered IO fix
 
 N: Ask Bjoern Hansen
 
+N: Autrijus Tang
+D: various bugfixes
+
 N: Benjamin Goldberg
 D: Numerous improvements and proposals.
 
 N: Bernhard Schmalhofer
-D: Bugfixes, m4, Getopt_Long.pir
+D: Bugfixes, m4, Getopt_Long.pir, Parrot bc, Configure bugfixes
 
 N: Bob Diertens
 D: patch regarding macro argument expansion
@@ -81,7 +88,7 @@ D: Designer and demagogue
 E: [EMAIL PROTECTED]
 
 N: chromatic
-D: SDL library and examples
+D: SDL library and examples; Test::Builder; test suite cleanup
 
 N: Clayton O'Neill
 D: Fix for parrot linking issue on Solaris 8
@@ -93,7 +100,8 @@ N: Cory Spencer
 D: Peek opcode and PIO implementation
 
 N: Curtis Rawls
-D: imcc optimizer patches and tests
+D: imcc optimizer and register allocator patches and tests
+E: [EMAIL PROTECTED]
 
 N: Dan Sugalski
 D: The big cheese emeritus
@@ -111,12 +119,19 @@ N: David M. Loyd
 N: Dennis Rieks
 D: Win32 config and build
 
+N: Dino Morelli
+D: PGE tests
+E: [EMAIL PROTECTED]
+
 N: Eirik Berg Hanssen
 D: Use unix98 ps option in signal.t
 
 N: Felix Gallo
 D: delegate.pmc patch
 
+N: Francois Perrad
+D: build fixes for Cygwin and MinGW
+
 N: Garrett Rooney
 D: Fix typo in PARROT_BIGENDIAN case
 
@@ -126,6 +141,9 @@ D: Win98 and other fixes.
 N: Gordon Henriksen
 D: Unified PMC/PObj accessors
 
+N: Greg Bacon
+D: Memory reallocation test and patch
+
 N: Gregor N. Purdy
 D: Early Parrot core, including packfile and op processing code,
 D: first predereferencing core, first Parrot-targetted compiler
@@ -172,9 +190,11 @@ D: parrotbug, befunge interpreter, ook c
 E: [EMAIL PROTECTED]
 S: Lyon, France
 
-N: Jerry Gay
+N: Jerry Gay a.k.a particle
 E: [EMAIL PROTECTED]
 D: remove Win32 compile warnings; pcre update; cleanup of internal exceptions
+D: add tests; doc cleanup; pick low hanging fruit
+S: Seattle, WA
 
 N: John Paul Wallington
 D: pir-mode.el: fix for xemacs plus bugfixes and cleanups
@@ -208,6 +228,10 @@ D: yield and other PIR improvements
 
 N: Kevin Falcone
 
+N: Klaas-Jan Stol
+D: dynclasses and doc updates
+E: [EMAIL PROTECTED]
+
 N: Lars Balker Rasmussen
 D: FreeBSD and other build fixes
 
@@ -230,6 +254,7 @@ D: httpd.imc, bugfixes
 N: Matt Diephouse
 D: Turn off buffering layer in forth.pasm
 D: Various patches for pmc2c.pl
+D: Run Tcl test suite in ParTcl, and add various ParTcl bits
 
 N: Matt Fowles
 D: Resizable*Array classes
@@ -273,6 +298,10 @@ D: Win32, FreeBSD build fixes
 N: Nigelsandever
 D: Win32 patches
 
+N: Patrick R. Michaud
+D: Parrot Grammar Engine
+E: [EMAIL PROTECTED]
+
 N: Peter Gibbs
 D: String subsystem
 
@@ -343,11 +372,17 @@ E: [EMAIL PROTECTED]
 W: http://www.accognoscere.org
 S: Winterthur, Switzerland
 
+N: Thilo Planz
+D: ParTcl tests and inspiration
+
 N: TOGoS
 D: Some FAQ questions and answers
 
 N: Tom Hughes
 
+E: [EMAIL PROTECTED]
+D: Nicer command line handling in ops2c.pl
+
 N: Uri Guttman
 D: Lot of general Parrot design hints
 

Modified: branches/leo-ctx5/NEWS
==============================================================================
--- branches/leo-ctx5/NEWS      (original)
+++ branches/leo-ctx5/NEWS      Fri Aug  5 05:00:34 2005
@@ -1,5 +1,15 @@
 # $Id$
 
+New in 0.2.3
+
+- Dynamic classes now compile on Windows (including ParTcl)
+- New Super PMC allows easy access to superclass methods
+- Implement C3 method resolution order (just like Perl6 & Python)
+- ParTcl has new PIR-based parser and passes more Tcl tests
+- added character class support in Globs to PGE
+- added language implementations of unlambda, Lazy-k
+- many bugfixes, including GC and memory leaks
+
 New in 0.2.2
 
 - new call scheme: docs/pdds/pdd03_calling_conventions.pod

Modified: branches/leo-ctx5/PLATFORMS
==============================================================================
--- branches/leo-ctx5/PLATFORMS (original)
+++ branches/leo-ctx5/PLATFORMS Fri Aug  5 05:00:34 2005
@@ -7,8 +7,10 @@ Platform                B8    Runloops  
 ---------------------------------------------------------------------------
 aix-pwr-xlc6            B    -    Y    -     Y   -   Y    Y
 aix-pwr64-xlc6          B8   -    -    -     Y   -   Y    Y/20
-darwin                  B    Y    Y    Y     Y   Y   Y    Y     Y  20050701
+darwin_7.9.0 (10.3)     B    Y    Y    -     Y   Y   Y    Y     Y  20050804
+darwin_8.2.0-gcc4.0.0   B                            Y    Y        20050804
 freebsd5.2-i386              Y    Y/4  Y     Y   -   Y*6  Y
+freebsd6.0b-amd64       8    Y    -    -     Y   Y   Y    Y/12     20050804
 hpux-pa_risc2.0-gcc2.9  B         -    -     Y   Y   Y*2  Y
 ?-ia64
 irix6.5                                      Y       Y    Y/2
@@ -17,8 +19,8 @@ linux-ppc-gcc2.95.3     B    Y    Y    Y
 linux-ppc-gcc3.2.3      B    Y    Y/9  Y     Y   Y   Y    Y
 linux-sparc-gcc3.3.3    B    Y    -    -     Y   Y   Y    Y
 linux-sparc64-gcc3.3.3  B8   Y    -    -     -   -   Y    -
-linux-x86-gcc2.95.2          Y    Y    Y     Y   Y   Y    Y     Y  20050702
-linux-x86-gcc3.3.3           Y    Y    Y     Y   Y   Y    Y     Y  20050702
+linux-x86-gcc2.95.2          Y    Y    Y     Y   Y   Y    Y     Y  20050804
+linux-x86-gcc3.3.3           Y    Y    Y     Y   Y   Y    Y     Y  20050804
 linux-x86-gcc3.3.3 *3        Y    Y    Y     Y   Y   Y    Y*3
 linux-x86-icc8               Y    Y    Y     Y   Y   Y    Y
 linux-x86_64-gcc3.3.3    8   Y    -    -     Y   Y   Y    Y
@@ -27,7 +29,8 @@ netbsd                                 Y
 openbsd                      Y    Y/5  Y     Y   -   Y    Y
 openbsd_beta_3.5-vax                                 Y*4  Y/26
 os2
-solaris8-sparc-cc       B    -    Y/389 -    -   -   Y    Y/15     20050701
+solaris8-sparc-cc       B    -    Y/425 -    -   -   Y    Y/15     20050804
+solaris10-sparc-gcc3.4.3 B                           Y*7  Y/1      20050804
 tru64-alpha-gcc          8                   Y       Y    Y
 tru64-alpha-dec_c_v6.5   8                   Y       Y    Y        20040816
 vms
@@ -35,6 +38,7 @@ win32-bcc
 win32-cygwin_1.5.11_1        Y    Y    -     Y*5 Y   Y    Y        20041006
 win32-icl_8.0.48             -    Y    -     -   -   Y    Y/2
 win32-mingw-gcc3.2.3         Y    Y    Y     -   -   Y    Y/81  Y  20050603
+win32-msvc_6.0               -    Y    -     -   -   Y    Y        20050804
 win32-msvc_7.1               -    Y    -     -   -   Y    Y        20050802
 
 -   ... no
@@ -67,6 +71,7 @@ Remarks:
 *5 by enabling cygwin in t/pmc/threads.t, some tests fail due to a bug in
    that release. 1.5.10-3 and latest snapshots are ok.
 *6 needs "gmake"
+*7 needs perl Configure.pl --cc=gcc --link=gcc --ld=gcc --cxx=gcc
 
 The following configurations are also working on x86/linux (and likely
 other platforms):

Modified: branches/leo-ctx5/build_tools/parrotdef.pl
==============================================================================
--- branches/leo-ctx5/build_tools/parrotdef.pl  (original)
+++ branches/leo-ctx5/build_tools/parrotdef.pl  Fri Aug  5 05:00:34 2005
@@ -117,6 +117,7 @@ my @funcnames = qw(

        Parrot_string_find_punctuation

        Parrot_string_find_newline

        Parrot_string_find_word_boundary

+       Parrot_binary_charset_ptr

        list_pmc_new

        list_pmc_new_init

        list_mark


Modified: branches/leo-ctx5/encodings/fixed_8.c
==============================================================================
--- branches/leo-ctx5/encodings/fixed_8.c       (original)
+++ branches/leo-ctx5/encodings/fixed_8.c       Fri Aug  5 05:00:34 2005
@@ -188,7 +188,7 @@ static void
 fixed8_set_position(Interp *interpreter, String_iter *iter, UINTVAL pos)
 {
     iter->bytepos = iter->charpos = pos;
-    assert(pos < PObj_buflen(iter->str));
+    assert(pos <= PObj_buflen(iter->str));
 }
 
 

Modified: branches/leo-ctx5/encodings/utf8.c
==============================================================================
--- branches/leo-ctx5/encodings/utf8.c  (original)
+++ branches/leo-ctx5/encodings/utf8.c  Fri Aug  5 05:00:34 2005
@@ -278,7 +278,7 @@ utf8_encode_and_advance(Interp *interpre
     new_pos = utf8_encode(pos, c);
     i->bytepos += (new_pos - pos);
     /* XXX possible buffer overrun exception? */
-    assert(i->bytepos < PObj_buflen(s));
+    assert(i->bytepos <= PObj_buflen(s));
     i->charpos++;
 }
 

Modified: branches/leo-ctx5/languages/tcl/lib/tclconst.pir
==============================================================================
--- branches/leo-ctx5/languages/tcl/lib/tclconst.pir    (original)
+++ branches/leo-ctx5/languages/tcl/lib/tclconst.pir    Fri Aug  5 05:00:34 2005
@@ -70,7 +70,6 @@ Define the attributes required for the c
   .param string value
 
   .local int value_length
-  value_length = length value
 
   .local pmc backslashes, hexadecimal
   find_global backslashes, "_Tcl", "backslashes"
@@ -79,6 +78,7 @@ Define the attributes required for the c
   .local int pos
   pos = 0
 loop:
+  value_length = length value
   pos = index value, "\\", pos
   if pos == -1 goto done
  
@@ -125,7 +125,7 @@ octal_only1:
   $S0 = chr octal_value
   substr value, pos, 2, $S0 
 
-  pos += 2 # skip \ and 1 char.
+  inc pos
   goto loop 
 
 octal2:
@@ -148,7 +148,7 @@ octal_only2:
   $S0 = chr octal_value
   substr value, pos, 3, $S0 
 
-  pos += 3 # skip \ and 2 characters
+  inc pos
   goto loop 
 
 octal3:
@@ -161,8 +161,7 @@ octal3:
   $S0 = chr octal_value
   substr value, pos, 4, $S0 
 
-  pos += 4 # skip \ and 3 characters
-
+  inc pos
   goto loop # can't have four digits, stop now.
 
 =for comment
@@ -198,13 +197,14 @@ hex_done:
   $S0 = chr hex_value
   substr value, pos, $I0, $S0 
 
-  pos = hex_pos
+  inc pos 
+
   goto loop
 
 hex_not_really:
   # This was a \x escape that had no hex value..
   substr value, pos, 2, "x"
-  pos = hex_pos
+  inc pos
   goto loop
 
 =for comment
@@ -241,17 +241,15 @@ uni_done:
   $S0 = chr uni_value
   substr value, pos, $I0, $S0 
 
-  pos = uni_pos
+  inc pos
   goto loop
 
 uni_not_really:
-  # This was a \x escape that had no uni value..
+  # This was a \u escape that had no uni value..
   substr value, pos, 2, "u"
-  pos = uni_pos
+  inc pos
   goto loop
 
-
-
 special:
   $S0 = backslashes[$I0]
   substr value, pos, 2, $S0

Modified: branches/leo-ctx5/languages/tcl/t/tcl_backslash.t
==============================================================================
--- branches/leo-ctx5/languages/tcl/t/tcl_backslash.t   (original)
+++ branches/leo-ctx5/languages/tcl/t/tcl_backslash.t   Fri Aug  5 05:00:34 2005
@@ -2,7 +2,7 @@
 
 use strict;
 use lib qw(tcl/t t . ../lib ../../lib ../../../lib);
-use Parrot::Test tests => 34;
+use Parrot::Test tests => 35;
 
 my($tcl,$expected);
 
@@ -67,105 +67,105 @@ EOTCL
 $expected = "a b\n";
 language_output_is("tcl",$tcl,$expected,"backslash newline substitution");
 
-language_output_is("tcl",<<'TCL',<<OUT,"octal single char");
+language_output_is("tcl",<<'TCL',<<OUT,"octal single digit");
   set a \7
   puts $a
 TCL
 \cG
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"octal single char, extra");
+language_output_is("tcl",<<'TCL',<<OUT,"octal single digit, extra");
   set a \79
   puts $a
 TCL
 \cG9
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"octal double char");
+language_output_is("tcl",<<'TCL',<<OUT,"octal double digit");
   set a \12
   puts $a
 TCL
 \cJ
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"octal double char, extra");
+language_output_is("tcl",<<'TCL',<<OUT,"octal double digit, extra");
   set a \129
   puts $a
 TCL
 \cJ9
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"octal triple char");
+language_output_is("tcl",<<'TCL',<<OUT,"octal triple digit");
   set a \123
   puts $a
 TCL
 S
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"octal triple char, extra");
+language_output_is("tcl",<<'TCL',<<OUT,"octal triple digit, extra");
   set a \1234
   puts $a
 TCL
 S4
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"hex single char, invalid");
+language_output_is("tcl",<<'TCL',<<OUT,"hex single digit, invalid");
   set a \xq
   puts $a
 TCL
 xq
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"hex single char");
+language_output_is("tcl",<<'TCL',<<OUT,"hex single digit");
   set a \x7
   puts $a
 TCL
 \cG
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"hex single char, extra");
+language_output_is("tcl",<<'TCL',<<OUT,"hex single digit, extra");
   set a \x7q
   puts $a
 TCL
 \cGq
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"hex double char");
+language_output_is("tcl",<<'TCL',<<OUT,"hex double digit");
   set a \x6a
   puts $a
 TCL
 j
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"hex double char, extra");
+language_output_is("tcl",<<'TCL',<<OUT,"hex double digit, extra");
   set a \x6aq
   puts $a
 TCL
 jq
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"hex triple char, skip ok?");
+language_output_is("tcl",<<'TCL',<<OUT,"hex triple digit, skip ok?");
   set a \xb6a
   puts $a
 TCL
 j
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"hex triple char, extra");
+language_output_is("tcl",<<'TCL',<<OUT,"hex triple digit, extra");
   set a \xb6aq
   puts $a
 TCL
 jq
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"hex many char");
+language_output_is("tcl",<<'TCL',<<OUT,"hex many digit");
   set a \xaaaaaaaaaaab6a
   puts $a
 TCL
 j
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"hex many char, extra");
+language_output_is("tcl",<<'TCL',<<OUT,"hex many digit, extra");
   set a \xaaaaaaaaaaab6aq
   puts $a
 TCL
@@ -173,71 +173,74 @@ jq
 OUT
 
 
-language_output_is("tcl",<<'TCL',<<OUT,"unicode single char, invalid");
+language_output_is("tcl",<<'TCL',<<OUT,"unicode single digit, invalid");
   set a \uq
   puts $a
 TCL
 uq
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"unicode one char");
+language_output_is("tcl",<<'TCL',<<OUT,"unicode one digit");
   set a \u7
   puts $a
 TCL
 \cG
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"unicode one char, extra");
+language_output_is("tcl",<<'TCL',<<OUT,"unicode one digit, extra");
   set a \u7q
   puts $a
 TCL
 \cGq
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"unicode two chars");
+language_output_is("tcl",<<'TCL',<<OUT,"unicode two digits");
   set a \u6a
   puts $a
 TCL
 j
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"unicode two chars, extra");
+language_output_is("tcl",<<'TCL',<<OUT,"unicode two digits, extra");
   set a \u6aq
   puts $a
 TCL
 jq
 OUT
 
-TODO: {
+# expected values are in utf8 encoding.
 
-local $TODO = "These four tests tickle a seg-fault in parrot: [#36794]";
-
-language_output_is("tcl",<<'TCL',<<OUT,"unicode three chars");
+language_output_is("tcl",<<'TCL',<<OUT,"unicode three digits");
   set a \u666
   puts $a
 TCL
-\x{666}
+\xd9\xa6
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"unicode three chars, extra");
+language_output_is("tcl",<<'TCL',<<OUT,"unicode three digits, extra");
   set a \u666q
   puts $a
 TCL
-\x{666}q
+\xd9\xa6q
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"unicode four chars");
+language_output_is("tcl",<<'TCL',<<OUT,"unicode four digits");
   set a \u6666
   puts $a
 TCL
-\x{6666}
+\xe6\x99\xa6
 OUT
 
-language_output_is("tcl",<<'TCL',<<OUT,"unicode four chars, extra");
+language_output_is("tcl",<<'TCL',<<OUT,"unicode four digits, extra");
   set a \u6666q
   puts $a
 TCL
-\x{6666}q
+\xe6\x99\xa6q
 OUT
 
-}
+language_output_is("tcl",<<'TCL',<<OUT,"multiple substs, same word");
+  set a \\\a\007\xaaaa07\u0007\uq
+  puts $a
+TCL
+\\\cG\cG\cG\cGuq
+OUT

Reply via email to