Subject: PR/32448 CVS commit: pkgsrc/lang/parrot
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Thomas Klausner <wiz@netbsd.org>
List: pkgsrc-bugs
Date: 01/03/2006 19:30:02
The following reply was made to PR pkg/32448; it has been noted by GNATS.

From: Thomas Klausner <wiz@netbsd.org>
To: gnats-bugs@netbsd.org
Cc: 
Subject: PR/32448 CVS commit: pkgsrc/lang/parrot
Date: Tue,  3 Jan 2006 19:25:06 +0000 (UTC)

 Module Name:	pkgsrc
 Committed By:	wiz
 Date:		Tue Jan  3 19:25:06 UTC 2006
 
 Modified Files:
 	pkgsrc/lang/parrot: DESCR Makefile PLIST distinfo
 Added Files:
 	pkgsrc/lang/parrot: buildlink3.mk
 	pkgsrc/lang/parrot/patches: patch-aa patch-ab patch-ac patch-ad
 
 Log Message:
 Update to 0.4.0, provided by Anders Nor Berle in PR 32448.
 
 New in 0.4.0
 - New lexical handling and closure support including better
   introspection for caller and outer
 - PGE (Parrot Grammar Engine) provides now compilers for P6Rule,
   P6Grammar, P5Regexp, and Glob
 - ca. 1000 new tests including 800 for Perl5 regexp
 - Improved unicode charset and encoding support
 - Calling conventions for exception handlers
 - Punie (Perl 1) uses TGE (Tree Grammar Engine) to convert from
   PGE match objects to AST via two steps of tree transformation grammars
 - New languages: amber and lua
 - The usual code fixes, cleanup, and improvements, including an overhaul
   of the config and test framework
 
 New in 0.3.1
 
 - Variable sized register frames are finished. Each subroutine gets
   the amount of registers that it actually needs. No more spilling.
 - Vastly improved PGE (Parrot Grammar Engine) including shift-reduce,
   precedence-based expression parser and support for matching of
   bracketed text delimited by e.g. ()[]{}'"
 - uniccode character classification (is_upper ...)
 - support for heredoc syntax in assembler
 - improved examples, basic JSON support
 - debian packaging support
 - the usual improvements, bug fixes, and cleanup
 - test count exceeds 3000
 
 New in 0.3.0
 
 - New calling conventions implemented: see PDD03 for details
 - Merge multiple Parrot bytecode (PBC) files into a singe PBC file
 - 'make smoke' target going beta
 - bc now supports if statements, comparison ops, prefix inc/dec
 - ParTcl adds [lassign], [switch] (partially); [expr] converted to a compiler
 - Many exciting doc updates, tests, and bugfixes, too numerous to mention
 
 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
 - the new calling scheme continued to evolve in branches/leo-ctx5
 
 New in 0.2.2
 
 - new call scheme: docs/pdds/pdd03_calling_conventions.pod
 - partial implementation of the new calling conventions
   PASM only, don't mix PIR foo() call syntax with the new scheme
 - grammar and rule support in PGE - the Parrot Grammar Engine
 - TCL passes >10% of the tcl test suite
 - the usual bugfixes and improvements
 
 New in 0.2.1
 
 - better HLL support (short names for object attributes, and
   .HLL and n_operators pragmas)
 - string encoding and charset can now be set independently
 - experimental mmap IO layer for slurping files
 - distinct debug and trace flag settings
 - glob support in PGE
 - new character classification opcodes and interfaces
 
 New in 0.2.0
 
 - parrot repository is now under subversion
 - MMD (Multi Method Dispatch) enhanced
 - new unary and infix opcodes that return new result PMCs
 - dynamic scalar PMCs inherit now almost all from Parrot core PMCs
 - more unification of PMCs and ParrotObjects
 - tailcalls for functions and methods
 - PGE (Parrot Grammar Engine) reworked
 - Pugs creates Parrot code and Pugs is a registered compiler now
 - new languages/lisp
 - the usual bug fixes and improvements
 
 New in 0.1.2
 
 - New string handling code. Strings now have charset and encoding
 - Parts of a generation garbage collector
 - Better Python code, separated in dynclasses
 - Parrot Grammar Engine
 - Improved test coverage and documentation
 
 New in 0.1.1
 
 Parrot 0.1.1 is an intermediate release with tons of updates and fixes.
  - Python support: Parrot runs 4/7 of the pie-thon test suite
  - Better OS support: more platforms, compiler, OS functions
  - Improved PIR syntax for method calls and <op>= assignment
  - Dynamic loading reworked including a "make install" target
  - MMD - multi method dispatch for binary vtable methods
  - Library improvement and cleanup
  - BigInt, Complex, *Array, Slice, Enumerate, None PMC classes
  - IA64 and hppa JIT support
  - Tons of fixes, improvements, new tests, and documentation updates.
 A lot is unfinished and keeps changing. Nethertheless Parrot is stable
 and usable at the surface, while internals are moving.
 
 New in 0.1.0
  - "Ladies and gentlemen, I give you... objects!"
  - Huge documentation overhaul
  - More supported platforms, s. PLATFORMS
  - Basic thread support for pthread based architectures
  - Basic event handling for timers and signals including:
  - PASM callbacks for NCI (native C) functions.
  - Improved platform configuration
  - COW stacks now working, stacks code redone
  - Structure handling vastly improved
  - Random PMC and rand primitives
  - Better subroutine call syntax in PIR
  - Make PIR subroutines compliant with pdd03
  - Improved profiling (DOD, GC timings)
  - Hash code improvements, incl. random key order support
  - Experimental freeze/thaw code for some PMC types
  - IO improvements for buffered layer and Win32
  - String iterators
  - String bitwise vtables
  - Many new opcodes
  - Support for JIT, where malloced memory isn't executable
  - Priority DOD scheme for objects that need timely destruction
  - Improved byte code loading (e.g. onLoad functions)
  - Language updates: forth, Perl6/P6C, m4
  - Libraries: Getopt_Long, SDL, Dumper, Sort
  - new JAPH examples
  - Unified imcc and parrot test handling
  - Many new tests (make test reports 1386 tests)
  - Numerous bug fixes
 
 New in 0.0.13
  - The Big Move: Parrot source and build files rearranged into sub dirs
  - Build imcc as parrot
  - Objects more finished
  - Delegate vtable methods to byte code
  - Binary multi-method dispatching
  - Isa and does methods for PMCs
  - Call byte code from C
  - Start of extension interface
  - Experimental struct handling
  - Catch access to NULL PMCs
  - Experimental network socket interface code and opcodes
  - IO fixes and improvements
  - Dynamic opcode libraries
  - Fix-assigned opcode numbers
  - Argument flattening for function calls
  - More native call interface (NCI) signatures
  - Ncurses, postgres, and pcre interface libraries
  - Forth language is vastly improved
  - BSD and Win32 build improvements
  - Many new tests and fixes
 
 New in 0.0.12
  - This number intentionally left blank
 
 New in 0.0.11
  - Executable output
  - Dynamic PMC registration
  - Trial exception system
  - Beginnings of object system
  - Iterators
  - Ordered hashes
  - I/O system improvements
  - References
  - Documentation for basic PMC types
  - IMCC support of Parrot Calling Conventions
  - Runtime loading of chartypes (and other string improvements)
  - Conditional breakpoints
  - Dramatically accelerated sweeps for finalizable objects
  - Small PMCs (PMCs split into core and extensions)
  - Loadable bytecode packfiles
  - Constant PMCs
  - Sub variants that deal with the stack correctly
  - Switched runops core
  - Line numbers in warnings
  - Environment access
  - Many documentation cleanups
  - Conversion to CPS style!
  - BASIC debugger and many other wacky features
  - Filename, line number parsing support in IMCC
 
 New in 0.0.10
  - IMCC integration
  - eval
  - some more benchmarking
  - cgp core
  - optimized math ops
  - intersegment branches
  - more complete use of PObjs
  - beefed up packfiles
  - sub/continuation/coroutine fixes
  - better NCI (native calling interface)
  - many imcc improvements
  - jako improvements
 
 New in 0.0.9
 
 - Native function calling interface (Dan)
 - Stack/list aggregate rewrite (Leo)
 - Scratchpads (Jonathan Sillito)
 - Preliminary DotGNU support -- type conversion ops (Gopal V + Leo)
 - Buffer/PMC unification (Leo)
 - stabs debugging support for JIT (Leo)
 - Jako overhaul (Gregor)
 - Optional Lea allocator (Leo)
 - Parrot sprintf (Brent)
 - Miniparrot (Josh)
 - PMC Properties (Dan)
 - Various JIT improvements (D. Grunblatt + Leo)
 - Extensible packfiles (Juergen)
 - Restructured PMC hierarchy (Leo)
 - Real Scheme (Juergen)
 
 New in 0.0.8
 
 - Several new grammars and a BNF -> perl5 and perl6 converter (Jeff)
 - Working Perl6 REs (Sean)
 - Keyed Access (Tom Hughes et al)
 - New PMCs (Alberto et al)
 - Better Documentation
 - New COW semantics
 - GC acceleration (Mike Lambert)
 - Lexical scope (Jonathan Sillito)
 - IMCC patches
 - JIT for the ARM
 
 New in 0.0.7
 
 - Perl 6 Grammar and Compiler (Sean)
 - Subroutines, coroutines, and continuations (Melvin)
 - GC improvements (Peter Gibbs, Mike Lambert)
 - Global variables (Melvin)
 - Intermediate bytecode compiler (Melvin, Angel)
 - And much, much more.
 
 New in 0.0.6
 
 - New assembler that support keyed types (Jeff)
 - New macro layer, allowing constants (Jeff)
 - New Configure.pl (Brent)
 - Changes to bytecode format, endian issues resolved (Melvin)
 - GC improvements and bug fixes (Peter Gibbs, Mike Lambert)
 - JIT compiler rewrite (Jason and Daniel)
 - Parrot assembler in Parrot (Daniel)
 - Parrot debugger (Daniel)
 - BASIC polished, Eliza.bas is new (Clint)
 - Cola compiler committed and working, with limited OOP (Melvin)
 - Keyed aggregates (Steve Fink)
 - Global ops (Melvin)
 - Compile-time speedup (Melvin)
 - Much documentation
 - New PDDs (Dan)
 - Contributed tetris and lzw files
 - And many more, from the cast of thousands
 
 New in 0.0.5
 
 - Full GC
 - Perl Scalar support in PMCs
 - Array and Hash types almost ready for prime-time
 - Internal support for keyed types
 - EMACS editing mode
 - New PDDs
 - New Language - BASIC
 - Regular expression compiler
 - More tests
 - Many, many bug fixes, enhancements, and speedups
 
 New in 0.0.4
 
 - Arena-based memory allocation system
 - Copying GC
 - New IO subsystem
 - "Predereferencing" mode - ./parrot -P - 22% speedup
 - JIT compiler - ./parrot -j
 - Parrot now builds warnings-clean on many platforms
 - Many more PMC methods implemented
 - Regular expression operations
 - Added a FAQ
 - Basic support for embedding Parrot in other programs
 - Warnings support
 - Added PDDs to distribution
 - Bignum library
 
 - PMC inheritance
 - Added an assembly optimizer
 - Improved string encoding/type support
 - Many more tests
 - Source reformatting
 - Major refactoring in packfile library
 - More Miniperl functionality
 - New PMC "clone" operator
 - Beginnings of key-based access to PMCs - arrays and hashes
 - MOPS comparisons in examples/mops/
 
 New in 0.0.3
 
 - PMCs!
 - Perl base scalar types implemented
 - A new minilanguage, Scheme
 - Much improved documentation
 - Register stacks pushing and popping
 - User stack pushing, popping and rotating
 - Jako updates: subroutines, more example programs, optimizations
 - test_prog renamed to 'parrot'
 
 - Added features to the assembler: @ for current location, and global
   labels
 - Build tweaks for VMS
 - Bytecode typing clean-ups
 - More platforms: OS X, HPUX, OS/2
 - The proliferation of runops cores reduced to one fast and one slow one
 - Opcode tracing, bounds checking, profiling
 - Vastly improved string support, with separation of encoding and
   charset
 - Lots more tests
 - Multiple interpreter creation support - the beginnings of threading
 - Much better resource handling - the beginnings of GC
 
 New in 0.0.2
 
 - Parrot now works on all core platforms
 - A large number of tests, in the standard Perl testing framework
 - A new minilanguage (Jako) which compiles to Parrot assembly
 - Documentation about the assembly language (docs/parrot_assembly.pod)
 
 - Separate modules for assembly (Parrot::Assemble) and bytecode
   manipulation (Parrot::PackFile::*, packfile.c)
 - Assembler completely rewritten
 - Better operand-type guessing in the assembler
 - Assembler support for '\n' etc. in string constants
 - Code reformatted to match the coding standards
 - New ops for register-constant INTEGER comparisons
 - Macro expansion in the assembler
 - IVs and NVs renamed to more friendly INTVAL and NUMVAL
 - Hard-coded pack("") formats removed
 - Better handling of floating-point numbers in assembler
 - Moved floats to constant table (fixing many alignment issues)
 
 
 To generate a diff of this commit:
 cvs rdiff -r1.2 -r1.3 pkgsrc/lang/parrot/DESCR pkgsrc/lang/parrot/distinfo
 cvs rdiff -r1.7 -r1.8 pkgsrc/lang/parrot/Makefile
 cvs rdiff -r1.1 -r1.2 pkgsrc/lang/parrot/PLIST
 cvs rdiff -r0 -r1.1 pkgsrc/lang/parrot/buildlink3.mk
 cvs rdiff -r0 -r1.1 pkgsrc/lang/parrot/patches/patch-aa \
     pkgsrc/lang/parrot/patches/patch-ab pkgsrc/lang/parrot/patches/patch-ac \
     pkgsrc/lang/parrot/patches/patch-ad
 
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.