We've moved Ruby and Smalltalk source code that used to be internal
to the MagLev GitHub repository. This enables end users to modify
and build new versions of MagLev themselves. Since the installation
process now builds MagLev rather than downloading a pre-built version
we no longer need a different version for each platform.
MagLev includes RubyGems 1.8.11, Bundler 1.0.21, Rake 0.9.2, and
supports Sinatra 1.3.1 and Rails 3.1.1. For a more complete list
of changes, visit http://t.co/SHJTLqYv.
MagLev would not have been possible without much hard work by Allen
Otis, Peter McLain, Tim Felgentreff and others. We never would have
made it to 1.0 if it weren't for RubySpecs -- thanks esp. to Brian
Ford & the Rubinius team at EngineYard!
-- Monty
--
You received this message because you are subscribed to the Google Groups "MagLev Discussion" group.
To post to this group, send email to maglev-d...@googlegroups.com.
To unsubscribe from this group, send email to maglev-discuss...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/maglev-discussion?hl=en.
Michael
Any idea when the rvm installer will be operational? And when can we
expect some benchmarks?
--
Josh Susser
http://blog.hasmanythrough.com
On Nov 5, 2011, at 1:57 PM, Josh Susser <jo...@hasmanythrough.com> wrote:
> Very cool. Been a long time coming! Congratulations. Especially the
> Rails 3.1 support, that's pretty big.
>
> Any idea when the rvm installer will be operational? And when can we
> expect some benchmarks?
Josh, I was able to install the latest by doing the following:
rvm install maglev-head
-Conrad
sorry for being so out of the loop, so MagLev supports Rails 3.1.1 does that mean that that MagLev handles persistency i.e. I don't need to configure an RDMS , do all the ActiveRecords hooks work i.e. can I still use the standard relationship attributes
On Sat, Nov 5, 2011 at 8:46 PM, Charles Monteiro <cha...@monteirosfusion.com> wrote:
sorry for being so out of the loop, so MagLev supports Rails 3.1.1 does that mean that that MagLev handles persistency i.e. I don't need to configure an RDMS , do all the ActiveRecords hooks work i.e. can I still use the standard relationship attributesCharles, you have two choices:a) use the built in object persistenceIn this case, you wouldn't have to think in terns of OO being that you're using an OODBMS. Thus, you'll be working with Rubyobjects instead of relational table relationships like belongs_to, has_one, and has_many as defined in Rails. In any case, I haveput together a small example where you can see here:AFAIK, there's no drop in replacement for Rails which allows one to use Maglev persistence. However, if anyone is interested intaking on such a project, Yehuda Katz and Aaron Patterson recommended the following approach:
1) create a connection adapter. e.g. see sqlite3_adapter in Rails 32) create a visitor e.g. Rails out of the box supports the following visitors:
b) use a relational database system like MySQL, SQLite, Postgres, and soIn this case, you'll be simply using Maglev for your Ruby implementation and using RDMS for your persistence. Thus, you'llbe able to use relational table relationships like belongs_to, has_one, and has_many as defined in Rails. That is you'll be ableto use the standard ActiveRecord constructs that you're familiar with in Rails.c) use other NoSQL solutions like Riak, Redis, and so onIn this case, you'll need to follow their respective instructions for integrating with your application.
I have done this with a subset of the API to support using plain
objects in Rails form helpers - that should at least be a good
starting point. See the informal gem:
https://github.com/joshsusser/informal
I'm interested in pushing forward on this front, but don't know how
much time I'll have to work on it soon.
--
Josh Susser
http://blog.hasmanythrough.com
ActiveModel wasn't built in a way that you can just mix it in and
support the API. And there are a few holes where it relies on methods
in ActiveRecord. But it's pretty small so it shouldn't be too hard to
build something like an ActiveObject module that can be mixed into
model classes.
If you look at how ActiveRecord::Base works, it includes and extends
about a dozen separate modules from ActiveModel. That allows for some
flexibility in using AM, but it means there's no single thing to
include or inherit from.
> Isn't that what the Lint Tests are for? I see you're using the lint tests in
> Informal. Were there things you ran into that prevented you from making
> Informal 100% compliant?
The goal of Informal was not 100% AM compliance; it was to do the
simplest thing that would allow non-AR objects to be used in form
helpers. That means naming and validations - the rest is ignorable for
form helper support.
To support the full AM API shouldn't be too tricky, but that will
require figuring out how to map AM/AR semantics onto Maglev's object
persistence. I expect lifecycle callbacks will be the most difficult
to map, though it might be easier than I'm fearing. I also wonder if
there is a use for the formalism around attributes and associations -
the ability to reflect on those things makes it possible to use
metaprogramming to build tools like RailsAdmin. Maybe associations can
be useful for building scopes and doing eager loading - I'm not up to
speed yet on how those things work in Maglev.
Thanks to @mpapis we got MagLe working under rvm on Friday. To install:
rvm get head; rvm install maglev; rvm use maglev
I hadn't run benchmarks in quite a while, so I did a quick run of the
same RBS benchmarks I used to run. There were no real differences.
I put the results from my iMac at home and my Ubuntu desktop at work
plus a snapshot of the benchmarks I ran on:
http://glass-downloads.gemstone.com/maglev/
RBS-MagLev1.0.0-MacOSX-111103.xls
RBS-MagLev1.0.0-Linux-111102.xls
RBS-snapshot.zip
There are no benchmarks incorporating MagLev persistence. Synthetic
benchmarks are not real useful in predicting application performance.
-- Monty
Give it a try and let mw know if anything is broken.
-- Monty
--