login

RubyImplemntersSummit2006Nov (Ruby)

HomePage | RecentChanges | Preferences | Wikis | RubyGarden | Feed-icon-16x16

Really just a bunch of notes (the formatting is ugly, maybe someone else will pretty it up):

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??


HomePage | RecentChanges | Preferences | Wikis | RubyGarden
Edit text of this page | View other revisions
Rev 1, Last edited at October 24, 2006 17:04 pm by pate / 216.49.181.128 (diff)
Find: