Today's update thusfar:
- singleton methods (def x.y and friends) are compiling now
- singleton classes (class << x) are compiling now
- fixed a bug in for loop compilation
- fixed a nasty bug where class/module bodies were damaging the
surrounding scope
This leaves the following features still not compiling:
argspush (foo(*x, y, z))
backref ($~ $+, $&, etc)
classvardecl (@@x = 1 within class body)
colon3 (defining constant as ::Foo)
flip (while (true)..(false) ...)
opelementasgn (a.[]=(...) in operator form)
optn
postexe (END {...})
rescue
retry
super
zsuper
and all non-local flow control (next, break, return, redo within blocks)
Short list!
- Charlie
Charles Oliver Nutter wrote:
More updates:
- class definitions are compiling
- module definitions are compiling
I keep stalling on rescue and non-local flow control, but they're coming.
- Charlie
Charles Oliver Nutter wrote:
Updates:
- case nodes are compiling for most normal cases; "when" with multiple
values doesn't compile just yet.
- valias and undef compile (trivial).
- for loops compile (basically just like calls to "each" with a
special no-scope block).
Charles Oliver Nutter wrote:
Here's a list of the AST nodes that do and don't compile currently.
We're looking pretty good so far; there's a short list of in-method
nodes that don't compile yet, and really only a couple really nasty
ones (case/when, rescue, maybe sclass/defs).
I think we're on target to have everything compiling by November.
That's my goal for the compiler.
Anyone who wants to dive into remaining nodes, be my guest.
Compiling nodes:
alias
and
argscat
array
attrassign
begin
bignum
block
break (except for non-local)
call
class
classvar
classvarasgn
constdecl
colon2
const
dasgn
defined
defn
dot
dregexp
dstr
dsymbol
dvar
dxstr
ensure
evstr
false
fcall
fixnum
float
globalasgn
globalvar
hashnode
if
instasgn
instvar
iter
localasgn
localvar
match
match2
match3
multipleasgn (except for block args)
newline
next (except non-local)
nil
not
nthref
opasgn
opasgnand
opasgnor
or
redo (except non-local)
regexp
return (except non-local)
root (sorta...only applicable to class and module bodies and
full-script compilation)
self
splat
str
svalue
symbol
toary
true
until
vcall
while
xstr
yield
zarray
Not compiling:
argspush
backref
case
class
classvardecl
colon3
defs
flip
for
module
opelementasgn
optn
postexe
rescue
retry
sclass
super
undef
valias
when
zsuper
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email