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 jruby, rails | no comments
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 jruby, railsconf, railsconf2008 | no comments