Skip to content
master
Switch branches/tags
Code
This branch is 15 commits ahead of camspiers:master.
Contribute
Fetch upstream

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 

Galapagos

Evolutionary language transformation. Fork of igorw's initial work.

Read the related blog post.

Backport existing PHP features to previous versions through AST compilation. Inspired by lisp macros. Using the incredible nikic/PHP-Parser.

Missing features

5.4

  • Binary number format
  • Closure rebinding

Edge cases:

  • Calling private methods from within closure
  • Ensure $that gets passed to nested closures

State

There needs to be a strategy for managing state. A trait transformer needs to keep track of the traits it found. That is currently missing.

Preservation

There should be a way to preserve existing code formatting, especially for code that wasn't actually modified. Instead of pretty-printing everything, only changed parts of the AST should be changed in source. Three-way-diff may help with this.

Line numbers

Is there any way to do something like source maps to refer to the original line numbers, so that code remains at all debuggable?

About

Evolutionary language transformation.

Resources

License

Releases

No releases published

Packages

No packages published

Languages