Matz, Koichi, John Lam, Kevin Tew, Tim Bray, Eric Hodel, Paul Brannan, Nathaniel Talbott, Charles Nutter, Evan Phoenix, Ryan Davis, Zed Shaw
non-yacc grammar common parsing architecture
Specification
RubySpec? -- filling out headius.com/rubyspec Perl 6 spec links to tests links to impl (use rdoc/ri??) legion <- phalanx easier to write tests while you're writing code
can we leverage the existing libs (stdlib/popular libs) to build specs
Interface between dynlang/statlang -- not many clear rules,
not much research
learning as we go along
can only finalize once, then the class
is closed on the static side
as type checking move to type inference, we'll
see this problem go away -- they actually did
this for performance
Challenges
thread unsafe operations
in JVM (only fire when in Ruby code)
still being defined in Parrot
Joe Duffy working on it in the CLR
(don't worry about critical -- going away in 1.9
(built in mutex at that point, so don't need it anywhere))
oject space (Koichi laughs)
in a multithreaded state it's non-deterministic,
affects GC
Parrot has the same problem
SmallTalk has a next_object method
(but next and last are undefined)
ObjectSpace? walks the tree the same way that GC does
this works in Ruby, but not in JVM
(a weak ref could disappear before it's passed over
a strong ref? causes own problem
need a hurry operator)
just a best effort seems the way to implement it
(JRuby does it this way)
what are the use cases for this? (turning it off improves
performance dramaticly)
Test::Unit needs it -- what if we stole it? (Charles)
I could do something else, but I don't want to! (Nathaniel)
DRb, but that can be made to use an alternative Class tracker
debug mode exposes similar functionality
options
command-line enable/disable toggle?
make it optional in 'the spec'
how do you do reflection without it?
Object keeps track of it
Classes exist in a namespace until they're gone, so you
don't really need Objectspace to do reflection
OpenSSL? is a challenge in JVM, other libraries too
Platform independent library access (ties back to OpenSSL?
-- there are many possible encryption backends
abstract the interface and let people work with
whatever library they have
Performance Issues
method dispatch may be a place to work together
spec and testing can help (if we know what has to happen
then we can make it work)
what about Strongtalk dispatch
what about ObjC? dispatch
Is Rubinius a good way to do the common work (dispatch and others)
JVM can't throw code away that a lot of other people can
(in Rubinius) code in script body (a method called by Main) code in class body (JVM is similar)
what about a reduced set of Ruby
rubinius ROjects
(RObjects work well for JRuby)
Robert Feldt
metaruby and ruby2c needs a static C subset
trying to discover by implementing Ruby in Ruby
whatever can't be done becomes a primitive
Tinderbox system would help everything (work with Legion too)
TestSuite? is good, but need natural language to look at
rubytest project on RubyForge Test::Unit is a bit heavy BFTS might be a better way move it onto RubyForge (Kevin & Evan) integrate legion shared, volunteer tests -- aggragated -- comon format
discuss Perl 6 Docs with Andy and other Perl6 folks
Audrey
Fuzz the implementations
Fuzz the interpreter
Fuzz the compiler
Zed interested in doing it
(steal from Peach)
Fuzz survivor prize money??