On Tue 19 Apr 2011 23:11, Phil <theseaisinh...@gmail.com> writes: > I have recently checked out the Lua branch. I want to make it seaworthy.
Cool! It does indeed need some more loving :-) > I've requested to be added back onto the Savannah group, can someone > do that? TIA. Sure; saw your mail before reading this, so please disregard that confirmation message. > git co -b lua origin/lua > git co -b stable-2.0 origin/stable-2.0 > git branch lua > git rebase stable-2.0 > > Is that right? Yes, except perhaps "git checkout lua" instead of "git branch lua", no? > TODO: > > - Missing standard library functions: math.modf, table.sort, module I think Mark's recent division work should help with modf. I don't recall what's needed for the rest. > - Missing getfenv/setfenv. You can tell Lua to look up global > variables in different environments. > Frankly this is going to be really annoying to implement and I'd > rather leave it off until someone complains about it being missing, if > that's cool. OK. > - Variable arguments, multiple returns. This is the big one. > FIXME: > > - Use prompt and abort instead of throw and catch. Yes this will be good too. > - And/or expressions evaluate expressions multiple times. Whoops! > - The keyword "break" does not work correctly. Yes; to fix. > Andy, I think you wrote "FIXME: use module binders instead" in > compile-tree-il.scm, what does that mean? For global refs, the current code does a lookup every time a function is called, where instead it should allow the variable to be cached the first time it is looked up. The way to hook into the process of caching a variable for lookup is module binders. They aren't documented though. Search for "binder" in ice-9/boot-9.scm and in modules.c. Cheers, Andy -- http://wingolog.org/