[#16611] lambda, ->, haskell, and so on — Dave Thomas <dave@...>
This is one of those e-mails that I know from the start to be futile, =20=
T24gV2VkLCBBcHIgMzAsIDIwMDggYXQgMTE6MjYgUE0sIERhdmUgVGhvbWFzIDxkYXZlQHByYWdw
Hi --
David A. Black wrote:
wouldn't
On Thu, May 01, 2008 at 12:26:47PM +0900, Dave Thomas wrote:
Hi --
David A. Black wrote:
Hi --
David A. Black wrote:
On Tue, May 06, 2008 at 02:02:34AM +0900, David A. Black wrote:
Hi --
Hi --
ara howard wrote:
Hi --
Hi --
Hi --
Not to throw the whole thread into a tizzy again, but why again is:
Evan Phoenix wrote:
Hi,
Hi --
On Sun, May 11, 2008 at 9:49 AM, Nobuyoshi Nakada <nobu@ruby-lang.org>
Hi,
Hi --
Hi,
Hi,
What about "fn" or "fun", for "function"?
Hi,
Hi,
Hi --
Hi,
Hi --
On Wed, 14 May 2008, David A. Black wrote:
Hi,
how about an uppercase lambda (instead of the usual lowercase one)
Christopher Gill wrote:
Suraj N. Kurapati wrote:
Hi,
Nobuyoshi Nakada wrote:
Hi,
=20
T24gVGh1LCBNYXkgMjIsIDIwMDggYXQgNTozNyBQTSwgQmVyZ2VyLCBEYW5pZWwgPERhbmllbC5C
RXZlbiB0aG91Z2ggSSBzZWUgdGhlIHVzZWZ1bG5lc3MsIHRoYXQncyBqdXN0IHVnbHkuCgotLUpl
"Jeremy McAnally" <jeremymcanally@gmail.com> wrote on 05/22/2008 05:35:01=20
2008/5/23 <Nate_Wiger@playstation.sony.com>:
I am not sure if that fits to the thread. I have not used yet the more
Tammo Tjarks wrote:
Hi --
> assert_yin_yang -> { q += 0 }, 'it broke!', -> { q == 42 }
Hi --
>> assert_yin_yang proc{ q += 0 }, 'it broke!',
[#16627] Monotonic timeofday() — zimbatm <zimbatm@...>
Hi ruby-core.
[#16642] ruby/trunk rev 16276 broken? ib/erb.rb:429:in `initialize': wrong argument type StringScanner (expected true) (TypeError) — Kurt Stephens <ks@...>
Build crashes shortly after miniruby linkage
[#16648] Uniform RDoc markup — "Jeremy McAnally" <jeremymcanally@...>
Would there be any resistance to making the markup of the RDoc
[#16760] errors running make test — Stephen Bannasch <stephen.bannasch@...>
I updated to revision 16403 and now compiling and running ruby1.9
[#16772] The RubySpec project at rubyspec.org — Brian Ford <brixen@...>
Hi all,
[#16773] Singleton methods on Float and Bignum — Evan Phoenix <evan@...>
In 1.8 (and 1.9 likely), trying to add a singleton method to a Float
Evan Phoenix wrote:
[#16788] Ruby 1.8.7-preview3 has been released — "Akinori MUSHA" <knu@...>
Folks,
[#16791] GC heap allocation in 1.9 — Sylvain Joyeux <sylvain.joyeux@...4x.org>
While getting the latest of trunk, I stumbled on r16194.
[#16806] nil.instance_eval — ts <decoux@...>
[#16807] Embedding Ruby1.9: seg fault — Masoom <masoom.shaikh@...>
Hi,
Hi,
that means current vm is not embeddable ? by min. src I guess you mean the
Masoom wrote:
[#16812] Proposal: Subject of ruby-core ML article should include artile number — SASADA Koichi <ko1@...>
Hi,
On Tue, May 20, 2008 at 8:20 AM, SASADA Koichi <ko1@atdot.net> wrote:
Luis Lavena wrote:
[#16832] Who is responsible for Ruby license? — "Han, Kimyung" <Kimyung.Han@...>
I am trying to discuss the ruby license with anyone who is responsible
[#16834] Returning duplicate values from Dir.glob — "Vladimir Sizikov" <vsizikov@...>
Hi,
[#16839] ruby autoconf problems — "Michal Suchanek" <hramrach@...>
Hello
[#16864] removal of magical definition of name for some class definition idioms — "Robert Dober" <robert.dober@...>
Dear list
[#16884] block args w/ defaults (was Re: resolving lambda | ambiguity) — "Eric Mahurin" <eric.mahurin@...>
On Sat, May 24, 2008 at 4:06 PM, Eric Mahurin <eric.mahurin@gmail.com>
SGV5IQoKSSd2ZSB0cmllZCB5b3VyIHBhdGNoIGFuZCBoYXZlIHNvbWUgdHJvdWJsZXMuCkkgZXhw
[#16886] lambda with normal block syntax — "Eric Mahurin" <eric.mahurin@...>
This patch is an independent but related one to my previous one. It can be
Hi,
On Sun, May 25, 2008 at 8:19 PM, Nobuyoshi Nakada <nobu@ruby-lang.org>
Hi,
Hi,
Hi,
Hi,
On Mon, May 26, 2008 at 4:14 PM, Dave Thomas <dave@pragprog.com> wrote:
Hi,
On Mon, May 26, 2008 at 5:18 PM, Yukihiro Matsumoto <matz@ruby-lang.org>
Hi,
If I may, here are two entries from the ChangeLog file:
Dave Thomas wrote:
Dave Thomas wrote:
Dave Thomas wrote:
On May 27, 2008, at 12:33 PM, David Flanagan wrote:
James Gray wrote:
Dave Thomas wrote:
David Flanagan wrote:
Hi,
On 5/28/08, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
Hi,
On Sun, May 25, 2008 at 2:31 AM, Eric Mahurin <eric.mahurin@gmail.com> wrote:
[#16921] Major performance degradation on trunk — "Vladimir Sizikov" <vsizikov@...>
Hi,
[#16943] Re: [PATCH] block args w/ defaults (updated) — "Eric Mahurin" <eric.mahurin@...>
MjAwOC81LzI2IFJhZG9zs2F3IEJ1s2F0IDxyYWRlay5idWxhdEBnbWFpbC5jb20+OgoKPiBIZXkh
[#16945] Oniguruma and \p{Greek} — Dave Thomas <dave@...>
Looking at the source, I'd expect the following to work:
[#16951] Ruby 1.9 "exception reentered" — "Paul Boekholt" <p.boekholt@...>
Hi,
2008/5/27, Paul Boekholt <p.boekholt@gmail.com>:
2008/6/6, Paul Boekholt <p.boekholt@gmail.com>:
> 2008/6/6, Paul Boekholt <p.boekholt@gmail.com>:
[#16953] 1.8.6, jemalloc, sock.close problem — Christopher Thompson <cthompson@...>
Warning: This message is probably only peripherally related to Ruby!
I used to catch Errno::EINVAL when using lots of open file descriptors
[#16955] ruby-mode.el copyright assignment — Phil Hagelberg <phil@...>
Hi,
[#16979] Array.nitems replacement? — David Flanagan <david@...>
Array.nitems has just been removed from 1.9, and as near as I can make
[#16984] ZLIB for MSVC 8 - tar_input.rb — "Giancarlo F Bellido" <support@...>
I managed to install wxruby and compile zlib extension using this patch in
On May 28, 2008, at 19:48 PM, Giancarlo F Bellido wrote:
[#17010] unexpected return using define_method — Paul Brannan <pbrannan@...>
Is this a bug?
Paul Brannan wrote:
On Fri, May 30, 2008 at 06:10:25PM +0900, ts wrote:
Paul Brannan wrote:
[#17028] Ruby 1.8.7 has been released — "Akinori MUSHA" <knu@...>
Folks,
On Sun, Jun 01, 2008 at 12:25:08AM +0900, Akinori MUSHA wrote:
At Mon, 2 Jun 2008 06:37:21 +0900,
On Mon, Jun 02, 2008 at 03:46:53PM +0900, Akinori MUSHA wrote:
[#17030] Bytecode handling (compilation) extensions to Ruby 1.9 — Adam Strzelecki <ono@...>
Hello,
Hello again,
Hi,
> to_ary() convert ISeq object to Array and well known objects such as
Bytecode handling (compilation) extensions to Ruby 1.9
Hello,
Since 1.9 is YARV VM powered it is technically possible to dump &
restore VM code (instructions) to/from file. Which means that we could
load already compiled Ruby code directly into 1.9 VM without related
sourcecode.
The most important application would be commercial Ruby programs
deployment. Often when we deploy our programs at our client's servers,
or some web hosting providers, we would love to keep source-code and
the ideas behind in secret. Since ruby up to 1.8 was dynamic
interpreter it wasn't possible before, but it is now possible with
YARV & 1.9.
I'm aware that it would be also possible to use JRuby to get Java's
JAR with compiled Java classes, but I just feel that 1.9 may have more
potential and is more lightweight than Java, moreover it sets kind of
standard for other distributions.
I know that 1.9 VM bytecode could be reverse-engineered, however due
optimizations and removal of comments etc, it would not present such
as value as original sourcecode.
So I wish to propose extension for Ruby 1.9 for generating (emission)
of VM bytecode to the file and reading/loading VM bytecode back to VM.
My main aim is to NOT change the current Ruby behavior, NEITHER add
new file type for "compiled" Ruby, but instead of that do few light
additions:
1. "ruby" command line additions:
-o outputfile emit VM bytecode into outputfile instead of
executing (-o - for stdout)
--omit-bootstrap omit VM loading bootstrap in outputfile (output
file won't be valid Ruby program)
-f[level] follow statically required files and emit their
bytecode too; 0=don't follow, 1=only current and subdirs, 2=all except
system, 3=all
2. System API additions
VM#exec(input) Loads VM bytecode from input (IO) and executes it
VM#emit(output) Emits all current VM instructions as bytecode into
output (IO)
So:
$ ruby -o myprogram_dist.rb myprogram.rb
Will emit VM bytecode with bootstrap "VM.exec DATA" as below:
--------------- myprogram_dist.rb -----------------
#!/usr/bin/env ruby
VM.exec DATA
__END__
RubyVM-1.9.0!@#!@!@%&()*@$*!)@$!@$....
---------------------------------------------------
So produced myprogram_dist.rb will be valid Ruby program, that raises
an class-not-found or method-not-found exception on all distributions
or versions that don't implement VM#exec, also I believe it should
produce another exception in version that has VM#exec but passed
bytecode structure format isn't valid (or incompatible), however in
our VM#exec matching version it will successfully execute the code
into the VM. (Maybe checking if magic is RubyVM-1.9.0)
Also we could have an option to omit bootstrap i.e. --omit-bootstrap,
so we get instead:
--------------- myprogram_dist.rb -----------------
RubyVM-1.9.0!@#!@!@%&()*@$*!)@$!@$....
---------------------------------------------------
Of course then myprogram_dist.rb won't be valid Ruby program anymore,
but it may be useful to store some compiled code chunks in database,
produce some more advanced bundles or bootstraps, or maybe on demand
downloadable & executable code with VM#exec.
Note that VM#exec should load and execute the loaded code, and once it
is done return back and execute code that follows VM#exec, so it is
possible to stack them:
VM.exec my_library
VM.exec my_magic_routine
# rest of the code
Finally it would be nice to add option to follow Ruby 'requires' that
are static (aka. flatten the code)
Lets take such file structure for out sample project we want to
"compile" prior deploying:
myprogram/
main.rb
db.rb
scripts.rb
lib/
extra.rb
We want to make single file bytecode bundle myprogram.rb instead of
several "compiled" files (per each source file).
Our entry point is here:
-------------- myprogram/main.rb ------------------
require 'db' # this is static require, we can follow it
require 'scripts' # this is static require, we can also follow it
require 'lib/extra' # this is static require, we can also follow it
require 'sequel' # this is static require, but not in the current folder
# (...)
---------------------------------------------------
We do:
$ ruby -f -o myprogram.rb myprogram/main.rb
And get myprogram.rb which has VM code for all main.rb and it's
dependencies from myprogram/ folder.
Our -f new option will work as follows:
-f0 would mean 'don't follow',
-f1 'follow only current dir and subdirs',
-f2 'follow all except system',
-f3 'follow all'.
When -f not specified default behavior 'don't follow', when -f without
level specified default 'follow current dir and subdirs'.
$ ruby -f2 -o myprogram.rb myprogram/main.rb
Will also include 'sequel' VM bytecode.
-f will not work obviously for any:
require SomeModule.getdependencies
require Config.getpath . 'tests'
As they can be only evaluated only at runtime. But that's not a
problem. But it would be nice that ruby tells what it is compiling.
$ ruby -f -o myprogram.rb myprogram/main.rb
Compiling:
main.rb
db.rb
scripts.rb
lib/extra.rb
myprogram.rb done in 0.005 second(s)
That's all. I'd appreciate any comments to my proposition.
I'm new to this mailing-list, so I hope you don't find me too
impudent :) I felt in love with Ruby few months ago, while programming
regularly in C/C++ & PHP.
I've used PHP bytecode compilers for some of my past projects, and I
miss this possibility in Ruby.
Best regards,
--
Adam Strzelecki |: nanoant.com :|