2013-07-16    release 5.6.0
    - Core
    - Build
    - Documentation
    - Tests
    - Community

2013-06-18    release 5.5.0
    - Build
        + Configure options are now allowed to be quoted.
        + Fixed build on Win32.
        + Updated location of NQP on Win32.
        + Fixed Parrot::Distribution detection.
    - Documentation
        + Noted that RESPONSIBLE_PARTIES is mostly out of date.
    - Tests
        + Stopped testing native PBC on 64bit LE, due to lack of access to
          such machine.
    - Release
        + Added tool: make_upload_commands.pl
    - Community
        + Parrot has been awarded 3 student slots in Google Summer of Code 2013!
          This means that 3 lucky students will be on a paid internship from
          Google to work on these accepted proposals:
          = Saurabh Kumar - "Update parrot-libgit2 to latest libgit2 release"
              https://gist.github.com/sa1/5468408
              http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/saurabh_kgp/11002
          = Paweł Murias - "A Javascript backend for Rakudo"
            http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/pmurias/9002
          = Denis Boyun  - "Improve Web UI of App::Parrot::Create"
              https://gist.github.com/denisboyun/5472762
              https://google-melange.appspot.com/gsoc/proposal/review/google/gsoc2013/chob_rock/9001
        + YAPC::NA::2013 hosted 4 days of Hackathon, focusing on the next
          generation of Perl implementations.
          = Huge Success!
        + MoarVM was unveiled:
            https://github.com/MoarVM
        + P2 on Potion was debuted:
            http://perl11.org/p2/

2013-05-21    release 5.4.0
    - Core
        + Implemented the coth() and acot() math functions.
        + Fixed chomp to only trim a newline when it ends the string. [GH #958]
        + Added readlink() and Parrot_file_readlink(), with tests. [GH #967]
    - Build
        + Parrot now detects the CPU model on Linux systems, as well as
          detecting more CPU models on BSD, Cygwin, Solaris, Win32, and Darwin.
          ARM v7 is also now recognized. [GH #962]
    - Documentation
        + Threads examples now have proper POD sections and useful descriptions
          with links to references.
        + Added main description for Task PMC.
        + Added descriptions to trig methods in Float PMC.
    - Tests
        + Added improved test coverage targets "cover_new" and "fullcover_new".
        + Improved tests for acot(), coth(), acot() math functions.
        + Added tests for options passed to debugger.
        + Updated native PBC test files for string, number, and integer,
          which resolved 11 TODOs in the test suite. [GH #959]
        + Fixed test for the auto/arch config step.
    - Release process
        + Added message digests to crow.pir.
        + Added in release.json: "release.type" can be "devel" or "supported".
        + Refactored common code to sub in auto_release.pl.
    - Community
        + Parrot is part of the Hackathon at YAPC::NA::2013, in Austin, TX, USA!
            http://www.yapcna.org/yn2013/wiki?node=Hackathons
        + Parrot has been accepted to Google Summer of Code 2013!
        + Currently there are two high-quality proposals being worked on:
            https://gist.github.com/sa1/5468408        - parrot-libgit2
            https://gist.github.com/denisboyun/5472762 - App::Parrot::Create

2013-04-16    release 5.3.0
    - Build
        + Files generated by `make cover` are now correctly cleaned by `make`
          and ignored by `git`.
    - Tests
        + Internal testing of the Configure probe for Fink now works correctly
          with the --verbose flag.
        + Tests added for .sort method of ResizableFloatArray and
          ResizableIntegerArray. [GH #926], [GH #927]
        + Benchmarks added for .sort methods of various Array objects.
          [GH #175]
        + Coverage analysis added for pbc_disassemble.

2013-03-19    release 5.2.0
    - Core
        + IO now only syncs buffers for the IO types where syncing makes sense.
            = PIO_VF_SYNC_IO flag added
    - Build
        + installable_pdump now has the correct rpath (blib corrected to lib).
    - Libraries
        + Tcl/Glob.pir has been removed. (PGE/Glob.pir remains intact)
    - Ecosystem
        + All Parrot tarballs are now symlinked to the 'all' directory,
          regardless of their true homes ('devel' or 'stable'), to better
          allow for automated downloads.
            ftp://ftp.parrot.org/pub/parrot/releases/all/

2013-02-19    release 5.1.0
    - Core
        + The .sort() method was added to the FixedFloatArray PMC
        + Improved detection of system memory for machines with >2GB
        + Improved pbc_to_exe support for spacey paths
        + Fixed Parrot_io_readall_s allocating too much string space
    - Build
        + Fixed generated MANIFEST files to omit $destdir
    - Documentation
    - Tests
        + .readall now checks that prior reads are respected.
    - Community
        + Weekly IRC meetings have resumed. #parrotsketch Tuesdays at 1930 UTC

2013-01-22    release 5.0.0
    - Core
        + Remove duplicate library search path entries, move "." from the beginning to
          the end. [GH #368]
        + Install forgotten runtime include files:
          cloneflags.pasm
          packfile_annotation_keytype.pasm
          packfile_segments.pasm
        + Install include/parrot/pbcversion.h with the main package, not devel.
        + Install headers for dynpmc files.
        + Install libraries tgc.pbc, NCI/Utils.pbc, OpenGL/Math.pbc, PCT/Dumper.pbc,
          postgres.pbc, ProfTest.pbc and ProfTest/*pbc, String/Utils.pbc, URI/Escape.pbc,
          YAML/Dumper/Base.pbc, YAML/Dumper/Default.pbc
        + New experimental PARROT_DYNEXT environment variable
        + New experimental dynext_dirs config entry (same as PARROT_DYNEXT and -X)
        + Add OS error messages to FileHandle.open() error messages [GH #911]
    - Build
        + Generate MANIFEST.generated, cleanup MANIFEST,
          removed MANIFEST_configure.generated, add installation of forgotten files
          [GH #890]
        + perl Configure.pl now calls make clean if possible
        + Generate datadir/MANIFEST* for all installed files [GH #899]
        + Improved Configure.pl probes for --with-llvm
        + Replace / slashes with \ on windows for all Makefiles automatically.
          This improves cygwin interaction, like remote or cronjob smoking on windows.
        + Reenabled and fixed debugging line directives in pmc2c, ops2c not yet [GH #641]
    - Tools
        + Improved nci_thunk_gen (v0.02): handle void sig, add declaration
        + Fixed nci examples
    - Documentation
        + Re-added docs/ops, the generated ops summary and docs/packfile-c.pod
        + Improved pdd10_embedding
        + Document FileHandle.open() exceptions and error messages
    - Tests
        + Added t/library/lib_search_path.t

2012-12-18    release 4.11.0
    - Core
        + Parrot now supports fast and lightweight OS threads, based on Nat Tucks's
          initial GSoC work on green threads and then Stefan Seifert's extension
          to true parallel OS threads as hybrid threads.
          See http://wknight8111.blogspot.co.at/2010/08/gsoc-threads-chandons-results.html
          and http://niner.name/Hybrid_Threads_for_the_Parrot_VM.pdf
          Summary: http://perl6advent.wordpress.com/2012/12/11/day-11-parrot-threads/
        + New parrot cmdline option --numthreads
        + Export new dynpmc_class_<ClassName> types [GH #870].
        + Changed core_ops library format and ops2c to contain the PBC_COMPAT only,
          not the parrot version triple. Removed the duplicate PARROT_DYNOP_CORE_INIT
          cpp definition in include/parrot/oplib/core_ops.h, use only
          PARROT_CORE_OPLIB_INIT from config.h
        + Store PBC_MAJOR and PBC_MINOR in the config hash, stored by auto::revision
        + Added getprotobyname method to the Socket PMC
    - Documentation
        + Marked unused API parameters
        + Install man pages for all binaries
    - Languages
        + nqp-rx tests updated from perl6/nqp-rx.git, and enabled to run on make test
    - Platforms
        + More compilation fixes on Windows without working mt.exe or ranlib=rem,
          enable smoking without git binary.
    - Tools
        + Re-enabled pbc_dump -h --header-only
        + Improved pmc2c, added more UNUSED(arg) macros [GH #836]. Parrot is now almost
          -Wunused-parameters safe.
    - Tests
        + failing Pod::Simple pod_todo.t tests are now skipped
        + added nqp-rx tests
        + removed duplicate ext/nqp-rx/t/p6regex tests
        + rewrote and enabled native_pbc tests [GH #394],
          renamed native_pbc testfiles

2012-11-21    release 4.10.0
    - Core
        + Add PMCNULL check to result_info op
        + Fixed record separator bug on io handles
    - Build
        + Add -fpermissive so that nqp builds under gcc 4.7.2
        + Fixed warnings for old ICU 4.4
    - Platforms
        + More VMS fixes, but not yet done
    - Branches
        + The threads branch is ready to be merged, but nqp needs some changes,
          so it will be merged with 4.11.0.
    - Examples
        + Parrot mini-web server fixes

2012-10-16    release 4.9.0
    - Core
        + Keep encoding information in the imcc optimizer, which fixes the
          concat op but probably many more cases with non-ascii encoded
          constant strings. [GH #837]
        + Fixed ByteBuffer set_string_native, which became out of sync with
          two internal buffers. [GH #835]
        + Preload Configure steps when called with perl -d Configure.pl [GH #833]
        + Strip unneeded config keys from installed config hash. Saves 6360
          bytes from every installed executable. [GH #824]
        + Parrot_get_cpu_type returns now "unknown" for all unknown cpu types.
          On non-windows it returned before 4.9.0 a null string. [GH #846]
        + Fixed src/hash.c for platforms where size_t is unsigned (e.g. vms) [GH #854]
    - Build
        + Improved warnings for clang. [GH #843]
        + Cleaned wrong UNUSED(arg) macros in all pmc's due to an improved
          pmc2c compiler, which SHIMs all UNUSED args. [GH #836]
        + Added clang++ support and a new auto::alignof Configure step. [GH #844]
        + Fixed auto::inline for C++ compilers
        + Improved auto::llvm
    - Branches
        + The threads branch is almost ready to be merged. Some remaining races
          have been fixed. There are only some remaining platforms errors on
          darwin/x86.
    - Libraries
        + Fixed Mime::Base64: Split long lines at 76 chars. [GH #826]
          Support multi-byte codepoints. Use binary encoding,
          encoded files are now endian specific [GH #813 + #814],
          Added 2nd optional encoding arg to decode_base64().
    - Documentation
        + Cleaned up removed parrot cmdline options -D/-O/-v from --help output and
          running.pod [GH #838]
    - Tools
        + Improved gdb pretty-printing for multi-byte strings

2012-09-18    release 4.8.0
    - Core
        + Prevent interpreter from dying twice
        + Complete rewrite of the IO system, including new unified IO PMC
          semantics.
        + The Integer and Float PMCs now have a get_pointer vtable which is
          needed when using NCI to bind to Fortran libraries such as LAPACK
    - Deprecations
        + Moved dynpmc/os to pmc os. loadlib 'os' is not needed anymore.
    - Platforms
        + Fixed for the FileHandle open method the append mode on Windows.
        + Fix compilation on Windows without working mt.exe
        + Detect GNU/Hurd as linux proper.
        + Fixed broken int3 trap on Solaris with gcc.
        + Updated the vms port on a YAPC::EU hackathon with vaxman and mvorl.
    - Tests
        + Improve testability with valgrind or thread-sanitizer

2012-08-21    release 4.7.0
    - Core
        + Added .all_tags() and .all_tagged_pmcs() methods to PackfileView PMC
        + Several build and coding standards fixes

2012-07-17    release 4.6.0
    - Core
        + Added init_pmc method to PackFileView.
    - Documentation
        + Added source lines from 'docs/index/book.json' to 'index.json'
          to make display of 'Parrot Developer's Guide: PIR (draft)'
          display more like the other books, e.g., 'PCT Book'.
        + Removed 'docs/index/book.json' as unnecessary.
    - Tests
    - Build
        + Improve on 'sudo make install' permission errors by using
          File::Copy::cp.
    - Community

2012-06-19    release 4.5.0
    - Core
        + Added .write_bytes and .read_bytes methods to FileHandle and Socket
          PMCs.
        + Added Parrot_api_set_stdhandle, Parrot_api_new_call_object and
          Parrot_api_setup_signature functions to the embedding API
        + Removed the "can" VTABLE
    - Languages
      + Winxed snapshot updated to 1.9.1
        - New syntax for parameters in multi
        - New syntax for initalization with new
        - Cast to var improved
    - IMCC
        + Removed .line, .file, setline and setfile directives from IMCC
    - Documentation
        + Fixed up Pod in 240 files to pass 't/codingstd/pod_description.t'.
    - Tests
        + Added 'docs/pdds' and 'docs/pdds/draft' as files for
          'Parrot::Test::Pod.pm' to exclude.
    - Build
        + Reduced number of packages under 'lib/Parrot/Pmc2c/'.
        + Added method-level documentation to several of the remaining packages.
        + Added 'docs/pdds' and 'docs/pdds/draft' as files for
          'Parrot::Test::Pod.pm' to exclude.
    - Community
        + M1, a C-like language that targets M0 had a burst of development
          and now has many working examples such as recursive Fibonacci and
          recursive factorial : https://github.com/parrot/m1
        + Parrot bindings to LAPACK are being worked on as part of Google
          Summer of Code: https://github.com/leto/parrot-lapack


2012-05-15    release 4.4.0
    - Core
        + Most internal calls to libc exit(x) have been replaced with
          Parrot_x_* API calls or PARROT_FORCE_EXIT
    - Documentation
        + 'pdd31_hll.pod' made stable in 'docs/pdds/'.
        + Updated main 'README' to 'README.pod'
        + Updated various dependencies, e.g., 'lib/Parrot/Distribution.pm'.
        + Updated all 'README' files to 'README.pod' files.
        + Added 'README.pod' files to top-level directories.
    - Tests
        + Update various tests to pull from new 'README.pod'
        + Updated 't/tools/install/02-install_files.t' to pull from new
          'README.pod'
    - Community
    - Platforms
    - Tools
        + pbc_merge has been fixed to deduplicate constant strings and
          merge annotations segments

2012-04-17    release 4.3.0
    - 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().

2012-03-20    release 4.2.0
    - API Changes
        + The signature of getprop was changed from (PMC,String,PMC) to
          (PMC, PMC,String) for consistency
    - Core
        + Parrot Calling Conventions (pcc) now reuses Continuation PMCs
          internally, which reduces GC work by 25% and improves
          the fib.pir benchmark by 6%
        + Winxed snapshot updated to 1.6.devel 44a04cfa7b
        + Improved the detection of Clang-ish compilers during configuration
        + Fixed a possible segfault bug when reading packfiles with no
         constants or main_sub
        + By default, Parrot has now elevated these GCC warnings to errors
          during compile time:
            implicit-function-declaration, undef, missing-braces,
            nested externs, old-style-definition, strict-prototypes,
        + The OS Dynamic PMC now has separate functions to unlink a file
          and remove an empty directory (rmdir)
        + Fix building on Cygwin due to an improperly named DLL file
        + Various small bug fixes pointed out by static and dynamic analysis
          tools
    - Branches
        + Work on M0 continues now in the m0 branch, which contains both
          implementations (currently C and Perl) and specification.
        + Good progress has been made on the threads branch which builds
          on the green_threads branch. This gets Parrot much closer to
          being able to utilize multiple CPU cores seemlessly. More details
          at http://niner.name/Hybrid_Threads_for_the_Parrot_VM.pdf
    - Documentation
        + New release manager documentation for parrot.github.com :
            http://git.io/parrot-github-guide
    - Community
        + Parrot was accepted to Google Summer of Code 2012!
          Ideas Page: http://git.io/parrot-gsoc-2012

2012-02-21    release 4.1.0
    - Core
        + Shared libraries and installable binaries are now stripped if
          built with --optimize on Cygwin, which greatly reduces their
          size on disk
        + New experimental PCC-related ops added to core.
    - Documentation
        + Revised 'docs/project/release_manager_guide.pod'
    - Tests
        + Parrot now uses Travis CI http://travis-ci.org
        + Parrot Continuous Integration (CI) with Travis CI means
          every commit of Parrot is now compiled and tested on gcc,
          g++ and clang with various Configure.pl options.
        + CI Notifications are sent to parrot-dev, the #parrot
          IRC channel and Smolder
        + Cardinal and Rakudo spec tests also on Travis CI

2012-01-17    release 4.0.0
    - Core
        + Several cleanups to the interp subsystem API
        + Cleanups and documentation additions for green threads and timers
        + Iterator PMC and family now implement the "iterator" role
        + A bug in Parrot_ext_try was fixed where it was not popping a context correctly
    - Documentation
        + Docs for all versions of Parrot ever released are now available
          at http://parrot.github.com
    - Tests
        + Timer PMC tests were converted from PASM to PIR

2011-12-20    release 3.11.0
    - Core
        + packfile api and pbc handling improvements
        + smarter recursion tracking across threads
        + new "pop_upto_eh" op for finer-grained exception handling
        + subroutine-level profiling runcore cleanups
        + improved window support
    - Languages
        + new math builtins in winxed (abs, sinh, cosh and tanh)
        + better inline support in winxed
        + squaak improvements (sub as expression, new read() builtin)
    - Documentation
        + many new man pages thanks to gci students
    - Tests
        + updated example code for FileHandle and Iterator
        + coding standards fixes

2011-11-15    release 3.10.0
    - Core
        + The mark VTABLE was added to the Select PMC
        + The Parrot::Embed Perl 5 module was removed from parrot.git and now lives
            at https://github.com/parrot/parrot-embed
        + A set_random method was added to the Integer PMC, so random numbers can
            be generated without needing to load math dynops
        + A new implementation of green threads was added to Parrot, in preparation
        for a robust hybrid threading system. Green threads are currently
        not available on Windows.
    - Languages
        + Winxed
          - 'multi' modifier improved
          - throw "string" now emits throw instead of die
          - several optimizations in generated code
          - improved some error dianostics
    - Community
        + Parrot Foundation was accepted to Google Code-In 2011. We could always use more volunteers.
          Task ideas are on the wiki:
             https://github.com/parrot/parrot/wiki/Google-Code-In-Task-Ideas
    - Documentation
    - Tests
        + Added tests for recently-fixed bugs using return :flat and ResizableStringArrays.

2011-10-18    release 3.9.0
    - Core
        + The whiteknight/kill_threads branch was merged, which removes the old and broken
        thread/concurrency implementation. Better and more flexible concurrency primitives
        are currently being worked on. This also involved removing some of the last vestiges
        of assembly code from Parrot as well as removing the share and share_ro vtables.
        + random_lib.pir was removed, since better alternatives already exist
        + The freeze and thaw vtables were removed from Default PMC, because they weren't
          useful and caused hard-to-find bugs.
        + A new subroutine profiling runcore was added. It can be enabled with the command-line
        argument of -R subprof . The resulting data can be analyzed with kcachegrind.
        + Added get_string VTABLE to FixedIntegerArray and FixedFloatArray PMCs
        + The update() method was added to the Hash PMC, which updates one Hash with the contents
          of another. This speeds up rakudo/nqp startup time.
    - Languages
        + Winxed
          - Updated snapshot to version 1.3.0
          - Added the builtin sleep
          - Modifier 'multi' allows some more multi functionality
    - Community
        + New repo for the Parrot Alternate Compiler Toolkit, a re-implementation of
          PCT in Winxed: https://github.com/parrot/PACT
    - Documentation
        + We are in the process to migrating our Trac wiki at http://trac.parrot.org/ to Github
          at https://github.com/parrot/parrot/wiki
        + Packfile PMC documentation was updated
    - Tests
        + Select PMC tests improved to pass on non-Linuxy platforms

2011-09-20    release 3.8.0
    - Core
      + New tools/release/auto_release.pl script automates most of release
    - Languages
      + Winxed
        - Updated snapshot to version 1.2.0
        - allowtailcall modifier in try
        --debug command-line option, __DEBUG__ predefined constant
        and __ASSERT__ builtin
        - namespace, class, and ~ (bitwise not) operators
        - Implicit nested namespace in namespace and class declarations
        - -X command-line arg
    - Documentation
      + Improved release manager guide
    - Tests
      + New Makefile target "resubmit_smolder" to resubmit test results
      + New Makefile target "all_hll_test" runs the test suite of all HLLs
        and libraries known to work on Parrot
      + New Makefile target "interop_tests" run language interoperability tests,
        which runs as part of the normal "make test" as well

2011-08-16    release 3.7.0
    - Core
      + Added mem_sys_strndup function.
      + Added new load_bytecode_p_s opcode as an eventual replacement for load_bytecode_s
      + Added new :tag() syntax to IMCC for PIR
      + Improved configuration support for msys
      + known-buggy parrot_debugger is no longer installed
    - Languages
      + Winxed
        - Updated snapshot to version 1.1.0
        - multi functions and methods
        - cast to var
        - load_packfile builtin
        - __NAMESPACE__ and __CLASS__ predefined constants
    - Documentation
        + The Archive::Tar and Archive::Zip libraries now have POD docs
    - Tests

2011-07-19    Release 3.6.0
    - Core
      + Class.add_vtable_override now allows you to overwrite an override
      + Integers, floats and strings can now be stored in lexical variables.
        Previously, only PMCs could be stored in lexicals.
      + VTABLE_substr has been removed. VTABLE_substr_str has been renamed to
        VTABLE_substr
      + Added a new PackfileView PMC type, an intended replacement for the deprecated
        Eval PMC.
      + The is_integer vtable on the String PMC now works for all string encodings.
      + Unicode error messages on Win32 now work correctly.
      + A memory leak in IMCC was fixed.
    - Languages
      + The snaphost of Winxed included with Parrot was updated to version 1.0.0
      + Winxed has migrated to Github: https://github.com/NotFound/winxed

2011-06-21    Release 3.5.0
    - Core
      + Parrot_PMC_destroy, Parrot_PMC_mark and Parrot_PMC_invoke were removed from
        the public extension API.
      + PAST now has PAST::Stmt node types, supports reusable temporary registers.
      + Test coverage of the embedding and extending interface is now at least 95%.
      + A snapshot of Winxed is now included in Parrot core to facilitate writing
        core Parrot tools from a higher level language than PIR.
    - Languages
      + Winxed
        - Improved compile time scope search.
        - Added 'using namespace' statement.
        - Compiler classes and functions now live in the Winxed;Compiler namespace.
    - Tests
      + The Parrot test suite harness now understands the HARNESS_TIMER environment
        variable. Setting it to a true value will show timing results for a test run.
      + IPv6 tests are now parallel testing friendly.

2011-05-17    Release 3.4.0
    - Core
      + The Generational Mark and Sweep garbage collector is the new default.
      + The --gc-nursery-size command line argument was added.
      + Parrot now gets entropy from the underlying OS.
      + The NCI subsystem now supports 8, 16, 32 and 64 bit integers.
      + The NCI subsystem now supports "long long" and "long double" signatures.
        Not all platforms/compilers support these non-standard types, so developers
        are cautioned to take note that using them reduces portability.
      + Many more OpenGL functions in the Parrot OpenGL bindings are available,
        which required the above-mentioned signatures.
      + Bytecode-related embedding api functions moved to src/embed/bytecode.c.
    - Languages
      + Winxed
        - Use 'using extern' for module imports.
        - Improved stage 0 prefix ++ and -- operators.
        - Allow 'null' in conditional operator.
        - Several examples are updated.
    - Community
      + Google Summer of Code Bonding period is going well. Students are mostly done
        with their classes and much code will flow soon.
    - Documentation
      + More PCT introductions are available at: http://github.com/benabik/cish

2011-04-19    Release 3.3.0
    - Core
      + The isa and isa_pmc vtables can now be overridden from PIR
      + IMCC has a new improved external interface
      + A new IMCCompiler PMC adds prototype PDD31-alike functionality for the PIR and PASM compilers
      + New --with-llvm option to Configure.pl, which will link to LLVM if it is available
    - Community
      + Parrot Virtual Machine was accepted into Google Summer of Code 2011
    - Ecosystem
      + Rosella adds a stable "Event" library to implement a publish/subscribe mechanism
    - Tests
      + The test coverage of the extend_vtable subsystem was greatly increased

2011-03-15    Release 3.2.0
    - Core
      + Full support for Unicode filenames on Linux and Win32
      + The configuration option --cxx is gone
      + New Generational GC implemented. To enable it run Configure.pl --gc=gms
      + Now op definitions are semantically parsed. It opens possibilities for
        future optimizations of parrot core.
      + A statement convert the '.param' PIR systax
      + A PMC is implemented for low-level buffer access which separate the
        representation from the pointers
      + Support added for 'long double', 'long long', and 64-bit to StructView
      + In math.h are tools available for Inf/NaN
      + Signature PMCs are used pervasively
    - Languages
      + A few tests in Cardinal are fixed
      + A binary .dmg is created of Rakudo Star for OS X
      + Winxed
        - Minor fixes, refactors and cleaning
        - New predefs replace, push and provide a way to access multiple return
          values
        - Operators exits, class and .* (indirect method call) added
        - $loadlib directive
        - -o option to installable driver added
        - Indent generated PIR is added to improve clarity and avoid imcc pitfalls
          with non indented sub bodys
    - Community
      + M0 roadmap is in progress
    - Documentation
      + 'make docs' target, which was serving only to generate superfluous POD
        files, has been removed.
      + Svn remnants from PDDs are removed
    - Tests
      + Added 'make release_check' target so that Release Manager can double-check
        tarball
      + Probes added for 'long long' and 64-bit C types
    - Rosella (https://github.com/Whiteknight/Rosella)
      Rosella is a collection of tools and building blocks for Parrot
      + A working proxy library is created, that make mostly-transparent custom
        proxies for many types of Parrot PMCs
      + A mockobject testing library is created, using the new proxy library
      + The PLA test suite is updated to use the new Rosella testing tools,
        including the new mockobjects to test callbacks

2011-02-15    Release 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 construct 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-winners.html
    - 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

2011-01-18    Release 3.0.0
    - Core
      + A new embedding API is available in "parrot/api.h" and documented in
        docs/pdd/pdd10_embedding.pod .
      + Packfile PMCs were refactored and can now be used to produce runnable bytecode.
      + Packfile manipulation code now throws embedder-friendly exceptions rather
        than printing error details directly to stderr.
      + Unicode support for file IO, environment variables, program names, and
        command-line parameters was improved.
      + An experimental gdb pretty-printers in tools/dev for Parrot STRINGs and
        PMCs is now available.  (gdb 7.2 or later and Python are required)
      + c2str.pl and pmc2c.pl improvements result in a noticably faster build.
      + Bugs in our Digest::sha256 library and bit-related dynamic ops were fixed
        by GCI student Nolan Lum. Both now work correctly on 32 and 64 bit systems.
    - Languages
      + Ωη;)XD - OMeta for Winxed https://github.com/plobsing/ohm-eta-wink-kzd
    - Community
      + tree-optimization by GSoC student Tyler L. Curtis joined the nest and now
        lives at http://github.com/parrot/tree-optimization .
      + Plumage now lives at http://github.com/parrot/plumage and is installable.
      + Christmas proceeded as scheduled.  The Parrot team does not take credit for
        this event.
    - Documentation
      + HTML documentation generation has been rewritten and greatly simplified.
      + We have improved documentation in docs/project/git_workflow.pod about
        keeping a fork of parrot.git in sync.
      + Translations of our README in various languages are now in the
        docs/translation directory, thanks to Google Code-In students.
    - Tests
      + A better way to write "todo" tests with Parrot's Test::More was implemented
        by GCI student Fernando Brito.
      + Major increases in test coverage of many core PMCs, dynamic PMCs and
        dynamic opcodes resulted from GCI and the interpid students it attracted.
      + Jonathan "Duke" Leto set up Debian Linux x86_64 and sparc32 smokers
        in the GCC Compile Farm, which continually submit smoke reports with
        a variety of configuration options and compilers.  Thanks, GCC!
      + Makefile dependency checking is now automatically tested, resulting in a
        more reliable parallel build.
      + Coverage tests were improved for platforms with and without Devel::Cover.

2010-12-21    Release 2.11.0
    - Core
     + Just In Time native call frame generation using LibFFI
     + PIR op find_codepoint is no longer experimental, it is now supported
     + Several public functions in libparrot have been brought up to standard
       naming conventions.
     + Improved linked-list implementation in GC
     + set_addr opcode is being replaced with the new set_label opcode in core libraries
     + Removed deprecated CodeString PMC
     + Added close, is_closed, read, readline methods to Socket
     + Added experimental MappedByteArray PMC type
     + Added Parrot_warn_experimental, to warn the user about experimental features
     + Code for frontend executables moved from src/ to frontend/
     + Support for chunked receive in LWP library.
     + Added a "quickcover" make target
    - Languages
     + PIRC
       - left the nest and is currently at https://github.com/parrot/pirc/
     + Community
       - Our README was translated into the following languages
        by Google Code-In students and mentors:
            Polish      README.polski
            Spanish     README.espanol
            German      README.deutsch
    - Documentation
    - Tests
     + Test coverage increase on PMCs: String, Integer, NameSpace, Complex, EventHandler
     + 'make quickcover' target added to speed up most essential
        parts of coverage analysis
     + 'tools/dev/headerizer.pl' refactored to improve maintainability
        (no change in functionality)

2010-11-16    Release 2.10.0
    - Core
     + We are on github now! https://github.com/parrot/parrot
     + Configure, build and test subsystems were made Git-aware
     + New parrot_config key 'osvers' which contains
       Operating System Version information
     + Updated to the latest nqp-rx
     + A proper exception is now thrown on IO read errors
     + Garbage Collector optimizations and memory leak fixes
     + Deprecated charset ops were removed
     + Configure system learned to detect IPv6
     + The mk_language_shell and create_language scripts have not yet been
       ported to Git.
    - Documentation
     + How To Use Git to work on Parrot
        https://github.com/parrot/parrot/blob/master/docs/project/git_workflow.pod
     + Git Terminology
        https://github.com/parrot/parrot/blob/master/docs/project/git_terminology.pod
    - Platforms
    - Testing
     + Increased coverage on: String, FixedBooleanArray, PMCProxy, LexPad
    - Community
     + Macports portfile updated to 2.6.0
     + A Fedora package for PL/Parrot ( postgresql-plparrot ) was created
       This package allows you to write stored procedures for PostgreSQL in
       PIR or Rakudo Perl 6     http://pl.parrot.org
     + Parrot Foundation is teaming up with The Perl Foundation and taking
       part in Google Code-In 2010. Learn about it and how to get involved here:

       http://trac.parrot.org/parrot/wiki/GoogleCodeIn2010Tasks

       http://leto.net/perl/2010/11/parrot-foundation-the-perl-foundation-google-code-in.html

2010-10-19    Release 2.9.1
     - This is a bugfix release.  If you run out of memory on a box with < 512 MB physical RAM, please report it to us.

2010-10-19    Release 2.9.0
    - Core
      + Parrot and Rakudo's build and tests can now be run under the profiling runcore
      + IPv6 is now detected, laying the groundwork for future networking improvements
      + mk_language_shell.pl and create_language.pl no longer require an installed parrot
      + String PMC's 'reverse' method is now faster and supports all encodings
      + improvements and simplifications in internal string processing
      + Added API for adding STRINGs to the gc root set
      + Speed up ord, substr, index and string comparison opcodes
    - Testing
      + "make smoke" supports parallel testing by honoring TEST_JOBS
      + Added tests for Socket PMC, StringBuilder PMC, ByteBuffer PMC,
        mk_language_shell.pl, create_language.pl
      + Fixed "Configure.pl" about missing tests
      + Parrot and Rakudo Perl 6 now have access to the GCC Compile Farm
      + Testing on Darwin/PPC
    - Git Migration
      + Most developer tools have been ported to Git
      + Majority of developer docs have been written for Git
    - Platforms
      + Parrot can now be built on Minix

2010-09-21    Release 2.8.0
    - Core
      + Inlined hashing and comparison functions
      + Hash memory allocation moved from system malloc to lazy allocated
      + Avoided infinite catching of exceptions while dying from exception
      + Some svn fixes
      + Added a check for duplicate vtable entries in PMCs
      + Building Parrot with Perl 5.12 and gcc-4.5 / g++-4.5
      + Eliminated cruft left over after dynops_mapping
      + Improved charset and string encoding
      + Better organisation of programs by reposition it to "tools/build" and "tools/release"
      + Implemented Exception clone vtable function
      + Added experimental function Parrot_getpid and getpid method
      + --gc-threshold command line argument added, which controls the % of memory wasted by the GC
      + Closed a lot of tickets
    - Testing
      + Added more core pmc tests
      + Rearranged some tests with C coverage
      + We now have Smolder back, at http://smolder.parrot.org . Submit reports with "make smoke"
      + skip_all implementation in Parrot's Test::More completed
    - GitMigration
      + Set up a test site for github trac plugin at http://mksig.org/trac/
      + Code of Trac plugin at github is on http://github.com/cotto/github-trac
      + Parrot is now mirrored on github at http://github.com/parrot/parrot
    - Compilers
      + Fixed problem with imcc HLL in load_bytecode difference between loading a pbc and compiling a pir

2010-08-17    Release 2.7.0
    - Core
      + cleanups in packfile and freeze/thaw handling
      + Hash optimizations that improve HLL startup and run time
      + As always, many bug fixes and other optimizations
    - Runtime
      + some runtime library cleanups
    - Testing
      + added more tests to improve coverage
      + new codingstd test for documentation in .pmc files
    - Documentation
      + added documentation to .pmc files (some still missing but headers in place)
      + general documentation improvements and bringing up-to-date
    - NQP-rx
      + Updated version included from http://github.com/perl6/nqp-rx includes
        speed improvements

2010-07-20    Release 2.6.0
    - Core
      + Plug some memory leaks
      + As always, bug fixes and some optimizations
    - Runtime
      + added (experimental) URI::Escape
    - Testing
      + Improved test coverage of core parrot
    - Documentation
      + Updated the Squaak tutorial to use modern NQP-rx and PCT
    - Platforms
      + The Fedora package 'parrot-devel' install the files for syntax-highlighting
        and automatic indenting for the vim editor
    - NQP-rx
      + Updated version included from http://github.com/perl6/nqp-rx includes
        new or improved: regex backtracking, named assertions, interactive mode,
        and setting (a minimal but useful runtime library)

2010-06-15    Release 2.5.0
    - Core
      + Added ByteBuffer PMC to allow direct byte manipulation
      + Modified some PMC vtable functions to reduce complexity, simplifying coverage.
      + Modified PAST to generate symbolic PASM constants in PIR output.
      + General STRING API cleanups
      + Increased test coverage of core PMCs
      + Fixed up 'exit' opcode, added CONTROL_EXIT exception type.
      + Experimental 'unroll' opcode renamed to 'finalize'
    - NQP-rx
      + Added proper support for multisubs and multimethods
      + Fixed sigspace handling ** quantifier in regexes
      + Added \e strings
      + Added use of inversion lists for charclass lists in regexes
    - Platforms
      + EPEL (Extra Packages for Enterprise Linux) packages for RHEL6.beta are available
    - Begin moving towards Lorito, the ops refactor to enable pervasive self-hosting and JIT compilation.
      + All ops are now built with the self-hosted opsc compiler.
      + For more Information about Lorito see:
          http://trac.parrot.org/parrot/wiki/Lorito
          http://trac.parrot.org/parrot/wiki/LoritoRoadmap

2010-05-18    Release 2.4.0
    - Core
      + Various long-standing bugs in IMCC were fixed
      + STRINGs are now immutable.
      + use STRINGNULL instead of NULL when working with strings
      + Fixed storage of methods in the NameSpace PMC
      + Added :nsentry flag to force method to be stored in the NameSpace
      + Added StringBuilder and PackfileDebug PMCs
      + Added experimental opcodes find_codepoint and unroll
    - Compilers
      + Fixed reporting of line numbers in IMCC
      + Removed deprecated NQP compiler, replaced with new NQP-RX
      + Removed NCIGen compiler
    - Deprecations
      + Tools to distribute on CPAN were removed
      + Deprecated dynpmcs have been removed to external repositories
      + Removed RetContinuation PMC
      + Removed CGoto, CGP, and Switch runcores
    - Tests
      + Many tests for the extend/embed interface were added
      + done_testing() is now implemented in Test::More
    - Tools
      + The fakexecutable tapir is renamed parrot-prove
      + Performance fixes to the pbc_to_exe tool
      + Fix data_json to work outside of trunk
      + The dynpmc GzipHandle (zlib wrapper) was added
      + The library Archive/Tar.pir was added.
      + The library Archive/Zip.pir was added.
      + The libraries LWP.pir, HTTP/Message.pir & URI.pir were added.
    - Miscellaneous
      + Six Parrot-related projects accepted to GSoC
      + Improve use of const and other compiler hints

2010-04-20    Release 2.3.0
    - 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

2010-03-16    Release 2.2.0
    - Core changes
      + Most internal allocations now use the GC
      + RNG non-randomnes fixes
      + Elimination of much dead code
    - API changes
      + PMCs can now be initialized from an int
      + Many legacy ops are removed
    - Platforms
      + Sun cc and Intel icc support have been restored
      + Compiler invocation no longer goes through a Perl script
    - Tools
      + NCI thunks are now generated by self-hosted PIR code

2010-02-16    Release 2.1.0
    - 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.

2010-01-19    Release 2.0.0
    - Features
      + Context PMCs now support attribute-based introspection
      + Context and CallSignature PMCs merged into CallContext
      + .lex directive throws exceptions when used with incorrect register types
    - Platforms
      + Packaging improved for free OS distributions
      + PPC, PPC64, and ARM now tested when running Linux
    - Performance
      + Minor improvements to the profiling runcore
      + Improvements from the CallContext PMC merge
    - New deprecations
      + In/out parameters in STRING modification functions
      + Void handling in NCI signatures
      + Parameter passing opcodes order in PBC
    - Tests
      + Continued migration of core tests from Perl 5 to PIR
    - Tools
      + dependency checker improved
    - Miscellaneous
      + Deprecation cycle length changed to three months from six
      + GC accuracy improved
      + PMC freeze improvements; much more reliable
      + Makefile improvements for dependency handling

2009-12-15    Release 1.9.0
    - Core
      + Made profiling runcore output format configurable and extensible
        options include "pprof" and "none" ("binary" and "callgrind" are planned)
      + Added environment variables to specify profiling output type and filename
        (PARROT_PROFILING_OUTPUT and PARROT_PROFILING_FILENAME)
      + Began merging Freeze/Thaw and Bytecode generator/loader
    - Compilers
      + Included latest nqp-rx compiler, with many improvements
        - GLOBAL:: package identifier
        - dynamic variables look in global namespace
        - $obj."$method" syntax
        - :p(os) and :c(ontinue) option on regexes
        - try/CATCH/CONTROL handling
        - support leading & on subroutine declarations
        - allow "category:<symbol>" names (for builtin operators)
        - simple version of smartmatch operator
        - simple regex matches
        - updated HLL::Compiler with new import/export methods
    - Miscellaneous
      + Portability updates for RTEMS, and Intel architectures with GNU compilers
      + Completed conversion of ticket tracking system from RT to Trac
      + New draft of PDD31 for HLL export API and import implementation
      + Several (build time, runtime) performance improvements
      + Converted many tests to PIR, reducing test execution time
      + Various bugfixes, code cleanups, and coding standard fixes

2009-11-17    Release 1.8.0
    - Functionality
      + The FileHandle PMC now exposes the exit code of child process that was run as pipe.
      + Experimental support for overriding VTABLE invoke in PIR objects was added.
      + The method 'type' was added to the PackfileAnnotations PMC.
      + The internals of the parrot calling conventions, PCC, were reworked.
        All call paths now use a CallSignature object for passing arguments and return values.
      + The new API-function  'Parrot_ext_call' was added for calling into C-land.
      + The fixed-size allocator was improved.
      + The files installed by 'make install-dev' are now covered by 'make install' as well.
      + The experimental ops 'fetch' and 'vivify' were added.
      + The -I option to the command 'parrot' now prepends items to the search path.
      + The Context struct was substituted with auto attributes (context_auto_attrs branch).
      + Use the osname determined in auto::arch in subsequent configuration steps (convert_OSNAME branch).
      + Eliminated dependence on Perl 5 '%Config' in auto::format (auto_format_no_Config branch).
      + MultiSub PMCs now stringify to the name of their first candidate,
        instead of the number of candidates.
      + The platform detection at the start of the configuration process was improved.
      + The 'lineof' method on CodeString objects now precomputes line number information
        to be more efficient on variable-width encoded strings.
      + P6object now supports .WHO and .WHERE methods on protoobjects.
    - Compilers
      + A shiny new self-hosting implementation of NQP has been added in ext/nqp-rx.
        - New NQP available as nqp-rx.pbc or parrot-nqp fakecutable.
        - NQP includes direct support for grammars and regexes, including protoregexes.
        - NQP has a new PAST-based regex engine (intended to replace PGE).
        - Regexes may contain code assertions, parameters, lexical declarations, and more.
        - Double-quoted strings now interpolate scalar variables and closures.
        - Subroutine declarations are now lexical by default.
      + PCT
        - PAST::Block now supports an 'nsentry' attribute.
        - PAST::Var allows 'contextual' scope.
        - Attribute bindings now return the bound value.
    - Platforms
      + Fixes for the port of Parrot to RTEMS were applied. Yay, first port to a real time OS!
      + On NetBSD, shared libs are now used.
    - Performance
      + Use the the fixed-sized allocator in the Context and the CallSignature PMC.
      + Many small speed improvements.
    - New deprecations
      + MT19937, the Mersenne twisted pseudorandom number generator, is now hosted on github and
        will be removed from the Parrot core. (eligible in 2.1)
      + The 'Parrot_call_*' functions for invoking a sub/method object from C are
        deprecated. They are replaced by 'Parrot_ext_call'. (eligible in 2.1)
      + All bitwise VTABLE functions are deprecated. (eligible in 2.1)
      + All bitwise ops will become dynops. (eligible in 2.1)
    - Realized deprecations
      + The slice VTABLE entry was removed.
      + The last traces of the 'malloc' garbage collector were removed.
      + Parrot_pcc_constants() was renamed to Parrot_pcc_get_constants().
      + The deprecated functions from the Embedding/Extension interface were removed.
      + The library YAML/Parser/Syck.pir was removed.
      + The VTABLE function instantiate_str() was removed.
      + Building of parrot_nqp was removed.
    - Tests
      + The test coverage of the time-related ops was much improved.
      + New testing functions in Test::More: lives_ok() and dies_ok().
      + The Perl 5 based test scripts t/op/bitwise.t, t/op/comp.t, t/op/inf_nan.t,
        t/op/literal.t, t/op/number.t, t/op/sprintf2.t, and t/op/00ff-dos.t were converted to PIR.
      + The test scripts t/op/annotate.t and t/op/time.t have begun
        to be translated from Perl 5 to PIR.
      + In some tests the dependency on %Config from Perl 5 was eliminated.
    - Documentation
      + The meaning of 'p' means in NCI function call signatures was clarified.
    - Tools
      + The stub for a new language, as created by mk_language_shell.pl,
        now relies on the PIR-based tools, which are replacing the Perl 5-based tools.
      + The library Configure.pir was added.
      + The library distutils.pir was added.
    - Miscellaneous
      + The mailing list parrot-users and a corresponding google group was created,
        http://groups.google.com/group/parrot-users.
      + Many bugfixes, code cleanups, and coding standard fixes.

2009-10-20    Release 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 more 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

2009-09-15    Release 1.6.0
    - Functionality
      + Added a fixed-size structure allocator to the Garbage Collector
      + Added a "lazy" mode to the PObj and Fixed-Size memory allocators
      + Added a profiling runcore, which generates Callgrind-compatible output
      + Added lexical subsystem opcodes: find_dynamic_lex, store_dynamic_lex
      + Converted Contexts to garbage-collectable PMC structures
      + Created a new Context API
      + Enhanced the PMC allocator to automatically allocate ATTR structures
    - Performance
      + Optimized opcodes to cache the current Context for subsequent lookups
      + Reduced string comparisons in VTABLE_isa
    - Maintenance and cleanup
      + Began proper encapsulation of STRING API
      + Unified all PMC destruction functions
      + Unified Continuation PMC and Parrot_cont structure
      + Unified Sub PMC and Parrot_sub structure
      + Removed PMC_EXT structure
      + Removed PMC_Sync from PMC
      + Removed UnionVal from PMC structure
    - Bugfix
      + Fixed several stack-walking bugs in Garbage Collector code
      + Fixed bug when copying a NULL STRING, now returns empty STRING struct
    - Tests
      + Converted several Perl5 tests to PIR
      + Expanded test coverage of NameSpace PMC
    - Compilers
      + Made Parrot Compiler Toolkit available in the base install

2009-08-18    Release 1.5.0
    - Core
      + Removed several deprecated functions and features
      + Removed bsr, jsr, branch_cs, and ret opcodes
      + Removed global stacks system
      + Changed OPS file format to include explicit preamble
      + Changed all "new 'Iterator'" instructions into 'iter' instructions
      + Removed Configure.pl options for specifying non-working GC cores
      + Removed unexecuting code as found by Coverity
      + Improvements to the Parrot Debugger
      + Added experimental fixed-size structure allocator to the GC
      + Added experimental lazy arena allocation to the GC
      + Refactored hashes, keys, and iterators
      + Added "corevm" make target to build Parrot without all the supporting libraries
      + Removed Random PMC type and added in a "rand" dynop
      + Optimization and Improvements to the NCI thunk generator
      + New include file libpaths.pasm
    - Compilers
      + Multiple .local with same name and different type is now an error on IMCC.
    - Platforms
      + Improved support for detecting Fink and Macports
      + Updated search directories for libraries
    - Documentation
      + "Parrot Developers Guide: PIR" released to publisher and available to purchase
      + Improved documentation about Parrot Debugger
      + Update PGE Documentation
    - Miscellaneous
      + Deprecate 'PASM1' compiler object, update to warn instead of segfault
      + Added tests
      + Fixes to code, documentation, and standards

2009-07-21    Release 1.4.0
    - Core
      + Key and Iterator refactor
      + Major pbc_to_exe generated code speed improvement
      + New "Infinite Memory" GC core for demonstration purposes
      + gc_debug runcore and GC-related heisenbug fixes
      + Elimination of variable expansion in parrot_config
      + CLI arguments are processed as Unicode by default
      + Substantial optimizations in NCI
      + Parrot builds on Win64
      + Hashes can use native types as keys and values
      + Fixed installed pbc_to_exe
      + Simplification of PMC generation code
      + Improved GC encapsulation and API documentation
    - Documentation
      + List of candidates for embedding API (docs/embed.pod)
      + PIR book sent to publisher
    - Testing
      + Several conversions of Perl test to pure PIR.
      + C indentation coding standards test improvement
      + Improved test coverage of example code
    - Deprecations
      + Removal of PGE rules: <null> <fail> <sp> <lt> <gt> <dot>
      + Removal of PGE methods: .text .item .result_object
      + Deprecation of most dynops
    + Miscellaneous
      + Beginnings of OpenGL::Math library; OpenGL bindings and library marked experimental
      + Localizing and consting fixes
      + Many memory and thread-related leaks plugged

2009-06-16    Release 1.3.0
    - Core
      + Optimized parts of the IO system
      + Fixed inheritance hierarchy of FileHandle and Socket PMC types
      + Fixed leaks involving subroutines and Parrot_Context
      + Cleaned up and refactored GC internals, including fixes and optimizations
      + Optimized PMC class manipulations to use type numbers instead of string names
      + Fixed problems involving hashval calculations in strings
      + Removed unnecessary MULTI dispatches in built-in PMCs
      + Fixed memory leaks involving PMCs that were not properly destroyed
      + Fixed creation of PMCProxy PMCs in correct namespaces
      + Added preliminary Pipe support
      + Fixed cloning of Object PMCs
      + Added root_new opcode
      + Added initial versions of Packfile PMCs with read/write capabilities
    - Compilers
      + Fixed several memory leaks in IMCC
      + Updated PCT to use root_new opcode
      + Added support for keyword "self" in NQP
    - Documentation
      + Improved and expanded /docs/book
      + Updated project documentation
      + Defined 'experimental' status and procedures in DEPRECATED.pod
    - Miscellaneous
      + Cleaned code and improved code-level documentation
      + Various bugfixes, code cleanups, and coding standard fixes
      + Added an experimental compiler library to help use PIR libraries from HLLs
      + Updated OpenGL library and examples to support experimental HLL import

2009-05-19    Release 1.2.0
    - Core
      + Fixes for pir classes inheriting from core pmcs.
      + Cleaned up headers and reorganized some sources into subsystem directories.
      + Clean up PMCs so libparrot.so exports far fewer vtable/method symbols.
      + Clean up the GC API.
      + Several unicode identifier improvements in IMCC.
    - Deprecations
      + Protoobject stringification is gone.
    - Documentation
      + Rewrite several core documents.
      + Many reworks, improvements & additions to the Parrot Book.
      + Installation PDD is launched out of draft.
    - Tools
      + Fixes for running the language shell generator outside the parrot tree.
      + Several fixes for developing and building HLLs from an installed parrot.
      + Configure.pl now has a --no-line-directives option to ease source level debugging.
    - Miscellaneous
      + Portability updates for macports, netbsd, mingw32, hpux.
      + Several (build time, runtime) performance improvements.
      + Lots of updates to examples and tests.
      + Various bugfixes, code cleanups, and coding standard fixes.

2009-04-21    Release 1.1.0
    - Core
      + Added op: load_language, find_caller_lex
      + Socket IO are back as PMC
      + Refactor some PMC: Hash, ManagedStruct
      + Refactor GC API
    - Compiler
      + PGE
        - Allow \x, \c, and \o in enumerated character classes (incl ranges)
        - Add initial greedy-only version of ** <exp> quantifier
      + PCT
        - Add HLL source line bytecode annotations
        - Add another dumper format to assist syntax highlighters
        - Revise mk_language_shell.pl to updated create_language.pl
    - Deprecations
      + Removed ops: gcd, exec, classname, need_finalize, runinterp, substr_r
      + Removed dynamic op: mul
      + Removed .HLL_map directive; use interp's .hll_map() instead
      + Removed PMCs: slice, bound_nci, ref
      + Removed Configure.pl option: --pmc
      + Removed PMC union struct
    - Documentation
      + Book
        - Reorganization and many improvements & additions
    - Tools
      + Add a parrot-fuzzer
    - Miscellaneous
      + Improve Debian/Ubuntu package
      + various bugfixes, code cleanups, and coding standard fixes


2009-03-17    Release 1.0.0
    - Documentation
      + New user documentation for exceptions.
      + Updates to Chapters 4 & 5 of the Parrot book.
      + Improved and expanded generated HTML documentation, as the input for
        http://docs.parrot.org.
      + Added Compiled HTML Help (.chm) version of documentation.
      + Cleanups and fixes.
    - Languages
      + Pynie
        - left the nest and is now at http://pynie.googlecode.com/
      + Cardinal
        - left the nest and is now at http://github.com/cardinal
      + APL
        - left the nest and is now at http://paraplegic.googlecode.com/
      + ABC, Squaak, and Befunge moved to examples/.
      + All remaining languages moved to https://svn.parrot.org/languages/
    - Tools
      + Support for language builds from an installed Parrot.
      + Expanded language shell generator for new languages.
      + 'parrotbug' utility repurposed for the Trac interface.
    - Deprecations
      + Removed deprecated Tqueue and Closure PMCs.
      + String, Key, NCI, LexPad, Iterator, Sub, Continuation, RetContinuation,
        ExceptionHandler, ParrotLibrary, ParrotInterpreter, ParrotThread,
        ParrotRunningThread, Rational, FixedPMCArray, ResizablePMCArray, and
        GDBMHash PMCs now use declared attributes (ATTR), in place of the
        deprecated UnionVal.

2009-02-17    Release 0.9.1
    - Implementation
      + Support for portable 'Inf', 'NaN' and -0.0
      + pbc_disassemble prints constants in constants table
      + New experimental BigNum implementation
      + Pair is now a dynamic loadable PMC
      + Various function name sanification
      + New implementation of Strings component
      + Replace various PMC value union access code by VTABLE method invocations
      + Replace various PMC value unions by ATTRibutes
      + Removed SArray PMC. Use FixedPMCArray instead.
    - Documentation
      + Book
        - updates to Chapter 2 (getting started)
        - updates to Chapter 3 (PIR basics)
        - updates to Chapter 4 (PIR subroutines)
        - updates to Chapter 10 (HLLs)
        - updates to Chapter 12 (opcodes)
      + Function documentation
      + Pod documentation style modernized; no longer Perl 5 style.
      + PMC has an additional acronym: Poly Morphic Container
      + The DOD (Dead Object Detection) acronym is no longer used;
        use 'GC' to refer to the Garbage Collector component.
    - Compilers
      + IMCC
        - :named flag can now take string registers as argument
        - A single '=cut' directive is now ignored (without initial Pod directive)
        - :vtable subs now have proper access to 'self' pseudo variable
    - Languages
      + add new 'Pod' documentation parser
      + Pipp (PHP implementation):
        - Pipp is now at http://github.com/bschmalhofer/pipp
        - support for 'print', 'dirname', 'implode', 'str_replace',
        - various grammar fixes
      + ECMAScript
        + add 'quit', 'readline' builtins
        + fix 'Boolean' type and 'print' builtin
      + Lua
        - left the nest and is now at http://github.com/fperrad/lua/
      + Rakudo
        - left the nest and is now at http://github.com/rakudo/rakudo/
        - build instructions can be found at http://tinyurl.com/rakudo
      + lazy-k
        - left the nest and is now at http://github.com/bschmalhofer/lazy-k.git
      + unlambda
        - left the nest and is now at http://github.com/bschmalhofer/unlambda/
      + WMLScript
        - left the nest and is now at http://github.com/fperrad/wmlscript.git
      + removed Zcode implementation
    - Tools
      + pmc2C
        - ATTRs are now inherited automatically in subclassing PMCs
    - Deprecations
      + Parrot_readbc, Parrot_loadbc renamed to Parrot_pbc_read, Parrot_pbc_load.
      + .HLL_map directive in favour of 'hll_map' method on Parrot interpreter
      + Data::Escape library
    - Tools
      + pbc_disassemble options added
      + pbc_dump renamed from pdump
    - Miscellaneous
      + Parrot is now Copyright Parrot Foundation
      + Parrot's SVN repository is now hosted at https://svn.parrot.org
      + Various code cleanups, consting, 64-bit incompatibilities and other bug fixes

2009-01-20    Release 0.9.0
    - Implementation
      + Implemented bytecode annotations
      + Role composition is now aware of multi-subs
      + Unbuffered IO PMCs now autopromote when buffering is necessary
      + Installation parrot binary and libparrot shared library now supported
      + Class registry now respects HLLs
    - Compilers
      + IMCC
        - removed keyed string indexing, e.g. $S0[1].
        - removed slice syntax, e.g. $P0[1..2]
        - removed .namespace <ident>/.endnamespace <ident> pair
        - fixed 'new $P0, [classname]' syntax
      + PIRC
        - refactoring of various data structures
        - various bug fixes and updates
        - complete bytecode generation
        - add '-x' commandline option to run compiled code
      + PCT
        - add 'hll' and 'subid' attributes to PAST::Block
        - refactor loop handling code to handle last/redo/next
        - add :pasttype('stmts') and :pasttype('null')
        - improve "scope not found" error message
        - allow PAST::Val nodes to contain block references
      + PGE
        - add "skipkey" option to PGE::OPTable
        - allow spaces before modifiers in regexes
        - add '(' ~ ')' goal matching syntax
        - skip creating a class/grammar if it already exists
    - Languages
      + Rakudo
        - improved error mesages in multi dispatch
        - implemented clone method for all objects
        - implemented MAIN sub
        - Unicode versions of infix hyper operators
        - refactored IO.readline
        - basic support for Inf and NaN
        - list and array slices with whatever star
        - hash slices
        - implemented last and redo
        - pointy blocks as terms
        - refactored variable and parameter passing
        - improved assignment semantics
        - improved parsing of type names and subs
        - mostly implemented parametric roles
        - separate types for blocks, subs and methods
        - basic support for submethods
        - implemented Junction autothreading of user code (not builtins yet)
        - eval supports :lang attribute
        - proto makes other subs in scope multis, including in role composition
      + Befunge
        - back to working state
        - ported to pir
      + Pipp
        - add support for predefined constant __CLASS__ and __METHOD__
        - add initial support for static members
        - add support for namespaced constants
        - constants are now handled as package vars
        - variables are now lexical variables
        - add support for superglobals in functions
        - Call the class __constructor when there is one
        - added incomplete support for closures
        - removed support for the alternative parsing strategies
        - added support for 'elsif'
        - added support for 'do-while'
      + HQ9+
        - left the nest and is now at https://github.com/bschmalhofer/hq9plus/
      + Eclectus
        - left the nest and is now at http://github.com/bschmalhofer/eclectus/
      + m4
        - left the nest and is now at http://github.com/bschmalhofer/m4/
      + Lua:
        - add a minimalist user back trace
      + PIR
        - "does" and "morph" VTABLE interfaces are now overridable from PIR
    - Miscellaneous
      + Infrastructure
        - 'make smoke' now generates Smolder reports sent to
          http://smolder.plusthree.com/app/public_projects/smoke_reports/8
      + Improved const and null correctness for C function parameters
      + Sped up STRING manipulation (append, chop), improving PGE about 30%
      + BOOK
        - Added sections about Classes, OO programming, and methods.
        - Added information about Annotations, Exceptions, and Handlers
      + STM
        - Removed non-functional STM subsystem

2008-12-16    Release 0.8.2
    - Implementation
      + fixed lexical semantics
      + added the 'capture_lex' opcode
      + added automatic resume for nonfatal exceptions
      + added multidispatch cache
      + applied miscellaneous performance improvements, including startup time
      + fixed several bugs and leaks found by Coverity Scan
      + removed race conditions from parallel testing
    - Compilers
      + IMCC
        - removed undocumented .param int <stringc> => <ident> syntax
        - .line directive now only takes an integer argument
        - new .file directive to specify the file name being compiled
      + PCT
        - properly handles lexical generation and closure semantics
        - uses :subid instead of name lookups to reference PAST::Block nodes
        - added PAST::Control node type (exception handlers)
      + PGE
        - add support for <?{{...}}> and <!{{...}}> assertions
        - Match objects use Capture PMC instead of Capture_PIR
      + PIRC
        - add macro handling to PASM mode
        - disable vanilla register allocation in PASM mode, but do allow optimization
        - add tests and bug fixes
        - first bits of bytecode generation. No sub calling/returning yet.
    - Languages
      + Rakudo
        - fixed lexical handling and recursion
        - refactored subtypes implementation
        - support for quotes with multi-character delimiters
        - implemented list slices (Positional role)
        - list assignment
        - reduction meta operators
        - hyper meta operators
        - cross meta operators
        - more builtin functions
        - added Nil type
        - basic support for protos
        - iterator on filehandle objects
        - basic support for exception handlers
        - warn
      + Lua
        - added complex & mathx libraries
        - merged LuaClosure & LuaFunction PMC
      + Pipp
        - added support for a return value from user defined functions
        - added incomplete implementation of 'require_once'
      + Ecmascript
        - parser fixes, parses spidermonkey's top level test/shell.js
    - Deprecations
      + PARROT_API is now PARROT_EXPORT
      + PIR
        - :lexid is now :subid
        - .arg is now .set_arg
        - .result is now .get_result
        - .yield (in .begin/end_yield) is now .set_yield
        - .return (in .begin/end_return) is now .set_return
        - .namespace x / .endnamespace x syntax is removed
      + Capture_PIR (runtime/parrot/library/Parrot/Capture_PIR.pir)

2008-11-18    Release 0.8.1
    - Implementation
      + added CPAN module Storable 2.12 as a configuration and build dependency
      + removed the pseudo PIR opcode 'addr'
      + added the 'box' opcode
      + fixed 'pop_eh' handling in PIR libraries and examples
      + removed usage of .return for tailcalls (use .tailcall instead)
      + removed 'get_hash' and 'get_array' from Capture PMC and Capture_PIR
      + improved debugger and HLL coordination
      + allowed MMD primitive autoboxing
      + fixed all known memory leaks in PIR "Hello, world!"
      + NCI signatures now JITted on x86-32 platforms (Windows and Linux)
      + made the .const directive take a quoted type name instead of a constant
      + made IMCC more re-entrant
    - Languages
      + Rakudo
        - refactored Junctions implementation
        - added "fire and forget" tool to rebase/rebuild/test Parrot and Rakudo
        - updated container/reference semantics
        - added more builtin methods and functions
        - improved support for multilevel namespaces
        - added support for .Str, .succ, .pred in user-defined classes
        - implemented pointy blocks on if/loops
        - increased STD.pm convergence
        - added %*VM hash
        - improved MMD candidate sorting
        - improved integration of Num and Int
        - implemented increment on protoobjects
        - added initial support for MAIN subs
        - added .PARROT method
      + Pipp
        - added some predefined constants
        - added implementation of the function basename()
      + Cardinal (Ruby)
        - Added initial support for the classes Proc, Continuation, Queue, Dir, File, and FileStat
        - fixed various minor bugs
        - fixed broken Regexes
    - Compilers
      + PCT
        - added '.isa' method to PCT::Node
        - cleaned up 'immediate block' handling
        - allowed arguments to immediate blocks in loops/conditionals
        - metaclass objects can now 'add_method'
      + PIRC
        - integrated macro processing in PIRC's lexer
        - integrated heredoc lexer in PIRC executable
        - added preprocess and heredoc-preprocess commandline options
        - integrated the PASM grammar into PIRC
        - added a register allocator to optimize the built-in vanilla allocator
        - code cleanups and documentation
        - added 'make test' target
       + TGE
        - updated to work with new namespace/classname syntax
    - Deprecations
      + PARROT_API will become PARROT_EXPORT
      + :lexid will become :subid
    - Miscellaneous
      + Documentation
        - updates and additions to the Parrot book (see docs/book/)
      + OpenGL
        - minor fixes to Parrot's base OpenGL bindings
        - converted OpenGL PIR examples to Perl 6 (two complete, one WIP)
        - added simplified OpenGL PIR example for NCI JIT testing
      + Tests
        - further improvements to parallel tests
        - tests no longer leave filesystem breadcrumbs
        - more thorough testing of Parrot::Test itself

2008-10-21    Release 0.8.0
    - Implementation
      + float precision expanded to 15 significant digits from 6
      + large integers autopromoted in PIR so as not to lose precision
      + improved precision of complex square root
      + exception handlers can register types of exceptions they catch
    - Languages
      + Cardinal (Ruby)
        - implemented gather, take, and yield builtins
        - Range, Time, Math, GC, Kernel classes
        - many more tests
        - added a new committer
      + Markdown : new lightweight markup language
        - start implementation with PCT/NQP
      + partcl (Tcl 8.5.4)
        - Moved to its own repository: http://code.google.com/p/partcl/
      + Rakudo (Perl 6)
        - split() works with regexes
        - implemented Str.comb
        - ord() and chr() builtins
        - improved parsing of literal numbers
        - support for hyphens and dashes in identifiers
        - next() on for-loops
        - fixed floating point constant precision
        - improved namespace handling, closer to STD.pm model
        - support for exporting symbols
    - Compilers
      + P6object
        - now generates classes in nested namespaces instead of :: names
        - supports class creation in caller's HLL namespace
      + PCT / PGE
        - now using true nested namespaces instead of :: names
        - cleaned up HLLCompiler interactive prompts and readline mode
        - updated to use typed exception handler registration
        - added initial support for loop control exceptions
      + PIRC
        - fixed Heredoc preprocessor
        - cleaned up Macro preprocessor
        - many code clean-ups, warning fixes and consting
        - updated Makefile for easier compilation
      + IMCC
        - Added .tailcall syntax to replace .return in tailcall context
    - Examples
      + pirric (BASIC)
        - an old style line numbered Basic interpreter able to use parrot objects
        - example connecting to mysql via nci
        - example using classes to write and run an embedded Basic program
    - Documentation
      + Book
        - Added chapters for PCT, PMCs, and Opcodes/Runcores
        - Expanded and improved formatting in various chapters
        - Renumbered chapters

2008-09-16    Release 0.7.1
    - Implementation
      + add -I and -L command line options
      + support for null strings in NCI calls
      + preliminary support for resumable exceptions
      + add '.hll_map' method for dynamic HLL type mapping
      + more parrot_debugger fixes
      + remove obsolete '.past' extension
    - Languages
      + Rakudo (Perl 6)
        - now over 3300 passing spectests
        - precompiled modules
        - precompiled scripts  (--target=pir can now be executed standalone)
        - Support for @*INC and %*INC varialbes
        - additional builtin methods and subs
        - added 'fail' function, warnings on use of undefined values
        - m/.../ regexes
        - qq, qw, q quoting forms
        - run tests in parallel
        - gather/take
        - Perl6MultiSub
      + Cardinal (Ruby):
        - 'require' and precompiled modules
        - many new tests
        - all Array tests pass
        - regexes
        - default arguments to functions
        - new committer
    - Compilers
      + PCT:
        - add :loadinit attribute for PAST::Block
      + PIRC:
        - major refactoring to allow all PIR keywords as identifiers
        - links to libparrot now, so all Parrot ops are recognized as such
        - implemented .loadlib, .HLL_map, .HLL
    - Miscellaneous
      + add Xlib and Mysql modules and test programs to NCI examples
      + many updates and cleanups to PDD documents

2008-08-19    Release 0.7.0
    - Specification
      + PDD27: add multisub lookup
    - Implementation
      + new concurrency implementation (see PDD25)
      + Exception PMC now captures a return continuation
      + improved PMC encapsulation (Iterator, Key, Pair)
    - Languages
      + Cardinal (Ruby):
        - class variables
        - parsing improvements
        - minor additions to class builtins
        - add support for block parameters to functions
      + Lua:
        - various language fixes
        - refactor all libraries (namespace, method registration)
        - add a OpenGL binding (still incomplete)
        - lost user back trace (see ppd25 & pushaction)
      + Pipp (PHP):
        - add support for while- and for-loops
        - add support for increment and decrement
        - designate PHP 5.3 as the reference implementation
        - improve support for string literals
      + Pugs (Perl 6):
        - removed due to bit rot
      + Rakudo (Perl 6):
        - now over 2200 passing spectests
        - updated the Rakudo roadmap
        - Perl 6 multi dispatch
        - dispatch with slurpies
        - class attributes ("my $.x")
        - anonymous classes
        - OO and metaclass improvements (.WHAT, .WHICH, .WHENCE)
        - additional builtin methods and subs
        - improved make test targets and harness
      + Tcl:
        - implement [lreverse], [lsort -command]
        - allow [incr] to autovivify
        - update tclsh spec target to 8.5.3
        - fix bug in TclDict PMC, allowing ~200 more [dict] spec tests to pass
        - update 'make spectest' fudging, using TODO instead of SKIP if possible
    - Compilers
      + PCT:
        - :scope('register') for PAST::Var nodes
        - allow invocant specification in attribute scope PAST::Var nodes
        - correct ordering of sub generation from POST
        - add 'loadinit' attribute to PAST::Block for block initialization
      + PIRC:
        - PIR registers now use the vanilla register allocator
        - all PASM output now uses PASM registers
        - all .locals and $registers are mapped
        - clean-up of grammar, back-end and documentation
        - implemented constant folding
        - implemented instruction selection
    - Configuration
      + tests now clean up after themselves
      + improved parallel test support
      + ports/cygwin added
      + Darwin problems fixed
    - Tools
      + parrot_debugger renamed from pdb, numerous tweaks
    - Miscellaneous
      + IMCC cleanups
      + :vtable implies self in PIR
      + modest core speed improvements
      + Cygwin support improved
      + "say" now an opcode (was dispatched to a method; see Deprecations)
    - Deprecations
      + ".pragma n_operators" is deprecated
      + old PASM register syntax (without "$") is deprecated
      + bare (unquoted) method names are deprecated
      + "#line" will be replaced with ".line"
      + ".HLL_map" syntax will change
      + ".loadlib" is now separate from ".HLL"
      + mmdvtregister and mmdvtablefind opcodes are deprecated
      + removed getfd, getclass opcodes
      + removed IMCC syntax that treated some methods as builtins
      + removed numeric get_attr and set_attr vtable entries

2008-07-15    Release 0.6.4
    - Documentation
      + removed a lot of old information from the FAQ
      + improved function level documentation
    - Configuration
      + removed the configuration item 'has_gnu_m4'
      + refactored ICU-detection
    - Languages
      + ChitChat
        - improved the Smalltalk implementation
      + Pipp
        - renamed Plumhead to Pipp
        - support for a lot of builtin functions.
        - Pipp now uses PHP specific data types.
        - converted from PCT with TGE to PCT with NQP actions
        - improvements in the PCT variant by using optok parsing
        - start of object support
      + pir
        - simple assignments work
      + json
        - added a PCT-based implementation of JSON parsing
      + lolcode
        - improved handling of symbols
        - added support for block handling
        - added support for globals
      + Lua
        - more tests
      + Rakudo
        - updated Range implementation
        - added enums
        - added generic type declarations (::T)
        - added runtime mixing of roles with 'does' and 'but'
        - fixed handling of implicit lexicals ($_, $!, and $/)
        - fixed implicit method calls on $_
        - improved complex math builtins, added Complex
        - moved many builtins to class Any
        - declaration of lists of variables now work
        - improved test infrastructure
        - 910 additional passing spec tests since last release
        - more convergence with STD.pm grammar
        - added named 0-ary parsing and ops
    - Compilers
      + PCT:
        - allowed subroutine and method names to be a PAST tree that produces the name
        - Improved lexical handling
    - Tools
      + pbc_disassemble renamed from disassemble
    - Implementation
      + allowed .macro_const in PIR
      + added the flag :lexid(...) for subroutines
      + made multiple dispatch work for sub types
      + fixed garbage collection bug related to the metadata attached to a PMC_EXT structure
      + added a warning when using deprecated opcodes
      + simplified the stacks implementation
      + fixed C++ build
      + improved closure and lexical support
      + improved IMCC register allocator
      + added cache for all runtime-constant strings, reducing memory usage
    - Miscellaneous
      + improved OpenGL/GLU/GLUT bindings
      + added a standard profile for Perl::Critic coding standard testing
      + added support for smoke testing with Smolder
      + enabled use of Test::Harness 3.0 if available, but don't require it for 'make test'
      + added the executable 'parrot_config' to query Parrot configuration

2008-06-17    Release 0.6.3
    - Specification
      + updated pdd09_gc.pod
    - Languages
      + Cardinal:
        - dramatically improved parsing speed
        - added support for defining and instantiating classes
        - started fleshing out the builtin class hierarchy
        - added support for hashes and arrays
      + Chitchat: added the start of a smalltalk compiler
      + Pheme: updated to match PGE changes
      + Pynie: return statement, other minor updates
      + Rakudo:
        - added working list and hash contexts
        - added 'return' statements
        - added => pair constructor
        - added ?? !! ternary
        - added Range, range operators, Complex
        - added common List, Hash methods
        - refactored base classes
        - added Mutable, Perl6Scalar classes
        - added type-checking, is readonly/rw/copy for parameters
        - added make localtest, docs/spectest-progress.csv
        - fix named unaries
      + Squaak: implement return statement
      + Tcl: updated control flow exceptions to use new builtin types
    - Compilers
      + All tools converted to P6object metamodel
      + PGE:
        - <?foo> is now a zero-width match
        - reduced backtracking to improve parsing speed
      + PCT:
        - added "return" PAST.op node type for subroutine returns
        - added "keyed_int" scoping to PAST::Var
        - fixed calls to closures
        - automatically transcode 7-bit unicode to ascii for faster processing
      + NQP: added "return" statement, ?? !! ternary operator
    - Configuration
      + expanded step gen::opengl
    - Implementation
      + updated function and macro names to match pdd09_gc.pod
      + removed Super PMC
      + add ".namespace []" as alternative to ".namespace"
      + "make codetest" target runs standard coding tests
    - Miscellaneous
      + added P6object class for Perl 6 interfaces to objects in Parrot
      + ported OpenGL/GLU/GLUT bindings to Win32, BSD, and more Mac OS X variants
      + generate OpenGL/GLU/GLUT bindings by parsing system headers
      + new OpenGL example shapes.pir, covering basic OpenGL 1.1 / GLUT 3 APIs
      + new float4.pir structure-packing benchmark
      + reduced memory use for variables
      + improved constant string caching
      + made code g++ and gcc (with optimizations) safe
      + the usual collection of bugfixes and optimizations

2008-05-20    Release 0.6.2
    - Specification
      + updated and launched pdd28_strings.pod
      + updated pdd19_pir.pod
    - Implementation
      + added implementation of Rational PMC.
      + simplified ops control flow syntax
      + enabled backtrace on non-glibc platforms too
      + improved some PIR error reporting
      + removed user stack opcodes
        (save, restore, lookback, entrytype, depth, rotate_up)
        (NOTE: This was scheduled to occur after 0.7.0, moved up to this release)
      + removed register stack, saveall, and restoreall opcodes
      + removed various deprecated features and unused code
    - Languages
      + Amber: retired
      + C99: grammar updated
      + Cardinal: resurrected, method calls and do blocks work now
      + Eclectus: use NQP as PAST generating code
      + Lua:
        - added big number library
        - updated to match PGE changes
        - added a bytecode disassembler & a Lua 5.1 VM bytecode translator
      + Pheme: updated to match PGE/PCT changes
      + Plumhead:
        - use NQP as PAST generating code
        - use riaxpander for macro expansion
      + Rakudo:
        - updated ROADMAP
        - conditional and loop statement modifiers
        - lots of class, object, role, and method improvements
        - Str increment and decrement
        - improved spectest reporting
        - type checking on assignment
        - regexes and grammars
        - undef and self
        - placeholder vars
    roadmap updated
      + Squaak: added to repository
      + TAP: retired
    - Compilers
      + PGE: updated to match Synopsis 5, deprecated features removed
      + PCT:
        - improve handling of register types, conversion between registers
        - improved error diagnostics
        - add 'arity' to for loops
    - Configuration
      + added step auto::opengl
      + added step gen::opengl
      + added step gen::call_list
    - Miscellaneous
      + still more optimizations and performance improvements, especially in GC
      + new libraries: OpenGL/GLU/GLUT bindings (small subset working)
      + new dump_pbc.pl utility: PBC disassembly/source code weaver
      + improved C++ compiler support
      + optimized builds work again

2008-04-15    Release 0.6.1
    - Specification
      + drafted pdd29_compiler_tools.pod
      + updated pdd28_character_sets.pod draft
      + updated pdd19_pir.pod draft
    - Languages
      + c99: added independent C pre-processor
      + HQ9+: reimplemented with PCT
      + Lua:
        . reimplementation with PCT, using PAST and POST
        . behavior aligned wih 5.1.3
      + Rakudo:
        . implemented basic I/O, including '$*IN', '$*OUT', '$*ERR', 'prefix:='
        . implemented simple typing and runtime type checking
        . added basic multi-method dispatch
        . expanded named argument handling, including Pair and colonpairs
        . added 'Whatever' and 'Capture' classes
        . implemented 'handles' trait verb
        . added 'loop' statement
        . implemented 'given', 'when', 'for', 'while', 'until' statement modifiers
        . implemented Hash methods '.keys' and '.values'
        . fixed bug to get '.WHAT' working correctly
        . initial implementation of 'eval'
    - Compilers
      + NQP:
        . created a bootstrapped build, see 'make boot'
        . added 'infix:<', 'infix:<=', 'infix:>', 'infix:>=' relational operators
        . added 'postfix:++', 'postfix:--' operators
      + PCT:
        . added methods specifying default behaviors in PAST, reducing repeated code
        . improved symbol table lookup
      + PGE:
        . removed deprecated code including: P6Regex, P6Grammar, PAST-pm
    - Miscellaneous
      + notable speedups during compilation and execution of parrot and HLLs
      + pdb (the parrot debugger) can now catch parrot exceptions
      + better detection of glibc and gettext during configuration
      + various bugfixes, code cleanups, deprecations, and coding standard fixes

2008-03-18    Release 0.6.0
    - Specification
      + launched pdd18_security.pod
      + updated pdd17_pmc.pod
      + launching draft of pdd28_character_sets.pod
    - Documentation
      + cleanup of IMCC documentation
    - Configuration
      + add step auto::gettext
      + add step auto::crypto
    - Compilers
      + PCT:
        . Fix '-e' option
        . Phase out P6Regex in favor of Perl6Regex
      + IMCC:
        '.local Array my_arr' is illegal now
    - Languages
      + C99: reimplementation with PCT
      + lolcode:
        . various updates
        . add support for functions with params
        . add math functions
      + Rakudo:
        . support for 'say'
        . first cut at smart matching
        . indirect method calls
        . support for Pairs
        . added methods 'grep' and 'first'
        . implement auto{increment,decrement}
        . initial implementation of 'perl6doc'
      + Lua:
        . various updates
        . add base64 library
      + Cardinal: basic support for functions with parameters
      + Pheme: various updates
      + Ecmascript: various updates
      + Tcl: now targeting tcl 8.5.1, no more expected failures in test suite.
        (No, this doesn't mean everything's implemented. =-)
      + Eclectus: various updates
      + WMLScript: various updates
    - Implementation
      + PDD17 (PMCs)
      + Add library YAML::Dumper
      + Add the MD2, MD4, MD5, RIPEMD160, SHA & SHA1 PMC, as a wrapper
         around libcrypto
    - Miscellaneous
      + various bugfixes, code cleanups and coding standard fixes
      + consting
      + remove external Perl 5 modules from the Parrot distribution

2008-02-20    Release 0.5.3
    - Documentation
      + PDD09 (garbage collection) - approved
      + PDD28 (character sets) - draft started
      + added function documentation to some core functions
      + PCT beginners guide, optable guide and PAST nodes guide, bug fixes
    - Compilers
      + IMCC: plugged various memory leaks and other cleanups
      + PCT:
        . add "attribute" as a scope variant to PAST::Var nodes
        . add 'shift' and 'pop' methods to PAST:: nodes
      + NQP: add '=:=' op, tests for scalar and list contextualizers, \x escapes
    - Languages
      + APL: reimplementation with PCT
      + Cardinal (Ruby): re-implementation with PCT
      + Ecmascript: reimplementation with PCT
      + lolcode: improved expression parsing, ifthen, IT, YARN
      + lua:
        . aligned with Lua official release 5.1.3.
        . added initial PCT-based implementation.
      + Punie (Perl 1): refactor to use standard PCT-based filenames
      + Pynie (Python): add functions
      + Rakudo (Perl 6):
        . rebranded, formerly known as 'perl6'
        . passes many more official Perl 6 Specification tests
        . added 'perl6doc' utility
        . oo including meta?classes, objects, methods, attributes, role composition
        . match variables, while/until statements, traits
        . many new methods for Str, List, Hash, Junction
    - Implementation
    - Deprecations
      + PCCINVOKE syntax for named arguments using []; use () instead.
      + see DEPRECATED.pod for details
    - Miscellaneous
      + pbc_to_exe refactored for code reduction, portability, and maintainability
      + various bug fixes
      + #line directives added to generated JIT files, improving debugging
      + consting, attribute marking, refactoring, warnings cleanup

2008-01-15    Release 0.5.2
    - Documentation
      + PDD27 (multiple dispatch) - debut of new design
      + Numerous small updates to glossary.pod, etc
    - Compiler Toolkit
      + NQP: optional, named, and named/required parameters
      + PIRC: cleanups
      + PAST: "defined-or"
    - Languages
      + New mk_language_shell.pl script creates language stubs
      + LOLCODE: new
      + Lua: various
      + Eclectus: start with support for local variables and procedures,
        use SXML as intermediate representation
      + Perl 6: list builtins, compiler directives, command-line options, etc.
      + "make perl6" now builds a Perl 6 executable
      + punie: more builtins, control structures, code refactoring
      + pynie: builtin stubs, more tests
    - Implementation
      + New "pbc_to_exe" utility turns bytecode to executables
      + New set_outer method for subs
      + Further configuration refactoring for testability
      + All functions now completely headerized
      + Concurrency: interpreter schedulers
    - Deprecations
      + DYNSELF (changes to SELF; SELF to STATICSELF)
      + METHOD (replaced by renaming PCCMETHOD)
      + pmcinfo op (superseded by 'inspect')
      + get_attr, set_attr, and 8 other vtable methods
      + See DEPRECATED.pod for details
    - Miscellaneous
      + Many bug fixes
      + Minor speed enhancements with UTF-8 string handling
      + Debian packaging
      + consting, attribute marking, warnings cleanup, memory leaks plugged ...

2007-12-18    Release 0.5.1
    - Documentation
      + PDD19 (PIR) - reflect state on the ground; incorporate old IMCC docs
      + PDD25 (Concurrency) - launch out of draft
      + Improve documentation of deprecated parrot features.
    - Compilers
      + PCT: Parrot Compiler Toolkit redesigned and updated
      + NQP: major updates, including support for namespaces,
        module/class declarations, methods
      + IMCC: remove .sym as alias for .local. Remove .pcc_
        prefix for calling directives (.pcc_begin became .begin_call).
      + PIRC: creates an AST during the parse.
      + PGE: more updates to match S05 syntax.
    - Languages
      + perl6: re-implemented using PCT and NQP, new object subsystem
      + abc: re-implemented using PCT and NQP
      + eclectus: initial implementation
      + plumhead: add PCT variant
      + punie: re-implemented using PCT and NQP, extended to handle subroutines
        Happy 20th Birthday, Perl!
      + pynie: re-implemented using PCT and NQP
      + PIR: start conversion to NQP (under construction)
    - Implementation
      + new opcodes: 'die', 'addhandler', 'copy'
      + Initial implementation of Concurrency PDD
      + Add 'arity' method to Sub and NCI PMCs
    - Miscellaneous
      + Bug cleanup
      + consting, attribute marking, warnings cleanup, memory leaks, GC...
      + dead code removal (includes some defunct languages)

2007-11-20    Release 0.5.0
    - Implementation
      + PDD15 (OO) branch merged with trunk; this release contains a working,
        tested implementation of the latest OO model
      + Added pop_eh/push_eh_p/count_eh opcodes
      + Add --runcore command line option
      + Add gcdebug runcore to help track down GC bugs
      + minor improvements to IA-32 JIT
    - Documentation
      + PDD19 (PIR): updates to macros, .pcc* directives
      + PDD25 (Concurrency): updated
      + PDD26 (AST):  draft approved
      + PDD23 (Exceptions): draft approved
      + Copyright cleanups
    - Languages/Compilers
      + languages/APL: minor updates, PDD15 conformance
      + languages/dotnet: minor updates
      + languages/lua: minor updates, PDD15 conformance
      + languages/lisp: minor updates
      + languages/perl6: minor updates, PDD15 conformance
      + languages/plumhead: minor updates
      + languages/punie: minor updates, PDD15 conformance
      + languages/nqp: minor updates
      + languages/scheme: many updates, PDD15 conformance, improved tests, use
        PMCs instead of primitive registers to represent values
      + languages/tcl: bugfixes, PDD15 conformance
      + languages/WMLScript: minor updates
      + compilers/pirc: updates from PDD19, PDD06
      + compilers/pct: minor updates, PDD15 conformance
      + compilers/pge: PDD15 conformance
      + compilers/tge: PDD15 conformance
    - Configuration
      + Improve test coverage
      + Improve reporting when a step fails; allow abort on failure
    - Miscellaneous
      + More coding standard conformance, tests, cleanup, speedups,
        warnings cleanup
      + Bug cleanup, esp. GC bugs
      + Eliminate .imc extension (use .pir)
      + Simplify some core config steps to not allow interactive prompting
    - Removed
      + clear_eh opcode

2007-10-17    Release 0.4.17
    - Implementation
     + Bug fixes (including Coverity IDs 20, 22, 30, 119-122, 124-126, 129-131)
       Also various GC, memory, and segfault issues
     + Fix & reenable CGP core
     + Parrot's -r flag now works again (compile to and execute bytecode)
     + Updates to pmc2c & PIR syntaxes
     + Fix Complex PMC
     + Minor performance improvements, especially in PGE
    - Documentation
     + PDD02 "Vtables" - superceded by PDD17
     + PDD06 "PASM" - minor updates
     + PDD17 "PMC" - add VTABLE syntax, update core PMC struct, restore UnionVal
     + PDD19 "PIR" - early review started
     + PDD21 "Namespaces" - cleanup
     + PDD24 "Events" - draft approved
     + PDD25 "Concurrency" - minor updates
     + PDD26 "AST" - draft version begun
     + PIR tutorials updated
    - Languages/Compilers
     + Make scheme work with the current calling conventions, other major work.
     + Updates to m4, lua, compilers/pirc, languages/PIR, dotnet, tcl
    - Miscellaneous:
     + make -j functional again
     + Code cleanup (refactoring, optimizations)

2007-09-18    Release 0.4.16
    - Implementation:
     + Performed code review on every PMC
     + Modified PMC code generation to use Storable, reducing compile times
     + Added a makefile target to generate test coverage data of C sources
    - Languages:
     + NQP: added lists, for loops, operators, comparison and multiplicative operators
     + Announced Kea-CL, Kea Common Lisp, an ANSI Common Lisp implementation
       The repository is available at https://rgrjr.dyndns.org/svn/kea-cl/trunk/
    - Documentation
     + PDD17 "PMCs" - draft approved, the design is complete
     + Added more PIR tutorials, see examples/tutorial/00_README.pod
    - Miscellaneous:
     + Many bugfixes, enhancements, documentation, and coding standard updates
     + Deprecated PMC constants and other crufty syntax, see DEPRECATED.pod
     + Improved icc compiler compatibility for error line reporting

2007-08-22    Release 0.4.15
    - Implementation:
     + Lots of code review, many bugs fixed
     + Many more code cleanups and compiler warning levels
     + Started a new jit engine for 64-bit processors
     + Refactored configure process, with tests and new diagnostic options
     + Added new CodeString PMC for dynamic generation of PIR code
     + More pdd15 support for object metamodel.
    - Languages:
     + Added NQP ("Not Quite Perl"), a very lightweight Perl 6-like language
     + Significant improvements and refactors to PCT (Parrot Compiler Toolkit)
     + perl6 passes more spec tests
     + Lua works now with a PGE/TGE/PAST-pm based compiler, lives in one pbc,
       and the interpreter has same behavior as original.
    - Documentation
     + Added a committers' HOWTO
     + More PIR tutorial examples
     + Added PAUSE guide

2007-07-17    Release 0.4.14
    - Now, with Seat Belts!
     + added makefile targets for Sun lint, BSD lint, and splint
     + corrected many errors picked up by these tools
     + decorated source code with compiler hints, assertions, and attribute macros
     + automated creation of function declarations to prevent common errors
     + increased compiler warnings levels
     + converted more exceptions to a recoverable form
    - Languages:
     + updated Lisp, Lua, Perl 6, tcl, regex, Scheme ("Pheme")
     + Perl 6 now fetches selected tests from pugs, and even passes some
     + PGE modified to handle {*} action subs for top-down and bottom-up parsers,
       and to allow grammar subclassing
     + HLLCompiler now has better exception, eval, and exit support
     + Introduced PCT, a refactor of HLLCompiler and PAST-pm
    - Design:
     + PDD15 "Objects" - details added to 'new' and 'getattribute' opcodes
     + PDD17 "PMCs" - notes added on instantiation and dynamic extention in PIR
    - Documentation:
     + added Parrot-related text from "Perl 6 and Parrot Essentials" book,
       tutorial examples from "Learning PIR" talk, and PDD15 metamodel diagrams
    - Implementation:
     + reduced memory footprint when using named registers
     + implemented overridding of vtable methods by PDD15 classes
     + improved PDD15 support for 'new', 'instantiate', and others
     + added makefile targets to ease core and HLL makefile regeneration
     + updated parrot dubugger, "pdb", to allow loading of commands from file
    - Misc:
     + many bugfixes, enhancements, documentation, and coding standard updates

2007-06-19    Release 0.4.13
    - Languages:
     + Updated Lisp, Lua, PHP ("Plumhead"), Python ("Pynie"), ABC,
       WMLScript, and Tcl ("ParTcl").
     + Perl 6 passes all of the sanity tests.
     + PGE supports latest Perl 6 grammar syntax. Perl 6, Python
       ("Pynie"), and ABC parsers updated to match.
     + Updated PHP ("Plumhead") to Antlr 3.0.
     + Lua added the beginnings of a PGE/TGE based compiler (not yet
       replacing the Perl/Yapp compiler).
     + Lisp updated for current features, added a test suite.
    - Core Implementation:
     + Filled in features and backward compatibility for PDD 15 objects.
       New object metamodel passes 85% of old test suite.
     + GCC API symbols are visible externally only when explicitly exported.
     + Added generated GCC compiler attributes to increase warnings, and
       cleaned up resulting warnings.
     + Code cleanup efforts and fixed memory leaks by the cage cleaners,
       resulting in notable speed increases.
    - Misc:
     + Updated Parrot distribution to Artistic License 2.0, from dual
       Artistic 1/GPL license.
     + SDL examples brought up-to-date with current features.

2007-05-15    Release 0.4.12
    - Build:
     + even more refactorings and improvements in configuration system
     + improved tests and documentation for configuration system
    - Languages:
     + Updated abc, PHP ("Plumhead"), Lua, Tcl
     + Reclaimed Lisp
    - Design:
     + new PMC PDD draft partially completed
    - Implementation:
     + continued implementation of PDD 15 (Objects)
     + minor garbage collector and memory management improvements
     + several memory leaks resolved
     + extended support for compilers other than GCC
     + improved C++ compiler compatibility
     + enhanced support for Solaris, non-MSVC Win32, and other platforms

2007-04-17    Release 0.4.11

    - Compilers:
     + IMCC: added documentation for C-based Parrot Calling Conventions,
       refactorings and bug fixes
     + PGE: new perl6regex front end reflecting recent S05 syntax changes
     + PIRC: new prototype PIR parser
    - Languages:
     + Updated Lua, PHP ("Plumhead"), BASIC, pynie
     + Lua implements environment
    - Design:
     + PDD15 "Objects" - details added, and draft approved
    - Documentation:
     + Added guidelines for PMC documentation
    - Implementation:
     + PDD15 implementation is largely complete, including role-based composition,
       introspection, and C3 method resolution order
     + new Exporter PMC for importing globals between namespaces
     + new string utilities for radix conversion
     + PCCINVOKE and Parrot_PCCINVOKE allow calling using the full Parrot Calling
       Conventions from PMCs and C code respectively
    - Build:
     + Refactorings and improvements in test coverage for 'Configure.pl'
    - Misc:
     + many bugfixes, enhancements, and code cleanup
     + added example subversion config file
     + extended support for gcc, icc, and other compilers
     + extended support for Solaris and other platforms

2007-03-20    Release 0.4.10
    - Compilers:
     + IMCC: Parrot calling conventions now available between two C PMCs (PMINVOKE)
     + PGE: Match object improvements
     + smop: added Attribute and Class PMCs
     + HLLCompiler: improvements for interactive mode
    - PAST:
     + extended binding to a list of variables
    - Languages:
     + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), Ruby ("Cardinal")
     + Update PIR, regex, Zcode
     + New language: Pynie - a Python compiler for Parrot
     + Lua implements require and many other ops, improved regex support
     + Remove parakeet
    - Design:
     + PDD01 "Overview" - updated architecture and platform information
     + PDD15 "Objects" - details on roles, objects, and classes added
     + PDD22 "I/O" - added async ops and Status PMC details
    - Documentation:
     + Added guides for Metacommitter, Relase Manager, and Cage Cleaner roles
    - Implementation:
     + Object, Class, Role, and Attribute PMC implementation has begun
     + Perl 5 module "Parrot::Embed" now compiles and links on all platforms
    - Build:
     + Major improvements in test coverage for 'ops2c.pl'
    - Misc:
     + New utility: Crow, a template processor
     + New library module: Config/JSON for reading/writing JSON files
     + many bugfixes, enhancements, and coding standard updates, code cleanup

2007-3-10     coke

    * removed parakeet

2007-02-22    Release 0.4.9
    - Compilers:
       + IMCC: Parrot calling conventions now available in C PMCs, allowing
         named, optional, slurpy, and flat parameter passing
       + PGE: extended support for Perl 5 Regexes
       + smop: prototype object model implementation
       + hllcompiler: refactored to run a configurable set of compilation stages
    - PAST:
       + redesigned assign/binding to support Perl 6 binding semantics
    - Languages:
       + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), perl6, perl5
       + New language: PIR - a PGE-based implementation of Parrot PIR
       + perl6 now supports binding (':=') and 'join'
       + lua generates tail calls, and supports its own regex flavor (PGE-based)
       + Pheme still works, huzzah!
    - Design:
       + PDD21 "Objects" - rewritten
       + PDD22 "I/O" - updated and 'TODO' tests added
    - Documentation:
       + Interface stability classification standards approved
       + Roles and Responsibilities documented approved
       + Official 'drafts' directory created (was 'clip')
    - Implementation:
       + More NameSpace and OS PMC methods implemented
       + Parrot executable fullname and basename now available in PIR/PASM code
       + new 'chomp' library function
    - Build:
       + Major improvements in test coverage for 'ops2pm.pl'
    - Misc:
       + many bugfixes, enhancements, and coding standard updates
       + extended support for Sun Workshop Compilers
       + Parrot now builds on PocketPC platform

2007-01-17    chromatic

    * changed 'name' method on namespaces to 'get_name' per pdd21

    Release 0.4.8
    - Compilers:
       + HLLCompiler: added tracing options, modified api
       + PGE & TGE bugfixes and updates
    - PAST:
       + added global and lexical variable support
       + added looping constructs, arrays, hashes
    - Languages:
       + Updated PHP ("Plumhead"), Tcl ("ParTcl"),
         forth, perl6, lua, abc, APL, WMLScript, punie
       + ParTcl is passing > 24.9% of Tcl cvs-latest test suite
       + perl6 now supports hashes, arrays, method calls, arity-based
         multisubs, quoted terms, ranges (non-lazy), try blocks, $!
    - Design:
       + PDD01 "Overview" - updated
       + PDD22 "I/O" - rewritten and approved
    - Test Suite:
       + Converted Perl 5 Regex tests to PIR, with notable speedup
       + Added tests for opcodes, compilers, languages, and coding standards
    - Build:
       + Major improvements in test coverage for 'pmc2c.pl'
    - Misc:
       + many bugfixes, enhancements, and coding standard updates
       + extended support for non-core platforms including Cygwin, Tru64

2006-12-12    particle

    * added C<isnull> opcode

2006-11-14    Release 0.4.7
    - New languages: PHP ("Plumhead"), Forth
    - Updated languages: Ruby ("Cardinal"), Tcl, Lua
    - Remove old Python implementation from Parrot repository; the new Python
      language code is hosted at http://pirate.tangentcode.com
    - Compilers:
       + PGE updated with more expressions, latest changes to S05
       + new Perl 6 grammar compiler
    - Integration:
       + Perl 5 module "Parrot::Embed" allows easy embedding of a Parrot
         runtime into a Perl 5 program
    - PIR:
       + new :init pragma for subs that must run before the main function
       + new :vtable pragma to identify subs that override PMC vtable methods,
         eliminating the need for special subroutine names
       + PIR parser/compiler does not stop on first syntax error
       + Vanilla register allocator ("register alligator") greatly improves
         performance compiling large functions
       + Eliminated limit on number of PIR macros
    - PMCs:
       + hash lookups return null instead of None for missing keys
    - Design:
       + PDD13 "Bytecode files: format and manipulation" - new
       + PDD10 "Embedding" - new
       + PDD25 "Concurrency" - rewritten
       + PDD15 "Objects" - new section on redesign requirements
       + PDD07 "Coding standards" - significant updates and automated tests
    - Test Suite:
       + Many many more new tests
    - Build Process:
       + autoconf compatible install options
    - Misc:
       + Namespace refinements
       + Coroutine improvements
       + An impressive swarm of other bugfixes and enhancements

2006-11-07    tewk

    * added :init pragma functionality to subs

2006-10-28    jonathan

    * added :vtable pragma functionality to subs

2006-09-18    chromatic

    * added Parrot::Embed under ext/Parrot-Embed

2006-08-18    leo

    * remove the None PMC - if needed it can trivially be reimplemented
      in languages from r14189

2006-08-16    creiss

    Merged Software Transactional Memory branch into trunk, adds:
    * several new opcodes whose names start with stm_
    * read-only PMC support
    * several new PMC types (whose names start with STM*)
    * support for threads (again)

2006-08-08    Release 0.4.6
    - New languages: Ruby ("Cardinal"), Javascript ("ecmascript")
    - Updated languages: Tcl, dotnet, bc, Pheme, Punie, WMLScript
    - Updated compilers: PGE, TGE
    - IMCC updates:
       + ".loadlib" directive expresses dependencies
       + ".namespace" with no parameter goes to HLL root
       + lexer is reentrant (reentrant grammar in progress)
    - Namespace improvements:
       + new suite of opcodes to access namespaces and globals
         ("find_global" and "store_global" will be phased out)
       + namespace '' no longer means HLL root
    - Design document updates:
        namespaces (pdd23), basic types (pdd17), embedding
    - Updated tool requirements for developers:
        flex 2.5.33, bison 2.1, perl 5.6.1
    - New to-do list for people new to Parrot:
        cage/todo.pod
    - The usual plethora of bugfixes and enhancements

2006-08-02    chip

    * opcodes: "in PMC" is no longer a synonym for "invar PMC";
    there are opcodes now that want the real "in PMC".
    * namespace and global opcodes now accept name arrays again, as
    well as keys; the corresponding namespace PMC methods are gone.

2006-07-25    chip

    * add experimental op find_type_i_p
    * fix longstanding bug that sometimes didn't encode pasm keys as
    Key PMCs (specifically "[S0]" and "['stringliteral']").

2006-07-24    chip

    further implementation of new pdd21:
    * new opcodes {get,set}*global
      (old {find,store}*global will be supported for a short while)

2006-07-21    leo

    * Parrot_x_exit, Parrot_x_on_exit take now an Interp * argument


2006-07-20    audreyt

    * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
      (or some such --leo)
      (at the moment code is checking for 2.0 -- ambs)

2006-07-17    chip

    partial implementation of new pdd21:
    * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
    * get_namespace and find_global opcodes no longer accept arrays
      of strings.  To use arrays, call namespace object methods.

2006-06-19    Release 0.4.5
    - unicode subroutine names
    - hierarchical class names finished including MMD support
    - new dotnet CLI to PIR translator
    - improved TGE code and compiler
    - APL: vector handling
    - new STM branch in the svn repository
    - the usual bugfixes and enhancements

2006-06-03    leo

    * I and N registers are never cleared to 0 / 0.0 on subroutine entry

2006-05-14    Release 0.4.4
    - hierarchical class names
    - APL compiler
      - under development
      - understands simple vector ops, strings
      - demonstrates use of Unicode in Parrot
    - pgc, a compiler for rules and operator precedence parsers
    - Major redesign and improvements for PGE
      - compilers understand named parameter options
      - :ratchet option implemented to support non-backtracking quantifiers
    - TGE (tree grammar engine) for tree transformations
      - tgc, tree grammar compiler
    - perl6 compiler
      - support for many operators, lexical scalars, regex matches
    - new pheme (Parrot scheme) compiler

2006-04-30    bernhard

    * Make the Perl PMCs dynamic and move them to src/dynpmc

2006-04-02    Release 0.4.3
    - namespaces partially implemented
    - rulec, Perl 6 rule compiler
    - PGE improvements including return values for closure
    - parts of a Perl 6 parser based on PGE
    - complex trigonometric methods
    - type of Sub PMC is now overridable by HLL
    - NetBSD support
    - many bug fixes and improvements

2006-03-06    leo

    * Shifted argument type bits left by 2 according to r11754
      change of docs/pdds/pdd03_calling_conventions.pod
    * if you are creating PASM then code needs adjustment

2006-02-22    Release 0.4.2
    - improved PPC and x86 JIT support including JIT compilation
      of very simple PASM/PIR subroutines
    - preliminary libreadline support
    - better trace and debug features
    - pkgconfig support
    - META.yml to support proper indexing on CPAN
    - new opcode: hcf (in "my_ops" in dynamic op library)
    - new File pmc for file specific ops (is_dir, is_file, copy, rename...)
    - named arguments and parameters (both :named("") and => syntaxes)
    - ongoing config improvements
    - tons of bug fixes and other small improvements - too much to list all

2006-01-16    bernhard

     * rename src/dynclasses to src/dynpmc
     * rename src/classes to src/pmc

2006-01-15    leo

     * find_global and friends returns a .Null PMC instead of .Undef on
      lookup failure, iff lookup exceptions are off

2006-01-08    Release 0.4.1
    - Installation: 'make install' is using standard locations now
      (/usr/local is the default --prefix)
    - Produce static and shared libraries on some systems
    - Configure system rearragement
    - OS pmc started (mkdir,cd,cwd,rm,umask,stat)
    - Shootout examples
    - Test files are now testable with 'prove'
    - Smoke (and smokej) outputs progress
    - PIR supports: I = A < B (>,<=,>=,==,!=)
    - Add support for octal number constants
    - partcl updates:
      - almost finish [string]; start [file]
      - add build tool for generating inline'd tcl builtins from templates.
    - Jako updates: NCI, subroutines, global variables and constants all work.
      (Gregor)

2005-12-28    particle

    * renamed all .imc files to .pir
    * modified all doc references to .pir as well

2005-12-13    particle

    * moved jit/ directory to src/jit/

2005-12-12    particle

    * moved io/ directory to src/io/
    * moved classes/ directory to src/classes/
    * moved dynclasses/ directory to src/dynclasses/

2005-12-08    particle

    * moved types/ directory to src/types/
    * moved pf/ directory to src/packfile/
    * moved ops/ directory to src/ops/

2005-12-08    particle

    * moved charset/ directory to src/charset/
    * moved encodings/ directory to src/encodings/

2005-12-07    particle

    * moved imcc/ directory to compilers/imcc/

2005-12-06    particle

    * moved util/ directory to tools/util/
    * removed imcc/examples/ directory
    * moved ast/ directory to compilers/ast/

2005-12-05    particle

    * moved imcc/docs/ directory to docs/imcc/
    * moved build_tools/ directory to tools/build/
    * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP

2005-12-04    Release 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

2005-11-06    Release 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

2005-10-01    Release 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

2005-08-05    Release 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 Perl 6 & 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

2005-06-04    leo

    * allow short names for object attributes
    * string encoding and charset can now be set independently
    * experimental mmap IO layer for slurping files
    * enable compile opcode support for compilers written in PASM/PIR
    * improved HLL support with .HLL and n_operators pragmas
    * simplified hash code
    * more strength reduce optimizations
    * distinct debug and trace flag settings
    * glob support in PGE
    * new character classification opcodes and interfaces
    * numerous bug fixes and enhancements

2005-05-08    leo

    * 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

2005-07-03    Release 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

2005-06-04    Release 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

2005-05-08    Release 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

2005-03-06    Release 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

2005-03-06    leo

    * big rewrite of string code, not yet finished but ...
    * partial implementation of a generational garbage collector
    * indirect register frame addressing
    * .return(args) PIR syntax
    * moved most of the Python code to dynclasses
    * a lot more Python functionality
    * precalculate opcodes with all constants
    * PGE - Parrot Grammar Engine
    * scalar classes refactoring
    * much more tests and big test system cleanup
    * improved documentation
    * and as always a lot more

2004-10-09    Release 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.

2004-10-09    leo

    * Need Perl 5.6 now for building
    * Basic AST support, PAST file parser, bits of code generation
    * BigInt PMC using GMP
    * Complex PMC
    * Dynamic loading improved including bundles of PMC classes
    * Experimental support for "make install"
    * IA64 and hppa JIT support
    * ICU unicode support
    * IO layer handling code
    * IO readline and buffered IO fixes
    * Incremental GC
    * Internal pythonic functions: filter, map, reduce, max, min ...
    * Languages updates for m4, tcl, perl6, regex. New parakeet language.
    * Library updates, Stream and SDL library
    * MMD - multi method dispatch for binary vtable methods
    * Many new array PMCs
    * Method call syntax in PIR obj."meth"(...)
    * More OS stuff: stat, exec, system, gmtime, piped read and write
    * New Python PMCs like Enumerate, None
    * Non-branching compare opcodes
    * PIR support for += and friends
    * Python language subdir
    * Python types mapped to existing PMCs
    * Slices and range support
    * Tons of bug fixes, documentation updates, new tests
    * Win32 COFF exec support
    * ... and a lot more

2004-02-29    Release 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, Perl 6/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

2004-02-29    leo

    * "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 bytecode 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

2003-10-31    Release 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

2003-10-31    leo

    * Yep thirteen - haunted by the ghost of 0.0.12
    * 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

2003-10-22    melvin

    * imcc moved from parrot/languages/ to parrot/

2003-09-20    Release 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

2003-09-20    sfink

    * updated the native_pbc test files (from Leo)

2003-09-20    sfink

    * 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

2003-07-21 17:31 chromatic

    * applied copyright patch from Josh Wilmes

2003-06-14 13:50 dan

    * Moved the registers out of the context structure, since they
      really aren't context
    * Changed the register stack frames to hold only 16 registers
      rather than 32, added half-set push and pop ops, and reworked
      the full set push/pops to do two half-set push/pops. Should
      speed up saving register data on calls, since we usually only
      care about the top half of the registers anyway.
    * Started committing some of the new class/object framework
    * Remembered to finally start updating the Changelog

2003-03-18 03:50  ask

    * Various files
      Update Yet Another copyright statements to reflect the (no longer
      so) shiny new year.

2003-03-16    Release 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

2003-03-11 22:06  chip

    * Configure.pl: print help on non-option command line args

2002-12-19    Release 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)

2002-12-18 20:38  sfink: changes since 0.0.8

    - Allow suppression of cgoto core to save memory during compile
    * Native function calling interface
    * Major rewrite of stack and list aggregates
    - Scalar PMC added
    * Scratchpads implemented
    - Win32 libraries
    - Internal memory subsystem documentation
    * Preliminary DotGNU support
    - Packfile fingerprinting
    * Buffer/PMC unification (into PObjs)
    * stabs debugging information support
    * Major Jako overhaul, including:
      - imcc integration
      - native function calling
    - Perl6 string interpolation
    - languages/regex now targets IMCC
    * Optional Lea memory allocator
    * Full sprintf implementation
    * Many, many new tests
    * Miniparrot
    - exchange ops
    - runtime-controllable gc debugging
    * PMC properties
    - Crash info
    * JIT: various improvements
      - register usage tracking
      - block register allocation
      - optimizations
      - more jitted ops
      - restartable
      - architecture abstraction layer
      - debugging via GDB
    * Beginning support for extensible packfiles
    * Much better key support, generally
    * splice()
    * Restructured PMC hierarchy with better functionality inheritance
    * IMCC: many, many improvements. See imcc/ChangeLog
    * Perl6: index map grep join reverse defined
    * Scheme with functions!

2002-09-01    Release 0.0.8
    - Several new grammars and a BNF -> perl5 and perl6 converter (Jeff)
    - Working Perl 6 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

2002-07-18    Release 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.

2002-06-04    Release 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

2002-04-16    Release 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

2002-03-19    Release 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/

2002-03-19 22:54  nicholas

    * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:

     We can now get usage information for test_parrot without having to
     grep the source.

2002-03-19 22:53  simon

    * Configure.pl:
    Parrot is called parrot.

2002-03-19 22:53  nicholas

    * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:

     1. There are tests in t/pmc as well as t/op now.
     2. Adds a comment about Parrot::Test

2002-03-19 18:09  dan

    * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
    messes up automated builds

    Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-03-19 00:33  mrjoltcola

    * core.ops: Doc cleanup from Simon Glover.

2002-03-18 23:52  mrjoltcola

    * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.

2002-03-18 22:09  dan

    * include/parrot/resources.h: Checked in old version

2002-03-18 20:17  dan

    * include/parrot/resources.h: Forgot a prototype

2002-03-18 20:15  dan

    * resources.c: D'oh! Thinko, fixed.

    Courtesy of "Peter Gibbs" <peter@emkel.co.za>

2002-03-18 17:33  josh

    * Configure.pl: Lowering the bar a bit.

2002-03-18 17:33  sfink

    * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
    test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
    lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
    lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
    lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
    lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
    lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
    lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
    t/example.t: Whoops, wrong time to check this in.

2002-03-18 16:42  dan

    * memory.c, resources.c: Partial fix for GC's memory trouncing. At
    least we consider the PMC and Buffer free pools worth collecting,
    and initialize the Buffer pool stuff.  Still not 100% correct,
    though.

2002-03-18 15:35  simon

    * packfile.c:
    Fix format arg bug.

2002-03-18 07:45  brentdax

    * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
    system.

2002-03-18 00:09  sfink

    * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
    test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
    lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
    lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
    lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
    lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
    lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
    lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
    t/example.t: Buggy 1st version of regex compiler implementation.
    Warning: the test code depends on features of the assembler that do
    not yet exist.

2002-03-17 21:35  ajgough

    * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
    through addition and subtraction.  Also added the ability to run
    all the tests, including the ones which deal with overflow and
    underflow.  These fail, but that's expected.  Soon they'll pass.
    Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
    passsssssssings tesssstsssss.

2002-03-17 20:06  ajgough

    * types/: bignum.c, bignum.h, bignum_test.pl: Modified
    check_(under|over)flow to test bignumbers, rather than values.
    context now carries E_limit, from which max and min exp are found.

    Added a default-context-creating function (although this isn't the
    same as either of the default contexts defined in the eda).

2002-03-17 13:31  ajgough

    * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
    exported version matches prototypes of other public functions.

2002-03-17 06:44  josh

    * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
    packout.c, resources.c, string.c, include/parrot/encoding.h: Some
    last-minute re-indenting.

2002-03-17 05:07  mrjoltcola

    * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.

2002-03-16 23:17  nicholas

    * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
    remove warnings:

     default.pmc: In function `Parrot_default_get_integer_keyed':
     default.pmc:50: warning: control reaches end of non-void function
     default.pmc: In function `Parrot_default_get_number_keyed':
     default.pmc:58: warning: control reaches end of non-void function
     default.pmc: In function `Parrot_default_get_string_keyed':
     default.pmc:67: warning: control reaches end of non-void function
     default.pmc: In function `Parrot_default_get_pmc_keyed':
     default.pmc:87: warning: control reaches end of non-void function

2002-03-16 18:50  ajgough

    * types/: bignum.c, bignum.h: Lots of prototypes changed in
    readiness for nicely telling your caller about any oddness you've
    caused in the persuit of flow.

2002-03-16 17:38  dan

    * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
    include/parrot/interpreter.h, include/parrot/resources.h: Now we
    can control the GC and DOD, to stop it when we don't really want
    it.

2002-03-16 16:58  dan

    * resources.c, vtable.tbl, classes/default.pmc,
    include/parrot/resources.h: Added the last code to let PMCs control
    their marking at DOD time

2002-03-16 16:57  ajgough

    * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
    feel a little more virtuous now.  Really I do.    You might not
    believe me, but you should.  perl -pne 's/\t/         /g', if you're
    curious.

2002-03-16 16:57  josh

    * packfile.c, packout.c: M-x untabify is my new friend.

2002-03-16 16:50  josh

    * trace.c, resources.c: Minor whitespace tweak for the benefit of
    check_source_standards.pl

2002-03-16 16:50  ajgough

    * types/: bignum.c, bignum.h: More documentation, separate
    functions into public and private sorts, some initial stuff to cope
    with over and underflow correctly.

2002-03-16 16:49  josh

    * resources.c: Re-indented (sorry bout the big diff)

2002-03-16 16:47  bdwheele

    * examples/assembly/fact.pasm: This fixes fact.pasm so it will
    assemble again, both with Simon's new assembler and with the old
    one.

2002-03-16 16:33  mrjoltcola

    * io/TODO: Get the TODO up-to-date for 0.0.4.

2002-03-16 16:11  josh

    * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
    silly people (such as me) running Configure with
    /usr/local/bin/perl (which is 5.004_05) and not realising their
    mistake until the pmc subdirectory, where the first qr// is
    encountered.

    Syntax error messages don't tell you what you did wrong. This does:

    /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
    only version 5.00405, stopped at Configure.pl line 10.

2002-03-16 14:38  ajgough

    * Makefile.in: Small fix to Makefile.in to keep Irix make happy
    with commenting.

2002-03-16 11:45  simon

    * MANIFEST, examples/assembly/xml_parser.pasm:
    Added Clint Pierce's XML parser.

2002-03-15 22:24  simon

    * packout.c:
    Don't need that function.

2002-03-15 21:56  simon

    * Makefile.in, include/parrot/packfile.h:
    Rebuild packout.o, since it'll be used for the Packfile XS module

2002-03-15 19:45  dan

    * include/parrot/: memory.h, pmc.h: Another add-in for GC

2002-03-14 19:48  dan

    * core.ops: No string to int for some reason

2002-03-14 18:45  dan

    * string.c, t/op/string.t: Fix 0-length substr problem

2002-03-14 14:46  dan

    * core.ops, interpreter.c, resources.c, classes/array.pmc,
    classes/perlarray.pmc, examples/assembly/life.pasm,
    include/parrot/interpreter.h, include/parrot/resources.h: Added in
    a counter for copied memory, with a display in life.pasm

2002-03-14 03:16  mrjoltcola

    * MANIFEST: Update MANIFEST courtesy of Simon Glover.

2002-03-13 23:43  simon

    * packfile.c:
    Oops.

2002-03-13 23:43  simon

    * packfile.c:
    Hangs head in shame.

2002-03-13 21:31  simon

    * MANIFEST:
    FAQ moved.

2002-03-13 18:06  simon

    * string.c:

    Fix string_compare screw-up.

2002-03-13 18:02  brentdax

    * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
    and add a new question/answer pair.

2002-03-12 22:53  mrjoltcola

    * io.ops: Quick and dirty read ops for PIO. No warranty provided.

2002-03-12 22:48  mrjoltcola

    * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
    warranty provided.

2002-03-12 22:29  ajgough

    * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.

2002-03-12 22:24  ajgough

    * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
    version 1.1, Don't know if this is the correct number, but I don't
    want this stuck on my harddrive where it will get lost, so 14 it is
    :)

2002-03-12 11:35  simon

    * MANIFEST, packdump.c, packout.c:

    Just so the functionality doesn't disappear.

2002-03-12 11:33  simon

    * Makefile.in, chartype.c, encoding.c, packfile.c,
    chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
    encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
    include/parrot/chartype.h, include/parrot/encoding.h,
    include/parrot/packfile.h:

    Packfile axing.

2002-03-11 23:06  nicholas

    * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:

      Core.ops documentation nits

2002-03-11 23:05  nicholas

    * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:

      Most of the PerlUndef tests in pmc.t appear to have been added
    twice.
      Enclosed patch removes the duplicates.

2002-03-10 23:40  nicholas

    * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:

     More tests for the PerlString test-suite.

2002-03-10 23:40  nicholas

    * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:

    test for sleep with negative argument

2002-03-10 21:58  nicholas

    * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:

     Enclosed patch fixes up a few more holes in our test coverage.

2002-03-10 21:18  mrjoltcola

    * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
    classes/parrotpointer.pmc, classes/perlarray.pmc,
    classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
    classes/perlstring.pmc, classes/perlundef.pmc,
    include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
    argument to the init() vtable method so PMCs have the option to
    know how to size themselves at creation. size could be N elements
    or a byte count, depending on the PMC or it may simply be ignored.
    Overloaded 'new' opcode for optional arg.

2002-03-10 21:15  mrjoltcola

    * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
    new_p_ic_ic opcode to work same as new_p_ic (looks up a named
    class).

    Also added small hack for .sub directive (which simply translates
    to a label, however we might eventually want to collect these to
    validate bsr calls.

2002-03-10 15:09  ajgough

    * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
    Added round_floor and round_ceiling.  3403 tests pass, none fail.

2002-03-10 03:56  ajgough

    * types/: bignum.c, bignum_atest.pl: Added extended stuff to
    divide, divide integer and remainder.  All filled in functions now
    have special values capability.

    Much remains to be done though, and the pdd needs to catch up.

2002-03-10 01:36  ajgough

    * types/bignum.c: Added extended stuff to _add, _subtract.

2002-03-10 00:14  nicholas

    * t/op/: integer.t, number.t: Patch from Simon Glover
    <scog@roe.ac.uk>:

     The enclosed patch fixes a few of the holes in our test coverage
     uncovered by Josh Wilmes

2002-03-09 23:03  ajgough

    * types/: bignum.c, bignum.h: Modified compare to work with
    extended values.  Made a couple of changes here and there to allow
    BN_comp to take a context, so that an is_zero check doesn't clobber
    negative zeros.

2002-03-09 22:19  ajgough

    * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
    Unary plus now copes with special values.

2002-03-09 04:25  ajgough

    * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
    traps and flags are now enabled and tested for all the standard
    tests for all the functions which are currently implemented.  Test
    harness faffed with to allow these to be tested.

2002-03-09 02:29  josh

    * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
    encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
    Re-indented

2002-03-09 02:22  josh

    * config_h.in: tab-blastin'

2002-03-09 02:21  josh

    * check_source_standards.pl: Play nicer with M-x compile- don't
    bother giving line numbers for things you don't want to look at.

2002-03-09 02:10  josh

    * examples/mops/mops.c: re-indented

2002-03-09 02:07  josh

    * classes/pmc2c.pl: Use the usual header so that we can detect the
    autogeneratedness.

2002-03-09 02:05  josh

    * jit2h.pl: Avoid accidental /* inside a comment, which generates a
    compiler warning

2002-03-09 01:59  josh

    * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
    patch- re-indent io/*.c.

2002-03-09 01:52  ajgough

    * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
    special values to the string conversion functions, some other
    functions now need context (to let -0 pass through really_zero)
    which have also been added.

2002-03-09 01:47  josh

    * test_main.c: Re-indented.

2002-03-09 01:41  josh

    * rx.c: killed a stray tab

2002-03-09 01:38  josh

    * rx.c: Re-indented.

2002-03-09 01:36  josh

    * misc.c: Oops, some tabs remained- cleaned up.

2002-03-09 01:31  josh

    * misc.c: Re-indented (major patch, sorry)

2002-03-09 00:59  josh

    * embed.c: Re-indented.

2002-03-08 23:08  simon

    * MANIFEST, docs/pdds/pdd10_embedding.pod,
    docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
    docs/pdds/pdd13_bytecode.pod:
    Placeholder PDDs.

2002-03-08 21:12  ajgough

    * include/parrot/string.h: Added private flags to string.h, mostly
    so that other GCed stuff can also have its very own private flags.

2002-03-08 19:53  simon

    * MANIFEST:
    Great PDD Renaming

2002-03-08 19:41  robert

    * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
    pdd6.pod, pdd7.pod: Renamed...

2002-03-08 18:51  simon

    * MANIFEST, docs/pdds/pdd08_keys.pod:
    Add keys PDD.

2002-03-08 18:20  ajgough

    * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
    Introduced exception handlers and exception flags to context, will
    allow support of extended standard.  Unified exception checking
    mechanism (sort of) and made minimal changes to bulk of code to use
    this.  Tests pass, I'm happy, and further changes will happen more
    gradually.

2002-03-08 04:38  josh

    * interpreter.c, string.c, testparrotsizes_c.in: More indenting
    tweaks.

2002-03-08 04:37  josh

    * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented

2002-03-08 04:24  josh

    * embed.c: A bit more re-indenting

2002-03-08 04:20  josh

    * embed.c: Indenting fixes

2002-03-08 04:14  josh

    * jit.c: Re-indented (run_indent.pl)

2002-03-08 03:36  josh

    * ops2c.pl: Fix the line numbers which get reported while compiling
    core_ops*.c

2002-03-08 03:22  josh

    * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
    The variable "type" is set but never used.

          opcode_t type;

2002-03-08 03:04  josh

    * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
    io/io_unix.c: Clean up unused and set-but-not-referenced variables
    noticed by the sgi compiler.

2002-03-08 03:02  josh

    * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
    misc.c, Line = 417   The indicated type qualifier is meaningless on
    cast type.


    (const char) 'f');
                                     ^

2002-03-08 02:55  josh

    * Makefile.in: Clean up one of the object files it was missing

2002-03-08 01:15  josh

    * include/parrot/interpreter.h: Fixes the following error (tcc):
    "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
    comma at end of list.

2002-03-06 22:15  simon

    * stacks.c:
    Tidy up stack chunk allocation.

2002-03-06 21:00  simon

    * interpreter.c:
    Create strings only once we've got string register heads set up.

2002-03-06 20:31  simon

    * classes/perlarray.pmc:
    malloc(0) considered harmful.

2002-03-06 20:24  simon

    * include/parrot/resources.h:
    I like it when Parrot compiles.

2002-03-06 17:02  dan

    * classes/array.pmc: Changed over to data pointing to a Buffer.

2002-03-06 15:45  dan

    * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
    packfile.c, pbc2c.pl, pdump.c, resources.c,
    include/parrot/interpreter.h, include/parrot/memory.h,
    include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
    and opcode_t > longs will now be even more suspect than what they
    were beforehand.  2) Feel free to bicker with names.  I don't think
    we've come to *any* sort of agreement with these, although we
    really, really, need to.  3) I forget the third thing.    4) But I
    thought of a fourth.  5) I've now remembered the third thing: IIRC,
    ANSI C states that enums will fit within the smallest type (int or
    greater) that can hold the values. Is that actually correct, and
    does it state whether unsigned is preferred to signed for
    non-negative enums? 6) Since I'm no longer constrained by "three"
    or "quick", I'm going size_t happy for a lot of memory-related
    storage.  (That's good.  No sense wasting the size or performance
    of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
    a couple other internal things (like the GC stat counters, seen
    here).    Size and performance, again, and unpromotable to a bigint,
    so we know that we (theoretically) will wrap.  However, size_t
    isn't the best choice for the type.  (Not that there's anything
    wrong with size_t, just that it shouldn't be called size_t.)  Any
    thoughts?  I was thinking of just doing unsigned int, because,
    IIRC, int is usually the natural word size, and will be most
    efficient.  Thoughts? 7) I forgot what the fourth thing I thought
    of was while writing down the others.  Sorry.

    Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-03-06 15:26  dan

    * memory.c, resources.c, string.c, classes/perlarray.pmc,
    include/parrot/resources.h: Now we allocate generic Buffers from
    arenas too

2002-03-05 21:42  brentdax

    * Configure.pl: Minor cleanup and enhancements.

2002-03-05 21:25  dan

    * resources.c: non-special GC now works with PMCs

2002-03-05 19:48  brentdax

    * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
    Parrot now "knows" if it's a development version or a release
    version.  See the instructions in the DEVELOPING file.

2002-03-05 18:05  brentdax

    * MANIFEST: pasm.vim wasn't in the manifest.

2002-03-05 17:57  simon

    * Makefile.in:
    Now, through much evilness, make distclean and make cvsclean work
    again.

2002-03-05 17:38  dan

    * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
    include/parrot/interpreter.h, include/parrot/pmc.h,
    include/parrot/resources.h: PMC tracing complete

2002-03-05 16:28  gregor

    * languages/jako/Makefile.in:
    Changed -I ../../ to -I ../../lib when calling the assembler, since
    the perl modules have moved.

2002-03-05 05:30  josh

    * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
    string.c: More re-indenting via run_indent.pl.

2002-03-05 05:17  josh

    * runops_cores.c, trace.c, warnings.c: Re-indented (via
    run_indent.pl)

2002-03-05 04:26  josh

    * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
    using run_indent.pl and some minor tweaking.

2002-03-05 04:21  josh

    * chartype.c, encoding.c, exceptions.c, global_setup.c,
    interpreter.c: Re-indented using run_indent.pl and some minor
    tweaking.

2002-03-05 03:30  josh

    * include/parrot/trace.h: These functions are no longer used (or
    even implemented)

2002-03-04 18:21  josh

    * include/parrot/trace.h: Fix a typo in the argument type.

    Patch from <daniel.ritz@gmx.ch>

2002-03-04 03:39  josh

    * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
    header to jit_struct.h so we don't try to check it for conformance.
     (no way will it conform)

2002-03-04 03:38  josh

    * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
    unicode.h, warnings.h: Remove some remaining tabs and split some of
    the remaining long lines.

2002-03-04 03:17  josh

    * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
    global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
    misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
    resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
    string_funcs.h, trace.h, warnings.h: This is the first batch of
    re-indenting.    This patch is the result of running run_indent.pl
    on the header files and manually tweaking the results where errors
    were noticed.    This should get us closed, but some refinement may
    follow.

2002-03-04 03:06  josh

    * resources.c: Return without parens, as mentioned in PDD 7

2002-03-04 03:01  josh

    * core.ops: POD fixes.

2002-03-04 02:58  josh

    * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
    on autogenerated files- used by the check_source_standards.pl
    script (for now) to exempt autogenerated files from the checks.

2002-03-04 02:51  josh

    * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
    warnings.c: Added the editor "boilerplate" footer to a few files
    which were missing it.

2002-03-04 02:34  josh

    * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
    include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
    c preprocessor directive indentation to comply with pdd 7.

    (also fixes the check for this indentation in
    check_source_standards.pl)

2002-03-04 02:32  josh

    * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
    irix.

    perl t/harness t/op/basic..........Use of uninitialized value at
    lib/Parrot/Test.pm line 81.  #       Failed test (t/op/basic.t at
    line 6) #       got: undef #     expected: ''

2002-03-04 02:30  josh

    * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
    docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
    "indent" program to enforce some of the code style standards
    outlined in PDD 7.

    Usage: ./run_indent.pl <file>

2002-03-03 19:04  simon

    * examples/mops/mops.c:
    Let's make it compile, huh?

2002-03-03 19:04  simon

    * examples/mops/mops.cs:
    I R AN IDIOT

2002-03-03 18:11  simon

    * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
    Added C# and MS-IL versions of mops tester.

2002-03-03 14:52  simon

    * core.ops:
    Add a sub() op to make mops_p work.

2002-03-02 18:12  nicholas

    * examples/mops/mops.c, include/parrot/embed.h,
    include/parrot/interp_guts.h, include/parrot/jit.h,
    include/parrot/misc.h, include/parrot/packfile.h,
    include/parrot/rx.h, include/parrot/warnings.h,
    platforms/generic.c, platforms/generic.h, platforms/win32.c,
    platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
    Wilmes to add the emacs and vim "ending boilerplate" that sets the
    indent variables correctly.

2002-03-02 17:41  nicholas

    * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
    patch to fix a compiler warning.

2002-03-01 22:35  dan

    * memory.c, resources.c, include/parrot/pmc.h,
    include/parrot/resources.h: PMCs now come out of arenas.

2002-03-01 06:15  dan

    * string.c:
    A non-existing buffer + a non-existing buffer should be a
    non-existing buffer, not "", which is really '\0'.

    Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-03-01 06:02  dan

    * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:

    TMTOWTDI, but strcmp is probably the worse.

    Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-03-01 02:32  brentdax

    * embed.c: Debug mode now prints out the GC data.

2002-02-28 23:44  dan

    * core.ops, resources.c, include/parrot/resources.h: Added collect
    and sweep opcodes

2002-02-28 22:58  dan

    * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
    opcode

2002-02-28 22:50  dan

    * core.ops, interpreter.c, resources.c,
    examples/assembly/life.pasm, include/parrot/interpreter.h,
    include/parrot/resources.h: Add some stat gathering to the resource
    allocation code.

    Also add an interpreter info retrieval op, and teach it about the
    different things it can retrieve.

    Finally, add some stat info to life.pasm as an example

2002-02-28 21:27  dan

    * editor/pasm.vim: VIM mode commands for parrot assembly files

    Courtesy of Scott Beck <scott@gossamer-threads.com>

2002-02-28 19:20  dan

    * examples/assembly/life.pasm: Fix a creeping string length leak.

    Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-02-28 18:26  dan

    * string.c: When you clone a constant, it ain't constant no mo'.

    Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-02-28 00:51  dan

    * MANIFEST: Add missing files

    Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>

2002-02-28 00:49  dan

    * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
    CVS seems to have several chunks missing out of it, too.  This
    patch is simply an administrative patch, with the differences
    between my last version, and the one currently in there.  There
    will be a forthcoming patch for some minor tweaking to the PDD, but
    I wanted a common baseline before I make any (potential) semantic
    changes.

    There's only one semi-major change, which noone needs to worry
    about just yet.  That's a change from PDD Format 1 to PDD Format
    6.0 - rationale can be found under 'Standard (Version #)' of the
    STANDARDS TRACK infomation.  Don't worry about this yet, because it
    should be 6.0.0, and we need to discuss Perl versus Parrot with
    PDDs.

    Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-02-28 00:27  dan

    * packfile.c, resources.c, examples/assembly/life.pasm,
    include/parrot/register.h, include/parrot/resources.h,
    include/parrot/string.h: First pass of semi-full GC. (Strings only,
    no PMCs yet)

    This patch now implements a real copying collector. We trace from
    our root set and compact the contents of Buffer structs.

    Todo:

    *) It's very STRING-centric and doesn't handle memory stuffed in
    Buffers.  But, then, we don't have pool allocation for Buffers
    either, and we need to have that soonish for this to work.

    *) Doesn't trace PMCs, so if you trigger a collection and there's
    memory or STRING structs only accessible from PMCs, you'll fail
    horribly. That needs fixing too

    *) Better algorithms for when to trace or collect vs when to just
    go allocate more memory from the system. Should probably be more
    cache friendly too.

2002-02-27 21:04  dan

    * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
    examples/assembly/life.pasm, include/parrot/resources.h,
    include/parrot/string.h, include/parrot/string_funcs.h,
    jit/i386/core.jit: Start of GC in

2002-02-26 16:41  dan

    * jit/i386/string.jit: Fix a typo

    Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>

2002-02-26 16:37  dan

    * interpreter.c: Fix solaris test failures

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-26 16:36  dan

    * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
    unicode.h, warnings.h: Fixes various warts in header files, such
    as: * macros   -added parens to prevent problems with operator
    precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
    is no longer used * added some more INLINE definitions for MSVC and
    C99 compilers

    Courtesy of Brian Lee Ray <blray@ualr.edu>

2002-02-26 16:20  dan

    * Configure.pl: Turns out we were using a warning flag which
    doesn't exist on 2.7.  Simple tweak though:

    Courtesy of  Josh Wilmes <josh@hitchhiker.org>

2002-02-25 22:58  dan

    * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC

2002-02-25 17:36  dan

    * include/parrot/pmc.h: Fix the bits

2002-02-23 21:57  dan

    * include/parrot/resources.h: Another 1.5% never hurts

2002-02-23 21:44  dan

    * global_setup.c, memory.c, resources.c, string.c,
    include/parrot/resources.h: Allocate STRING headers from an arena
    with freelist rather than with the system malloc. First step in a
    good (or even a bad) GC system.

2002-02-23 20:37  brentdax

    * misc.c: lint has been doing Evil and Wrong things to misc.c.

2002-02-22 14:59  ajgough

    * types/bignum.c: BN_multiply split into BN_multiply and
    BN_imultiply, the internal version to be used by idivide so that
    rounding isn't performed during intermediate stages of division.

    following test scripts now all pass: divide divideint add multiply
    subtract remainder compare rounding plus minus (these are all the
    operations currently implemented, rescale and power must still be
    written, so don't pass right now).

2002-02-22 13:13  ajgough

    * types/bignum_atest.pl: Test harness modified to understand
    comments better, and be able to run unary (and rounding) tests.
    Currently a few rounding tests fail, which are being investigated.

2002-02-22 01:41  dan

    * key.c: Although there's more work being done on the key stuff and
    this isn't the final fix, applying this patch does get parrot to
    build with two more compilers, so it's probably worthwhile.

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-22 00:53  dan

    * config_h.in, misc.c, include/parrot/embed.h,
    include/parrot/exceptions.h, include/parrot/interpreter.h,
    include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
    include/parrot/resources.h, include/parrot/rx.h,
    include/parrot/string.h, include/parrot/unicode.h,
    include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
    io/io_win32.c: Fixes the following (lcc) warnings:

      - interpreter.c:470: warning: expression with no effect elided
           (related to the way warnings flags were defined)

      - misc.c:352: warning: unreachable code
        misc.c:483: warning: unreachable code
           (i introduced these with some overzealous de-linting)

      - numerous warnings like this:
        io/io_unix.c:383: warning: conversion from pointer to void' to
    pointer to
        pointer to struct _ParrotIO function(pointer to struct
    Parrot_Interp,pointer
        to struct _ParrotIOLayer,pointer to const char,pointer to const
    char,pointer
        to pointer to void)' is compiler dependent

    Fixes the following nits:    - remove bad indenting (tabs) in the
    includes

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-21 21:12  ajgough

    * types/: bignum.c, bignum.h: These might look like massive
    changes, but really it's just he imposition of coding standards.
    The file still isn't entirely compliant, but is now much more so.

    Also changed:

     o a few more comments
     o BN_compare uses internal BN_comp to compare
     o lost_digits behaviour is now correct (test harness modified to
    test
       this).

    All binary functions now pass all the tests in the basic standard.
    Unary functions not yet tested, will be soon.

2002-02-21 18:20  dan

    * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
    was no longer needed, and the ssize_t thing really shouldn't be
    needed either.

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-21 18:15  dan

    * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
    include/parrot/parrot.h: this patch adds support for the freely
    available borland c++ 5.5.1 compiler

    depends on: - josh's patch to remove ssize_t from CPrederef.pm -
    working borland compiler (compiler must know where to find headers
    and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
    cc='cl.exe' - a working make utility (borland make doesn't work,
    nmake does)

    changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
    hints/mswin32.pl - remove a space from Configure.pl (very very
    important for bcc) - add a O_BINARY flag to open() in pdump.c,
    embed.c (required by bcc) - define O_BINARY 0 when it's not defined
    (win32 knows it, linux not)

    and the why: - parrot is MUCH faster when compiled with borland c
    (make test on p2-450, 320MB):    * msvc++: 313 seconds    * bcc: 251
    seconds

    Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>

2002-02-21 18:09  dan

    * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
    io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
    cuddled elses, as required by PDD 7.

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-21 18:04  dan

    * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
    a new Makefile target called "check_source".  This target scans all
    the .c and .h files in the directory and checks for conformance to
    a number of the standards outlined in PDD 7.

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-21 16:38  ajgough

    * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
    allow arithmetic with numbers with a fixed fractional part, buffer
    structures now more ready to be integrated into the parrot memory
    allocation game, test harness modified to allow lost_digits
    condition to be checked.  Some more comments.

2002-02-21 15:53  simon

    * io/io_unix.c:
    Fix typo

    Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>

2002-02-20 16:41  dan

    * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD

2002-02-18 18:25  dan

    * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-18 18:21  dan

    * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
    CPrederef.pm to make to generated code compile with the MS
    compiler.

    fixes: - ms compiler allows inline only for c++, for c there's
    __inline - ms header files knows nothing about ssize_t

    Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>

2002-02-18 17:49  dan

    * MANIFEST: Add the PDDs

2002-02-18 17:47  dan

    * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
    coding standards PDD.

2002-02-18 17:40  dan

    * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev

2002-02-18 12:41  gregor

    * test_main.c:
    Remove warning about exit() not being declared.

2002-02-18 08:29  simon

    * misc.c, warnings.c, include/parrot/misc.h,
    include/parrot/warnings.h:
    This patch adds some missing const's to silence a number of gcc
    warnings.

    Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2002-02-18 08:26  simon

    * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
    ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
    classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
    include/parrot/parrot.h, include/parrot/rx.h,
    include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
    lib/Parrot/OpTrans/CPrederef.pm:
       - add makefile target and script to test for external libc
    dependencies
       - fix return values in hash and array PMCs (returning 0 in a
    void func)
       - remove unnecessary data pointer <=> function pointer
    conversions
         outside of the JIT code.
       - move the definition of the "INLINE" macro out of the rx header
    and make
         available for general use on C++ compilers and gcc.
       - remove a few unused variables

    Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2002-02-17 16:29  simon

    * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
    pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
    pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
    We're organised and responsible. Honest.

2002-02-17 02:46  sfink

    * Makefile.in: Remove $^ for nmake compatibility.

2002-02-16 09:20  brentdax

    * config_h.in, test_main.c, include/parrot/chartype.h,
    include/parrot/embed.h, include/parrot/encoding.h,
    include/parrot/string.h, include/parrot/string_funcs.h: Better
    embedding exposure and hiding, part 1.

2002-02-16 04:38  dan

    * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
    runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
    lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
    Anyway, here's a patch to repair pbc2c.pl, combined with removing
    typecasts in various places throughout the code. It probably won't
    work for Windows yet. The libparrot.a target might need to be
    modified to at least prevent it from confusing make on Windows; I
    don't know.

    Preliminary instructions for using pbc2c.pl are in
    docs/running.pod.  I'll try to do better later.

    Courtesy of Steve Fink <steve@fink.com>

2002-02-16 04:15  dan

    * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-16 00:03  simon

    * classes/: perlarray.pmc, perlhash.pmc:

    pmc is already defined!

2002-02-15 23:20  brentdax

    * Configure.pl, config_h.in, exceptions.c, pmc.c,
    include/parrot/exceptions.h: Far more informative panic messages.

2002-02-15 03:24  dan

    * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
    much more extensive patch that fixes it to work properly, and
    deletes a bazillion casts as well.  It also points to the question
    "can we make the byte_code be an opcode_t* already?"

    Oh, and it makes some of the formatting prettier, so it's gotta be
    good.

    Courtesy of * Steve Fink <steve@fink.com>

2002-02-15 02:30  dan

    * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
    stacks.c: I've tweaked the "lint" target somewhat and fixed a few
    of the things it finds.  Attaching the patch as well as the current
    lint output.

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-02-15 01:59  dan

    * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
    moment.

2002-02-15 01:48  dan

    * t/pmc/perlarray.t: Skip tests for features that need twiddling

2002-02-15 01:40  dan

    * t/op/rx.t: Skip a test that's waiting for us to rejig some array
    things

2002-02-14 23:30  dan

    * resources.c: Added comment for buffer tag routine. D'oh!

2002-02-14 23:28  dan

    * resources.c, include/parrot/resources.h: Added buffer mark
    routine for GC

2002-02-14 23:17  dan

    * memory.c, classes/array.pmc, classes/perlarray.pmc,
    include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
    Rejigged memory system a bit. Now should be ready for the horror
    that is garbage collection.

2002-02-14 19:33  gregor

    * ops2c.pl, include/parrot/oplib.h:
    Added code to automatically generate a function within an oplib to
    lookup opinfos given the op name. This will come in handy in future
    when we want to twiddle opcode tables at run time and possibly at
    startup time.

2002-02-14 19:25  gregor

    * examples/assembly/queens.pasm:
    Regenerated queens.pasm from queens.jako since the clone_* stuff
    went away.

2002-02-14 17:12  dan

    * resources.c, include/parrot/resources.h: Finished up the
    interface for memory and tracked interpreter thingies.

2002-02-14 16:53  dan

    * memory.c, include/parrot/memory.h: intercept free and realloc

2002-02-14 05:53  dan

    * interpreter.c, runops_cores.c: The type changes in struct
    Packfile break the pointer math used in a few places to calculate
    the address of the end of the loaded byte code. This causes
    segfaults in build_asm in jit.c when using -j. It also breaks the
    bounds checking on opcode address in runops_slow_core.

    The patch adds the necessary cast to correct the code_end
    calculations.

    Courtesy of Jason Gloudon <perl@gloudon.com>

2002-02-14 01:01  ajgough

    * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
    BigInt operations (I think), tests for normal operation continue to
    pass.  Also a shed load of comments.

2002-02-13 01:34  ajgough

    * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
    is a (mostly) working bignumber library.  There remains much work
    to do though, some functions are not yet implemented and headers
    need to find their way to the correct place RSN.  Also support for
    bigints and a sensible error reporting mechanism are needed.

2002-02-12 18:51  dan

    * misc.c: Fix some warnings

2002-02-12 17:10  dan

    * misc.c: Run through indent -kr -nce so I can read it

2002-02-12 16:49  dan

    * misc.c: Need standard header/footer comments

2002-02-11 20:32  simon

    * classes/array.pmc:
    get and set pmc methods.

2002-02-11 20:19  simon

    * classes/array.pmc:
    Maybe the keys aren't integer...

2002-02-11 20:03  simon

    * core.ops, vtable.tbl, classes/default.pmc:
    {g,s}et_pmc_keyed

2002-02-11 19:07  simon

    * vtable.tbl, classes/default.pmc:
    Add set_pmc. Usee with caution.

2002-02-11 18:20  dan

    * classes/: array.pmc, perlarray.pmc: Patch array classes to
    compile

2002-02-11 17:59  simon

    * core.ops, embed.c, global_setup.c, key.c, rx.ops,
    classes/perlarray.pmc, classes/perlhash.pmc:
    Make it compile.

2002-02-11 17:57  simon

    * packfile.c, include/parrot/packfile.h:
    Reduce warnings

    Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2002-02-11 17:55  dan

    * docs/parrot_assembly.pod: Document some key ops

2002-02-11 09:20  brentdax

    * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
    disgustingly easy.

2002-02-11 00:34  simon

    * core.ops, include/parrot/exceptions.h:
    This is what keyed set ops look like. Remember, however, that for
    keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
    means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
    obviously ambiguous that you ought to use the 4-arg version
    instead.

2002-02-10 23:12  jgoff

    * classes/: array.pmc, perlarray.pmc: Properly allocate
    SELF->data's array of PMC* data in array and perlarray.pmc.  This
    isn't tested yet, but should be fairly straightforward.  PerlHash
    needs to be finished before the system will compile again, and that
    should be done in the next few days.

2002-02-09 04:46  jgoff

    * classes/: array.pmc, default.pmc, intqueue.pmc,
    parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
    Added basic _keyed member functions.  Unfortunately this still
    doesn't fix the problems that are causing the build to break. It's
    a start though. I'm not implementing the PMC add functions just
    yet.

2002-02-08 15:59  simon

    * classes/array.pmc:
    Some more work on getting the array stuff up to date.

2002-02-08 12:23  simon

    * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
    lib/Parrot/Vtable.pm:
    Got array->get_integer_keyed doing what I think it ought to. One
    down, all the rest to go.

2002-02-08 11:47  simon

    * vtable.tbl:
    Although I didn't intend it to be quite that broken...

2002-02-08 11:42  simon

    * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
    Completely break Parrot, but at least we get the key stuff right
    for now.

2002-02-08 06:25  dan

    * hints/darwin.pl: Silences the warning about passing in
    -flat_namespace to the compile.  That's a link-only flag.

2002-02-08 04:52  jgoff

    * classes/: array.pmc, default.pmc, intqueue.pmc,
    parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
    perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
    return values in *.pmc, added some missing casts to the repeat_foo
    members, and deleted the _index members from the perlscalar
    classes.  Basic cleanup, and getting ready for _keyed functions.

2002-02-07 04:49  mrjoltcola

    * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
    added a nested subroutine call.

2002-02-07 04:32  jgoff

    * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
    changes in order to give the whitespace rules a little workout, and
    do a little bit more testing. No actual structural changes were
    made.  lib/Parrot/Vtable.pm got an interface change, and more
    importantly should be ready to support the new '_keyed' attribute,
    which will work roughly thus: PMC* src_value gets remapped to 'PMC*
    src_value' followed by 'KEY* src_key'.    This will be how the new
    _keyed operators will function, and those should be written within
    a few days.

2002-02-06 18:00  doughera

    * misc.c: Change C++-style comments to C comments (again).  Remove
    unused perl5 code that was in #if 0/#endif.

2002-02-06 17:59  doughera

    * warnings.c: Add trailing newline.

2002-02-06 04:14  mrjoltcola

    * include/parrot/io.h, io/io.c: Minor cleanup.

2002-02-06 03:11  mrjoltcola

    * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
    couple of loose end in win32 IO stuff. Open behaves now but needs
    more work.

2002-02-05 21:02  brentdax

    * classes/pmc2c.pl: Length on whoami init was always 7--a problem
    which showed up in Purify builds.

2002-02-05 17:15  simon

    * misc.c:
    Warning fixes.

    Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>

2002-02-05 17:08  doughera

    * misc.c: Avoid C++-style comments.

2002-02-05 17:07  doughera

    * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
    not valid assembler for Sun's /usr/ccs/bin/as.    Now they are,
    thanks to Jason Gloudon <perl@gloudon.com>.

2002-02-05 14:04  simon

    * misc.c:
    Make the problem different, perhaps even better.

2002-02-05 13:49  simon

    * misc.c:
    Possibly fix a `short int' is promoted to `int' when passed through
    `...' scary error, possibly make things absolutely worse.

2002-02-05 13:15  simon

    * Configure.pl:
    Placate Tru64.

2002-02-05 13:12  simon

    * warnings.c:
    Not going to get far without this one...

2002-02-05 11:41  simon

    * string.c:
    Don't barf when handed null pointers.

2002-02-05 10:04  simon

    * misc.c, include/parrot/misc.h:
    Fix some trivial bugs in warnings code.

2002-02-05 09:27  simon

    * misc.c:
    Oops, forgot this one; also added %P support.

2002-02-05 09:20  simon

    * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
    test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
    include/parrot/interpreter.h, include/parrot/misc.h,
    include/parrot/parrot.h, include/parrot/warnings.h:
    Warnings support.

    Courtesy of: Brent Dax <brentdax@cpan.org>

2002-02-05 05:41  jgoff

    * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
    format of vtable.tbl to get rid of the tab-dependence.    The format
    now looks roughly like this:

    init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
    is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
    assumed here, but note the C-like prototyping.    Also had to disable
    one test that depended upon 'concat_p_p_s', which isn't necessary
    anyway.

    Vtable.pm will change again when the type '_keyed' is added,
    because that requires remapping parameters slightly differently
    again.    Also, note that it assumes 'value' is the first parameter
    in the list. This assumption will go away at the same time.

2002-02-04 16:57  ajgough

    * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
    functions.  Thanks to Simon Glover.

2002-02-04 02:47  ajgough

    * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
    needed.  I suspect that the entire hints file isn't really needed,
    but there's no one to actually tell us this.

2002-02-02 15:45  ask

    * docs/ParrotFAQ.htm: fix internal links

2002-02-02 04:06  jgoff

    * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
    Moving the internal KEY structure from the cache.struct_val member,
    where it doesn't really belong, to the internal SELF->data member.
    This frees up the cache/type members for other usage.

    This is the first step in moving PMCs to the point where we can do
    multidimensional PMC handles. The next step is to change the
    assembler to accept the syntax of 'set P0["foo"],7'.

2002-02-02 00:13  nicholas

    * include/parrot/global_setup.h: Patch from Jonathan Stowe to
    prototype Parrot_Array_class_init

2002-02-02 00:13  nicholas

    * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
    time to sum_time to avoid warning on FreeBSD about tracking a
    global [No, this warning does not appear on Linux. Yes, it is real
    :-)]

2002-02-01 23:02  nicholas

    * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
    Glover

2002-02-01 20:20  nicholas

    * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)

2002-02-01 18:20  nicholas

    * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
    you

2002-02-01 13:22  nicholas

    * MANIFEST: Add docs/embed.pod and t/op/ifunless.t

2002-02-01 12:19  simon

    * core.ops, t/op/ifunless.t, t/op/integer.t:
    Added "unless" op.

2002-02-01 12:11  simon

    * lib/Parrot/Test.pm:
    Remove a warning.

2002-02-01 01:38  nicholas

    * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
    and a manitest target to Makefile.in that lets one test the
    manifest.

2002-02-01 00:03  dan

    * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
    PMC dynaloading

2002-01-31 21:46  gregor

    * Configure.pl, Makefile.in, hints/mswin32.pl:
    A few more things are now configable, so we are closer to win32
    shared library builds. Not there yet, but closer.

2002-01-31 21:00  dan

    * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
    include/parrot/pmc.h: First step in dynamically loading PMC classes

2002-01-31 19:38  dan

    * Makefile.in: Dependencies in the Makefile are currently too broad
    brush.    I don't enjoy waiting for everything to recompile every
    time I try to tweak the jit. The only file that #includes
    jit_struct.h is jit.c, so I feel that the Makefile dependencies
    should reflect this, and not cause a gratuitous recompile of
    everything.  There are probably other auto-generated header files
    that world+dog should not depend on.

    Courtesy of  Nicholas Clark <nick@unfortu.net>

2002-01-31 19:03  gregor

    * Makefile.in, lib/Parrot/Test.pm, t/harness:
    Added two new make targets:

      * testp: Like 'make test', but passes -P to t/harness, so you get
    to
        see how broken predereferencing is.

      * testj: Like 'make test', but passes -j to t/harness, so you get
    to
        see how broken JIT is.

    Now, anyone who wants to see how good all three ways of running are
    can do so, at the cost of about 3x the time.

2002-01-31 17:09  brentdax

    * embed.c, test_main.c: Implement the ARGV-in-P0 thing.

2002-01-31 03:41  grunblatt

    * docs/jit.pod: Update jit.pod

2002-01-31 03:20  grunblatt

    * jit/i386/core.jit: Hold this until we get an assemble tool,
    because of the different objdump problems.

2002-01-31 03:13  grunblatt

    * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
    lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
    of: Jason Gloudon <perl@gloudon.com>

2002-01-31 02:22  grunblatt

    * jit/i386/core.jit: Continue if the register is null

2002-01-30 23:50  grunblatt

    * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
    i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
    sun4Generic.pm: Move the AS and OBJDUMP constants to each os
    specific file.

2002-01-30 23:35  mrjoltcola

    * io/io_win32.c: Change implementation of isatty on win32,
    suggested by Hong Zhang.

2002-01-30 23:19  sfink

    * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
    Op::may_jump boolean method.

    Replaced jit2h's hardcoded pattern match to decide what ops might
    change the control flow.

2002-01-30 22:13  dan

    * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
    parrot to mostly-build with tcc.  It allows one to skip compiling
    the JIT stuff (by specifying --define jitcapable=0), and it
    introduces a test program which gives a friendlier error in this
    case for compilers which are as picky as tcc is about function
    pointer conversion.

    If anyone figures out the proper way to cast these function
    pointers this may not be necessary.

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-01-30 20:54  dan

    * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
    Here's an update to docs/running.pod to better reflect the current
    state (both the test_parrot and assemble.pl improvements, plus
    documentation of a few more things.) And also a speling fiks
    s/POST_MORTERM/POST_MORTEM/.

    I could also replace some "perl foo" calls with "./foo" if someone
    wanted to set the executable flag in CVS on assemble.pl,
    optimize.pl, etc.

    Courtesy of Steve Fink <steve@fink.com>

2002-01-30 20:43  dan

    * core.ops: find_global doesn't work, so stub out the wrong code

2002-01-30 19:08  dan

    * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assembler so
    that perldoc
     can read it and just tidies it up generally. It also adds
    documentation
     for the constantize_integer and constantize_number functions.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-30 18:02  dan

    * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
    classes/genclass.pl, classes/pmc2c.pl,
    languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
    distribution (including assemble.pl !)
     can no longer find the Parrot::* modules. Enclosed patch fixes
    (although
     it would be nice if there were an easier way to do this).

    Courtesy of  Simon Glover <scog@roe.ac.uk>

2002-01-30 16:00  mrjoltcola

    * io/io_win32.c: Correct function calls for win32_fdopen and arg
    types.

2002-01-30 15:50  mrjoltcola

    * io/io_unix.c: Minor bug fix for fdopen flag arg type.

2002-01-30 15:42  grunblatt

    * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
    files around

2002-01-30 15:38  grunblatt

    * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
    the manifest,  and also puts it back into alphabetical order.

    Courtesy of: Simon Glover <scog@roe.ac.uk>

2002-01-30 14:41  nicholas

    * embed.c: Patch from Simon Glover to clean up warnings where
    prototype is () not (void)

2002-01-30 13:54  nicholas

    * include/parrot/embed.h, test_main.c: Add void as an explicit
    parameter in test_main.c's usage(), version(void) and embed.h's
    Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
    warning: function declaration isn't a prototype

2002-01-30 12:08  simon

    * lib/Parrot/.cvsignore:
    Ignore generated Perl modules.

2002-01-30 12:07  simon

    * t/harness:
    Run the PMC tests as well.

2002-01-30 12:04  simon

    * MANIFEST:
    Fix MANIFEST after recent t/pmc rejig.

2002-01-30 11:42  simon

    * lib/Parrot/Test.pm:
    Report non-zero exit codes.

    Courtesy of: Michael G Schwern <schwern@pobox.com>

2002-01-30 11:39  simon

    * t/op/rx.t:
    Skip final test, TODO doesn't work yet.

2002-01-30 09:54  brentdax

    * docs/embed.pod: Leon Brocard was kind enough to explain to me how
    predereferencing works.

2002-01-30 09:38  brentdax

    * docs/: embed.pod, parrot.pod: Document this newfangled embedding
    subsystem.

2002-01-30 09:37  brentdax

    * include/parrot/embed.h: Fix a mistake, clear up a warning.

2002-01-30 09:37  brentdax

    * config_h.in: Expose another flag for embedders.

2002-01-30 05:07  jgoff

    * make_vtable_ops.pl, t/harness: Both files didn't know of the new
    location for Parrot/, and t/harness wasn't able to run the new
    op/pmc tests. Both problems fixed, so I think I'm going to declare
    the build suitable for public consumption.

2002-01-30 04:34  robert

    * docs/Makefile.in: update for CVS movement

2002-01-30 04:32  robert

    * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
    .in file, not the real Makefile)

2002-01-30 04:20  robert

    * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
    vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
    related to moving files around

2002-01-30 04:10  robert

    * MANIFEST: Update MANIFEST to reflect CVS reorg.

2002-01-30 04:07  robert

    * Configure.pl: Add './lib' to our @INC because Parrot/* moved.

2002-01-30 03:56  robert

    * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
    OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
    Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
    Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
    Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
    Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
    OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
    PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
    lib/Parrot/

2002-01-30 03:46  robert

    * languages/miniperl/miniperlc: renamed to mpc

2002-01-30 03:45  robert

    * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
    pmc_perlstring.t: Moved to t/op/pmc/

2002-01-30 03:40  robert

    * include/parrot/register_funcs.h: Renamed to regfuncs.h

2002-01-30 03:14  jgoff

    * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
    Fixed some problems with PerlArray and added tests.  Previously,
    only integers could be accessed by negative indices.  After this
    change, all basic types can be accessed by negative indices, and
    they can also be set at negative indices.

2002-01-29 22:13  brentdax

    * TODO: Just look at the stupid diff.

2002-01-29 21:53  simon

    * TODO, docs/vtables.pod:
    New TODO, and tiny addition to vtables.pod

2002-01-29 21:47  mrjoltcola

    * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.

2002-01-29 21:38  mrjoltcola

    * Makefile.in: Makefile.in tweak for io depend.

2002-01-29 21:15  brentdax

    * embed.c: Fix a segfault and some profiling formatting nits.

2002-01-29 20:54  brentdax

    * pmc.c: Oops.

2002-01-29 20:50  brentdax

    * pmc.c, include/parrot/exceptions.h: Exceptions are better than
    segfaults.

2002-01-29 20:17  mrjoltcola

    * interpreter.c, core.ops, io.ops: CVS missed this.

2002-01-29 20:17  mrjoltcola

    * io/io.c: These should have gone in Sunday with the rest. CVS is
    out to get me.

2002-01-29 18:39  brentdax

    * platforms/win32.h: Fix Win32 whoops.

2002-01-29 18:29  brentdax

    * embed.c, include/parrot/embed.h: A couple minor embedding fixes.

2002-01-29 17:51  simon

    * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
    include/parrot/embed.h, include/parrot/parrot.h:
    Embedding support. Cool.

    Courtesy of: <brentdax@cpan.org>

2002-01-29 15:40  grunblatt

    * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
    Gloudon <perl@gloudon.com>

2002-01-29 14:42  simon

    * include/parrot/parrot.h:
    Platform stuff has to be included *after* system headers.

2002-01-29 14:05  grunblatt

    * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
    Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
    lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
    jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
    support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>

2002-01-29 10:56  simon

    * platforms/generic.h:
    If we don't have a S_ISREG, produce something close to it.

2002-01-29 06:01  dan

    * MANIFEST, README, LICENSES/Artistic: Finally added licenses

2002-01-29 04:38  jgoff

    * classes/array.pmc: Forgot to remove some C++-isms from the
    get_{foo}_index routines.

2002-01-29 04:26  jgoff

    * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
    classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
    t/pmc/array.t: Added array class that languages other than perl can
    use for a basis.  It has no features like preextension, and the
    array index starts at 0.

    MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
    and classes/Makefile.in - Added array.pmc to the makefile.
    (Assuming rules like .pmc.o are portable (or even possible) I might
    alter classes/Makefile.in to autobuild the appropriate files.

2002-01-29 02:32  dan

    * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
    lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
    lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
    t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
        Update to Test::More 0.41 which adds Test::Builder

        Delete the vestigal Test::Utils

        Change Parrot::Test so it uses Test::Builder instead of Evil
    Wrappers
        around Test::More

        output_* now returns whether the test passes or fails

        Parrot::Test no longer exports Test::More's functions.  Instead
    they
        can simply be used together.  The few tests which used
    Test::More
        features (ie. skip) have 'use Test::More' added.

        I ditched the export_to_level() crutch.  Do we expect parrot to
    work on
        5.004?  (literally 5.004, not 5.004_04)

    Courtesy of Michael G Schwern <schwern@pobox.com>

2002-01-28 21:04  dan

    * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
    pointer should actually be to
     parrot_assembly.pod, as the canonical documentation.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-28 20:21  dan

    * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
    clone[inps]

2002-01-28 19:18  dan

    * core.ops, register.c: clone[insp] is dead

2002-01-28 17:46  grunblatt

    * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
    jit/i386/core.jit: Fix to make the jit work in linux yet again.

2002-01-28 16:45  dan

    * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
    the requirement for fink at the moment.

2002-01-28 15:59  simon

    * test_main.c:
    People might try and run a directory file, with spectacular
    results.  We don't want that. No.

2002-01-28 14:58  doughera

    * core.ops: Avoid C++-style comments.

2002-01-28 14:16  grunblatt

    * jit.c, io/io.c: Changed jit.c to fit the way registers are
    accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
    work again.

2002-01-28 13:47  doughera

    * include/parrot/register.h: Avoid C++-style comment.

2002-01-28 06:03  dan

    * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
    Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
    lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
    docs/parrot_assembly.pod, include/parrot/interpreter.h,
    include/parrot/parrot.h, include/parrot/regfuncs.h,
    include/parrot/register.h, include/parrot/register_funcs.h,
    include/parrot/string.h, include/parrot/string_funcs.h: Registers
    are now stored in the interpreter structure itself, rather than
    just a pointer to the top of the register structure. Pushes and
    pops now involve memcpys, but register access has one fewer
    dereference.

    Fails four of the register stack tests, though, so not perfect.
    Needs fixing, but this is a good place to start.

2002-01-28 04:40  mrjoltcola

    * test_main.c: cvs commit missed this. ??

2002-01-28 04:27  mrjoltcola

    * examples/assembly/io1.pasm, include/parrot/exceptions.h,
    include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
    io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
    interpreter now (at least in theory).  IO handle array added.  Misc
    bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
    we don't conflict      with system libraries.  Still have broken
    stuff in win32 and stdio layer.

2002-01-28 04:01  mrjoltcola

    * include/parrot/chartype.h: Typo in chartype.h include guard.

2002-01-28 03:41  mrjoltcola

    * t/op/interp.t: Fix flag for interp so we don't get "info"
    messages which break tests.

2002-01-28 01:54  dan

    * include/parrot/string.h: A few more buffer/string flags

2002-01-27 11:33  nicholas

    * chartypes/unicode.c: Cast unsigned argument to int in call to
    isdigit to silence gcc warning.

2002-01-26 23:18  grunblatt

    * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
    off that flag.

2002-01-26 23:17  grunblatt

    * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
    jit/i386/core.jit: [no log message]

2002-01-26 22:18  simon

    * jit/i386/core.jit:
    Jumping to 0x0 is a recipe for segfaults.

2002-01-26 18:35  simon

    * t/harness:
    Allow user to select which tests to harness

    Courtesy of: Nicholas Clark <nick@unfortu.net>

2002-01-26 17:20  grunblatt

    * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
    lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
    to make the jit work in linux again.

2002-01-26 16:52  dan

    * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
    headers can't cope with this. Darwin-only

2002-01-26 16:04  dan

    * include/parrot/parrot.h: Quick note to remind folks that this
    isn't the file they're looking for if they're writing extensions or
    embedding parrot.

    Courtesy of Andy Dougherty <doughera@lafayette.edu>

2002-01-26 00:41  mrjoltcola

    * MANIFEST: Oopsy.

2002-01-26 00:37  mrjoltcola

    * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
    Turoff

2002-01-25 01:31  grunblatt

    * jit/alpha/core.jit: There is no neg or fneg.

2002-01-25 01:27  grunblatt

    * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
    lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
    jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
    t/op/number.t: Added Parrot_neg.  Erase t.s

2002-01-24 23:26  dan

    * interpreter.c: Best make sure unused elements are NULL

2002-01-24 23:24  dan

    * interpreter.c: Fix stupid thinko

2002-01-24 18:37  doughera

    * Makefile.in: Add a few missing dollar signs in the lifetest
    section so that ${exe} and the like get properly interpolated.

2002-01-24 18:15  mrjoltcola

    * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
    for io.ops file. Add reference to it in parrot.pod.  Courtesy of
    Simon Glover <scog@roe.ac.uk>

2002-01-24 06:43  mrjoltcola

    * io/io_stdio.c: Oops.

2002-01-24 06:34  mrjoltcola

    * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
    of work on the buffering layer.  Decided to use shared read/write
    buffer (as do most implementations) for now since its the simplest
    way to keep everything synced, (flush on seeks, flush read on
    writes, etc.)

2002-01-24 03:38  mrjoltcola

    * test_main.c: Cleaned up option handling code a bit for main().

2002-01-23 23:22  dan

    * interpreter.c, include/parrot/interpreter.h,
    include/parrot/resources.h: Now each interpreter gets its own hash
    for globals.

2002-01-23 20:45  dan

    * Configure.pl: Fix a warning when there's no - in an architecture

2002-01-22 23:57  grunblatt

    * docs/running.pod: [no log message]

2002-01-22 20:29  doughera

    * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
    appears to be a generic problem (if sizeof(long double) >
    sizeof(double)), not an x86-specific one.

2002-01-22 16:57  doughera

    * runops_cores.c: Change variable name from time to starttime to
    avoid gcc warning about variable name shadowing.

2002-01-22 16:55  doughera

    * classes/pmc2c.pl: Include class_init prototype too.

2002-01-22 16:01  doughera

    * MANIFEST: [no log message]

2002-01-22 01:04  ajgough

    * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
    classes/parrotpointer.pmc, classes/perlarray.pmc,
    classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
    classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
    include/parrot/global_setup.h: Patch from Nick Clark to quieten
    warnings from pmc files.  Message-ID:
    <20020121224719.GE1726@Bagpuss.unfortu.net>

2002-01-22 00:53  ajgough

    * test_main.c: Clears up a couple of warnings in test_main.c.
    Thanks to Nick Clark.  Message-ID:
    <20020121190457.GB1726@Bagpuss.unfortu.net>

2002-01-22 00:47  ajgough

    * string.c, chartypes/unicode.c, chartypes/usascii.c,
    include/parrot/chartype.h: Cause all codepoints to be treated as
    UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
    Nick Clark, see also: Message-ID:
    <20020121214137.GC2371@Bagpuss.unfortu.net> )

2002-01-22 00:24  dan

    * key.c: We do mandate an ANSI conformant C compiler, don't we?

    Appended patch cures these warnings:

    key.c: In function `debug_key': key.c:29: warning: int format,
    INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
    3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
    warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
    format, INTVAL arg (arg 4)

    Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-21 12:41  mrjoltcola

    * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
    be clock skew.

2002-01-21 06:37  mrjoltcola

    * io/io.c: Cleanup a warning

2002-01-21 06:28  mrjoltcola

    * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
    io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
    ops. Various other IO twiddlings.

2002-01-21 03:25  grunblatt

    * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
    Melvin Smith for the catch up.

2002-01-20 23:13  sfink

    * stacks.c: Fixed logic errors, need tests

2002-01-20 22:17  brentdax

    * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
    prepare for /i to work.

2002-01-20 20:52  grunblatt

    * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
    jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
    Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
    Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
    lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
    lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
    Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
    include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
    jit/alpha/string.jit:
    - Added support for ALPHA, by now linux and bsd.

    - Reduced jit2h.pl execution time by precompiling the call to the
    unimplemented op.

    - Reduced the duplicated code in Parrot/Jit/*.pm by adding
    Parrot/Jit/${cpuarch}Generic.pm

    - Changed the way to detect quads to what is written in "man
    perlfunc".

2002-01-20 17:23  brentdax

    * rx.ops: There's no such thing as rx_allocateinfo.

2002-01-19 08:26  brentdax

    * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.

2002-01-19 07:12  mrjoltcola

    * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
    into io.ops, leave the STDIO wrappers         in core.ops until they
    disappear.  Added debug op for switching on VM debug flag

2002-01-19 01:55  mrjoltcola

    * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
    io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls

2002-01-19 00:55  brentdax

    * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
    include/parrot/rxstacks.h: Add regex-specific stacks for
    efficiency.

2002-01-18 23:58  dan

    * Configure.pl: I think the optimal fix here is simply to remove
    -ansi -pedantic.  -ansi may well have some uses, but even the gcc
    man pages say "There is no reason to use this option [-pedantic];
    it exists only to satisfy pedants."

    Courtesy of Andy Dougherty <doughera@lafayette.edu>

2002-01-18 23:23  dan

    * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
    docs/running.pod, which lists the various executables Parrot
    currently includes, examples of running them, and mentions of where
    they fail to work. It's more of a cry for help than a useful
    reference. :-) I've been having trouble recently when making
    changes in figuring out whether I broke anything, because any
    non-default way of running the system seems to be already broken. I
    can't tell what brokenness is expected and what isn't.

    Courtesy of  Steve Fink <steve@fink.com>

2002-01-15 22:13  brentdax

    * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
    substring use and enhance performance.

2002-01-15 21:03  ajgough

    * string.c: Fix problem with string_transcode, &dest not being
    updated if src was already in desired encoding.

2002-01-15 16:54  brentdax

    * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
    warnings.  Leaves only one warning, at rx.ops line 409, that I
    can't manage to get rid of.

2002-01-15 16:50  dan

    * pbc2c.pl: Pointer arithmetic not quite right in the generated
    code.  Also patches pbc2c.pl to work with rx.ops.

    Courtesy of Jason Gloudon <perl@gloudon.com>

2002-01-15 16:15  dan

    * classes/Makefile.in: All the C files in classes/ weren't being
    compiled with an of the gcc warnings flags. With this patch they
    are, and there are an awful lot of warnings, more than I could hope
    to understand and clear up (within any sensible time period before
    submitting a rash of patches, by which time everyone else would
    have moved the code on)

    Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-15 16:10  dan

    * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
    Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
    lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
    Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
    lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
    lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
    chartypes/usascii.c: This patch adds a few more macros for .ops
    files to use. In addition to the existing

     goto OFFSET(...)
     goto ADDRESS(...)
     goto POP()
     goto NEXT()

    it adds

     expr OFFSET(...)
     expr ADDRESS(...)
     expr POP()
     expr NEXT()

    This is intended mainly for use in helper functions in .ops files,
    but also for ops that need to eg push the address of the next
    opcode onto a stack. The only place this currently happens (outside
    of my private code) is in the bsr opcode, which previously
    hardcoded the computation.

    This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
    higher in the generated file so that it can be used by static
    functions in the preamble.

    Finally, I ran into a parentheses matching problem -- should goto
    OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
    \bgoto\s+OFFSET\((.*?)\)

    It was done inconsistently for the different calculations, and of
    course neither are correct because you really want matching
    parentheses. But that seems like too much bother. (Currently,
    there's only one place that uses anything other than $n in the
    parentheses, and that's the enternative() op.) So I made them all
    .*? but emulated recent POD by also allowing (( ... )) (that's two
    parenthesis with a space padding the body.)

    The generated core_ops.c and core_ops_prederef.c files after this
    patch are identical except for the CUR_OPCODE and REL_PC macros
    getting moved a little higher, and the bsr in the regular path (not
    prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.

    In summary, this is a big wad of meaningless changes for the
    current code. But it will make adding some opcodes easier in the
    future, and cleans up a small nit in the current bsr.

    Courtesy of Steve Fink <steve@fink.com>

2002-01-15 08:48  brentdax

    * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
    sort of).

2002-01-15 08:45  brentdax

    * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).

2002-01-15 05:00  brentdax

    * rx.ops: Speed up rx_literal--roughly doubles benchmark
    performance.

2002-01-14 20:18  dan

    * vtable.tbl, vtable_h.pl: Clean up a zillion warnings

    Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-14 20:03  dan

    * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
    global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
    runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
    chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
    classes/parrotpointer.pmc, classes/perlarray.pmc,
    classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
    classes/perlstring.pmc, classes/perlundef.pmc,
    encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
    encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
    include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
    io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
    t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
    patch cleans up most of the MSVC-warnings when using warning level
    4 (the highest, one above the default level 3). It turns off two
    level-4 warnings for 'unreferenced formal parameter' and 'named
    type definition in parentheses', the latter of which was turning up
    warnings in MS VC headers.  Level 4 warnings also helped me find a
    couple of other lurking bugs in the parrot code.

    Replaces the various fprintf/exit combos with calls to
    internal_exception, which uses var_args to emulate printf. Various
    exception types were added as well. These are probably temporary
    until a real exception system arrives.

    Fixed some places in the IO code where wrong functions were being
    called, or put into the vtable.

    Courtesy of "Michel Lambert" <mlambert@legendent.com>

2002-01-14 19:00  dan

    * MANIFEST: D'oh! Forgot a file.

    Courtesy of Andy Dougherty <doughera@lafayette.edu>

2002-01-14 18:44  brentdax

    * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
    sense (and a few other enhancements to regexes).

2002-01-14 07:07  brentdax

    * interpreter.c, runops_cores.c, test_main.c,
    include/parrot/interpreter.h: Make profiling a little more useful.

2002-01-13 19:44  dan

    * Configure.pl: Turn off unsed things warnings for now

2002-01-13 19:39  dan

    * key.c, classes/perlarray.pmc: key.c:     initialize KEY.keys

    classes/perlarray.c:  * get_string: is casting
    SELF->cache.struct_val to a STRING*,    while all other methods are
    using it as a KEY*; don't know      what a perlarray stringifies to,
    so replacing with NULL    * get_bool: the default behaviour does not
    look right to me

    Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>

2002-01-13 19:37  dan

    * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
    flags to LDFLAGS, so that Configure.pl --debugging   works with
    MSVC

    classes/Makefile.in   make easier to add pmb2c.pl flags to all
    pmc2c calls

    Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>

2002-01-13 19:36  dan

    * io/io_win32.c:   according to my MSVC docs, you should use
    _tcslen only after
      #including tchar.h

    Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>

2002-01-13 19:35  dan

    * docs/intro.pod: Doc tweak.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-13 19:34  dan

    * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
    that

      if Px, ...

     works with PerlString PMCs; these should be false if they are "",
    0, or
     are undefined, and true in every other case.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-13 19:23  dan

    * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
    NUMVAL_FMT to FLOATVAL_FMT.

    Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-13 17:45  jgoff

    * Makefile.in, global_setup.c, classes/Makefile.in,
    classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
    t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
    designing your own classes.

2002-01-13 08:47  simon

    * interpreter.c, Parrot/OpTrans/CPrederef.pm,
    lib/Parrot/OpTrans/CPrederef.pm:
    Fix bsr in prederef mode.

    Courtesy of: Jason Gloudon <perl@gloudon.com>

2002-01-12 15:33  dan

    * interpreter.c, key.c, packfile.c, register.c, resources.c,
    string.c, encodings/singlebyte.c, encodings/utf32.c,
    include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
    Silence most of the unused variable warnings.

    Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-12 15:18  dan

    * rx.ops: This patch fixes a warning and also changes an 'int' to
    an 'INTVAL'.  All tests should pass on Solaris.

    Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-12 15:13  dan

    * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
    examples/assembly/life.pasm, include/parrot/interpreter.h,
    include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
    io/io_win32.c: More IO work. (Plus some misc twiddles)

    Courtesy of Melvin Smith <mrjoltcola@mindspring.com>

2002-01-12 01:14  dan

    * include/parrot/string.h: fix a missing name

2002-01-12 00:39  grunblatt

    * include/parrot/string.h: Few typos.

2002-01-12 00:16  grunblatt

    * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
    that change the program control flow.

2002-01-11 23:53  brentdax

    * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
    ParrotPointer's guts.

2002-01-11 23:03  dan

    * include/parrot/string.h: flags for the buffers, for GC

2002-01-11 22:31  dan

    * include/parrot/pmc.h: PMC flag docs. Those'd be good...

2002-01-11 22:21  dan

    * include/parrot/pmc.h: Started with PMC flags

2002-01-11 19:33  dan

    * config_h.in, memory.c, resources.c, string.c,
    include/parrot/resources.h: Beginnings of a memory allocation/gc
    system. Without the GC part.

2002-01-11 18:05  dan

    * core.ops: Make sure constant pushes are right on mixed 32/64 bit
    systems

    Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-11 17:50  dan

    * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
    lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
    a patch that makes pbc2c generated code work with the bsr opcode.
    It creates a new opcode 'enternative', and uses this to support a
    mixed model of interpretation and execution of compiled C code.

    Courtesy of Jason Gloudon <perl@gloudon.com>

2002-01-11 17:48  dan

    * Makefile.in: Add life as a potential .exe target

2002-01-11 17:30  dan

    * include/parrot/resources.h: Start of arena stuff for GC

2002-01-11 05:34  brentdax

    * rx.ops: Docs modifications.

2002-01-11 04:19  brentdax

    * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
    regular expressions.

2002-01-11 03:44  grunblatt

    * jit/i386/core.jit: off by one.

2002-01-11 02:25  dan

    * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark

    Courtesy of Steve Fink <steve@fink.com>

2002-01-11 00:32  brentdax

    * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.

2002-01-10 23:22  ajgough

    * string.c, docs/strings.pod: Removed all the nul termination code,
    as this is in general a bad idea.  Note added to docs/strings.pod
    to warn people away from assuming termination.

2002-01-10 23:14  dan

    * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
    testparrotsizes_c.in, include/parrot/interpreter.h,
    include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
    implementation

    Courtesy of Steve Fink <steve@fink.com>

2002-01-10 22:48  dan

    * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
    sizeof(INTVAL)

    Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-10 22:46  dan

    * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
    t/pmc/perlhash.t:  Well, actually two bugs.

     The first is an off-by-one error in key.c than can cause parrot
     to segfault if hash % NUM_BUCKETS happens to be zero.

     The other is a bug in the PerlHash init() code that causes new
    PerlHash
     PMCs to start with the wrong size.

     Both fixed below; also tests to prevent them recurring.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-10 22:30  dan

    * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
    t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
    with a PerlArray,

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-10 21:31  dan

    * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing

2002-01-10 20:30  grunblatt

    * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
    Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
    lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
    All the op codes that doesn't change the program control flow now
    work in the JIT by calling the code generated by the compiler when
    the op is not in core.jit TODO:     * Make all the ops that change
    the program control flow (and are not on core.jit) work.      *
    Remove the dispatch payload.

2002-01-10 17:13  dan

    * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
    which tries to return 0 from a void function.

    Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-10 17:12  dan

    * t/op/macro.t: Skip tests, don't comment them out.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-10 17:10  dan

    * rx.c: This fixes a couple of nits in rx.c:

       1. There's no newline at the end, which makes gcc unhappy.
       2. We should use NULL, not 0 or "", for creating null pointers.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-10 17:09  dan

    * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
    back in
     alphabetical order.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-10 16:54  ajgough

    * resources.c: Made free_string check that there was a string to
    free.  In reponse to a bug spotted by Joshua Nye.

2002-01-09 22:44  dan

    * global_setup.c: Forgot the setup

2002-01-09 22:35  dan

    * rx.ops: Forgot this one

2002-01-09 22:35  dan

    * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
    include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
    Tests don't work, though.

    Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-09 21:48  dan

    * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that

2002-01-09 21:22  dan

    * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
    Generic pointer holder class

    Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-09 21:19  dan

    * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
    patches.

2002-01-09 19:54  dan

    * io/io_unix.c: Whoops. Forgot one

2002-01-09 19:43  dan

    * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
    t/pmc/perlhash.t: Fix hash crash bugs

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-09 19:13  dan

    * memory.c: Signedness whoops.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-09 18:23  dan

    * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
    io/io_stdio.c, io/io_win32.c: Changes:

    -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
    will be using the   Win32 API and company rather than the unix-ish
    fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
    than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
    stuff is   there. Soon we should be able to start using these
    rather than   fprintf(stderr, ...) and remove stdio linkage.

    Courtesy of <mrjoltcola@mindspring.com>

2002-01-09 17:26  dan

    * test_main.c: Fixes bad code gen on x86.

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-01-09 17:24  dan

    * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
    classes/perlnum.pmc: This patch adds macros to the config.h file
    for INTVAL and NUMVAL printf formats.

    Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-08 22:55  ajgough

    * docs/vtables.pod: Clarify what get_string should do.

2002-01-08 20:05  dan

    * key.c: Keep comments in sync.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-08 19:50  dan

    * memory.c, include/parrot/memory.h: Need a realloc

2002-01-08 17:24  gregor

    * .cvsignore, Configure.pl, Makefile.in:
    Added 'reconfig' make target and corresponding --reconfig option to
    Configure.pl, so its very easy to re-run Configure.pl with the last
    (command-line) options you passed it.

2002-01-08 16:33  dan

    * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
    lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
    in core.ops. Potential help for optimizers and JITters.

    Courtesy of gregor@linux1.kennedytech.com

2002-01-08 16:32  dan

    * key.c: Grab key length from the right spot

    Courtesy of "Peter Gibbs" <peter@emkel.co.za>

2002-01-08 13:27  ajgough

    * test_main.c: Fix slight thinko in realloc usage for reading from
    stdin.

2002-01-08 11:34  ajgough

    * test_main.c: Allow test_parrot to read bytecode stream from
    stdin, adds -f command line option, with "-f -" doing the stdin
    stuff.

2002-01-08 06:34  jgoff

    * key.c, include/parrot/key.h: key.c - Added simple implementation
    of buckets.  include/parrot/key.h - Added enum_key_bucket type

2002-01-08 03:21  jgoff

    * include/parrot/key.h: Added an undef type to the key structure,
    so we can delete keys without confusion.

2002-01-07 22:09  dan

    * key.c, packfile.c, string.c, include/parrot/key.h,
    include/parrot/packfile.h, include/parrot/string.h: Fix whines
    about index being redefined

    Courtesy of Nick Clark

2002-01-07 21:15  dan

    * ops2pm.pl: Don't allow the same ops lib to be included twice.

    Courtesy of Steve Fink <steve@fink.com>

2002-01-07 20:48  dan

    * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
    failures

    Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-07 20:43  dan

    * docs/intro.pod: Missing a comma

    Courtesy of "coral" <coral@eekeek.org>

2002-01-07 20:41  dan

    * global_setup.c: Quiet a warning

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-07 18:58  gregor

    * t/op/.cvsignore:
    Ignore intermediate test files.

2002-01-07 17:01  gregor

    * ops2c.pl:
    Print a warning if an .ops file is mentioned more than once on the
    command line.

2002-01-07 16:12  ajgough

    * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
    these shouldn't fail.

2002-01-07 15:15  simon

    * t/: op/pmc_perlhash.t, pmc/perlhash.t:
    Stop segfaults.

2002-01-07 15:11  simon

    * key.c:
    Fix zero-termination bug in hash function.

2002-01-07 13:37  ajgough

    * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
    pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.

2002-01-07 11:53  brentdax

    * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
    (:add{foo}) and a new deleting thing (:rem{foo})

2002-01-07 11:43  simon

    * Configure.pl:
    Gobble the + before concatenating.

2002-01-07 03:53  dan

    * Makefile.in: Dependency fix for new ops setup.

2002-01-07 03:33  jgoff

    * classes/perlarray.pmc: Add negative indices, and fix a small
    allocation problem.

2002-01-06 23:54  ajgough

    * hints/os2.pl: Makes the hints file take account of ldflags and
    ccflags being split.  This hints file is still very specific to
    builds with gnu tools, but a proper solution can wait.     Thanks to
    Nick Burch.

2002-01-06 22:12  dan

    * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
        -changes Parrot::OpLib::core's dependencies to reflect the new
    selectable ops files    -allows some of the special forms of 'goto'
    inside the PREAMBLE of an opcode file

    Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-06 19:59  simon

    * Makefile.in:
    *cough*

2002-01-06 18:19  dan

    * classes/perlhash.pmc: Fix some type issues.

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-01-06 18:03  dan

    * Configure.pl, Makefile.in: It adds a prompt to Configure asking
    for a list of opcode files to use.  The default is everything
    available except for obscure.ops.

    In addition, it makes it so that if your answer to a question
    starts with '+', it will concatenate it to the default.  For
    example:

    What C compiler do you want to use? [cl] +HAHAHA!!!

    will result in $PConfig{cc} eq "cl HAHAHA!!!".    While that example
    is not terribly useful, it is quite useful with things like
    command-line flags and the like.

    Finally, it contains a couple tweaks so that my syntax-highlighting
    editor recognizes some heredocs correctly.  :^)

    Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-06 17:59  dan

    * KNOWN_ISSUES, MANIFEST, README: Doc Patches

    Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-06 17:58  dan

    * MANIFEST:  We're missing a couple of files from the MANIFEST.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-06 17:57  dan

    * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:    1.
    Compiler directives, etc. in files other than core.ops will now
    work.    2.  Compiler warnings will now display the file and line
    number of the  opcode file.

    Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-06 17:52  dan

    * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-06 17:36  dan

    * docs/intro.pod: Lots of updates

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-06 02:34  gregor

    * interpreter.c:
    Add some internal documentation on the theory of operation of the
    prederef code.

2002-01-06 02:17  gregor

    * interpreter.c:
    Removed unnecessary include.

2002-01-05 12:37  simon

    * classes/.cvsignore:
    Ignore generated .h files.

    Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2002-01-05 12:37  simon

    * Configure.pl:
    Make lcc happier by adding a dummy structure.

    Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2002-01-05 12:35  simon

    * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
    Make perlundef work. (And coincidentally stop segfaults in the
    tests :)

    Courtesy of: Jason Gloudon <perl@gloudon.com>

2002-01-05 04:59  dan

    * t/: op/pmc.t, pmc/pmc.t: Undef tests added.

2002-01-05 04:55  jgoff

    * classes/perlhash.pmc: Added perlhash class definition

2002-01-05 04:48  dan

    * core.ops: Fix on 64 bit platforms with 32-bit opcode_t

    Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-05 03:57  jgoff

    * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
    vtable.tbl, classes/Makefile.in, classes/default.pmc,
    include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
    t/pmc/pmc.t: Initial hash commit.

    core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
     key.h    - Adding NUM_BUCKETS classes/default.pmc - Adding
    set_{integer,number,string}_index_s

    This does not yet do collision resolution, but will soon.

2002-01-05 02:54  dan

    * interpreter.c: More unsigned fixes

    Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-04 22:13  dan

    * Configure.pl, hints/mswin32.pl: Makes config's building of the
    test programs happier.

    Courtesy of "Jason Diamond" <jason@injektilo.org>

2002-01-04 19:00  dan

    * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
    separate things

2002-01-04 18:27  dan

    * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
    Fixes to get things configuring and building on Win32 Native.

    Courtesy of "Jason Diamond" <jason@injektilo.org>

2002-01-04 17:39  dan

    * hints/vms.pl: debug cleanup

2002-01-04 16:53  dan

    * docs/parrot.pod:  The enclosed patch brings the list of
    documentation in parrot.pod
     up to date.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-04 16:47  dan

    * test_main.c, Parrot/Jit/i386-linux.pm,
    lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
    off warnings..

    Courtesy of Kevin Falcone <kevin@jibsheet.com>

2002-01-04 16:44  dan

    * Configure.pl, Makefile.in: Fixed linking to use linker.

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-01-04 16:39  dan

    * io/io_stdio.c: Added CVS tag info

2002-01-04 16:35  dan

    * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
    isn't it

2002-01-04 16:26  dan

    * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
    Tokenizer test

    Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>

2002-01-04 16:17  dan

    * chartypes/unicode.c: Silence some warnings.

    Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-04 16:09  dan

    * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
    perlstring.pmc, perlundef.pmc:    - genclass.pl attempts to put the Id mark
    into generated files
       but the Id mark string gets mangled when it's committed.
       This patch fixes the existing .pmc files and fixes genclass.pl.

     - Makes capitalization in .pmc header match actual filenames

     - The command for calling genclass.pl in vtables.pod is incorrect,
       since it assumes you're running in classes/ but genclass.pl
    assumes
       it's being run from the main directory. I changed genclass.pl to
    not
       care.

    Courtesy of Steve Fink <steve@fink.com>

2002-01-04 03:57  dan

    * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
    me--I *had* the files:wq!

2002-01-04 03:40  dan

    * MANIFEST: Whoops--remove files not really there

2002-01-04 03:37  dan

    * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
    my sig adds a new_stack() function to take care of the allocation
    and setup of "generic" stacks.

    Courtesy of "Brent Dax" <brentdax@cpan.org>

2002-01-04 02:36  dan

    * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
    and so
     writes a load of junk in core_ops.pod. Applied patch fixes.

    Courtesy of Simon Glover <scog@roe.ac.uk>

2002-01-04 02:35  dan

    * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
    logical-or is using get_integer instead of get_bool for logical
    operations. This patch corrects that.

    Perlnum and perlstring have working get_bool's, so the default
    logical_or and logical_and should be sufficient. The empty methods
    are pointed to the default logical_or.

    Courtesy of Jason Gloudon <perl@gloudon.com>

2002-01-04 02:31  dan

    * Makefile.in: docs/Makefile should be removed by realclean, but
    isn't

    Courtesy of Kevin Falcone <kevin@jibsheet.com>

2002-01-04 02:29  dan

    * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!

    Courtesy of Steve Fink <steve@fink.com>

2002-01-04 00:51  dan

    * docs/vtables.pod: More docs

    Courtesy of Steve Fink <steve@fink.com>

2002-01-04 00:47  dan

    * Configure.pl: Updated 64-bit patch

    Courtesy of "David M. Lloyd" <dmlloyd@tds.net>

2002-01-04 00:43  dan

    * Configure.pl: 64-bit Fix.

    Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-03 22:37  dan

    * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
    io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
    some buffering work.       Additional work on other layers.

    Courtesy of Melvin Smith <mrjoltcola@mindspring.com>

2002-01-03 19:41  gregor

    * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
    Updated copyright messages on top-level files.

2002-01-03 04:23  robert

    * make.pl: Add author information.  Bonsai test.

2002-01-03 04:02  dan

    * io/io_os.c: Twig Bonsai

2002-01-03 03:45  dan

    * io/: io_os.c, io_os.c: Twig Bonsai

2002-01-03 03:41  dan

    * io/io_os.c: Twig Bonsai

2002-01-02 21:42  gregor

    * packfile.c, include/parrot/packfile.h:
    Get rid of warnings in packfile.[hc]

2002-01-02 20:39  gregor

    * manicheck.pl:
    Bracketed translated patterns with ^ and $.

2002-01-02 20:11  dan

    * io/io_os.c: silence a warning

2002-01-02 19:52  grunblatt

    * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
    op_assembly to jit_struct.h, so that we get the real number of ops.
     Removed some warnings.

2002-01-02 19:31  tom

    * string.c: Fix string transcoding so that it actually works.

    Patch from Peter Gibbs <peter@emkel.co.za>

2002-01-02 19:20  gregor

    * manicheck.pl:
    A program to check the MANIFEST file, accounting for .cvsignore
    files.

2002-01-02 19:19  dan

    * t/harness: twig bonsai

2002-01-02 19:13  dan

    * t/harness: twig bonsai

2002-01-02 18:54  dan

    * t/harness: Tweak to test Bonsai

2002-01-02 16:27  dan

    * Configure.pl: Allow 64-bit build of parrot on systems with a
    mixed 32/64 bit perl

    Courtesy of David M. Lloyd <dmlloyd@tds.net>

2002-01-02 15:33  simon

    * MANIFEST, docs/Makefile:
    Fixed up MANIFEST. (And I removed the Makefile in docs/)

    Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2002-01-02 13:51  simon

    * Configure.pl:
    Die on broken manifest.

2002-01-02 13:48  simon

    * jit2h.pl, examples/assembly/mops.pasm:
    Clear up JIT warnings.

    Courtesy of: Nick Clark <nick@unfortu.net>

2002-01-02 04:10  dan

    * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
    only once, so new interp creation works again

    Courtesy of Melvin Smith <mrjoltcola@mindspring.com>

2002-01-02 03:32  dan

    * t/op/interp.t: Stubbed the test out, since it's hanging at the
    moment.

2002-01-02 00:55  dan

    * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
    io/io_os.c: Initial IO system patches

    Courtesy of <mrjoltcola@mindspring.com>

2002-01-01 22:55  ajgough

    * classes/default.pmc: On second thoughts, and some prodding, the
    set_* methods now only set the appropriate part of the cache, and
    do nothing else.

2002-01-01 22:29  ajgough

    * classes/default.pmc:    Wrote a whole host of default pmc methods.

     set_* create appropriate Perl* result.
     get_* simply grabs needed bit of cache.*_val

     Other methods do the rightest thing I can think of, at the moment.

     None yet cope with overflow, the modulus operation needs to be
    checked as
    I don't know quite which semantics we really want.

    Not tested yet.

2002-01-01 20:23  dan

    * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
    encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
    rid of unneeded tmp var and eliminated const from encode prototype
    since it does make changes to the string.

    Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2002-01-01 20:11  dan

    * Makefile.in: Make clean now tosses pdump.o

    Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2002-01-01 19:49  dan

    * pdump.c, test_main.c: Warnings cleanup

    Courtesy of Josh Wilmes <josh@sky.net>

2002-01-01 19:45  dan

    * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
    hints/mswin32.pl, languages/jako/Makefile.in,
    languages/scheme/Makefile.in: Makes cleanup better on non-Unix
    platforms

    Courtesy of "Jason Diamond" <jason@injektilo.org>

2002-01-01 19:41  dan

    * include/parrot/register.h: Clean up some warnings

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2002-01-01 19:10  simon

    * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
    Hack-around to enable compilation of code using vtable ops.

2002-01-01 18:43  dan

    * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
    checks on unsigned things

    Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2002-01-01 18:26  dan

    * runops_cores.c: More warning silences.

    Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-01 18:25  dan

    * trace.c: Shuts up a warning.

    Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-01 18:24  dan

    * encodings/singlebyte.c: Clean up some warnings.

    Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-01 18:20  dan

    * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
    thunk it?

    Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-01 18:17  dan

    * packfile.c: Warning cleanup

    Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-01 17:53  dan

    * string.c: New string size should be based on output encoding's
    size, not input encoding's size.

    Courtesy of: "Peter Gibbs" <peter@emkel.co.za>

2002-01-01 17:22  dan

    * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
    string.c, test_main.c, trace.c, include/parrot/exceptions.h,
    include/parrot/interpreter.h, include/parrot/memory.h,
    include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
    Warnings fixups.

    Courtesy of Chip Turner <cturner@redhat.com>

2002-01-01 17:09  dan

    * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
    encodings/utf8.c, include/parrot/encoding.h: Some signed things are
    now unsigned, as is proper.

    Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
    Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-01 16:59  dan

    * include/parrot/trace.h: Useless debugging prototype removed

    Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-01 16:58  dan

    * MANIFEST: We forgot a file.

    Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>

2002-01-01 03:53  dan

    * Configure.pl: Okay, I give. Removed some warnings because the
    darned system headers were triggering them. Sloppy, sloppy
    coding...

2002-01-01 03:48  dan

    * config_h.in: Add in an unsigned INTVAL.

    Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2002-01-01 03:46  dan

    * global_setup.c: Clean up some compiler warnings.

    Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2002-01-01 03:43  dan

    * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
    lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
    include/parrot/op.h: Cleaned up some things to make the compiler
    happier.

    Courtesy of Nicholas Clark <nick@unfortu.net>

2002-01-01 03:14  dan

    * Configure.pl: Quad updates.

    Courtesy of Nicholas Clark <nick@unfortu.net>

2001-12-31 22:53  dan

    * include/parrot/op.h: Typedef had parameters backwards. Threw
    core.ops for a big whiny warnings loop.

2001-12-31 22:37  dan

    * Makefile.in, resources.c: Tweaks to try and get things to build
    in the right order.

2001-12-31 21:58  dan

    * Configure.pl: Stupid thinko fix

2001-12-31 21:34  dan

    * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds

    Courtesy of: "Jason Diamond" <jason@injektilo.org>

2001-12-31 21:32  dan

    * Configure.pl: Fix for non-gcc systems

2001-12-31 20:22  dan

    * interpreter.c: Tweak so we can build on non-JIT platforms

2001-12-31 20:11  dan

    * Configure.pl: Force the time on some copied files to be 'now' to
    make the Win builds much less annoying.

    Courtesy of "Jason Diamond" <jason@injektilo.org>

2001-12-31 20:07  dan

    * Configure.pl: Nuke all object files in the parrot tree that
    matter when configuring.  Shouldn't be necessary with good
    dependencies in the makefile, but we don't have those yet.

2001-12-31 20:00  gregor

    * chartypes/unicode.c:
    Silence unused variable warnings.

2001-12-31 19:40  dan

    * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too

2001-12-31 19:37  gregor

    * interpreter.c, jit.c, include/parrot/jit.h:
    Created a prototype for JIT functions and used it in interpreter.c.

2001-12-31 19:31  dan

    * Configure.pl, test_gnuc.c: Better GCC detection (and version
    detection) with really cranky warnings if we find we're using it.

    Courtesy of: Nicholas Clark <nick@unfortu.net>

2001-12-31 18:01  gregor

    * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:

    Fixed a few warnings wrt prototypes, etc.

2001-12-31 17:23  dan

    * string.c: Silenced most of the compiler whines

2001-12-31 17:15  gregor

    * Configure.pl:
    Get the ccname from either ccname or just cc config var.

2001-12-31 17:14  gregor

    * Parrot/Op.pm, lib/Parrot/Op.pm:
    Another intermediate opbody notation. Could come in handy. Explicit
    types.

2001-12-31 17:05  dan

    * string.c: Minor warnings update

2001-12-31 17:00  dan

    * include/parrot/string.h: Warnings cleanup

2001-12-31 16:00  simon

    * encodings/utf8.c, include/parrot/encoding.h:
    Remove a couple more.

2001-12-31 15:58  simon

    * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
    include/parrot/op.h:
    Rid ourselves of a few warnings.

2001-12-31 15:32  dan

    * Configure.pl: Made GCC ever so much pickier.

    Switch list courtesy of Jarkko.

2001-12-31 15:22  dan

    * string.c: Tightened up initial allocation.

    Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>

2001-12-31 06:48  dan

    * Configure.pl: Minor Windows tweak

2001-12-31 05:32  dan

    * core.ops: Unused temp variable tossed.

    Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2001-12-31 05:09  grunblatt

    * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
    supported plataforms

2001-12-31 03:05  dan

    * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
    platform-independent quote substitution for the makefiles.
    Hopefully this'll make the Win32 builds happier.

2001-12-30 21:08  dan

    * string.c, include/parrot/string.h: More string system tweaks.

    Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2001-12-30 20:45  dan

    * core.ops: Some pod cleanup

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2001-12-30 20:22  ajgough

    * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
    we aren't using them right now.  Clarified the workings of set Px,
    Py and clone Px, Py.

2001-12-30 20:15  grunblatt

    * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
    Added readjit() to read *.jit files Updated core.jit to the new
    set_n_i

2001-12-30 20:14  ajgough

    * examples/assembly/mops.pasm: Changed iton/ntoi to set.

2001-12-30 19:52  dan

    * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
    include/parrot/trace.h, platforms/generic.c: Compiler whine
    cleanups

    Courtesy of Josh Wilmes <josh@hitchhiker.org>

2001-12-30 19:13  dan

    * Configure.pl, Makefile.in: Make GCC pickier by default.

    Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2001-12-30 18:41  dan

    * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
    ntoi opcodes to sets.

    Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>

2001-12-30 17:58  gregor

    * Makefile.in:
    'make' no longer builds the mops test. Use 'make mops' for that. To
    run the test, you can do 'make mopstest'.

2001-12-30 17:30  gregor

    * Makefile.in:
    Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
    Gregor.

2001-12-30 17:26  gregor

    * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
    core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
    Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
    lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
    Build enhancements. Originally to support building shared
    libraries, but now of broader impact.

      * .cvsignore: Ignore the blib/ directory, about which more later.

      * Configure.pl:

          * Got rid of TAB formatting and lined a few things up.

          * Added header comment with CVS Id variable, and a few other
        block header comments.

          * Uses new Parrot::BuildUtil module to determine the Parrot
        version.

          * Reworded a few messages, added a couple, and wrapped
    messages
        to 79 columns.

          * Added 2002 to the Copyright statement.

          * Added new configure variables: VERSION, MAJOR, MINOR and
    PATCH

          NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
    greater
          than 5.6.0, but the comment implies it isn't.

      * Makefile.in:

          * Added $(SO), $(A) and $(AR_CRS) defines for library
    building.

          * Added $(RM_RF) define for removing directory trees

          * Grouped generated files into two classes: "sticky" (made by
    configure,
        persisting across 'make clean') and 'fluid' (made during
    the build
        process, deleted by 'make clean').

          * Added header comments.

          * Added target for test_prog linked with shared library.

          * Added rules to build shared libraries in blib/lib. The
    libraries are
        built with trailing version numbers in their file names,
    and then
        symbolic links are created for shorter and no version tag
    variants.

          * Added some missing dependencies

          * Added some missing 'make clean' targets.

          * Added 'make realclean' target that deletes files created by
        Configure.pl (including Makefile), forcing a re-configure.

          * Added a 'status' CVS target.

      * VERSION: New file, contains only the version. This version
    number is
        propagated to a few places, such as the core oplib version
    number. This
        reduces the amount of coordination that has to happen to get
    version
        number stuff throughout the tree in sync and updated prior to
    cutting
        a new release. Feel free to grep for '0.0.3' to see the other
    files
        that contain the version number (but, do that in a fresh CVS
    copy, or
        after doing 'make realclean').

      * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
    PARROT_*_VERSION,
        since the oplib and Parrot itself share a version number now.
    Added
        PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
    (a
        string).

      * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
    of
        specifying the version by hand. Non-core oplibs will set this
    to
        a quoted dot-string with three natural number components
    without
        leading zeros.

      * interpreter.c: Make use of PARROT_VERSION to simplify some
    sprintf()s, and
        to get the complete version number in the resulting strings
    (including the
        new PATCH portion).

      * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
    the
        generated file.

      * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.

      * ops2c.pl: Account for the PATCH version, too. This affects the
    name of the
        oplib init function, and the oplib info struct initializer.

      * Parrot/BuildUtil.pm: New file for reading in and validating the
    contents of
        the new VERSION file. Other build utilities could go here in
    futuer.

      * Parrot/OpsFile.pm:

          * Allow three components in version number, and require that
    the value
        be in double quotes.

          * Allow "VERSION = PARROT_VERSION", substituting the shared
    Parrot
        VERSION in that case.

      * include/parrot/oplib.h: Add the patch_version member.

2001-12-30 12:16  simon

    * MANIFEST, Makefile.in:
    More stuff forgotten from MANIFEST.

2001-12-30 12:13  simon

    * MANIFEST:
    Missing JIT file.

2001-12-30 12:12  simon

    * jit2h.pl:
    Safety first.

2001-12-30 12:12  simon

    * Makefile.in:
    Gragh.

2001-12-30 12:04  simon

    * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
    classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
    encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
    include/parrot/string.h, t/op/string.t:
    * Expand the strings test suite to be more complete * Make string
    commands more consistent (i.e, now the only string command that
    actually changes the original is chopn) * Significantly reduce the
    number of memory allocations and eliminate reallocations.

    Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>

2001-12-29 22:12  dan

    * interpreter.c, key.c, register.c, stacks.c, string.c,
    test_main.c, trace.c: Updates to match the coding standards.

    Courtesy of Bryan C. Warnock <bwarnock@raba.com>

2001-12-29 20:42  grunblatt

    * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
    Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
    jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
    lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
    us to write asm in *.jit files instead of hex.    Courtesy of: Rafael
    Kitover <caelum@debian.org>

2001-12-28 21:20  dan

    * core.ops: Okay, now print takes a preceding file handle.

    I feel so dirty now.

2001-12-28 20:46  dan

    * core.ops, t/op/hacks.t: Added in the readline op, as well as
    changing the open op to use fopen under the hood.

    THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!

2001-12-28 18:20  ajgough

    * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
    classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
    include/parrot/exceptions.h, include/parrot/string.h,
    t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
    repeat op, so that "foo" x 10 can be done.  Filled in PerlString
    vtables appropriately.    Also tests for same, new pmc_perlstring.t
    to hold tests specific to PerlStrings, as the pmc.t file is taking
    too long to run and slowing down my thought processes.

    Changes to strings.c etc to take string functions.

    Some changes to the strings docs, but not yet complete.

    Also, PerlString was copying pointers to strings, rather than
    strings themselves, so some action-at-a-distance bugs were creeping
    in, I think I've fixed this so everything works nicely.

2001-12-28 04:56  gregor

    * examples/assembly/pmcmops.pasm:
    PMC-using version of mops.pasm.

    Courtesy of: Bryan C. Warnock <bwarnock@raba.com>

2001-12-28 04:56  gregor

    * examples/assembly/.cvsignore:
    Small tinkering. Removed old stuff, etc.

2001-12-28 01:26  gregor

    * examples/mops/mops.scheme:
    Scheme example. Major GC thrashing on umb-scheme here. Probably due
    to the very un-scheme-like implementation.

2001-12-28 01:19  gregor

    * examples/mops/mops.c:
    Some people's picky compilers don't like us redefineing time(), so
    we call it time_n().  :)

2001-12-28 00:28  gregor

    * examples/mops/: README, mops.ps:
    Added a PostScript example and a README.

2001-12-27 23:57  gregor

    * Makefile.in:
    Build the C mops translation in examples/mops/mops.c

2001-12-27 23:56  gregor

    * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
    Some translations of mops.pasm into other languages, for inner loop
    performance comparisons.

2001-12-27 22:40  gregor

    * examples/assembly/mops.pasm:
    Fixed erroneous file name in header comment.

2001-12-27 21:18  gregor

    * pbc2c.pl:
    One-liner to avoid no-op gotos to the next op.

2001-12-27 21:06  gregor

    * runops_cores.c:
    Fixed -p (profiling). Slow runops core was doing unconditional
    tracing, when it should have been checking the flags.

2001-12-27 18:50  ajgough

    * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
    classes/perlstring.pmc, include/parrot/chartype.h,
    include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
    dded get_digit() to chartypes  * Added string_bool() to strings  *
    Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
    to perlstring.pmc  * Tests for above, also a for couple of other
    ops without tests

    The unicode chartype has only had placeholders added for get_digit,
    string_to_num has been updated to use type->get_digit rather than
    the previous ascii-isms.  Some remain, but we need to carefully
    define what we mean by a number before we let thousands of code
    points act as a minus sign.

2001-12-27 18:32  dan

    * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
    compiler warnings.

    Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>

2001-12-27 18:23  dan

    * t/op/bitwise.t: More tests.

    Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>

2001-12-27 17:08  gregor

    * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
    make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
    trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
    include/parrot/interpreter.h, include/parrot/oplib.h,
    lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
    platforms/win32.c, platforms/win32.h:
    Initial code for dynamic loading of oplibs, applied for now to the
    loading of the core_prederef oplib when the -P flag is passed to
    test_parrot.

      * MANIFEST: Added entry for the new file include/parrot/oplib.h.

      * Makefile.in:

          * Added libcore_prederef_0_3.so to the shared target.
          * Added build rule for libcore_prederef_0_3.so.
          * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
        to Parrot/OpLib/core.pm, core_ops.c and
        core_ops_prederef.c.

      * config_h.in: Added defines for constants used to locate the
        core oplib's init function, and the core_prederef oplib for
        dynaloading.

      * core.ops: Added a VERSION = 0.3 line near the top. This is now
        required by Parrot/OpsFile.pm.

      * interpreter.c:

          * Added init_prederef() and stop_prederef() functions to load
        and unload the core_prederef oplib when we are in prederef
        mode.

        NOTE: In all likelihood, the prederef stuff has a rapidly
        dwindling time-to-live. The JIT should provide vastly
    superior
        performance, and loading an alternate set of core_ops isn't
        the real direction for the dynaloading stuff. Loading
        *additional* ops is. It does provide a handy test case for
    the
        general idea for now, though.

          * Gets the core copcode table, etc. via the core oplibs oplib
        info pointer, as returned by the core oplib's init
    function.

      * ops2c.pl

          * Make use of the version, major version and minor version
        stuff parsed by Parrot/OpsFile.pm

          * The only exported symbol in the generated files is the init
        function now, since that returns an oplib info struct
        pointer, and all the important stuff can be found there.

      * ops2pm.pl: Put the oplib version in the generated .pm file.

      * test_main.c: Small changes necessitated by changes in the names
        of some members of the interpreter struct.

      * trace.c: Small changes necessitated by changes in the names
        of some members of the interpreter struct.

      * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
        ops are found.

      * include/parrot/interp_guts.h: Small changes necessitated by
        changes in the names of some members of the interpreter struct.

      * include/parrot/interpreter.h: Include the new
        include/parrot/oplib.h header. Small changes to the oplib-
        related members.

      * include/parrot/oplib.h: Define the type of the oplib init
        function, and the struct type for the oplib info.

      * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
        since not all platforms have it. For those that do, a default
        second argument is provided.

2001-12-26 05:12  gregor

    * Configure.pl:
    Make jitarch calculation not get tripped up by extra components to
    archname.

2001-12-24 21:23  gregor

    * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
    Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
    include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
    jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
    lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
    Some more JIT work from Daniel Grunblatt.

      * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
    to C
        functions.

      * Added JUMP(END) to place the number of bytes to the end of the
    current
        op.

      * The *.jit files syntax changed.

      * Added jit/i386/lib.jit to place handly functions as jump that
    take as
        argument the address where is the opcode number to jump to.

      * There is a bug at some point, but I will start writing
        jit/i386/string.jit and jit/i386/stacks.jit so that we don't
    have use
        calls, which make the jit as slow as the interpreter.

    Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>

2001-12-24 03:46  dan

    * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
    Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
    lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
    lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
    Perls before 5.6.0 don't like it.

2001-12-22 16:02  ajgough

    * t/op/stacks.t: stopped skipping tests we can run now.  added
    clonep tests.

2001-12-21 21:13  gregor

    * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
    Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
    lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
    Fixed some package name goofs.

    Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>

2001-12-21 19:32  gregor

    * MANIFEST, Makefile.in, core.ops, interpreter.c,
    make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
    pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
    Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
    lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
    Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
    Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
    include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
    lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
    Changes to syntax of .ops files and refactoring of ops2c*.pl and
    pbc2c.pl.

      * Removed ops2c-prederef.pl

      * (unrelated) Removed vestigial Parrot/Opcode.pm file.

      * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
        functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
        for old functionality of ops2c-prederef.pl), and
        Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).

        "OpTrans" == "Op Transformation"

      * Makefile.in modifications to call "ops2c.pl C" where it used
        to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
        to be "ops2c-prederef.pl".

      * core.ops and obscure.ops changes to syntax. Semantics are
        identical with previous version:

          return HALT      -->  HALT()
          return AUTO      -->  goto NEXT()
          return RETREL(...)  -->  goto OFFSET(...)
          return RESTART(*)   -->  restart NEXT()

        Also, pop_generic_entry() stuff (local var + 5 lines of code)
        for dest-less branch ops replaced with new notation "goto
    POP()",
        which uses the new pop_dest() function in stacks.c. This also
        allowed these ops to become 'inline' ops, since they no longer
        have local variables.

        The 'ret' op also became simplified to just "goto POP()", and
        also became an inline op.

      * interpreter.c reflects the change in type name:

          prederef_op_func_t   -->    op_func_prederef_t

        that occurred in include/parrot/op.h

      * make_vtable_ops.pl uses "goto NEXT()" where it used to use
        "return AUTO".

      * ops2c.pl is now generic. Its first argument is the last
        package name component of a subclass of Parrot::OpTrans. These
        subclasses all have full names of the form Parrot::OpTrans::*.
        An instance of the class is created and later consulted for
        various bits of information needed to generate the C code.

      * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
        contain its transformation rules.

      * stacks.c has a new function pop_dest() that pops a destination
        off the control stack. include/parrot/stacks.h has the
    prototype.

      * Parrot/Op.pm now supports the syntax generated by
    Parrot::OpsFile
        for the "goto POP" case.

        Also, the source() method now expects its second argument to be
        an object that ISA Parrot::OpTrans. Methods of this object are
        called to perform the substitutions.

      * Parrot/OpsFile.pm supports the change in notation mentioned
        above.

      * docs/intro.pod reflects these changes.

      * include/parrot/op.h: Renamed type prederef_op_func_t to
        op_func_prederef_t because it made the implementation of the
        shared ops2c.pl easier.

2001-12-21 13:47  gregor

    * Configure.pl, config_h.in, interpreter.c, test_main.c:
    Both test_parrot (via test_main.c) and the intepreter itself (via
    interpreter.c) use the JIT_CAPABLE config to decide whether to
    actually attempt JIT operation, or to complain.

2001-12-20 23:25  gregor

    * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
    lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
    Changes to the format of *.ops files. An attempt to provide hints
    for future opfunc processing logic that wants to know if an opfunc
    is simple enough to JIT (e.g.) inline, or not.

    See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
    addition to The Source in core.ops and Parrot/OpsFile.pm for more
    info.

2001-12-20 21:28  gregor

    * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
    jit/i386/core.jit:
    More JIT stuff:

      * A fix to Gregor's last Configure.pl update.

      * Remove the need for hardcoded "\n" at the end of the "%f"
        format for printing floating-point numbers.

      * New, improved *.jit syntax for references to registers,
        e.g. INT_REG[n].

      * Support for C() improved.

    Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>

2001-12-20 16:55  dan

    * MANIFEST: Added jit.c to the manifest.

2001-12-20 15:24  simon

    * jit2h.pl:
    Off-by-one error fixed.

2001-12-20 14:18  simon

    * jit/i386/core.jit:
    Just a noop. It's the only machine code I know.

2001-12-20 13:10  gregor

    * Configure.pl, Makefile.in, jit2h.pl:
    Attempt to fix Win32 builds.

      * No more empty braces in include/parrot/jit_struct.h

    Also:

      * ${jitarchname} has the *bsd -> bsd substitution on it, but
    ${archname}
        does not.

2001-12-20 11:56  simon

    * Makefile.in:
    De-cp

2001-12-20 01:57  gregor

    * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
    jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
    Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
    include/parrot/.cvsignore, include/parrot/interpreter.h,
    include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
    lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
    lib/Parrot/Jit/i386-nojit.pm:
    Initial JIT implementation.

      * Enabled with test_parrot -j. 20x speed boosts seen.

      * Unsupported archs mapped to i386-nojit. Don't do -j on them.

      * More to come.

    Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>

2001-12-20 01:53  jgoff

    * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
    core.ops - Removed key operators, they should be hidden from the
    assembler.  t/op/key.t - No need to test the nonexistent key
    operators.

2001-12-20 00:13  ajgough

    * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
    that asking for type of entry at depth causes segfault as stack is
    zero based, fixed cmp in core.ops to reflect this.  Last test is
    skipped as we don't do exceptions right yet.

2001-12-19 19:11  ajgough

    * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
    non-being was causing Irix "issues".

2001-12-19 03:37  jgoff

    * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
    004_combined.t: Changed tests to make sure they pass with the
    addition of the clone operator.

2001-12-18 20:06  gregor

    * interpreter.c, include/parrot/interp_guts.h:
    Performance improvements to the predereferencing code path
    suggested to me over lunch yesterday by my friend John Kennedy.
    The goal is to remove the additional test in the inner loop that
    was checking for NULL to decide whether or not to call the
    prederef() function. Also moved pc & pc_prederef syncing outside
    the inner loop.

      * Changed the prototype of the prederef() function in
        interpreter.c to match that of an opfunc.

      * Instead of initializing the prederef void * array with NULL,
        we initialize it with pointers to prederef().

      * prederef() now returns the prederef_pc passed in, so that
        after predereferencing, the same location is executed, but now
        with the real code being called.

    Thanks to: John Kennedy

2001-12-18 19:59  ajgough

    * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
    (including some more in the skipped string -> int tests).

2001-12-18 07:06  jgoff

    * MANIFEST: Forgot to add classes/perlarray.pmc

2001-12-18 07:05  jgoff

    * Makefile.in, core.ops, global_setup.c, vtable.tbl,
    classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
    classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
    classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
    t/pmc/pmc.t: Big update...  Makefile.in - Added
    classes/perlarray.pmc core.ops - Added new series of set() ops for
    arrays global_setup.c - Initialized perlarray classes/Makefile.in -
    Added perlarray.pmc classes/*.pmc - Added
    set_{integer,number,string}_index and
    get_{integer,number,string}_index include/parrot/pmc.h - Added new
    type t/op/pmc.t - Added basic array test

    classes/perlarray.pmc - Added

2001-12-17 05:29  jgoff

    * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
    generator to use clone operator instead of set Px,Py

2001-12-17 05:25  jgoff

    * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
    classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
    PMC,PMC operator. Uses the clone() vtable entries.

2001-12-17 04:51  jgoff

    * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
    entry

2001-12-17 04:41  jgoff

    * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
    directory...

2001-12-17 04:41  jgoff

    * languages/miniperl/Makefile.PL: Moved it to the proper directory.

2001-12-17 04:39  jgoff

    * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
    Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
    t/

2001-12-17 04:27  jgoff

    * languages/miniperl/Miniperl.pm: Latest version of the driver.
    Admittedly it's a little thin on true OO, but the algorithms are
    the key.

2001-12-17 04:24  jgoff

    * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
    003_generator.t, 004_combined.t: Much more comprehensive test suite
    for the codegen et al

2001-12-17 04:22  jgoff

    * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
    Tokenizer.pm: Newer codegen, tightened up parser output, added hash
    key handling

2001-12-17 04:20  jgoff

    * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
    more comprehensive.

2001-12-17 04:17  jgoff

    * languages/miniperl/foo.mpl: Test file that'll be outdated by
    changes to the new compiler

2001-12-17 04:11  jgoff

    * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
    files to Miniperl/

2001-12-16 14:11  simon

    * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
    t/pmc/pmc.t:
    Fix bogus assumption that multiplying an integer by an integer
    yields an integer.

2001-12-16 12:48  simon

    * make_vtable_ops.pl:
    Fixed op exploder.

2001-12-16 12:45  simon

    * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
    Expand multimethod vtable ops.

2001-12-16 12:04  simon

    * Makefile.in:
    Added 'cvsclean' which doesn't zap CVS/* directories.

2001-12-15 01:50  dan

    * include/parrot/string.h: Fixed typo in string.h. lagnuage,
    indeed!

    Thanks to grunblatt fom #parrot for the catch

2001-12-15 01:39  dan

    * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
    languages/miniperl/.cvsignore, languages/miniperl/Makefile,
    languages/miniperl/Makefile.in,
    languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
    languages/scheme/Makefile, languages/scheme/Makefile.in: Build
    tweaks.

    Courtesy of: Jay McCarthy <jay@kenyamountain.com>

2001-12-14 17:39  dan

    * t/op/trans.t: More trans tests.

    Courtesy of: Simon Glover <scog@roe.ac.uk>

2001-12-14 07:41  robert

    * make.pl: - define MAKE macro - topological sort and subgraph
    order - start of timestamp stuff   (still badly broken)

2001-12-14 06:06  jgoff

    * optimizer.pl: Hopefully this should do the trick..

2001-12-14 06:04  jgoff

    * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer

      optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.

      The optimizer performs its work on a file post-macro expansion.
      Run it on a .pasm file, preferably with some trivially reducible
    operations
      like 'add I0,5,-6' or 'mul I0,I1,0'

2001-12-14 05:48  robert

    * Makefile.in: case error EXE -> exe

2001-12-14 05:42  robert

    * Makefile.in: remove legacy PDISASM macro

2001-12-14 04:01  dan

    * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
    better Win building

    Courtesy of: Garrett Goebel <garrett@scriptpro.com>

2001-12-13 22:03  dan

    * Configure.pl, Makefile.in, Parrot/Test.pm,
    languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
    lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
    can change it without having to change the world.

2001-12-13 21:57  dan

    * core.ops, interpreter.c, docs/parrot_assembly.pod,
    include/parrot/interpreter.h, t/op/debuginfo.t: Added current
    file/line/package to interp structure, with ops to get and set
    them. Now we can know where we are!

2001-12-13 19:43  dan

    * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
    WinXP builds work out of the box

2001-12-13 17:05  dan

    * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
    name again--makes case-insensitive systems much happier.

2001-12-13 16:21  dan

    * core.ops, key.c, string.c, test_main.c, trace.c,
    classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
    compiler warnings

    Courtesy of: Josh Wilmes <josh@sky.net>

2001-12-13 13:33  gregor

    * languages/jako/Makefile.in:
    Improved the method of calling the assembler.

2001-12-13 13:30  gregor

    * languages/jako/Makefile.in:
    Improve the build process. It now works from the main parrot dir,
    and from the languages/jako directory. Now uses the .SUFFIXES
    target and generic build rules to reduce clutter in the
    Makefile.in.

2001-12-13 13:29  gregor

    * languages/jako/.cvsignore:
    Ignore the (now generated Makefile), and don't ignore .list files
    anymore, since we aren't generating them.

2001-12-13 13:11  gregor

    * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
    languages/Makefile.in, languages/jako/Makefile,
    languages/jako/Makefile.in:
    Added a 'languages' target to the top-level Makefile.in, and
    modified the jako build procedure to involve Makefile.in -->
    Makefile too (done by Configure.pl).

    NOTE: languages/jako and language/scheme are built.
    languages/miniperl wasn't building right, so it was left off for
    now.

2001-12-13 12:15  gregor

    * MANIFEST:
    Added MAINTAINER file and mandelzoom.jako from languages/jako to
    the MANIFEST.

2001-12-13 12:12  gregor

    * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
    ops2c-prederef.pl, ops2c.pl, test_main.c,
    include/parrot/interp_guts.h, include/parrot/interpreter.h,
    include/parrot/op.h, include/parrot/oplib/.cvsignore:
    Welcome to the Just-in-Time Predereferencing Patch!

    This patch implements a "predereferencing" mode for parrot. That
    means that a lot of the dereferencing you see in DO_OP and in the
    opfuncs is done up front (really, JIT) rather than as and each time
    we execute each op in the byte code stream.

    This works by creating an array of void pointers with the same
    number of elements as the byte code array. This array starts out
    life zero-initialized.    Each time we go to execute an op, we check
    first to see if we have a NULL pointer at *cur_opcode. If so, we
    know we haven't done our predereferencing yet (this is the JIT
    part), so we call the prederef() function with sufficient args that
    it can go look up opfunc pointers and op arg types and put the
    opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
    where N is the number of args (counting the op itself as one arg).

    We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
    to have inline INTVAL constants.

    I've been getting about a 22% speed increase over vanilla code path
    when I compile with -O0. Advantage decreases at -O9 here. I tested
    with mops.pbc, and also by temporarily putting the -P flag in
    Parrot/Test.pm and running all the tests. So, this code is as
    correct as the test suite can detect.

    Here's how it plays out in the code:

      * New script ops2c-prederef.pl

        Copy-paste code reuse from ops2c.pl. Modified to expect the
    args to give
        a void ** cur_opcode and to return a void **.

      * Modified ops2c.pl

          * opfuncs are now static. Who needs to call them by name from
    outside,
        anyway? They are accessed via the opfunc table.

          * Some MACRO stuff to make things work whether we prederef or
    not. It
        may be possible to get rid of these some day if other folks
    agree
        that we should be using CODE object pointers + offsets as
    our PC
        rather than raw pointers to either opcode_t's or (void *)'s
        (depending on prederef mode or no).

      * core.ops modified to be usable to build both kinds of opfuncs.
    For now,
        this means:

          * calls to push_generic_entry(... cur_opcode ...) were
    changed to
        push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
    a
        macro that does the right thing in both kinds of ops.c
    files.

        This is applicable to the bsr op. If we treated
    destinations as
        (Code PMC + local offset) rather than as
    pointer-to-memory-somewhere,
        this wouldn't be a big deal. We may need to do that at some
    point
        anyway, so that when you jump around and return not only do
    you have
        the right PC (pointer, today), but you also have the
    thread/interpreter
        knowing what chunk of bytecode it is in at all times
    (assuming we'll
        allow reflection, as in ops that query or affect the
    current CODE PMC).

          * runinterp was modified. Instead of copying the top-level
    PackFile struct
        and blasting its byte_code pointer, we simply call runops
    on the new
        interp, passing in the pointer to the current interp's code
    and the
        offset into that code at which to start (this last arg used
    to be a
        pointer PC, now its an offset PC).

      * include/parrot/op.h

          * new typedef for prederef opfuncs (they return void **)

      * include/parrot/interp_guts.h

          * New DO_OP_PREDEREF() macro described above.

      * include/parrot/interpreter.h

          * New prototype of runops() -- see below.

          * resume_addr field changed to resume_flag and resume_offset
    pair of fields.
        We might be resuming from interp using prederef to one not
    or vice-versa,
        so pointers between the two don't play nice together.
    Offsets are beautiful.

          * New PARROT_PREDEREF_FLAG constant

      * interpreter.c

          * include "parrot/oplib/core_ops_prederef.h"

          * prederef() function described above.

          * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
    macro as its core.

          * runops() modified to take size_t CODE-relative offset PC
    rather than
        pointer PC. This made other things workable and doesn't
    seem to have lost
        anything important (IMO).

      * test_main.c

          * New flag '-P' to enable predereferencing.

      * Makefile modified to build core_ops_prederef.c from core.ops
    via
        ops2c-prederef.pl.

        BTW, also added missing $(INC)/interp_guts.h to H_FILES.

        Added core_ops_prederef$(O) to O_FILES

2001-12-13 12:12  gregor

    * languages/jako/MAINTAINER:
    Thought it would be nice to put this right in the code...

2001-12-13 04:36  jgoff

    * languages/miniperl/Miniperl/Generator.pm: Commented out
    debugging, fixed register spillover algorithm

2001-12-13 04:23  jgoff

    * make.pl: Found and fixed obob in the parser (Wasn't parsing last
    line) Restructured a bit of the dependency generator to fix a
    different obob bug.

2001-12-13 03:43  robert

    * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod

2001-12-13 03:03  jgoff

    * make.pl: Added make.pl

2001-12-13 02:44  jgoff

    * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
    replacement in perl.  Non-compliant bits - Takes absolutely -NO-
    special flags...             - Dies on undefined macros
    such as $(PDISASM) in current make               - Dies on
    recursive macro expansions             (Doesn't test for
    mutual or multipart loops)               - In general it
    seems to be a little less lenient...  Missing bits - File
    mod/creation times aren't being looked at           - Actions
    aren't being taken        - The few funky variables ($@, $<)
    aren't being dealt with Bugs - Line numbers are slipping a bit.

2001-12-13 02:29  jgoff

    * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
    Reconstructing files to make the parser flow a little better.

2001-12-13 00:51  dan

    * resources.c: Be a bit less wasteful with resources that don't
    need to be aligned

2001-12-12 18:22  dan

    * Makefile.in: D'oh! Fixed looping makefile bug.

    Courtesy of: "Jaen Saul" <jaen@saul.ee>

2001-12-12 16:23  jgoff

    * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry

2001-12-12 16:22  jgoff

    * MANIFEST: Manifest additions for languages/miniperl

2001-12-12 16:19  jgoff

    * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
    tests. These are left over from the Scheme suite and shouldn't be
    used yet.

2001-12-12 16:18  jgoff

    * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
    Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
    modules. Miniperl/ is where the real work gets done.  t/ is largely
    vacant because it isn't ready to survive real tests yet.

2001-12-12 16:17  jgoff

    * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
    mpc: Final go-round, hopefully.

    languages/miniperl/Makefile - Used basically to run tests, as there
    is nothing                 here that needs to be
    dynamically built.  languages/miniperl/Miniperl.pm - Stub module
    that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
    Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
    compiler stub

2001-12-12 16:09  dan

    * Configure.pl: Setting a variable with the make command name is
    useful.

2001-12-12 15:07  simon

    * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
    Recursive make considered "ow, don't do that".

2001-12-12 14:45  dan

    * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
    non-portable code) Killing builds on Win32 native. Small patch
    applied which hopefully fixes it.

2001-12-12 06:12  ajgough

    * classes/Makefile.in: perl is $(PERL), you know it makes sense.

2001-12-12 06:08  ajgough

    * Makefile.in: perl is $(PERL).

2001-12-12 06:00  ajgough

    * t/op/integer.t: Added tests to integer.t so that all permutations
    of arguments are actually called at some point.

2001-12-12 05:18  ajgough

    * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
     Tests for sleep i|ic

2001-12-12 05:09  ajgough

    * t/op/stacks.t: Added pushp and popp register stack tests.

2001-12-12 04:51  ajgough

    * t/op/stacks.t: Added tests for save and restore, for all register
    types.    Let there be Haiku.

2001-12-12 04:27  ajgough

    * t/op/basic.t: bsr_i test.  You know you want it.

2001-12-12 02:55  ajgough

    * MANIFEST: Added hints/os2.pl to MANIFEST.

2001-12-12 02:52  jgoff

    * core.ops, key.c: Final checkin... These are actually the correct
    copies.

2001-12-12 02:12  jgoff

    * include/parrot/key.h: key.c - Removed a few functions,
    generalized set_element_value and element_value     to accept
    KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
    core.ops - Modified to accept the new return style.

    This is a prelude to adding virtual-table methods to allow hashing
    &c. Expect at least one or two more redesigns before this settles
    down. However, it still passes the original tests.

2001-12-11 13:35  gregor

    * runops_cores.c:
    Fixed a typo.

2001-12-11 12:03  gregor

    * .cvsignore:
    Don't ignore test_prog, but do ignore parrot.

2001-12-11 12:03  gregor

    * classes/.cvsignore:
    Ignore the generated file default.h

2001-12-11 04:07  jgoff

    * key.c: Key source

2001-12-11 04:05  jgoff

    * include/parrot/key.h, t/op/key.t: Needed header file, new test

2001-12-11 04:00  jgoff

    * core.ops: Added new key aggregate operations to core ops.

2001-12-11 04:00  jgoff

    * include/parrot/parrot.h: Added key.h to header list

2001-12-11 03:59  jgoff

    * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t

2001-12-11 03:58  jgoff

    * Makefile.in: Added implementation of key aggregates.

2001-12-08    Release 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

2001-12-08 23:07  simon

    * README:
    README good to go.

2001-12-08 23:05  simon

    * Configure.pl, Makefile.in, README, Parrot/Test.pm,
    docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
    languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
    test_prog? What is test_prog?

2001-12-08 22:57  simon

    * ChangeLog:

    Oops, the changelog commit was on *this* machine.

2001-12-08 22:56  simon

    * NEWS:
    Updates to NEWS and ChangeLog pre-release.

2001-12-08 22:07  simon

    * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
    classes/perlnum.pmc, classes/pmc2c.pl:
    Add "default" PMC vtable so you can inherit implied stuff.

2001-12-08 21:24  simon

    * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
    docs/vtables.pod, lib/Parrot/PackFile.pm:
    Getting the documentation up to scratch.

2001-12-08 21:21  simon

    * classes/pmc2c.pl:
    Allow inheriting from default class.

2001-12-07 20:43  gregor

    * examples/assembly/queens.pasm:
    Regenerated the file with the latest jakoc.

2001-12-07 20:29  simon

    * core.ops, t/op/stacks.t:
    Rename "rotate" to "rotate_up".

2001-12-07 20:15  simon

    * t/op/stacks.t:
    Some tests for rotate.

2001-12-07 00:55  gregor

    * core.ops:
    Cast the result of the pointer arithmetic, since without the cast
    there are warnings with some compilers, and without the parens
    around the pointer arithmetic, precedence breaks the meaning and
    causes crashes.

2001-12-06 23:37  simon

    * core.ops:
    Temporary. I prefer compiler warnings to segfaults, thanks.

2001-12-06 23:34  simon

    * runops_cores.c:
    Make "trace" work again.

2001-12-06 21:23  dan

    * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm

2001-12-06 21:22  dan

    * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
    lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy

2001-12-06 19:22  simon

    * core.ops:
    Yet another "How the *%$! did that compile?" moment.

2001-12-06 18:28  dan

    * hints/vms.pl: Fix to build, with a HERE logical required

2001-12-06 17:48  dan

    * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
    docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
    changes to the interpreter--flags are now part of the interp
    structure.

    Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>

2001-12-06 14:02  gregor

    * docs/intro.pod:
    s/little_languages/languages/ in Jako section.

2001-12-06 13:15  simon

    * Makefile.in:
    Ensure the documentation gets made.

2001-12-06 13:12  simon

    * MANIFEST, docs/intro.pod:
    Documentation! Added the "Some Assembly Required" article with
    minor updates.

2001-12-06 00:39  simon

    * core.ops:
    More "eq" support.

    Courtesy of: Nguon Hao Ching <hao@netaxs.com>

2001-12-06 00:37  simon

    * test_main.c:
    Add the "-d" debug flag. Doesn't actually *do* anything yet.

    Courtesy of: Melvin <mrjoltcola@mindspring.com>

2001-12-06 00:11  tom

    * string.c, chartypes/unicode.c, chartypes/usascii.c,
    encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
    include/parrot/chartype.h, include/parrot/encoding.h,
    include/parrot/parrot.h: Moved string to number conversion code out
    of the encoding layer and into the main string layer as neither the
    encoding layer nor the character type layer knows enough on it's
    own to do the conversion correctly.

2001-12-05 23:12  tom

    * Makefile.in: Rebuild the classes directory if any of the object
    files for the classes are missing rather than only when perlint.o
    is missing.

2001-12-05 19:43  gregor

    * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
      * Reworked the constantize_string() stuff a little bit because it
    was
        puking on things like "\033[H\033[2J\0" (which occurs in the
        languages/jako/mandelzoom.jako example).

2001-12-05 19:39  gregor

    * languages/jako/: Makefile, mandelzoom.jako:
    Added 'mandelzoom' example.

2001-12-05 19:38  gregor

    * languages/jako/jakoc:
      * Added sleep()

      * Changed some instances of die() to confess()

2001-12-05 18:34  gregor

    * t/: op/pmc.t, pmc/pmc.t:
    s/sting->int/string->int/

2001-12-05 18:08  gregor

    * Parrot/.cvsignore:
    Ignore PMC.pm

2001-12-05 18:05  gregor

    * classes/.cvsignore:
    Ignore the generated files.

2001-12-05 17:19  gregor

    * pbc2c.pl:
      * Reverted recent changes, since they broke the script. Real fix
    coming
        later.

2001-12-05 17:03  simon

    * classes/Makefile.in:
    Remember: change Makefile.in, not Makefile. D'oh.

2001-12-05 17:02  simon

    * Makefile.in:
    Ensure PMC.pm gets remade.

2001-12-05 16:58  simon

    * MANIFEST, Makefile.in, classes/Makefile.in,
    classes/perlundef.pmc, include/parrot/pmc.h:
    Add perlundef class.

2001-12-05 16:45  simon

    * core.ops:
    Document "new P0, foo"

2001-12-05 16:43  simon

    * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
    lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
    Allow assembler to know about PMC class names.

2001-12-04 13:39  ajgough

    * MANIFEST: Added t/op/pmc.t to MANIFEST.

2001-12-04 05:02  ajgough

    * classes/perlnum.pmc: Picky compiler pointed out probable thinko
    in perlnum.c

2001-12-04 04:24  ajgough

    * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
    broken form of strtod and appropriate tests.  Does not yet check
    for overflow.

2001-12-04 01:31  ajgough

    * string.c, encodings/singlebyte.c, encodings/utf16.c,
    encodings/utf8.c, include/parrot/encoding.h: Added length parameter
    to extract_num and extract_int string vtables, without this it
    would be impossible to have strings with nulls in while still
    knowing where they ended.

2001-12-03 18:40  ajgough

    * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
    encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
    include/parrot/string.h: Moved pmc string to number conversion into
    the string encoding tables.

2001-12-03 00:21  ajgough

    * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
    for p-> integer.

2001-12-02 23:09  jgoff

    * classes/Makefile.in: Removed some redundant targets.

2001-12-02 19:02  ajgough

    * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
    equality macro rather than using perl to generate expected output,
    all tests now have <<OUTPUT.

2001-12-02 17:44  ajgough

    * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
    for pmc.t as well.  Will probably move macros into another file at
    some point, although this might be best left until the tests are
    unperled.

2001-12-02 06:16  jgoff

    * classes/pmc2c.pl: It wasn't properly setting the vtable index
    within Parrot_Perl{Class}_init.

2001-12-02 06:09  jgoff

    * classes/Makefile.in: I seem to have removed *$(O) twice..

2001-12-02 05:06  jgoff

    * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
    Configure.pl - Removed '-I./include', added classes/Makefile
    generation MANIFEST    - Added classes/Makefile.in Makefile.in  -
    Removed old classes/* make stuff        Added target for
    classes/Makefile

2001-12-02 04:48  jgoff

    * classes/Makefile.in: Going to be used shortly...

2001-12-02 04:40  jgoff

    * docs/Makefile: Configure.pl - Added automatic makefile creation
    for docs/ and classes/              Removed '-I./include' because
    it was getting incorrectly          passed to classes/
    MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
    - Removed classes/ build stuff, replaced with classes/Makefile.in
            Added '-I./include' locally docs/Makefile - Should no
    longer be used, but I'm not brave enough to do a
    cvs delete.

2001-12-02 01:21  ajgough

    * t/op/trans.t: Refactored trans math tests to have hard coded
    expected return values and be more ready to be unperled at some
    point in the future.  Added $fp_equality_macro which is a
    "nearly-equal-to" function.

2001-12-02 01:18  ajgough

    * Makefile.in: Humph.  People really ought to use Makefile
    variables, s/perl/$(PERL)/ throughout.

2001-12-01 18:15  jgoff

    * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
    figure out what to do vis-a-vis the lack of snprintf.

2001-11-30 13:14  ajgough

    * t/op/: integer.t, number.t: Added tests for abs ops to number.t
    and integer.t

2001-11-30 13:14  ajgough

    * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
    -, else ... form.

2001-11-30 10:36  simon

    * core.ops:
    Rewrite print_p to do the right thing.

2001-11-30 06:21  jgoff

    * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
    concat,           integer/number/string math

2001-11-30 06:20  jgoff

    * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
    classes/perlint.pmc - Fixes and expanding for concat and math with
    strings classes/perlnum.pmc - Fixes and expanding for concat and
    math with strings classes/perlstring.pmc - Fixes and expanding for
    concat and math with strings

2001-11-29 15:21  ajgough

    * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
    $^X lies, which confused bash which make uses to run things when
    doing its stuff.

2001-11-29 04:58  jgoff

    * classes/perlstring.pmc: Removed C++-style comments for good
    measure

2001-11-29 04:51  jgoff

    * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers

2001-11-29 04:28  jgoff

    * global_setup.c: Initialize PMC strings

2001-11-29 04:25  jgoff

    * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
    string PMCs.

2001-11-29 04:24  jgoff

    * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
    files to properly upgrade int to num, do calculations.    Also added
    basic string operations. Currently errors out on anything but set
    operations, but this will be fixed soon.

2001-11-29 04:22  jgoff

    * Makefile.in: PMC .c files weren't getting cleaned out.

2001-11-28 17:00  simon

    * t/harness:

    Make csh-glob happy.

    Courtesy of: Andy Dougherty: <doughera@lafayette.edu>

2001-11-28 16:40  simon

    * classes/perlnum.pmc:

    De-C++

2001-11-28 15:22  simon

    * string.c:

    Fixes Alex's string concat worry.

2001-11-28 14:27  ajgough

    * t/op/string.t: test "null onto null" incorrectly passing as it
    produced no output.  Output provided.

2001-11-28 11:14  simon

    * include/parrot/pmc.h:

    Placate AIX.

2001-11-26 21:03  dan

    * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1

2001-11-26 17:29  simon

    * classes/perlint.pmc:

    Various subtle but non-showstopper bugs.

2001-11-26 11:23  simon

    * classes/pmc2c.pl:

    Replace dependency on Text::Balanced

    Courtesy of: Bart Lateur <bart.lateur@pandora.be>

2001-11-26 05:22  jgoff

    * global_setup.c: Last file that should need to be committed. I
    swear.

2001-11-26 05:09  jgoff

    * core.ops: Let's try this again... Changes to core.ops required

2001-11-26 04:58  jgoff

    * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
    t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
    core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
    Uncommented PerlNum_init classes/perlint.pmc - Added set_number
    functions classes/perlnum.pmc - Set up basic number functions
    t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
    tests against numbers and numbers+integers

2001-11-25 13:18  simon

    * Makefile.in:
    Windows XP make doesn't like $<

2001-11-25 12:56  simon

    * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
    classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
    classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
    examples/assembly/mops_p.pasm:
    PMC preprocessor.

    Courtesy of: Angel Faus <afaus@corp.vlex.com>

    I (Simon) also added a couple more integer methods, but no tests
    since I'm a Bad Person.

2001-11-25 08:40  brentdax

    * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
    lib/Parrot/OpsFile.pm: Allow _ in op names

2001-11-25 05:54  jgoff

    * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
    Added basic math ops t/op/pmc.t - Added tests of basic math ops

2001-11-23 18:27  simon

    * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
    Add everything you need to make MOPS use PMCs.

2001-11-23 18:06  simon

    * core.ops:
    Eh, you'll need this for rewriting mops.pasm.

2001-11-23 17:55  simon

    * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
    t/pmc/pmc.t:
    More work on integer PMCs.

2001-11-23 17:29  simon

    * Makefile.in:
    Surprise! Whitespace! HLAGHLAGHLAGH

2001-11-23 17:28  simon

    * Makefile.in, ops2c.pl, ops2pm.pl:
    Add vtables.ops to the core

    Courtesy of: Jeff Goff <jgoff@speakeasy.net>

2001-11-22 18:39  simon

    * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
    t/pmc/pmc.t:
    We can now create PMCs.

2001-11-21 05:49  jgoff

    * Makefile.in: Makefile cleans up *.pasm *.pbc *.out

2001-11-20 16:00  simon

    * docs/vtables.pod, include/parrot/pmc.h:
    Reorder PMC flags so there's a fixed number of user-defined flags.

    Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>

2001-11-19 03:39  jgoff

    * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
    Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
    nested quotes.    t/op/basic.t - Add tests for single-quoted strings,
    escaped quotes, and proper          handling of newlines.

2001-11-16 22:03  simon

    * classes/perlint.c:
    More work on the Perl Integer class. More needed, though.

2001-11-16 21:57  simon

    * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
    Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.

2001-11-16 20:49  simon

    * interpreter.c, runops_cores.c, trace.c,
    include/parrot/runops_cores.h:
    Kill superfluous runops cores.

2001-11-16 17:50  simon

    * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
    classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
    include/parrot/parrot.h, include/parrot/pmc.h:
    Skeleton for Perl scalar types, done right.

2001-11-16 16:15  simon

    * classes/genclass.pl:
    This tidies up genclass to deal with the new-style multimethods.

2001-11-16 15:29  simon

    * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
    lib/Parrot/Vtable.pm, include/parrot/parrot.h:
    Rework multimethods to be *true* multimethods - that is, have
    different types.

2001-11-15 22:29  simon

    * MANIFEST, Makefile.in, pmc.c:
    pmc.c linkage and support. Oh, and making it compile.

2001-11-15 22:26  dan

    * t/op/interp.t: Forgot to tell CVS about the test...

2001-11-15 22:10  dan

    * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
    docs/parrot_assembly.pod, include/parrot/string.h: Added in support
    for PMC registers for the interpreter.

    Added in the docs for the runinterp opcode.

    Added in code for both the newinterp and runinterp opcodes, so we
    can now create new interpreters from within parrot and have them do
    things. (Though we can't pass data back and forth. Yet)

2001-11-15 21:24  simon

    * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
    More documentation, and other changes as discussed with Dan.

2001-11-15 19:51  simon

    * classes/scalarclass.c:
    De-cut-and-pasto.

2001-11-15 19:50  simon

    * classes/scalarclass.c:
    A little code tidiness.

2001-11-15 19:33  simon

    * include/parrot/pmc.h:
    Missed this in the previous commit - un-constantize the base for
    user-defined PMC flags.

2001-11-15 19:28  simon

    * classes/scalarclass.c:
    Hey look, sanity.

2001-11-15 17:09  simon

    * classes/scalarclass.c:
    It seems I have completely forgotten how to write C.

2001-11-15 16:53  simon

    * docs/vtables.pod:
    Start of the PMC classes documentation.

2001-11-15 14:46  simon

    * classes/scalarclass.c:
    Changing to use a Perl-style struct instead of the union cache.

2001-11-13 23:56  tom

    * string.c: Removed leading _ from string_index as function names
    starting with _ are reserved to implementors by the C standard.

    Also fixed string_index to use the encoding routines instead of
    assuming a single byte encoding.

2001-11-13 12:59  jgoff

    * string.c: Patched string_concat to accept null strings.  That
    test was failing. Nothing to do with ord().

2001-11-13 12:43  jgoff

    * string.c: string_ord function, string_concat fixes

2001-11-13 04:52  jgoff

    * core.ops: Added ord to core.ops

2001-11-13 04:35  jgoff

    * docs/strings.pod, include/parrot/exceptions.h,
    include/parrot/string.h, t/op/string.t: core.ops - Added ord
    operator, documentation string.c - Added string_ord, _string_index
    (_string_index is a static helper)        Patched
    string_concat to handle null strings properly.    docs/strings.pod -
    Description of string_ord include/parrot/exceptions.h - Added
    ORD_OUT_OF_STRING exception include/parrot/string.h - Added
    string_ord() t/op/string.t - Added full set of test for
    ord_i_(s|sc)(_(i|ic))?

    string.c contains a bit of documentation explaining the logic
    behind _string_index, primarily having to do with multiple encoding
    formats.

2001-11-12 22:30  simon

    * t/op/macro.t:
    Count 'em.

2001-11-12 22:28  simon

    * Makefile.in:
    Add a rule to compile "platform"

2001-11-12 22:26  simon

    * Makefile.in:
    Tidy up distclean target.

2001-11-12 16:54  dan

    * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
    t/op/macro.t: Fixes to the assembler's macro facility and a test

    Courtesy of: Jeff <jgoff@speakeasy.net>

2001-11-12 16:50  dan

    * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
    stdin

    Courtesy of: Jeff <jgoff@speakeasy.net>

2001-11-12 16:36  dan

    * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
    CygWin

    Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>

2001-11-12 11:22  simon

    * examples/assembly/mops.pasm:

    Trivial tightening of mops loop.

2001-11-07 23:57  ajgough

    * docs/tests.pod: This is a basic quide to writing tests with
    assembler.

2001-11-07 22:29  dan

    * stacks.c: Added a little documentation on the cleanup parameter
    for an entry

2001-11-07 14:43  dan

    * MANIFEST, platforms/generic.c, platforms/linux.c,
    platforms/linux.h: Portability patches.

    Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2001-11-06 19:51  tom

    * Makefile.in: Clean up object files in the subdirectories as well
    as those in the top level directory.

    Enhanced version of patch from Daniel Grunblatt
    <daniel@grunblatt.com.ar>

2001-11-06 16:14  dan

    * Configure.pl, MANIFEST, Makefile.in, core.ops,
    platforms/generic.c, platforms/generic.h: Made things a bit more
    platform-independent. Makefile still needs work to pick up changes
    to the platform-specific files.

2001-11-05 21:32  dan

    * docs/parrot_assembly.pod: Added docs for the GC control ops

2001-11-04 02:52  gregor

    * platforms/: win32.c, win32.h:
      * win32 dynamic loading functions.

    Courtesy of Jason Diamond <jason@injektilo.org>

2001-11-04 00:04  brentdax

    * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
    allows an absolute path to be used and gives a useful error message
    if the original source file can't be found

2001-11-02 12:37  gregor

    * platforms/: linux.c, linux.h:
      * Beginning of dynamic loading support. Linux only for now.

2001-11-02 12:13  gregor

    * MANIFEST, time.c, include/parrot/time.h:
      * Removed time.[hc], since they have been superseded by the new
    platform
        stuff.

2001-11-02 12:11  gregor

    * Configure.pl, Makefile.in, core.ops, vtable.tbl,
    classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
    include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
    platforms/win32.c, platforms/win32.h:
    Patch from Jason Diamond to make win32 platform stuff work:

    * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
    platform specific files in the platforms directory gets copied to
    the correct directories. The Makefile will re-copy the platform.h
    and .c files if the original is modified.

    * #include platform.h in parrot.h instead of time.h.

    * Removed time.h and time.obj from the Makefile. time.h and time.c
    aren't being used anymore since that code was moved to linux.c and
    win32.c.

    * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
    INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
    windows.h. This required updating several files besides parrot.h.

    * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
    instead of the missing identifiers (on Windows) in core.ops in the
    calls to open.

    * Added Parrot_sleep and Parrot_setenv to both the linux and win32
    platform files and called those from core.ops. The Linux code for
    these functions came from core.ops so they should hopefully work.

    Courtesy of Jason Diamond <jason@injektilo.org>

2001-11-02 06:43  brentdax

    * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
    for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)

2001-11-02 02:26  gregor

    * .cvsignore, MANIFEST, include/parrot/.cvsignore,
    platforms/linux.c, platforms/linux.h, platforms/win32.c,
    platforms/win32.h:
      * Beginnings of platform support files in platform/*.[hc]

2001-11-01 23:37  tom

    * classes/intclass.c: Added missing *'s to STRING arguments and
    return values to avoid compiler warnings.

2001-11-01 22:21  gregor

    * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
    include/parrot/parrot.h, include/parrot/time.h:
    Initial "fix" of time(n) op for Win32:

      * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>

      * time.c and include/parrot/time.h

        First attempt at getting this working across platforms. The
        macro WIN32 being tested might not be right.

      * New functions Parrot_intval_time() and Parrot_floatval_time()
        wrap the appropriate functionality depending upon platform.
        Changed core.ops to call these.

    Added obscure.ops with obscure transcendental ops.

    Added simple file I/O ops (close, open, read, write):

      * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>

      * I changed some arg ordering stuff.

      * I added read/write of INTVALs and FLOATVALs.

    Added environment variable ops (getenv, setenv)

    Added system error ops (err(i) and err(s) for accessing errno and
    strerr().

    Moved print ops in with other "temporary" developer ops, since
    they'll move to a devel.ops or temp.ops oplib once we have oplibs.

2001-10-31 22:51  tom

    * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
    packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
    strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
    encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
    encodings/utf8.c, include/parrot/chartype.h,
    include/parrot/encoding.h, include/parrot/exceptions.h,
    include/parrot/parrot.h, include/parrot/string.h,
    include/parrot/strnative.h, include/parrot/strutf16.h,
    include/parrot/strutf32.h, include/parrot/strutf8.h,
    include/parrot/transcode.h: Reworked the string code in line with
    Dan's latest design that separates character sets from encodings.

2001-10-31 19:53  dan

    * docs/parrot_assembly.pod: Finished I/O section of docs

2001-10-31 16:51  dan

    * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
    Moved includes out of core.ops and into parrot.h where they belong
    (suitably guarded with #ifdefs). Also some updates to
    parrot_assembly.pod

2001-10-30 21:43  dan

    * core.ops, stacks.c, docs/parrot_assembly.pod,
    include/parrot/stacks.h: Added entrytype opcode to fetch the type
    of the entry on the stack

2001-10-29 18:30  dan

    * stacks.c: You can turn off stack entry type validation on pop by
    passing in a type of 0 now. (For those cases where you just want to
    throw the darned thing away)

2001-10-29 14:37  gregor

    * core.ops, languages/jako/jakoc:
      * New variants of the save ops to save constants on the stack.
    This is
        useful for saving zero arg and result counts on the stack, for
    example.

      * Modified jakoc to to adapt to the newly announced calling
    conventions.
        Even though Jako source code appears to show subroutines with
    fixed
        numbers of arguments and results, they are implemented with the
        variable count calling convention. Future modifications will be
    needed
        to ensure that an exception is raised if the stack frame is of
    the
        wrong size (or, at least that we pop the complete frame off).
    We'll
        also have to make more changes to support the true
    fixed-arg-count
        and fixed-result-count parts of the calling convention spec.

2001-10-28 16:53  simon

    * MANIFEST, stacks.c, classes/scalarclass.c,
    include/parrot/stacks.h:
    Unbelievably bad errors of mine, plus a type incompatibility of
    Dan's.

2001-10-28 08:30  simon

    * classes/scalarclass.c:
    Beginning of a scalar class.

2001-10-28 08:29  simon

    * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
    lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
    include/parrot/pmc.h:
    This fixes the problem with vtables and pointer arithmetic.

2001-10-26 19:58  dan

    * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
    include/parrot/stacks.h: Split the generic stack into a user push
    stack and a control stack

2001-10-26 02:59  bdwheele

    * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]

2001-10-24 20:27  dan

    * languages/scheme/: Makefile, Scheme.pm, schemec,
    Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
    Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
    t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
    Scheme compiler

2001-10-24 20:23  dan

    * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
    interpreter needs in pdump.c. Added scheme bits to manifest

2001-10-24 16:43  gregor

    * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
      * Make the assembler handle octal character code escapes in
    string
        constants.

2001-10-24 15:56  dan

    * MANIFEST, examples/assembly/life.pasm: Added an example in to
    play the game of life

2001-10-24 15:54  dan

    * core.ops: Added sleep. We'll need to override this to do events
    properly anyway, so...

2001-10-24 14:03  gregor

    * Makefile.in, pbc2c.pl, pdump.c:
      * Adapt pdump.c and pbc2c.pl to the new requirement to pass
    interpreter
        pointer into string functions.

    Courtesy of: Ryan O'Neil <talisman580@yahoo.com>

2001-10-23 20:09  gregor

    * languages/jako/jakoc:
      * Terminological refinement in regexp capture comment.

2001-10-23 15:23  simon

    * classes/genclass.pl:
    Use a saner ANSI C construct to make MIPSPro happy.

    Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>

2001-10-23 00:34  tom

    * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
    strutf8.c, include/parrot/string.h: Make sure the interpreter
    structure is passed to the transcoder as necessary, including
    passing it to string_compare().

2001-10-23 00:32  tom

    * Makefile.in: Make pdump build again by including resources.o in
    the link.

2001-10-22 22:43  dan

    * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
    strutf32.c, strutf8.c, test_main.c, transcode.c,
    include/parrot/packfile.h, include/parrot/parrot.h,
    include/parrot/resources.h, include/parrot/string.h,
    include/parrot/transcode.h: Everything now uses the allocators and
    deallocators in resources.c.

    Unfortunately we lost standalone string-test mode, but I can cope
    with that.

    Please note that until we have a real allocation/deallocation/GC
    system, this'll leak. A *lot*.

2001-10-22 20:27  dan

    * MANIFEST, Makefile.in, pmc.c, resources.c,
    include/parrot/resources.h: First cut to handle arena allocation of
    PMC headers. (Amongst other things)

2001-10-22 19:02  dan

    * Configure.pl, config_h.in, register.c, include/parrot/register.h:
    Now each register type has its own mask macro, which is the right
    thing to do.

    Patch courtesy of Jason Gloudon <perl@gloudon.com>

2001-10-21 23:40  tom

    * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
    stack chunk and add a test to test this rollover in future.

    Courtesy of Jason Gloudon <perl@gloudon.com>.

2001-10-21 19:14  dan

    * include/parrot/string.h: Changed string 'unused' field to the
    language field.

2001-10-21 18:18  gregor

    * languages/jako/: Makefile, mops.jako:
      * Makefile: 'clean' target removes .list files, too. And, it does
    rm -f
        with wildcards rather than listing things explicitly.

      * mops.jako actually prints out the
    millions-of-operations-per-second
        (mops) value instead of just the operations-per-second value.

2001-10-21 18:03  simon

    * classes/intclass.o:
    *smack*! WRONG!

2001-10-21 17:47  simon

    * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
    Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
    classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
    lib/Parrot/Vtable.pm:
    Initial work on PMCs. Explanation to follow

2001-10-21 15:20  gregor

    * examples/assembly/queens.pasm:
      * Modernize the calling conventions in queens.pasm. It was using
    swap,
        which now must be rotate. Also, changed to use return values on
    the
        stack instead of in I0.

2001-10-19 18:14  gregor

    * core.ops, stacks.c, include/parrot/stacks.h,
    languages/jako/jakoc:
    Per Dan's request, replacing 'swap' op by 'rotate'.

      * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.

      * stacks.c and stacks.h: Removed swap-related functions from my
        prior commit, replacing them with stack_depth(), stack_entry()
        and rotate_entries().

        NOTE: The stack_depth() and rotate_entries() routines could
        be made more efficient through the caching of the sum of chunk
        'used' members from lower chunks in a field in the upper
        chunks. Also, if the interpreter's stack_base was changed to
        hold the pointer to the *top* chunk (since we usually come
        at the stack from the top down) instead of the *bottom*
        chunk. The code here at least works, and we can decide about
        bigger changes separately.

        For now, rotate only handles rotates in one direction and
        of magnituded one. A fully general rotate would do handle
        rotates in both directions and of arbitrary amounts. Again,
        this implementation is sufficient for current applications,
        and a feature-complete version can be developed if this turns
        out to be otherwise the right type of implementation.

        This change includes a new exception for ERROR_STACK_SHALLOW,
        meaning "not-empty-yet-not-deep-enough-for-what-you-asked".

      * jakoc: Changed the calling convention to use rotate instead
        of swap (of course). Also changed the convention for return
        value passing to use the stack as well.

2001-10-19 13:36  gregor

    * MANIFEST, core.ops, disassemble.pl, stacks.c,
    examples/assembly/queens.pasm, include/parrot/stacks.h,
    languages/jako/.cvsignore, languages/jako/Makefile,
    languages/jako/bench.jako, languages/jako/euclid.jako,
    languages/jako/fact.jako, languages/jako/jakoc,
    languages/jako/mandelbrot.jako, languages/jako/mops.jako,
    languages/jako/primes.jako, languages/jako/queens.jako,
    languages/jako/sub.jako:
      * New stack functions push_entry(), pop_entry() and swap_entry().
        The first two exist for the support of the last one. These
        functions don't care what is in the stack entries. These exist
        to support the new 'swap' op (see next bullet).

      * New op 'swap' for swapping the top two elements on the stack.
        This is necessary for passing arguments to functions, since
        the return address will be on top of any arguments that have
        been pushed on the stack. This way, you can use a (swap, pop)
        pair to retrieve each argument (for subroutine linkage).

      * Disassembler now prints numbers in decimal by default, with
        a new '-x' flag to turn on hexadecimal display. Since other
        members of the Parrot Tool Set use decimal by default, this
        makes it easier to compare output from the various tools.

      * Jako compiler has more explanatory comments and the following
        new features:

          * Lexically scoped variables.

          * Subroutines that take arguments and return values:

          sub int foo(int bar) {
            if (bar == 1) {
              return 42;
            } else {
              return 13;
            }
          }
          * ... if (...) and ... unless (...) statement modifiers
        can be used on next, last and redo.

          * Bitwise and (&, &=) and or (|, |=) ops.

          * Type names are just 'int', 'num', 'str', and 'poly' now.
        The old long names 'integer', 'number', 'string', and
        'polytype' are no longer valid.

          * Integer variable assignments can now use 0b (binary),
        0 (octal) and 0x (hexadecimal) radix prefixes on literals.

      * New Jako and Parrot assembly examples queens.{jako,pasm} for
        solving the eight-queens problem. The assembly example is a
        hand-modified version of the assembly code produced by the
        Jako compiler from queens.jako. A few unnecessary ops have
        been removed, lots of unnecessary labels have been removed,
        and all the Jako source code comments have been removed.

      * Makefile and .cvsignore in languages/jako modified so that
        the assembler produces listings when assembling the programs,
        yet the *.list files are ignored by CVS.

      * Made the default target in languages/jako/Makefile 'all'.

      * Modified some of the Jako examples to use some of the new
        features of Jako, such as subroutines and lexical variable
        scoping.

2001-10-19 02:43  gregor

    * runops_cores.c, include/parrot/runops_cores.h:
    Bug fix (gcc doesn't complain, but MIPSpro does):

      * Added missing extern to runops_cores array declaration in
        include/parrot/runops_cores.h

      * Also added 'const' there and in runops_cores.c

2001-10-18 15:18  gregor

    * .cvsignore, include/parrot/oplib/.cvsignore:
      * Ignore the vtable-related generated files.

2001-10-18 15:14  gregor

    * core.ops:
      * left and right shifts now allow the 2nd argument to be a
    constant.

2001-10-18 14:55  simon

    * make_vtable_ops.pl:
    This is C, not Perl. How on earth did that even compile?

2001-10-18 14:54  simon

    * make_vtable_ops.pl:
    More vtable ops.

2001-10-18 12:33  simon

    * Makefile.in, make_vtable_ops.pl, vtable.tbl:
    Initial stab at vtable opcode creation stuff.

2001-10-18 02:15  gregor

    * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
    include/parrot/interpreter.h, include/parrot/runops_cores.h,
    include/parrot/trace.h: Preparation for autogenerated runops cores:

      * Split tracing and runops core stuff out of interpreter.c into
        trace.c and runops_cores.c

      * Similar split of stuff from include/parrot/interpreter.h

      * Manifest and Makefile.in updates to make things still compile.

2001-10-18 01:21  gregor

    * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:

      * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl

      * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl

      * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)

      * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)

      * pbc2c.pl: Removed explicit include of <math.h>, replacing it
    with
        copy of $ops->preamble.

2001-10-17 22:32  bdwheele

    * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
    request.

2001-10-17 22:08  gregor

    * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
      * Now handles label-and-comment-only lines.

2001-10-17 22:04  bdwheele

    * interpreter.c: added more comprehensive trace output

2001-10-17 16:50  tom

    * Makefile.in: Removed the explicit rule for building mops.o from
    mops.c so that the implicit rule for compiling C files is used
    instead. This means that the chosen C flags are used, including any
    optimisation options.

2001-10-17 15:24  tom

    * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
    op explosion logic to be able to handle exploding this:

      sub(i, i|ic, i|ic)

    into these:

      sub(i, i, i)
      sub(i, i, ic)
      sub(i, ic, i)

    without also generating this unwanted version:

      sub(i, ic, ic)

    The enhanced version rejects any expansion where there is more than
    one expanded argument and all the expanded arguments are constants.

2001-10-17 14:20  simon

    * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
    Build fixes to use correct Perl version and ensure that things are
    running in the right directory.

    Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2001-10-17 13:16  simon

    * Makefile.in:
    core.pm is more critical than that.

2001-10-17 13:05  simon

    * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
    "Explode" ops into multiple versions for different parameters.

    Courtesy of: Tom Hughes <tom@compton.nu>

2001-10-17 12:54  simon

    * Makefile.in:
    Fix dependencies and cleaning.

2001-10-17 12:45  simon

    * Configure.pl, Makefile.in:
    Fixes to make Parrot compile without the temporary build hack

    Courtesy of: Jason Gloudon <perl@gloudon.com>

2001-10-16 20:43  gregor

    * Makefile.in:
      * Fixed dependencies for building Parrot/OpLib/core.pm

2001-10-16 19:35  bdwheele

    * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
    added test, thanks to Alex Gough

2001-10-16 16:49  bdwheele

    * core.ops: added opcode variants for constants and 3 arg concat

2001-10-16 15:12  bdwheele

    * core.ops: added "set Sx,Sy" as a string copy to match the other
    register-to-register copies available

2001-10-16 13:09  gregor

    * core.ops:
      * Added #include <sys/time.h> in the preamble for gettimeofday().

2001-10-16 13:09  gregor

    * Makefile.in:
      * Removed cd t; make, which no longer applies

2001-10-16 03:18  bdwheele

    * core.ops: fix save & restore operations to push correct type onto
    stack. [good eye to Jason Gloudon for noticing this]

2001-10-16 01:38  bdwheele

    * core.ops, register.c, examples/assembly/fact.pasm,
    include/parrot/register.h: send in the clones:    clone routines for
    parrot + example program

2001-10-15 22:37  gregor

    * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
    examples/assembly/Makefile, examples/assembly/bsr.pasm,
    examples/assembly/call.pasm, examples/assembly/euclid.pasm,
    examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
    examples/assembly/mops.pasm, examples/assembly/stack.pasm,
    examples/assembly/substr.pasm, examples/assembly/trace.pasm,
    t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
    t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
    t/test4.pasm, t/test5.pasm, t/trace.pasm:
      * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
    some
        renames so the names match what they demonstrate.

2001-10-15 22:18  gregor

    * core.ops, t/test.pasm:
      * time_n uses gettimeofday() to get sub-second times.

      * t/test.pasm uses time_n directly rather than doing int stuff
    and
        converting to num later.

2001-10-15 12:28  gregor

    * t/: test.pasm, test2.pasm, trace.pasm:
      * t/test.pasm prints using string constants instead of string
    regs.

      * t/test2.pasm assembles (using implicit op modes)

      * t/trace.pasm updated for new behavior of trace_ic, which does
    not
        require an 'end' after 'trace'.

2001-10-15 00:47  gregor

    * core.ops, interpreter.c, test_main.c,
    include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
    PARROT_PROFILE_FLAG

      * New runops cores to handle profiling

      * Support for -p flag in test_prog to enable profiling

      * New profile_ic op to control profiling at run-time

2001-10-14 21:54  gregor

    * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
    lib/Parrot/OpsFile.pm: Integrated op documentation.

      * core.ops now contains POD documentation of ops, interspersed
    with the
        ops themselves

      * Ops are organized into POD =head2 sections

      * Parrot/OpsFile.pm now treats the preamble of the ops file as
    anything
        up to the first POD directive OR op definition.

      * docs/Makefile now generates core_ops.pod from core.ops vi
    perldoc -u.

2001-10-14 11:58  simon

    * Makefile.in:
    Unbreak Digital Un^W^WTru64

2001-10-14 11:00  simon

    * Configure.pl:
    Remove weird typo.

2001-10-14 10:56  tom

    * Configure.pl: Stop Configure trying to make op_info.c and op.h as
    op_info.c no longer exists and op.h is no longer a generated file.

2001-10-14 10:54  tom

    * Makefile.in: Added vtable.h to the list of things removed by the
    clean target.

2001-10-14 01:43  gregor

    * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
    build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
    make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
    ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
    Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
    Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
    lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
    include/parrot/.cvsignore, include/parrot/interp_guts.h,
    include/parrot/interpreter.h, include/parrot/op.h,
    include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
    t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
    t/op/stacks.t, t/op/string.t, t/op/trans.t:
    Moby Patch:

      * basic_opcodes.ops and opcode_table replaced by core.ops

      * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
        and ops2c.pl. These convert *.ops to *_ops.c and
        include/parrot/oplib/*_ops.h

      * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm

      * disassemble.pl modified to use

      * interpreter.c modified to use structures in core_ops.c instead
        of the old op_info and op_func stuff. We're not yet to the
        point of handling multiple oplibs at a time, but we are getting
        there...

        Fingerprinting stuff disabled for now. We used to go off
        opcode_table. We need to rethink this. I have some ideas to
        make it unnecessary, but it remains to be seen whether others
        will like the direction they take us.

        Termination condition for while(){} loop in runops is now
        (pc) instead of (*pc). Any op can cause a HALT by returning
        a NULL pointer. Ops end, bounds and trace all do this. So, now
        the 'end' op body is actually executed, although all it does
        is HALT.

      * Makefile.in modified to perform a test build using pbc2c.pl,
        which is the bytecode --> C compiler I've posted to the
        list before.

      * Op full names are now autogenerated. Op root names must not
        contain underscores, so some op renamings have happened.
        Such as clear_i becoming cleari.

2001-10-13 11:49  simon

    * Configure.pl, MANIFEST:
    Make parrot actually build again.

2001-10-12 21:34  dan

    * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
    opcodes

2001-10-12 20:56  dan

    * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
    opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
    t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
    generic stack now in. We also have subroutines, of a simple sort!

2001-10-12 19:15  tom

    * t/op/string.t: Improved string comparison tests try all string
    combinations with each of the comparison ops.

2001-10-12 19:09  dan

    * interpreter.c: Properly sets up generic stack now

2001-10-12 19:09  dan

    * include/parrot/interpreter.h: Fixed stack chunk struct type in
    interpreter structure

2001-10-12 18:59  dan

    * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
    changes to get the generic stack working

2001-10-12 18:59  dan

    * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
    hints/vms.pl: Made the changes to figure out mask bits for various
    register and stack chunks

2001-10-11 22:09  dan

    * docs/parrot_assembly.pod: Tossed the parameter for return

2001-10-11 19:28  tom

    * strnative.c: Assignment, not comparison.  (Plus formatted for
    coding standards)

    Courtesy of Bryan C. Warnock

2001-10-05    Release 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)

2001-10-10 19:21  tom

    * basic_opcodes.ops, opcode_table, string.c, strnative.c,
    strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
    include/parrot/string.h, t/op/string.t: Added support for string
    comparisons and extended the comparison ops to include comparison
    of strings.

2001-10-10 17:58  dan

    * MANIFEST: Shouldn't have added vtable.h to the manifest...

2001-10-10 17:54  dan

    * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
    lib/Parrot/Vtable.pm: Now spits out the #defines for the various
    vtable type entries properly

2001-10-10 15:37  dan

    * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
    parse new vtable.tbl file now that I've actually checked *in* the
    new format vtable.tbl file...

2001-10-10 15:32  dan

    * vtable.tbl: New Column to indicate the type of the vtabel entry
    so we can know how many slots it takes

2001-10-10 05:26  thgibbs

    * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
    allow parrot to compile.  PACKAGE is not defined, therefore, I
    added a struct before it to have it not complain until we define
    PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
    semicolon at the end of the struct declaration.

2001-10-10 05:09  thgibbs

    * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
    string constants of the form U"string" become unicode encoded
    parrot strings and the form N"string" become native encoded parrot
    strings.

    Courtesy of: Tom Hughes <tom@compton.nu>

2001-10-10 04:55  dan

    * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
    support for generating the vtable function table offset macros

2001-10-10 01:05  simon

    * t/op/integer.t:
    The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
    compiles into the mod op, not the cmod_i op, hence wasn't testing
    what it thought it was.

    Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>

2001-10-09 03:45  thgibbs

    * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
    assembler to generate unicode strings.

    Courtesy of: Tom Hughes <tom@compton.nu>

2001-10-08 19:30  brentdax

    * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
    info for Parrot::Config to remember, more flexible test.c stuff

2001-10-08 15:04  gregor

    * basic_opcodes.ops:
      * Removed trash from early mod_i experiments (pardon our dust)

2001-10-08 14:56  gregor

    * basic_opcodes.ops:
      * Fixed a couple of typos.

2001-10-08 14:45  gregor

    * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
    Arithmetic enhancements:

      * Renamed existing mod_i as cmod_i and added "corrected" mod_i:

        NOTE: This "uncorrected mod" algorithm uses the C language's
    built-in
        mod operator (x % y), which is

        ... the remainder when x is divided by y, and thus is zero
    when y
        divides x exactly.
        ...
        The direction of truncation for / and teh sign of the
    result for %
        are machine-dependent for negative operands, as is the
    action taken
        on overflow or underflow.
                                     --
    [1], page 41

        Also:

        ... if the second operand is 0, the result is undefined.
    Otherwise, it
        is always true that (a/b)*b + a%b is equal to z. I both
    operands are
        non-negative, then teh remainder is non-negative and
    smaller than the
        divisor; if not, it is guaranteed only that the absolute
    value of the
        remainder is smaller than the absolute value of the
    divisor.
                                     --
    [1], page 205

        This op is provided for those who need it (such as
    speed-sensitive
        applications with heavy use of mod, but using it only with
    positive
        arguments), but a more mathematically useful numeric mod based
    on
        floor(x/y) and defined with y == 0 is provided by the mod_i op.

          [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
    Programming
          Language*, Second Edition. Prentice Hall, 1988.

      * Added "corrected" mod_i:

        NOTE: This "corrected mod" algorithm is based on the C code on
    page 70
        of [1]. Assuming correct behavior of C's built-in mod operator
    (%) with
        positive arguments, this algorithm implements a mathematically
    convenient
        version of mod, defined thus:

          x mod y = x - y * floor(x / y)

        For more information on this definition of mod, see section 3.4
    of [2],
        pages 81-85.

        References:

          [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
          Millennium* Springer, 1999.

          [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
    *Concrete
          Mathematics*, Second Edition. Addison-Wesley, 1994.

      * Added mod_n, using the same formula as above, but with FLOATVAL
        arguments.

      * Added cmod_n, using the C math library's fmod() function:

        NOTE: This "uncorrected mod" algorithm uses the built-in C math
    library's
        fmod() function, which computes

        ... the remainder of dividing x by y. The return value is x
    - n * y,
        where n is the quotient of x / y, rounded towards zero to
    an
        integer.
                        -- fmod() manpage on RedHat
    Linux 7.0

        In addition, fmod() returns

        the remainder, unless y is zero, when the function fails
    and errno
        is set.

        According to page 251 of [1], the result when y is zero is
    implementation-
        defined.

        This op is provided for those who need it, but a more
    mathematically
        useful numeric mod based on floor(x/y) instead of truncate(x/y)
    and
        defined with y == 0 is provided by the mod_n op.

          [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
    Programming
          Language*, Second Edition. Prentice Hall, 1988.

      * Added and modified tests as appropriate for the above.

2001-10-08 08:49  thgibbs

    * include/parrot/exceptions.h, include/parrot/parrot.h,
    include/parrot/string.h, include/parrot/strutf16.h,
    include/parrot/strutf32.h, include/parrot/strutf8.h,
    include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
    Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
    strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
    strings for utf8, utf16, and utf32.

    Courtesy of: Tom Hughes <tom@compton.nu>

2001-10-08 08:10  thgibbs

    * memory.c: Fixed uninitialized variables.

    Courtesy of: Bryan C. Warnock <bwarnock@raba.com>

2001-10-08 01:21  gregor

    * packfile.c:    * Casting a return value

      * Potential uninitialized variable fix

    Courtesy of Bryan C. Warnock <bwarnock@raba.com>

2001-10-08 01:15  gregor

    * packfile.c, test_main.c: One of Bryan's languishing patches (with
    a few tweaks of my own):

      * Line wrapping

      * Printf format fixes

    Courtesy of: Bryan C. Warnock <bwarnock@raba.com>

2001-10-07 22:39  thgibbs

    * build_interp_starter.pl: No longer adds (void*) casts to
    interp_guts.c function table as they are not necessary in ANSI C.

2001-10-07 16:27  gregor

    * basic_opcodes.ops, interpreter.c, opcode_table,
    process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
    t/trace.pasm:
      * Two new ops, trace_ic and bounds_ic that twiddle bits in
        interpreter->flags and set interpreter->resume_addr.

      * Two new runops core variants, so now we cover the relevant
        flag space over {trace, notrace} x {boundscheck, noboundscheck}

      * Runops core selection that converts the flags into an index
    into
        a core table (runops_cores) to get the core function pointer.

      * A new trace_op variant that doesn't do bounds checking (used by
        the non-bounds-checking-but-tracing runops core).

      * PC is passed into the cores so that they can be used when
        resuming (they used to assume starting at the beginning of the
        code, which would thwart resumption).

      * runops() itself is changed to have a while() loop in it so that
        any time we drop out of the core, we'll resume if we have an
        interpreter->resume_addr set (after reselecting the core,
    though).

      * process_opfunc.pl has a new "macro": RESUME(), that sets up
        interpreter->resume_addr. This is used by the new ops. The new
        ops still return the new PC as the next op (which MUST be an
        'end' op to force the core loop to terminate -- *pc being false
        is the only termination condition we can count on for all
    cores).

      * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
        bounds checking core selection.

      * test_prog now has a '-b' flag in addition to the '-t' flag.
    Now,
        bounds checking is off by default (I saw a performance boost:
        6.3 Mop/s with -b, 7.0 Mop/s without).

      * A new sample/test program: t/trace.pasm that twiddles the trace
        flag while it is running.

2001-10-07 15:41  gregor

    * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
    include/parrot/.cvsignore, include/parrot/interpreter.h:
    Now that 0.0.2 is released, I can clear out the backlog of approved
    but uncommitted patches. Here's one Dan approved on 2001-09-21
    (Simplified DO_OP):

      * test_prog and pdump are linked with only the files the need,
    not
        al the files.

      * build_interp_starter.pl writes out op_info.[hc], too. These
    files
        contain op name, arg count and arg type information. This will
    be
        useful for multiple things in the future, including better
    trace
        output and the crystalizing loader.

      * The DO_OP macro is now simpler and doesn't require explicit
        temporaries.

      * interpreter.c is modified to use the new op info in tracing
    output.

      * The interpreter just points its opcode_funcs and opcode_info
        members at the default tables rather than allocating memory on
        the fly.

2001-10-07 03:58  thgibbs

    * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
    comment and adding vtable.h to .cvsignore as it is produced by
    vtable_h.in

2001-10-06 20:58  thgibbs

    * vtable.tbl: Added * to REGEX type.

    Courtesy of Bryan C. Warnock <bwarnock@raba.com>

2001-10-06 13:41  simon

    * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
    include/parrot/parrot.h, lib/Parrot/Vtable.pm:
    Framework for vtable functions.

2001-10-06 06:52  thgibbs

    * make_op_header.pl: Removed confusing and unused typedef.

2001-10-06 06:31  thgibbs

    * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
    are no longer used.

2001-10-06 06:26  thgibbs

    * disassemble.pl: Changed intval to op in disassembler.

2001-10-06 06:21  thgibbs

    * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
    Assembler, local labels, and integer constants.

2001-10-06 03:11  ask

    * Makefile.in: make `make test` actually run the tests on
    darwin/macosx

2001-10-06 02:04  thgibbs

    * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
    Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
    Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
    include/parrot/register.h, lib/Parrot/Assembler.pm,
    lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
    lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
    t/op/integer.t: No, it didn't mess anything up.  I just forgot to
    type make. :)

2001-10-06 02:02  thgibbs

    * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
    Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
    Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
    include/parrot/register.h, lib/Parrot/Assembler.pm,
    lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
    lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
    t/op/integer.t: oops...this messed something up.  I must have
    missed something in the patch...I have reverted.

2001-10-06 01:57  thgibbs

    * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
    Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
    Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
    include/parrot/register.h, lib/Parrot/Assembler.pm,
    lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
    lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
    t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
    memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
    This patch ensures that all bytecode is of type opcode_t except for
    the constant table constants.  That means that almost all of the
    INTVALs in the code were replaced with opcode_t and the i pack type
    was replaced with the op pack type in calls to pack_arg and such.
    Also, since it has been declared that ALL integer constants are to
    be 32 bits, some test cases were changed to ensure that an integer
    constant was no bigger than 2 ** 31.

    process_opfunc.pl was also cleaned up to no longer look at either
    opcode_table or interp_guts.h but gather all of its information
    from Opcode.pm.

    The Assembler.pm module was changed to do late binding of arguments
    so that 0 could be treated like 0.0 without having to be so
    declared.  Also, only strings now use the [sc:N] intermediate form
    as it was unnecessary for integer and float types.

2001-10-05 21:59  gregor

    * MANIFEST, languages/jako/Makefile:
    Fixed things due to the movement of little_languages/* to
    languages/jako.

2001-10-05 18:31  gregor

    * MANIFEST:
    Updated MANIFEST to reflect recent additions for Jako.

2001-10-05 17:54  gregor

    * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
    fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
    mops.jako, primes.jako, sub.jako:
      * Compiler:

          * User-defined subroutines.
          * Generates assembly code with the Jako code in comments.
          * "end;" no longer required at the end of programs.
          * Better handling of const-reg and reg-const.
          * Optimizes const-const operations to compile-time
    evaluations.
          * Constants in addition to variables.
          * Arithmetic fixes.
          * Allow leading minus signs in integer and number constants
    (ahem).
          * goto's.

      * New sample programs:

          * leibniz.jako (based on Greg McCarroll's leibniz.pasm
    example)
          * mandelbrot.jako (based on Leon Brocard's translation of
    Glenn Rhodes' C code)
          * mops.jako (based on t/test.pasm)
          * primes.jako (based on Leon Brocard's primes.pasm example)
          * sub.jako (demonstrates a simple user-defined subroutine)

2001-10-05 12:54  gregor

    * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
      * Removed mysterious extra copy of code after POD.

2001-10-05 12:46  gregor

    * basic_opcodes.ops, t/op/string.t:
      * Enabled the previously SKIPped test of printing string regs
    after
        clear_s

      * Made print_s do nothing if the STRING pointer in the register
    file
        is NULL.

2001-10-04 21:19  dan

    * Configure.pl: VMS tweaks

2001-10-04 21:17  dan

    * hints/vms.pl: Hints file for VMS

2001-10-04 00:58  bdwheele

    * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
    Assembler which stopped equates from working.

2001-10-03 21:50  gregor

    * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:

      * More documentation updates for the packfile stuff.

2001-10-03 21:37  gregor

    * docs/parrotbyte.pod:
      * Pointed the reader at Parrot::PackFile.

2001-10-03 21:34  gregor

    * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
      * Updated documentation to match current implementation.

2001-10-03 18:30  gregor

    * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
    lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
    t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
    t/op/basic.t:
      * Added new syntax to the assembler to allow square-bracket
        arithmetic expressions involving (global) labels, the current
        instructions base address ('@'), numeric constants (not
    equates)
        and basic arithmetic operators (+, -, *, / -- although + and -
        are likely to be the only ones used in practice).

      * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
    to
        fail (argument passing wasn't working).

      * Enabled t/op/basic.t's last test, which is actually a copy of
    the
        code from t/call.pasm. Now all tests there are enabled and
    working.

      * Added new example/test program t/call.pasm to demonstrate
    working
        macros and poor-man's subroutine calls

      * Added header comments to t/*.pasm

2001-10-03 18:00  simon

    * ChangeLog:
    Needed, since it's in the MANIFEST.

2001-10-03 17:56  simon

    * t/op/: string.t, time.t:
    Small fixes to help Win32 on its way.

2001-10-03 17:41  simon

    * MANIFEST, README:
    Oops. Tiny bugs.

2001-10-03 17:39  simon

    * MANIFEST, NEWS, README:
    README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
    think so!

2001-10-03 17:21  simon

    * basic_opcodes.ops, interpreter.c, packfile.c:
    Evil printf bandaid (which allows Sparc64 to pass tests)

    Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2001-10-03 16:58  simon

    * string.c, t/op/string.t:
    chop fixes for n < 0 and tests

    Courtesy of: Alex Gough <alex@rcon.org>

2001-10-03 15:51  thgibbs

    * interpreter.c: Changed an occurrence of INTVAL to opcode_t

    Courtesy of: Bryan C. Warnock <bwarnock@raba.com>

2001-10-02 17:48  dan

    * include/parrot/stacks.h: Fix typo in function name

2001-10-02 17:35  dan

    * include/parrot/stacks.h: changed to support new stack stuff
    coming after 0.02

2001-10-02 15:01  simon

    * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
    interpreter.c, make_op_header.pl, memory.c, packfile.c,
    process_opfunc.pl, register.c, string.c, strnative.c,
    Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
    lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
    Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
    docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
    include/parrot/memory.h, include/parrot/packfile.h,
    include/parrot/parrot.h, include/parrot/register.h,
    include/parrot/stacks.h, include/parrot/string.h,
    lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:

    The Great Renaming.

2001-10-02 12:49  gregor

    * process_opfunc.pl:
      * Fixed a tyop:  s/string/integer/ for INT_CONST expansion

2001-10-02 12:40  simon

    * basic_opcodes.ops, process_opfunc.pl, register.c,
    include/parrot/register.h:
    Move preprocessing of register accessors to process_opfunc.pl

    Courtesy of: Jason Gloudon <perl@gloudon.com>

2001-10-02 01:20  ask

    * README: add a few lines about lists.

2001-10-01 23:00  brentdax

    * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
    work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)

2001-10-01 22:50  brentdax

    * Configure.pl, test_c.in: More changes for 64-bit compatibility

2001-10-01 21:51  simon

    * process_opfunc.pl:
    Michael Fischer's patch broke conditionals.

2001-10-01 15:38  simon

    * process_opfunc.pl:
    Small hack to keep process_opfunc.pl from generating extra return()
    statements.

    Courtesy of: Michael Fischer <michael@visv.net>

2001-10-01 15:32  simon

    * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
    Documentation fix.

    Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2001-10-01 01:49  simon

    * packfile.c:
    Simon is an idiot. Don't trust him with your code.

    Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>

2001-10-01 00:59  simon

    * Parrot/String.pm, lib/Parrot/String.pm:
    Was in manifest, but not in CVS.

2001-09-30 21:25  simon

    * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
    disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
    Parrot/Assembler.pm, Parrot/PackFile.pm,
    Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
    Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
    lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
    lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
    include/parrot/packfile.h, include/parrot/string.h:
    Move NVs to the constant table.    * Changes to Types_pm.in to make
    life easier for some of the     packing/etc. I'm doing elsewhere.
    Also, we now pack 'n' as      'i'.

      * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
        eventually we can use all these tools together inside scripts
        rather than call out to the shell to run the programs.

      * As I was tracking down problems, I converted the internal
        documentation of the assembler to POD from comments.

      * Changed the numeric regexp in the assembler to detect leading
        signs and trailing exponents.

      * Updated basic_opcodes.ops to fetch numeric constants from the
        constant table.

      * Enhanced the disassembler in a number of ways to make my life
        easier while tracking down bugs (try it out). It now puts in
        labels for ops that are the destinations of flow control ops.

      * packfile.c now has a TRACE_PACKFILE switch that can be set
        to get it to print info as it processes. I needed this while
        debugging, but I can remove it or change it before committing
        if its a problem.

      * Updated pdump.c because it was missing a call to init_world().

      * Updated process_opfunc.pl to deal with numeric constants
        being stored in the constant table instead of inline.

      * Added multiple type support to Parrot/PackFile/Constant.pm

      * Added Parrot/String.pm, to be used for constants.

      * Added packfile.[hc] functions for allocating new constants
        of various types.

      * Made string_copy visible to the world in parrot/string.h.

    Wow.

    Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>

2001-09-29 15:56  gregor

    * languages/jako/Makefile:
    Removed assumption that '.' is on the path.

2001-09-29 15:55  gregor

    * languages/jako/Makefile:
    Removed references to leibnitz test program.

2001-09-29 15:21  thgibbs

    * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
    math ops args to work on Solaris.

2001-09-27 15:15  thgibbs

    * assemble.pl: Added case insensitive matches to hex and binary
    characters

    Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>

2001-09-27 04:46  thgibbs

    * assemble.pl: This patch makes integer constants of the form
    0b[01]+ work with perl 5.005.  The oct function in versions of perl
    before 5.6 did not handle the 0b numeric prefix; therefore, it was
    returning 0.  To fix this, I added a from_binary function that
    would take a binary string and return its decimal representation.
    Now, instead of blindly calling oct, it makes a distinction between
    0/0x numbers and 0b numbers.

2001-09-26 19:30  thgibbs

    * assemble.pl: Error now returns a non-zero status

    Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>

2001-09-26 19:13  gregor

    * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
    interpreter.c, packfile.c, pdump.c, test_main.c,
    include/parrot/bytecode.h, include/parrot/interpreter.h,
    include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
    t/op/stacks.t:
      * bytecode.[hc] removed. packfile.[hc] are the interface to the
        packfile/bytecode file from C. May be renamed in the future.

      * packfile.[hc] changed to use 'struct PackFile *', etc. instead
        of 'PackFile *', just like the interpreter, etc.

      * Constants are accessed via the interpreter's 'code' member
        (struct PackFile * code). Macros PCONST(i) and PNCONST are
        provided to access constants by index and the number of
        constants, respectively (assumes a variable 'interpreter' of
        the appropriate type is in scope).

      * Byte Code is accessed via the interpreter's 'code' member.

      * Changed PackFile_Constant to point to a STRING instead of
    having
        members for the string_make() arguments. Also has a 'type' IV
        in preparation for allowing multiple types of constants in
        const_table.

      * Removed hardcoded example program from test_main.c. We have
        plenty of test programs elsewhere.

      * test_prog now uses a PackFile to deal with the program before
        sending it on to the interpreter.

      * Added missing 'end' ops to some tests in t/op/integer.t and
        t/op/stacks.t.

2001-09-26 18:38  thgibbs

    * assemble.pl: Separated code into functions and added comments.

2001-09-26 18:29  simon

    * config_h.in:
    Fix 64-bit chunk-base issue.

2001-09-26 06:55  thgibbs

    * t/op/bitwise.t: Added end to bitwise tests.

2001-09-26 00:54  dan

    * docs/parrot_assembly.pod: Added in the base for threading, I/O,
    and interpreter creation. Skeleton only, but it's something to peer
    at.

2001-09-25 21:44  thgibbs

    * t/op/trans.t: Removed loops in transcendtal op test.

2001-09-25 10:12  simon

    * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
    t/op/string.t, t/op/time.t:
    More tests

    Courtesy of: Alex Gough <alex@rcon.org>

2001-09-24 19:08  gregor

    * t/op/number.t:
      * Enabled the clear_n test.

2001-09-24 18:56  gregor

    * Parrot/.cvsignore:
      * Ignore the generated Types.pm file.

2001-09-24 18:52  gregor

    * languages/jako/Makefile, t/op/number.t:
      * No need to skip the inc and dec numeric tests anymore. I fixed
    the
        assembler earlier today.

2001-09-24 18:21  simon

    * MANIFEST, t/op/stacks.t:
    Oops.

2001-09-24 18:19  simon

    * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
    include/parrot/exceptions.h, include/parrot/interpreter.h,
    lib/Parrot/Test.pm, t/op/string.t:
    1) captured error output, so can test errors, this might be bad,
    not sure.  2) basic tests for register stack frames, including some
    errors 3) I think we can stop skipping one of the string tests 4) I
    added some more substr tests, but substr was broken, so 5) changed
    substr to work with out of range values, or 6) throw an error if
    they're far too silly

    Courtesy of: Alex Gough <alex@rcon.org>

2001-09-24 17:27  gregor

    * basic_opcodes.ops, opcode_table, t/op/number.t:
      * Op set_n was missing. Added it and a test for it. We now have
    the
        same int and num ops, except mod is int-only.

2001-09-24 17:01  gregor

    * assemble.pl:
      * Fixed a typo: s/Line/line/

2001-09-24 16:02  gregor

    * basic_opcodes.ops:
      * Fixed dec_n_nc opcode, which had += where it should have had
    -=.

2001-09-24 15:34  gregor

    * assemble.pl:
      * Fixed handling of constants starting with '0' that should not
    be
        sent through oct(). For example 'set N2 0.1' was being
    interpreted
        as 'set N2 0' (naughty).

        As reported by Leon Brocard <acme@astray.com> in the comments
    of
        his mandelbrot.pasm example.

2001-09-24 02:21  bdwheele

    * assemble.pl: fixed dumb code when --include was not specified.

2001-09-24 02:17  simon

    * assemble.pl:
    Shit-sweeping.

2001-09-24 01:56  bdwheele

    * assemble.pl: * Added --include=dir option to assembler to provide
    a path to look for included files.  * Error message of a macro is
    defined inside of a macro

2001-09-23 21:29  bdwheele

    * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.

2001-09-23 15:50  simon

    * Configure.pl:
    Fixed typo. Parrot might work again on non-8.3 filesystems. :)

2001-09-23 02:03  ask

    * Configure.pl, test_c.in: fix missing newline at the end of test.c
    Courtesy of: acme@astray.com (Leon Brocard)

    rename 'test' executable used in Configure process to test_siz.

2001-09-23 01:03  simon

    * process_opfunc.pl:
    iPaq fix. No, really.

2001-09-23 00:47  simon

    * MANIFEST:
    Missed several, in fact.

2001-09-23 00:46  simon

    * MANIFEST:
    Missed one.

2001-09-22 21:13  simon

    * assemble.pl:
    Assembler register numbering rigour.

    Courtesy of: Leon Brocard <acme@astray.com>

2001-09-22 18:20  simon

    * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
    lib/Test/Utils.pm:
    I'm sick of having to install Test::More everywhere. Temporary
    measure until we remove this silly dependency.

    Also a typo in Makefile.in which suggests some things were only
    happening correctly by sheer chance. :)

2001-09-22 18:06  simon

    * README:
    test.pasm is dead, long like make test.

2001-09-22 17:47  simon

    * t/op/number.t:
    De-fang overzealous floating point test.

2001-09-22 17:39  simon

    * process_opfunc.pl:
    Remove hard-coded NV size assumption. Tru64 is nearly there!

2001-09-22 17:18  simon

    * assemble.pl, disassemble.pl:
    More portability fixups.

2001-09-22 16:44  simon

    * assemble.pl, Parrot/PackFile/Constant.pm,
    lib/Parrot/PackFile/Constant.pm:
    And I *think* this fixes Tru64.

2001-09-22 16:37  simon

    * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:

    Oops.

2001-09-22 16:36  simon

    * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
    Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
    lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:

    More removal of hard-coded pack formats.

2001-09-22 15:21  simon

    * assemble.pl:

    Grrr. Why isn't this working?

2001-09-22 15:18  simon

    * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
    lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:

    Make assemble use the PackFile modules; also fixed some bugs in
    them.

2001-09-22 14:38  simon

    * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:

    Abstract the argument and opcode packing types and functions out
    into a separate module. This *should* help us maintain consistency
    when we change the various types.

2001-09-22 00:46  brentdax

    * Configure.pl: Delete test.o (or its equivalent) after Configure's
    test program finishes.

2001-09-21 21:24  brentdax

    * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
    separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)

2001-09-21 21:09  gregor

    * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
    lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:

      * Fixed pad calculation (similar to recent bug fix on C library)

2001-09-21 20:23  simon

    * disassemble.pl:
    Pack types and sizes have gone askew.

2001-09-21 20:18  brentdax

    * Configure.pl: Fix typo in setting stuff from the C test program

2001-09-21 10:25  simon

    * basic_opcodes.ops, process_opfunc.pl:
    Document patches.

    Courtesy of: Leon Brocard <acme@astray.com>

2001-09-21 06:06  ask

    * Config_pm.in, assemble.pl: fix 5.005_03.

2001-09-21 06:03  ask

    * Configure.pl: make the ivsize detection work for us normal people
    without . in our PATH.    :-)

2001-09-21 05:56  brentdax

    * test_main.c: Change _read to read for portability to Tru64
    (Damien Neil <neild@misago.org> and likely many others)

2001-09-21 05:46  ask

    * Makefile.in: "update" target to update from cvs.

2001-09-21 05:44  brentdax

    * Configure.pl, test_c.in: Fix issues with ivsize and nvsize

2001-09-21 02:43  brentdax

    * Configure.pl: Fix a typo that forced the -g flag on

2001-09-20 22:41  dan

    * packfile.c: Had some no-value returns. Naughty

2001-09-20 22:40  dan

    * t/test.pasm: Added labels to output

2001-09-20 15:39  simon

    * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
    lib/Parrot/Test.pm:
    This patch does two only somewhat related things.

    Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
    = 2*sizeof(iv) to a PConfig-type computed value.

    Parrot/Test.pm:  Change it to run with the perl that was used to
    generate this version of Parrot.  This is useful if, for example,
    you want to use bleadperl to build and test parrot (e.g. to try out
    various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
    installed as the default 'perl' on your system.  Since perl-5.7.x
    is installed 'version-only', a plain 'perl' is quite likely to pick
    up the older perl in such cases. Such an older perl might well not
    understand pack('q') used in the assembler.

    Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2001-09-20 15:14  gregor

    * packfile.c:
      * Fixed a typo in pad calculation that throwing off unpack and
    pack.

2001-09-20 15:03  thgibbs

    * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
    tests now cover all registers.

    Courtesy of: Damien Neil neild@misago.org

2001-09-20 14:48  thgibbs

    * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
    machines.

2001-09-20 14:35  simon

    * Configure.pl, assemble.pl:
    Pack IVs correctly.

    Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2001-09-20 14:06  gregor

    * languages/jako/jakoc:
      * Fixed a tyop in the string interpolation regex.

    Courtesy of Michael L Maraist <maraist@UDel.Edu>

2001-09-20 13:56  gregor

    * languages/jako/jakoc:
      * Updated jakoc to work with the single-destination comp ops.

2001-09-20 05:08  bdwheele

    * assemble.pl: macro expansion.  Here's the test macro I was using:

    # this uses I32,I31 as temporaries.  # macro must be preceded by a
    label.    testi        macro   num,got,want    print   "Test #"
    print    num    print    "..."    set    I32,want    set
    I31,got     eq    I32,I31,$ok    print    "NG\n"    branch
    $end $ok:    print    "OK\n" $end:    endm

    It is invoked as:

    Test1:    testi    1,I3,I2

2001-09-20 03:52  dan

    * stacks.c, include/parrot/stacks.h: Preliminary files for the
    generic stack support

2001-09-20 02:49  bdwheele

    * assemble.pl: Added include processing to assemble.pl    the syntax
    is: include 'file.to.include'

2001-09-19 23:57  thgibbs

    * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
    opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
    function to only use 2 args, but the opcode_table still had three
    listed.  Fixed integer.t and number.t to use the new comparison
    operators.  Improved assemble.pl ability to grok operators by
    constructing a function set and comparing operator types.

2001-09-19 22:42  dan

    * assemble.pl: Binmodes the output filehandles now. (No more
    bytecode munching...)

2001-09-19 22:32  dan

    * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
    t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
    conditional branches take a single argument, and fall through
    otherwise.

2001-09-19 21:19  thgibbs

    * memory.c: Added explanation of mem_allocate_aligned give by Dan
    Sugalski

    Courtesy of: Josh Wilmes <josh@hitchhiker.org>

2001-09-19 21:04  thgibbs

    * include/parrot/interpreter.h, Configure.pl,
    build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
    process_opfunc.pl: Changed opcode_t from a union to a configurable
    type.

2001-09-19 20:54  thgibbs

    * assemble.pl: Missed a couple of changes for 64 bit portability.

2001-09-19 20:37  gregor

    * packfile.c, include/parrot/packfile.h:
      * Added "methods" for setting and getting all the various
    attributes,
        probably sufficient for an assembler to use the library.

2001-09-19 20:04  thgibbs

    * assemble.pl: Modifications to run on 64 bit platforms.  To run on
    a 64 bit platform manually change the  setting for 'i' from 'l' to
    'q'.  This should be automatically done by a Configure setting in
    the near future.

2001-09-19 19:10  thgibbs

    * config_h.in: changed c++ comment to c comment.

    Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2001-09-19 17:48  gregor

    * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
    include/parrot/packfile.h:
      * C code for dealing with PackFiles as if they were objects.
    Mostly
        read-only interface for now, but it would not be hard to make
    it
        read-write. [packfile.c, include/parrot/packfile.h]

      * PackFile Dumping program that falls short of disassembling, but
        tests the above code and provides a hex listing of the byte
    code
        contents of the PackFile. [pdump.c]

      * New Makefile target 'pdump' for the above program, and related
        Makefile.in changes.

      * Updated MANIFEST to reflect the added files

      * Update .cvsignore to ignore pdump.

2001-09-19 14:55  thgibbs

    * MANIFEST: Added number.t and trans.t to MANIFEST

2001-09-19 05:40  thgibbs

    * process_opfunc.pl: Now taking & of opcode_t instead of i member
    of union opcode_t.  I hope this will be more portable for set_n_nc.

2001-09-19 05:39  thgibbs

    * t/op/integer.t: Added end to test 1.

2001-09-19 00:09  thgibbs

    * t/op/number.t: Added end to each test

2001-09-19 00:00  simon

    * t/op/number.t:
    Number tests! Wooo!

    Courtesy of: Damien Neil <neild@misago.org>

2001-09-18 23:52  thgibbs

    * interpreter.c: Added casts to appropriate types to make -Wall not
    complain on certain printf formats

2001-09-18 23:31  thgibbs

    * t/op/integer.t: Added end to each test.

2001-09-18 22:54  thgibbs

    * t/op/trans.t: Added trans.t for transcendental math function
    tests.

2001-09-18 22:28  simon

    * MANIFEST:
    MANIFEST updates. (And notice how I carefully snuck in the
    t/op/integer.t there...)

    Courtesy of: Andy Dougherty <doughera@lafayette.edu>

2001-09-18 22:26  simon

    * t/: integer.t, op/integer.t:
    Except it doesn't go there. Duh.

2001-09-18 22:25  simon

    * t/integer.t:
    Tests for integer ops.

    Courtesy of: Damien Neil <neild@misago.org>

2001-09-18 22:03  thgibbs

    * include/parrot/bytecode.h, include/parrot/interpreter.h,
    build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
    make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
    opcode_t union for operators.  This required a few perl script
    changes to output the correct type.  There were also some changes
    to allow -pedantic in gcc

2001-09-18 21:07  gregor

    * disassemble.pl, Parrot/PackFile.pm,
    Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
    lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
    lib/Parrot/PackFile/Constant.pm:
    Converted the disassembler to use the Parrot::PackFile Perl classes
    to do its job.

2001-09-18 19:18  brentdax

    * Makefile.in: Fix missing functions for real this time.  (I
    swear!)

2001-09-18 18:49  brentdax

    * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
    <doughera@lafayette.edu>}

2001-09-18 18:47  brentdax

    * Makefile.in: Fix bugs with missing math, etc. functions

2001-09-18 14:42  thgibbs

    * strnative.c: Sorry Simon...forgot bustart was a void* not a
    char*.

2001-09-18 13:59  thgibbs

    * strnative.c: Removed unnecessary IV cast in concat.

2001-09-18 13:58  thgibbs

    * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
    to concat test in string.t

2001-09-18 12:07  gregor

    * languages/jako/jakoc:
      * var num ... no longer requires assignment
      * automatic casting between int and num
      * Fixed an error message

    Courtesy of: Simon Cozens <simon@cvs.perl.org>

2001-09-18 11:57  simon

    * TODO:
    Gonna have to start thinking of more things to do, soon.

2001-09-18 10:42  simon

    * opcode_table:
    Introduce a little more tidiness into the opcode table.

2001-09-18 03:06  gregor

    * basic_opcodes.ops, opcode_table, t/euclid.pasm:
    Resurrected register-const ops per Dan's request.

2001-09-18 02:20  gregor

    * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
    build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
    global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
    process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
    Committed some files that were missed in the last *.h moving
    commit.

2001-09-18 02:17  gregor

    * include/parrot/.cvsignore: Fixed a typo in .cvsignore.

2001-09-18 02:16  gregor

    * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
    global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
    register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
    missed in last commit for the move of *.h to include/parrot.

2001-09-18 01:32  simon

    * t/Makefile:
    Trivial "clean" target to t/Makefile.

2001-09-18 01:32  simon

    * assemble.pl, build_interp_starter.pl, disassemble.pl,
    Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
    Change icky Digest::MD5 for nice simple unpack()

    Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>

2001-09-18 00:35  simon

    * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
    t/op/string.t:
    New concat op. Hey, if I'm going to talk about it in an article,
    better implement it...

2001-09-17 22:54  gregor

    * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
    Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
    lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
    lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:

    Functions for reading, writing and manipulating Parrot Pack Files.
    NOTE: This is a proposed term based on the fact that the file
    contains more than just byte code, and another language (Java)
    calls its binary files by a broader notion of what's in them (Class
    Files). Since Perl has packages, and since we use pack() to write
    them, we'll call them PackFiles (at least for now).

    That does, however, beg the question of file extension. Should we
    name the files "foo.pack" instead of "foo.pbc"?

2001-09-17 20:23  thgibbs

    * interpreter.c, test_main.c: Uncuddled else statements for coding
    standard.

2001-09-17 19:57  gregor

    * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
    Added a $revision variable, parsing of the CVS Id line in
    opcode_table and a &revision() subroutine.

2001-09-17 19:53  gregor

    * opcode_table:
    Added a CVS Id tag to it.

2001-09-17 18:58  thgibbs

    * interpreter.c: Cleared interpreter flags on creation.

2001-09-17 18:38  gregor

    * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
    interpreter.h, test_main.c:
      * Provides macros in interp_guts.h for setting up arrays with
        op names and op arg counts (done via build_interp_starter.pl).

        These are used in the op tracing

      * The functions in bytecode.[hc] pass around a pointer to the
    length
        of the bytecode so that later when we get to runops, we know
        how much bytecode we've got and we can detect out-of-bounds
        jumping. The documentation is updated, too.

      * runops in interpreter.c now looks at interpreter->flags to
        decide if the core of runops should be runops_trace_core or
        runops_notrace_core. These new functions contain just the
        while-loop portion of runops. A new function runops_generic
        does any other setup (such as checking the bytecode
        fingerprint) or wrapup (such as complaining if we ended up
        out-of-bounds). NOTE: I didn't know what we should do for
        functions in here that are not part of the api, so I gave
        them docs with 'TODO' marks mentioning they really aren't
        part of the api. Guidance appreciated.

      * test_main.c now checks for '-t' arg and sets the tracing flag
        on its interpreter instance as appropriate.

2001-09-17 17:47  bdwheele

    * assemble.pl: added some default equates, and if they're sub
    references, they are computed each time it is referenced.

2001-09-17 16:15  dan

    * interpreter.h:

    Added flags to the interpreter structure and defined a few.

2001-09-17 15:51  simon

    * bytecode.h, string.h:
    VAR_SCOPE on globals.

2001-09-17 15:20  simon

    * MANIFEST:
    Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.

2001-09-17 15:05  gregor

    * t/jump.pasm, MANIFEST:
    Added a test program to demonstrate jump_i.

2001-09-17 14:44  thgibbs

    * register.c: Fixed register pop not using correct offset (off by
    one).

    Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>

2001-09-17 13:56  thgibbs

    * interpreter.c, register.c: Added code to call Parrot_clear_s
    during initialization and Parrot_clear_s and Parrot_clear_p when a
    new stack frame is pushed.

2001-09-17 13:51  gregor

    * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
    fib.jako, hello.jako: Added bench.pasm to "clean"

2001-09-17 13:49  gregor

    * languages/jako/: jakoc, Makefile:
    Added CVS Id tag.

2001-09-17 13:49  gregor

    * languages/jako/jakoc:
    Code streamlining.

    Courtesy of: Buggs <buggs-perl6@splashground.de>

2001-09-17 13:29  gregor

    * MANIFEST, opcheck.pl:
    Added an opcode_table checker to make sure that all opcodes listed
    there conform to a simple set of naming rules (rules themselves, of
    course, are subject to change).

2001-09-17 13:23  thgibbs

    * string.c: Modified string.c to correctly use the return value of
    realloc.

2001-09-17 05:26  brentdax

    * Makefile.in: Making the Makefile smarter

2001-09-16 23:06  brentdax

    * hints/mswin32.pl: Finishing the Configure hints

2001-09-16 23:05  brentdax

    * Configure.pl, Makefile.in, parrot.h, test_main.c,
    Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
    Configure hints, 5.005 compatibility, MANIFEST checking

2001-09-16 19:25  bdwheele

    * assemble.pl: parrot assembly equates

2001-09-16 18:03  gregor

    * Makefile.in:
    Added 'test' target to run new test suite.

2001-09-16 17:33  simon

    * basic_opcodes.ops:
    'not' was being !, rather than ~. Too many Perl programmers here, I
    suspect.

    Courtesy of: Tom Hughes <tom@compton.nu>

2001-09-16 17:21  simon

    * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
    t/op/string.t:
    A *real* test suite!

    Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>

2001-09-16 16:49  gregor

    * basic_opcodes.ops, opcode_table:
    At Dan's request, my new register-constant comparison ops have been
    removed.

2001-09-16 16:40  gregor

    * languages/jako/jakoc:
    Fixed a copy-paste error in one of jakoc's error messages.

    Courtesy of: Buggs <buggs-perl6-list@splashground.de>

2001-09-16 16:37  gregor

    * languages/jako/jakoc:
    Modified comparison implementation to use temporary registers in
    the case of register-constant and constant-register comparisons.
    This will allow the compiler to emit code that works when the
    constant-comparison ops are backed out of Parrot. If the ops ever
    make their way back in, then jakoc can emit more efficient code
    again.

2001-09-16 16:19  bdwheele

    * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
    ... though not subroutine based like the documentation wants, they
    are local to the last non-local label defined.

2001-09-16 14:02  simon

    * MANIFEST:
    And remember, when you add stuff, keep the manifest up to date.

2001-09-16 02:55  ask

    * Makefile.in: a "shared" target for building libparrot.so

2001-09-16 02:45  thgibbs

    * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
    global_setup.h, interpreter.c, interpreter.h, io.h,
    make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
    process_opfunc.pl, register.c, register.h, stacks.h, string.c,
    string.h, strnative.c, strnative.h, test_main.c: Updated files to
    use the coding standard PDD.  Also changed Perl_Interp to
    Parrot_Interp.

2001-09-16 02:21  ask

    * README: emphasise the bits about the license not being worked out
    yet.

2001-09-15 22:21  simon

    * process_opfunc.pl:
    basic_opcodes.c should *scream* that it's autogenerated.

2001-09-15 21:58  gregor

    * languages/jako/Makefile:
    Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
    compile.

2001-09-15 21:58  gregor

    * languages/jako/: jako_compiler.pl, jakoc:
    Renamed the Jako compiler to jakoc from jako_compiler.pl

2001-09-15 21:51  gregor

    * languages/jako/: Makefile, bench.jako, euclid.jako,
    jako_compiler.pl:
    Added a new bench.jako example based on Leon Brocard's Bench.java.

    Jako Compiler:     * fix a bug in assignment handling   * add some
    more conditionals to while and if   * revert to using implicit
    opcodes in a few cases that were broken     before the assembler
    patch went in recently.

2001-09-15 21:46  gregor

    * assemble.pl, basic_opcodes.ops, opcode_table:
    New ops for register-constant INTEGER comparisons:

      {eq,ne,lt,le,gt,ge}_ic_ic

    New ops for register-register and register-constant NUMERIC
    comparisons:

      eq_nc_ic
      {ne,lt,le,gt,ge}_{n,nc}_ic

    Assembler:

      Allow uppercase and underscores in labels.

      Tweaks to the op infer code to make it work with the examples
    I've been
      creating.

2001-09-15 19:16  thgibbs

    * README: Updated README to include Configure.pl

2001-09-15 17:05  simon

    * build_interp_starter.pl:
    Casting happiness

    Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>

2001-09-15 16:45  simon

    * assemble.pl:
    And the same again: Parrot/Opcode.pm wasn't "..-aware".

2001-09-15 16:40  simon

    * t/Makefile:
    The Parrot/Opcode.pm dependency means we need to do -I.. in the
    test Makefile

2001-09-15 12:26  simon

    * memory.c:
    Fixed to match the coding standards.

    Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>

2001-09-15 01:57  ask

    * Configure.pl, Makefile.in, Parrot/Opcode.pm,
    lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
    to run Configure.pl

2001-09-15 01:48  ask

    * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
    say so. :-)

2001-09-15 01:42  gregor

    * languages/jako/: euclid.jako, fact.jako, fib.jako,
    jako_compiler.pl:
    Compiler: Added variable interpolation in double-quoted strings.
    Examples: Made use of variable interpolation.

2001-09-15 01:28  gregor

    * Parrot/.cvsignore:
    Ignore the Config.pm generated file.

2001-09-15 01:22  gregor

    * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
    fib.jako, hello.jako, jako_compiler.pl:
    gnp: Added some more sample Jako files and added many more
    operators to the compiler. Preparations for supporting all the Math
    and bitwise ops.

2001-09-14 19:06  simon

    * assemble.pl, build_interp_starter.pl, disassemble.pl,
    make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
    lib/Parrot/Opcode.pm:
    Move common table reading stuff to a module.

    Courtesy of: Damien Neil <neild@misago.org>

2001-09-14 17:42  simon

    * .cvsignore:
    More .cvsignore foo.

2001-09-14 17:40  simon

    * assemble.pl, config_h.in:
    De-coredump

    Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>

2001-09-14 17:38  simon

    * assemble.pl, t/Makefile:
    Make assemble.pl look in its parent directory if the data files it
    needs aren't in the current one. Plus a Makefile that lets "make
    foo.pbc" work in t/

    Courtesy of: Rocco Caputo <troc@netrus.net>

2001-09-14 16:29  simon

    * make_op_header.pl:
    Wildly experimental patch to make Parrot compile on FreeBSD. (And
    probably segfault everywhere else.)

2001-09-14 15:58  dan

    * languages/jako/: euclid.jako, jako_compiler.pl:

    Added in the first mini-language that targets Parrot.

    Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>

2001-09-14 15:20  dan

    * memory.c: Was misaligning returned memory. Fixed.

2001-09-14 15:08  simon

    * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
    interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
    register.c, register.h, string.c, string.h, strnative.c,
    test_main.c:
    Fixes to include <parrot/foo.h>

    Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>

2001-09-14 12:05  simon

    * strnative.c:
    Appease Tru64.

2001-09-14 12:01  simon

    * memory.c:
    Appease Tru64.

2001-09-14 11:54  simon

    * interpreter.c:
    Remove lvalue cast.

2001-09-14 11:45  simon

    * Configure.pl:
    Be 5.005 friendly.

2001-09-14 11:39  simon

    * Configure.pl:
    Tru64 cc doesn't like -Wall

2001-09-14 10:57  simon

    * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
    assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
    config.h.in, config_h.in, disassemble.pl, interpreter.c:
    Configure now generates Makefile

    Courtesy of: Brent Dax <brentdax@cpan.org>

2001-09-14 10:08  simon

    * t/test3.pasm:
    Add "end"

    Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>

2001-09-14 10:07  simon

    * assemble.pl:
        * uses Getopt::Long for options.  -c is now --checksyntax.
    I wasn't
    sure how to keep compatible (patches welcome!)           * options
    include:         --help         --version
          --verbose         --output=file
    --listing=file               --checksyntax         * produces
    verbose listing of what the assembler saw :)  Only one nitpick with
    it:  unknown symbols are given as 0xffffffff, unfortunately, this
    includes symbols which may be defined later in the file (i.e.
    forward jumps).

    Courtesy of: Brian Wheeler <bdwheele@indiana.edu>

2001-09-14 10:06  simon

    * strnative.c:
    substr growth fixup

    Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>

2001-09-14 10:03  simon

    * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
    register.c, string.c, strnative.c, test_main.c:
    Coding standards conformance

    Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>

2001-09-14 09:46  simon

    * assemble.pl:
    Make the assembler grok transcendental maths again.  Courtesy of:
    Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>

2001-09-13 17:29  simon

    * assemble.pl:
    Better opcode guessing, from Brian Wheeler. (Again!)

2001-09-13 17:20  dan

    * docs/parrot_assembly.pod:

    Took out duplicate entries for iton, ntoi, and tostring.

2001-09-13 17:16  simon

    * assemble.pl, basic_opcodes.ops, opcode_table:
    From Brian Wheeler:

    This patch gives the assembler support of '\a','\n','\r','\t', and
    '\\' in string constants.

    In addition, it changes (for all registers) "I reg %li is ..." to
    just the value of the register.  Printing constants is also
    supported, but alas, you have to specify the type (print_sc,
    print_ic, print_nc).

2001-09-13 15:38  simon

    * assemble.pl:
    Why don't I actually *test* this stuff before applying it, eh?

2001-09-13 15:34  simon

    * TODO, t/euclid.pasm:
    From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
    (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
    inference

2001-09-13 14:42  simon

    * assemble.pl:
    A new assembler, from Brian Wheeler.

2001-09-13 09:44  simon

    * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
    test_main.c:
    Two more from Tom Hughes:     Patch to fix C++ style comments
    Patch to remove use of structure constant/cast

2001-09-13 09:39  simon

    * TODO, docs/strings.pod:
    Update string docs.

2001-09-13 09:36  simon

    * Makefile, basic_opcodes.ops:
    Tom Hughes    Patch to link with the maths library Tom Hughes
     Patch to fix += on rvalue

2001-09-13 08:57  simon

    * MANIFEST:
    I guess nobody's been using the nightly builds...

2001-09-13 08:27  simon

    * assemble.pl, basic_opcodes.ops, opcode_table:
    Bitwise ops, from Brian Wheeler.

2001-09-13 08:23  simon

    * .cvsignore, t/.cvsignore:
    .cvsignore's, from Gregor Purdy.

2001-09-13 08:22  simon

    * Makefile:
    Euclidean test and test output rearranging from Gregor Purdy.

2001-09-13 08:21  simon

    * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
    Math ops from Gibbs Tanton.

2001-09-13 08:14  simon

    * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
    t/test2.pasm:
    String substr op; also rearranged "encoding" to be a vtable
    pointer, not an array index. Haven't changed docs to reflect this,
    oops.

    Simon

2001-09-12 19:48  dan

    * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
    Gregor Purdy

2001-09-12 19:39  dan

    * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.

2001-09-12 19:23  dan

    * interpreter.h, parrot.h: Quick placeholder entry for string
    function tables

2001-09-12 18:58  dan

    * memory.c: Added in a cast to make gcc happy.

2001-09-12 16:44  dan

    * docs/parrot_assembly.pod:

    PDD describing parrot's assembly language and the opcodes in it

2001-09-12 14:20  dan

    * memory.c:
    Fixed alignment issues with allocation

2001-09-12 10:54  simon

    * Makefile, assemble.pl, bytecode.c, disassemble.pl,
    make_op_header.pl, opcode_table, process_opfunc.pl:
    Brian Wheeler's big patch:

    * Changes the opcode_table file to provide additional information
    about the operands.  Case shouldn't be a problem since that data
    never becomes a C symbol [this is pretty much as before]

    * Padding errors solved:  assemble.pl and bytecode.c were padding
    the constants incorrectly.  It should have been 4-(size % 4), not
    just (size % 4).  It is now fixed in both places.

    * assembler has less special cases, and should be easier to hang
    error checking on

    * disassembler dumps constant table and the format is a bit
    prettier, including register names, etc.

2001-09-11 23:21  dan

    * build_interp_starter.pl, interpreter.c:

    Abstracted the runops function core into a macro for easy
    replacement later.

2001-09-11 10:43  simon

    * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
    Configure system from Brent Dax <brentdax@cpan.org>

2001-09-11 09:38  simon

    * assemble.pl, test.pbc:
    From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
    assembler deferred output

    Also got rid of the bytecode, since that's probably way out of
    date.

2001-09-11 09:26  simon

    * basic_opcodes.ops, opcode_table, t/test2.pasm:
    From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
    patch

2001-09-10 23:20  simon

    * MANIFEST:
    And that move needs a MANIFEST change. So many things to remember!

2001-09-10 23:18  simon

    * t/: test.pasm, test2.pasm, test3.pasm:
    Move tests to t/. (Oh, CVS doesn't work the way I think it does.)

2001-09-10 23:18  simon

    * test.pasm, test2.pasm, test3.pasm:
    Move tests to t/

2001-09-10 23:04  dan

    * test3.pasm:

    Register push/pop test

2001-09-10 22:47  simon

    * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
    Fix up format warnings, from Sam Tregar <sam@tregar.com>.
    (Modified to avoid conflict with Dan's changes.)

2001-09-10 22:45  dan

    * disassemble.pl:

    Happier about blanks in opcode_table

2001-09-10 22:40  dan

    * interpreter.c, register.c:

    Yanked out debugging code, since these work OK. The bug I want is
    elsewhere.

2001-09-10 22:30  simon

    * MANIFEST:
    Uhm. We want make_op_header.pl. We really, really do.

2001-09-10 22:26  simon

    * Makefile, TODO, assemble.pl, basic_opcodes.ops,
    build_interp_starter.pl, disassemble.pl, make_op_header.pl,
    opcode_table, process_opfunc.pl:
    Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
    This means we can add lots more opcodes without fiddling about with
    the numbers. Hooray!

    Don't forget that "end" needs to be op zero, else the interpreter
    falls off the end of the code. This is Bad, and I wonder if there's
    a way around it.

2001-09-10 19:49  simon

    * MANIFEST, make_op_table_build.pl:
    Hey! This doesn't do anything...

2001-09-10 19:46  simon

    * Makefile:
    "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.

2001-09-10 18:31  simon

    * MANIFEST:
    You know what this means...

2001-09-10 18:30  simon

    * assemble.pl:
    "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
    wait for a release...? :)

2001-09-10 18:13  simon

    * interpreter.c:
    Bad Dan! No cookie!

2001-09-10 17:56  simon

    * README:
    A *real* README file, which doesn't claim it isn't for public
    consumption.

2001-09-10 17:02  simon

    * TODO:
    More things to do.

2001-09-10 16:56  dan

    * TODO: Added in assembler gripe. Also added a few blank lines for
    clarity

2001-09-10 16:49  dan

    * register.h, register.c: Renamed the core functions so the opcodes
    can find 'em OK. (There were some conflicts)

2001-09-10 16:48  dan

    * basic_opcodes.ops, opcode_table: Added register window ops

2001-09-10 11:07  simon

    * TODO:
    Trivial TODO list.

2001-09-10 11:05  simon

    * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
    note "-s" flag to test prog.

2001-09-10 11:01  simon

    * docs/strings.pod:
    New string documentation.

2001-09-10 11:01  simon

    * basic_opcodes.ops, opcode_table:
    String ops.

2001-09-10 10:53  simon

    * global_setup.c:
    More string fu.

2001-09-10 10:51  simon

    * memory.h:
    Just some more aliases for now. Used by string handling stuff.

2001-09-10 10:50  simon

    * assemble.pl, bytecode.c, bytecode.h:
    Temporary hack to store string constants in bytecode and recreate
    them at runtime.

2001-09-10 10:48  simon

    * op.h:
    op.h is now generated by the Makefile; remove it.

2001-09-10 10:47  simon

    * Makefile:
    clean and op.h Makefile targets.

2001-09-10 10:45  simon

    * string.c, string.h, strnative.c:
    More string vtable stuff.

2001-09-07 21:07  dan

    * assemble.pl:

    Much less picky about whitespace in the opcode_table now. (Doesn't
    whine on blank lines)

2001-09-07 16:23  dan

    * Makefile, assemble.pl, global_setup.h, interpreter.c,
    interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
    this takes) Added global_setup.h to declare init_world function

    Moved variable declarations out of the interpreter loop for small
    speed boost.

    Changed end opcode to now be opcode #0. A function is provided for
    it, but isn't ever executed.

    When the interpreter sees an opcode 0 in the stream it means the
    end of stream. Things were coring on Cygwin otherwise. (I think I
    was dereferencing a zero, which is bad)

2001-09-06 22:07  dan

    * basic_opcodes.ops, process_opfunc.pl:

    Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
    are minor changes now that things are in a fixed state.

2001-09-06 16:13  dan

    * basic_opcodes.c, test_opcodes.c:
    test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.

    basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
    should be nuked. So it is. :)

2001-09-06 03:35  dan

    * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
    Scripts to build the header file that holds the function table
    creation code, as well as the script to turn an opcode file to C
    source. (And the basic opcode functions turned into an opcode
    source file)

2001-09-06 03:31  dan

    * Makefile, interpreter.c:
    Changes to support the autogeneration of the opcode function
    pointer table in interpreter.c, along with the changes to the
    Makefile needed.

2001-09-05 13:27  simon

    * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
    docs/parrotbyte.pod, docs/vtables.pod:
    Added stubs for the documents; working on them this week. (What's
    left of it.) config.h change is just to type VTABLE, and the
    bytecode thing you might want to revoke. It's apidoc for the
    functions in there.

2001-09-03 18:26  simon

    * docs/strings.pod:
    A start on the string API documentation.

2001-09-03 17:43  simon

    * opcode_table:
    Since we specify the opcode number, we can rearrange to a more
    human-friendly ordering.

2001-09-03 17:42  simon

    * basic_opcodes.c:
    Coupl'a logic bugs. (I think)

2001-09-03 17:41  simon

    * string.c, string.h, strnative.c:
    Tidying up the string vtables.

2001-09-03 17:38  simon

    * make_op_header.pl:
    Spit out the whole of op.h, not just the bit in the middle.

2001-08-29 13:16  ask

    * README: it seems like we indeed can commit. What about sending
    commit mails?

2001-08-29 13:07  simon

    * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
    bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
    global_setup.c, interpreter.c, interpreter.h, io.h,
    make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
    op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
    stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
    test.pbc, test_main.c, test_opcodes.c:
    Initial checkin of Simon's work directory - Dan, feel free to nuke.
     I'm still working on the string stuff, though.

2001-08-29 12:44  ask

    * README: update README with list address

2001-08-29 12:36  ask

    * README: first readme.
