Activerecord-jdbc-adapter 0.8.1 Released

Posted by Nick Sieger Wed, 04 Jun 2008 21:57:00 GMT

The long-delayed and much-awaited 0.8.1 release is here. It fixes quite a few reported bugs (but not quite all). See the full changelog below for details.

Please help me make more frequent releases of ar-jdbc by submitting patches against the trunk of activerecord-jdbc. Test cases appreciated also.

File bugs in JRuby’s JIRA. Use the “ActiveRecord-JDBC” component when filing them.

You can check out the source here:

svn co http://jruby-extras.rubyforge.org/svn/trunk/activerecord-jdbc
git clone git://github.com/nicksieger/activerecord-jdbc-adapter

Recently I started keeping a mirror of activerecord-jdbc-adapter on Github. Feel free to watch or fork and send me patches via git format-patch as well.

One of the cool new things in this release is a JDBC version of sqlite3 using the Zentus Sqlite JDBC driver. The crazy thing is how the driver is created. The original sqlite3 codebase is cross-compiled to MIPS and the resulting output coverted to Java bytecode using NestedVM! The adapter is still in its early stages, but basic stuff seems to be working. Try it out using jruby -S gem install activerecord-jdbcsqlite3-adapter.

Let me know how the release works for you!

Changes in 0.8.1

  • Now sporting a JDBC sqlite3 adapter! Thanks Joseph Athman.
  • Added support for InterSystems Cache database (Ryan Bell)
  • Fix for JRUBY-2256
  • JRUBY-1638, JRUBY-2404, JRUBY-2463: schema.table handling and Oracle NUMBER fixes (Darcy Schultz & Jesse Hu)
  • Add structure dump and other DDL-ish for DB2 (courtesy abedra and stuarthalloway)
  • Fix missing quotetablename function under Rails 1.2.6 and earlier
  • Small tweaks to jdbc.rake to select proper config
  • JRUBY-2011: Fix MSSQL string un-quoting issue (Silvio Fonseca)
  • JRUBY-1977, 17427: Fix information_schema select issue with MSSQL (Matt Burke)
  • 20479: Improve gettablename for MSSQL (Aslak Hellesøy)
  • 20243: numerics improvements for MSSQL (Aslak Hellesøy)
  • 20172: don’t quote table names for MSSQL (Thor Marius Henrichsen)
  • 19729: check for primary key existence in postgres during insert (Martin Luder)
  • JRUBY-2297, 18846: retrying failing SQL statements is harmful when not autocommitting (Craig McMillan)
  • 10021: very preliminary sybase support. (Mark Atkinson) Not usable until collision w/ sqlserver driver is resolved.
  • JRUBY-2312, JRUBY-2319, JRUBY-2322: Oracle timestamping issues (Jesse Hu & Michael König)
  • JRUBY-2422: Fix MySQL referential integrity and rollback issues
  • JRUBY-2382: mysql string quoting fails with ArrayIndexOutofBoundsException

Tags ,  | no comments

JRuby Q & A at RailsConf

Posted by Nick Sieger Sun, 01 Jun 2008 22:07:33 GMT

These are the notes I took during our “panelish” Q & A session on Sunday afternoon at RailsConf.

  • Exceptions (behavior between ruby and java)

    • Embedding: JSR-223 preferred, BSF fallback
  • Java integration, mocking, proxying, extension

  • Multiple VM support

    • multiple JRuby instances can be run in the same VM
    • JavaSand (google it) -- Ola’s port of _why’s (freaky freaky) sandbox
  • Startup time performance gain recently

    • -Xbootclasspath: VM does not verify classes in the “boot” classpath
    • -Xverify:none is not recommended because of runtime-generated code
    • Nailgun to keep VM running and “send commands” to it
  • Compiling Ruby code to JVM bytecode

    • Keep # of class files low
    • Walk AST and dump out high-level, abstracted operations (local variable access, dynamic invocation) and low-level bytecode is built for each of those
    • 4096 -- maximum # of methods to be compiled
    • Compiled methods are shared between runtimes
    • Future:
    • raise/eliminate overhead of compiled methods
    • share AST, reduce memory load
  • Community tasks/actions

    • Projects needing help (e.g., ActiveHibernate)
    • Adoption, acceptance, blogging
    • Documentation (http://wiki.jruby.org/ and others), screencasts
    • Who’s using it?
  • Sun’s commitment

    • Ruby vs. Groovy vs. Python vs. Scala vs. other langs
    • Rails vs. Grails vs. Lift vs. JSF vs. Struts 2 vs. ???
    • all of the above
    • improve the JVM’s support for all dynamic languages
    • JRuby is a full open source project, not owned or controlled by Sun, with history that extends years before main devs hired by Sun
  • Ruby programming language, JRuby is an implementation

    • community evangelism of Ruby the language vs. implementations
    • despite MVM, FFI and emerging areas that are not standard yet
  • How do you pitch JRuby/Rails in a legacy environment?

    • Consider demonstrating running application without discussing technology specifics
    • IBM and JDK 1.5 issues have been reported
    • Free support as long as these issues are new and help improve JRuby and the community!
  • Testing

    • JRuby enables more agile testing
    • Without production risks
    • Ceremony vs. Essence discussion
  • Terracotta/DSO

  • Windows/Mongrel/ImageMagick issues

    • ImageVoodoo is an imaging library using Java2D, comes with Java
    • MiniMagick also reportedly works
  • Rails benchmarks

    • Micro-benchmarks are problematic and usually don’t lead to measurable application speedups
    • Community needs a real-world, full application
    • Antonio Cangiano working on new application-level benchmarks?
    • “Richards” -- Smalltalk-originated application benchmark
  • JSR-292 (“invokedynamic”)

    • Actually extension of “invokeinterface” bytecode
    • Call site structure/method handles
    • Expose the dynamic nature of the JVM (get the Java-specific stuff out of the way)
    • Language-specific calling semantics, method invocation
    • “Punching a hole” through the JVM
    • Comments on JSR-292 Early Draft Review currently ongoing

Tags , ,  | no comments