Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: 1a8d3e4e8f
Fetching contributors…

Cannot retrieve contributors at this time

221 lines (166 sloc) 6.364 kB
dev 2012-04-12
* Perlito5 (Perl 5 compiler):
-- option "-B" is now the default; this executes immediately: perlito5 -e 'say "ok"'
-- option "-MO=Deparse":
$ node perlito5.js -Isrc5/lib -MO=Deparse -e ' while (1) { say "works" } '
-- environment variable PERL5LIB=src5/lib now works
- parser:
-- autoquote hash-keys fix
-- string interpolation in m//
-- accept underlines inside numbers
- javascript backend:
-- tie() - TIEARRAY, STORE, FETCH
-- string increment
-- negative index in array
-- more file and process operations: chdir, unlink, close, exit
-- control functions: next, last, redo, break
-- more functions: rand, printf, sprintf
-- "continue" blocks
-- GLOB references
- perl5 backend:
-- requires v5.10
* Perlito6 (Perl 6 compiler):
-- updated method hyper syntax to use >>. instead of .>>
9.0 2012-04-11
* Perlito5 (Perl 5 compiler):
- parser:
-- there is now an internal "grammar API"; new words can be added to the grammar from inside perl5 modules;
The non-standard "token" grammar was moved to a module
-- here-docs
-- new Perl5-in-Perl6 backend (experimental)
-- new option -Bjs/-Bperl5
-- new option -Cast-perl5
-- added option -I
Note: -I./src5/lib is required to compile the compiler and also to run some of the tests
-- runs some tests from the perl5 test suite (pmurias++)
-- implemented prototypes (function signatures)
-- "use", import/unimport; "use strict"/"no strict"
- perl5 backend:
-- use native data structures and ops
- javascript backend:
-- works on node-js (pmurias++)
-- @ISA and inheritance
-- %ENV, @ARGV
-- simple regexes (using javascript native regex)
-- symbol tables/typeglobs
-- references
-- "local", "our"; goto &sub
-- wantarray; each; __PACKAGE__
-- native javascript can be accessed with JS::inline('string')
-- reduced generated code size; emitted code is more optimized and better formatted
-- cleanup unused modules from the browser backend
- javascript backend regressions:
-- the d8 shell (v8 javascript) doesn't support some file system functions needed by the compiler
-- perlito5 calling convention is incompatible with native javascript
The last commit using native javascript calls is "e1e3316b"
* Perlito6 (Perl 6 compiler):
- compiler namespace moved from Perlito to Perlito6
8.0 2011-12-24
- added new compiler for Perl version 5.
* Perlito Perl 5:
- command line "perlito5.pl"
- supported backends: Perl 5, Javascript
- source code in src5/ directory
* Perlito Perl 6:
- command line renamed to "perlito6.pl"
- supported backends: Perl 5, Python 2.6, Javascript
- new experimental backend: Java
- fixed META.yml for "v6.pm" CPAN distribution (thanks Aevar)
- fixed unicode IO, added unicode tests
- add some formatting to Perl5 and Javascript output
- methods: map, grep
- operators: x
- source code moved to src6/ directory
Regressions:
- removed '-B' command line flag (since 7.0)
- backends pending upgrade to the new AST: Common Lisp, Ruby 1.9, Eval
- backends no longer supported in this version: Go, Parrot, Rakudo, Clojure
7.0 2011-04-20
- supported backends: Perl 5, Python 2.6, Javascript
- added "perlito" command-line compiler and shell
- new distribution "v6.pm" (Perlito in Perl 5)
This replaces Pugs::Compiler::Perl5 as the v6.pm compiler in CPAN.
- correct operator precedence
- interpolation of variables and code in strings
- 'unless' and statement modifiers
- several fixes in List, Hash, Array, Block, Bool, Str, Mu
- operators: numeric autoincrements, defined-or, range
Regressions:
- removed '-B' command line flag
- backends pending upgrade to the new AST: Go, Common Lisp, Ruby 1.9, Eval
- backends not supported in this version: Parrot, Rakudo, Clojure
6.0 2010-07-27
- Ruby backend bootstrap.
- more tests
5.0 2010-07-19
- Python backend bootstrap.
- use variable assignment instead of binding - that is, use '=' instead of ':='
- 'use' - all backends can now use Test.pm
- 'elsif'
- 'loop'
- regex quantifiers
- Lisp backend now bootstraps with the 'util/mp6.pl' compiler
4.1 2010-03-24
- floating point numbers
- 'while' loop
4.0 2010-03-20
- Go backend bootstrap.
The Go backend was updated to the latest Go language spec.
- Perl5 backend optimized; 30% faster
- More library functions, added to all backends
- New 'Eval.pm' module - implements a MiniPerl6 interpreter in MiniPerl6.
This should add some debugging capabilities later on.
- New test suite. See README on how to use 'prove' for each backend.
- New compiler options to create binary executables
- Currently the stable backends are: Perl5, Javascript, JVM, Lisp, Go.
See README for bootstrapping instructions for all backends.
- Removed support for features that are not standard Perl6.
3.0 2010-01-21
- Go language backend; using Go: http://golang.org
- Java-class backend; using Rhino: http://www.mozilla.org/rhino
- util/mp6.pl - compiler command line script written in MiniPerl6
- new repository at http://github.com/fglock/Perlito
- new web page at http://www.perlito.org created by nferraz (Nelson Ferraz)
2.0 2009-10-09
- Javascript (Firefox, V8) bootstrap
- simplified 'make' inside tokens
1.0 2009-08-28
- Lisp (SBCL) bootstrap
- Changed accessors to lvalue
[intermission]
- Perl5 emitter: fixed Array inside signature: method ( $a, [ $b, $c ] ) ...
- Perl5 emitter: implemented "warn"
0.003 2006-12-12
- All tests converted to TAP format
- Parrot backend:
- added Parrot emitter and 'mp6-parrot' script
- passes several tests
- 'Match' class written in MP6
- Perl5 backend:
- parameter binding with complex data structures
0.002 2006-11-18
- fixed array expansion in 'for @x {...}'
- fixed grammar compilation in MiniPerl6::Grammar and MiniPerl6::Grammar::Regex
- type annotations my Int $x
- autoquote hash keys { a => 42 }
- pair syntax sugar { :$a }
- deep array binding [ $a, [ $b, $c ] ] := [ 1, [ 2, 3 ] ]
0.001 2006-11-17
- MiniPerl6::Perl5::Emitter and MiniPerl6::Emitter::Token compile ok
echo 'class Main { say "hello, World" }' | perl -Ilib5 mp6-perl5-boot.pl | perl -Ilib5
2006-11-14
- all files parsed
- added Perl5 build script
2006-11-11
- parses MiniPerl6/Emitter.pm
2006-11-10
- parses mp6.pl
2006-11-06
- implemented MP6::G::Regex::rule()
- /<%hash>/
- /const|const/
- /<subrule>/
- /<'xyz'>/
- /\n/
2006-11-01
- initial language draft (on paper)
Jump to Line
Something went wrong with that request. Please try again.