Laurent Sansonetti
lsans****@apple*****
Thu Sep 14 05:26:43 JST 2006
Just to mention that I fixed the "omitted pointers" support (omitting an argument that is passed-by-reference to the Objective-C method and returned back to Ruby packed with the return value in an Array). All tests are passing! Laurent On Sep 12, 2006, at 8:36 PM, Laurent Sansonetti wrote: > Hi guys, > > As you could see, I recently experimented the libffi library inside > RubyCocoa. I did that in a branch named "libffi-experiment" in the SVN > repository. I also experimented a new metadata XML mechanism. > > Here are the major changes in that branch: > > - libffi sources are included in misc/libffi, and built if libffi is > not present in the system > - no more rb_[AppKit|Foundation].c code generation > - at build time, framework/tool/generate_bridge_support.rb parse > AppKit/Foundation headers and generate XML description for constants, > functions, enumerations... > - at runtime, RubyCocoa parses the XML files and do the necessary > linkage > - constants are loaded lazily (via OSX.const_missing), to avoid > localizing all symbols at once (which is costly) > - libffi is used to call C functions from Ruby > - libffi is used to forward messages from Ruby to ObjC > - the XML description also contains the list of ObjC methods returning > BOOL, so that we can automatically convert their return value to real > Ruby boolean objects (so, not necessary to suffix with ? anymore to > have a bool value) > > Most tests are passing (and all the samples I tested are working). The > only stuff that is broken is the pass-by-reference support, which is > normal. > > I'm right now working on describing structures inside the XML (for > example, in case of Foundation, NSRect and friends), so that > everything can be handled dynamically. > > Please test the branch if you can, and report me any feedback. If it's > OK for everyone I would propose to merge it to trunk once everything > is complete. > > Thanks, > Laurent > _______________________________________________ > Rubycocoa-devel mailing list > Rubyc****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel