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
