and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
New in 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)
Failed 3/190 test scripts, 98.42% okay. 15/4580 subtests failed, 99.67% okay.
New in 0.4.0
- New lexical handling and closure support including better
introspection for caller and outer
- PGE (Parrot Grammar Engine) provides now compilers for P6Rule,
P6Grammar, P5Regexp, and Glob
- ca. 1000 new tests including 800 for Perl5 regexp
- Improved unicode charset and encoding support
- Calling conventions for exception handlers
- Punie (Perl 1) uses TGE (Tree Grammar Engine) to convert from
PGE match objects to AST via two steps of tree transformation grammars
- New languages: amber and lua
- The usual code fixes, cleanup, and improvements, including an overhaul
of the config and test framework
New in 0.3.1
- Variable sized register frames are finished. Each subroutine gets
the amount of registers that it actually needs. No more spilling.
- Vastly improved PGE (Parrot Grammar Engine) including shift-reduce,
precedence-based expression parser and support for matching of
bracketed text delimited by e.g. ()[]{}'"
- uniccode character classification (is_upper ...)
- support for heredoc syntax in assembler
- improved examples, basic JSON support
- debian packaging support
- the usual improvements, bug fixes, and cleanup
- test count exceeds 3000
New in 0.3.0
- New calling conventions implemented: see PDD03 for details
- Merge multiple Parrot bytecode (PBC) files into a singe PBC file
- 'make smoke' target going beta
- bc now supports if statements, comparison ops, prefix inc/dec
- ParTcl adds [lassign], [switch] (partially); [expr] converted to a compiler
- Many exciting doc updates, tests, and bugfixes, too numerous to mention
New in 0.2.3
- Dynamic classes now compile on Windows (including ParTcl)
- New Super PMC allows easy access to superclass methods
- Implement C3 method resolution order (just like Perl6 & Python)
- ParTcl has new PIR-based parser and passes more Tcl tests
- added character class support in Globs to PGE
- added language implementations of unlambda, Lazy-k
- many bugfixes, including GC and memory leaks
- the new calling scheme continued to evolve in branches/leo-ctx5
New in 0.2.2
- new call scheme: docs/pdds/pdd03_calling_conventions.pod
- partial implementation of the new calling conventions
PASM only, don't mix PIR foo() call syntax with the new scheme
- grammar and rule support in PGE - the Parrot Grammar Engine
- TCL passes >10% of the tcl test suite
- the usual bugfixes and improvements
New in 0.2.1
- better HLL support (short names for object attributes, and
.HLL and n_operators pragmas)
- string encoding and charset can now be set independently
- experimental mmap IO layer for slurping files
- distinct debug and trace flag settings
- glob support in PGE
- new character classification opcodes and interfaces
New in 0.2.0
- parrot repository is now under subversion
- MMD (Multi Method Dispatch) enhanced
- new unary and infix opcodes that return new result PMCs
- dynamic scalar PMCs inherit now almost all from Parrot core PMCs
- more unification of PMCs and ParrotObjects
- tailcalls for functions and methods
- PGE (Parrot Grammar Engine) reworked
- Pugs creates Parrot code and Pugs is a registered compiler now
- new languages/lisp
- the usual bug fixes and improvements
New in 0.1.2
- New string handling code. Strings now have charset and encoding
- Parts of a generation garbage collector
- Better Python code, separated in dynclasses
- Parrot Grammar Engine
- Improved test coverage and documentation
New in 0.1.1
Parrot 0.1.1 is an intermediate release with tons of updates and fixes.
- Python support: Parrot runs 4/7 of the pie-thon test suite
- Better OS support: more platforms, compiler, OS functions
- Improved PIR syntax for method calls and <op>= assignment
- Dynamic loading reworked including a "make install" target
- MMD - multi method dispatch for binary vtable methods
- Library improvement and cleanup
- BigInt, Complex, *Array, Slice, Enumerate, None PMC classes
- IA64 and hppa JIT support
- Tons of fixes, improvements, new tests, and documentation updates.
A lot is unfinished and keeps changing. Nethertheless Parrot is stable
and usable at the surface, while internals are moving.
New in 0.1.0
- "Ladies and gentlemen, I give you... objects!"
- Huge documentation overhaul
- More supported platforms, s. PLATFORMS
- Basic thread support for pthread based architectures
- Basic event handling for timers and signals including:
- PASM callbacks for NCI (native C) functions.
- Improved platform configuration
- COW stacks now working, stacks code redone
- Structure handling vastly improved
- Random PMC and rand primitives
- Better subroutine call syntax in PIR
- Make PIR subroutines compliant with pdd03
- Improved profiling (DOD, GC timings)
- Hash code improvements, incl. random key order support
- Experimental freeze/thaw code for some PMC types
- IO improvements for buffered layer and Win32
- String iterators
- String bitwise vtables
- Many new opcodes
- Support for JIT, where malloced memory isn't executable
- Priority DOD scheme for objects that need timely destruction
- Improved byte code loading (e.g. onLoad functions)
- Language updates: forth, Perl6/P6C, m4
- Libraries: Getopt_Long, SDL, Dumper, Sort
- new JAPH examples
- Unified imcc and parrot test handling
- Many new tests (make test reports 1386 tests)
- Numerous bug fixes
New in 0.0.13
- The Big Move: Parrot source and build files rearranged into sub dirs
- Build imcc as parrot
- Objects more finished
- Delegate vtable methods to byte code
- Binary multi-method dispatching
- Isa and does methods for PMCs
- Call byte code from C
- Start of extension interface
- Experimental struct handling
- Catch access to NULL PMCs
- Experimental network socket interface code and opcodes
- IO fixes and improvements
- Dynamic opcode libraries
- Fix-assigned opcode numbers
- Argument flattening for function calls
- More native call interface (NCI) signatures
- Ncurses, postgres, and pcre interface libraries
- Forth language is vastly improved
- BSD and Win32 build improvements
- Many new tests and fixes
New in 0.0.12
- This number intentionally left blank
New in 0.0.11
- Executable output
- Dynamic PMC registration
- Trial exception system
- Beginnings of object system
- Iterators
- Ordered hashes
- I/O system improvements
- References
- Documentation for basic PMC types
- IMCC support of Parrot Calling Conventions
- Runtime loading of chartypes (and other string improvements)
- Conditional breakpoints
- Dramatically accelerated sweeps for finalizable objects
- Small PMCs (PMCs split into core and extensions)
- Loadable bytecode packfiles
- Constant PMCs
- Sub variants that deal with the stack correctly
- Switched runops core
- Line numbers in warnings
- Environment access
- Many documentation cleanups
- Conversion to CPS style!
- BASIC debugger and many other wacky features
- Filename, line number parsing support in IMCC
New in 0.0.10
- IMCC integration
- eval
- some more benchmarking
- cgp core
- optimized math ops
- intersegment branches
- more complete use of PObjs
- beefed up packfiles
- sub/continuation/coroutine fixes
- better NCI (native calling interface)
- many imcc improvements
- jako improvements
New in 0.0.9
- Native function calling interface (Dan)
- Stack/list aggregate rewrite (Leo)
- Scratchpads (Jonathan Sillito)
- Preliminary DotGNU support -- type conversion ops (Gopal V + Leo)
- Buffer/PMC unification (Leo)
- stabs debugging support for JIT (Leo)
- Jako overhaul (Gregor)
- Optional Lea allocator (Leo)
- Parrot sprintf (Brent)
- Miniparrot (Josh)
- PMC Properties (Dan)
- Various JIT improvements (D. Grunblatt + Leo)
- Extensible packfiles (Juergen)
- Restructured PMC hierarchy (Leo)
- Real Scheme (Juergen)
New in 0.0.8
- Several new grammars and a BNF -> perl5 and perl6 converter (Jeff)
- Working Perl6 REs (Sean)
- Keyed Access (Tom Hughes et al)
- New PMCs (Alberto et al)
- Better Documentation
- New COW semantics
- GC acceleration (Mike Lambert)
- Lexical scope (Jonathan Sillito)
- IMCC patches
- JIT for the ARM
New in 0.0.7
- Perl 6 Grammar and Compiler (Sean)
- Subroutines, coroutines, and continuations (Melvin)
- GC improvements (Peter Gibbs, Mike Lambert)
- Global variables (Melvin)
- Intermediate bytecode compiler (Melvin, Angel)
- And much, much more.
New in 0.0.6
- New assembler that support keyed types (Jeff)
- New macro layer, allowing constants (Jeff)
- New Configure.pl (Brent)
- Changes to bytecode format, endian issues resolved (Melvin)
- GC improvements and bug fixes (Peter Gibbs, Mike Lambert)
- JIT compiler rewrite (Jason and Daniel)
- Parrot assembler in Parrot (Daniel)
- Parrot debugger (Daniel)
- BASIC polished, Eliza.bas is new (Clint)
- Cola compiler committed and working, with limited OOP (Melvin)
- Keyed aggregates (Steve Fink)
- Global ops (Melvin)
- Compile-time speedup (Melvin)
- Much documentation
- New PDDs (Dan)
- Contributed tetris and lzw files
- And many more, from the cast of thousands
New in 0.0.5
- Full GC
- Perl Scalar support in PMCs
- Array and Hash types almost ready for prime-time
- Internal support for keyed types
- EMACS editing mode
- New PDDs
- New Language - BASIC
- Regular expression compiler
- More tests
- Many, many bug fixes, enhancements, and speedups
New in 0.0.4
- Arena-based memory allocation system
- Copying GC
- New IO subsystem
- "Predereferencing" mode - ./parrot -P - 22% speedup
- JIT compiler - ./parrot -j
- Parrot now builds warnings-clean on many platforms
- Many more PMC methods implemented
- Regular expression operations
- Added a FAQ
- Basic support for embedding Parrot in other programs
- Warnings support
- Added PDDs to distribution
- Bignum library
- PMC inheritance
- Added an assembly optimizer
- Improved string encoding/type support
- Many more tests
- Source reformatting
- Major refactoring in packfile library
- More Miniperl functionality
- New PMC "clone" operator
- Beginnings of key-based access to PMCs - arrays and hashes
- MOPS comparisons in examples/mops/
New in 0.0.3
- PMCs!
- Perl base scalar types implemented
- A new minilanguage, Scheme
- Much improved documentation
- Register stacks pushing and popping
- User stack pushing, popping and rotating
- Jako updates: subroutines, more example programs, optimizations
- test_prog renamed to 'parrot'
- Added features to the assembler: @ for current location, and global
labels
- Build tweaks for VMS
- Bytecode typing clean-ups
- More platforms: OS X, HPUX, OS/2
- The proliferation of runops cores reduced to one fast and one slow one
- Opcode tracing, bounds checking, profiling
- Vastly improved string support, with separation of encoding and
charset
- Lots more tests
- Multiple interpreter creation support - the beginnings of threading
- Much better resource handling - the beginnings of GC
New in 0.0.2
- Parrot now works on all core platforms
- A large number of tests, in the standard Perl testing framework
- A new minilanguage (Jako) which compiles to Parrot assembly
- Documentation about the assembly language (docs/parrot_assembly.pod)
- Separate modules for assembly (Parrot::Assemble) and bytecode
manipulation (Parrot::PackFile::*, packfile.c)
- Assembler completely rewritten
- Better operand-type guessing in the assembler
- Assembler support for '\n' etc. in string constants
- Code reformatted to match the coding standards
- New ops for register-constant INTEGER comparisons
- Macro expansion in the assembler
- IVs and NVs renamed to more friendly INTVAL and NUMVAL
- Hard-coded pack("") formats removed
- Better handling of floating-point numbers in assembler
- Moved floats to constant table (fixing many alignment issues)
around at either build-time or at run-time is:
USE_TOOLS+= perl # build-time
USE_TOOLS+= perl:run # run-time
Also remove some places where perl5/buildlink3.mk was being included
by a package Makefile, but all that the package wanted was the Perl
executable.
which may form part of Perl or Python's future, into the NetBSD packages
collection.
Provided in PR 13933 by Chris Pinnock <cjep@interoute.net.uk>, tarted
up somewhat by me.
PARROT: A bytecode language possible to be used in the future by
Perl 6 and a Python.
The idea was originally an April fool's joke...
"What we're releasing today is a very, very early alpha of the Parrot
interpreter. At the moment, we have support for some simple
operations on integer, floating point and string registers, and the
ability to read in and execute bytecode. We also have an assembler
which can generate bytecode output from Parrot assembly."