forked from rubinius/rubinius
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Resurrect ConcatArgs. All array compiler specs pass.
Like a nauseatingly sweet cake, the compiler currently has 3 thick layers of obfuscating logic: 1) the sexp rewriting, 2) the sexp consumption and args methods, 3) the bytecode generation. The compiler is a bad marriage between a sexp processor and an object-oriented compiler. All this is built on the often confusing foundation of MRI's parse tree. I mean, seriously, rewrite argscat into splats that are wrapped in arrays so other nodes can take them apart again? Seriously? So I am the divorce judge and this union is being destroyed. Sorry, sexps, you get nothing. Dismissed. Goodbye. Objects, you get stripped of your twisty internal logic, to the extent reasonable. How? By creating more classes as appropriate that each do their own simple thing. Again, this is a WIP, but the general principle is that if a thing needs a particular form, it should be a particular thing, not some murky shape-shifter.
- Loading branch information
Brian Ford
committed
Aug 4, 2009
1 parent
c092623
commit c795d1b
Showing
3 changed files
with
48 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters