[#370825] Syntax error — Anthony Ob <vidgametester@...>

ERROR

17 messages 2010/10/01
[#370828] Re: Syntax error — Alex Stahl <astahl@...5.com> 2010/10/01

What are you expecting the "x:y" statement to do? I ask because I'm not

[#370844] how can we make a ruby compiler — Robin <r@...1.net>

how can we make a thing that compiles ruby into c++ source code?

50 messages 2010/10/01
[#370896] Re: how can we make a ruby compiler — Ryan Davis <ryand-ruby@...> 2010/10/02

[#371096] Re: how can we make a ruby compiler — Tony Arcieri <tony.arcieri@...> 2010/10/05

On Fri, Oct 1, 2010 at 7:52 PM, Ryan Davis <ryand-ruby@zenspider.com> wrote:

[#371120] Re: how can we make a ruby compiler — Clifford Heath <no@...> 2010/10/05

Tony Arcieri wrote:

[#371127] Re: how can we make a ruby compiler — Michal Suchanek <hramrach@...> 2010/10/05

On 5 October 2010 07:10, Clifford Heath <no@spam.please.net> wrote:

[#371129] Re: how can we make a ruby compiler — Samuel Williams <space.ship.traveller@...> 2010/10/05

[#371130] Re: how can we make a ruby compiler — Ryan Davis <ryand-ruby@...> 2010/10/05

[#370878] New to Ruby, Looking for Help With Basic Program — Mica Koizumi <monkeymica@...>

I am teaching myself Ruby and am trying to figure out why this program

12 messages 2010/10/01

[#370897] Ruby String: How do I strip anything between two parenthesis — Frank Guerino <frank.guerino@...>

Hi,

9 messages 2010/10/02

[#370912] The Third Ruby - Ever Comes Out at Night? — Mike Stephens <rubfor@...>

Often you see that Ruby can be object-oriented, functional or

19 messages 2010/10/02
[#370915] Re: The Third Ruby - Ever Comes Out at Night? — elise huard <huard.elise@...> 2010/10/02

I guess you could work only with modules and class methods, and avoid

[#370916] Re: The Third Ruby - Ever Comes Out at Night? — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/10/02

On Sat, Oct 2, 2010 at 11:27 AM, elise huard <huard.elise@gmail.com> wrote:

[#370918] Re: The Third Ruby - Ever Comes Out at Night? — elise huard <huard.elise@...> 2010/10/02

2010/10/2 Jes=FAs Gabriel y Gal=E1n <jgabrielygalan@gmail.com>:

[#370919] Re: The Third Ruby - Ever Comes Out at Night? — Mike Stephens <rubfor@...> 2010/10/02

[#370952] Pass by reference and copy on write — Ralph Shnelvar <ralphs@...32.com>

I see

24 messages 2010/10/02
[#370955] Re: Pass by reference and copy on write — Josh Cheek <josh.cheek@...> 2010/10/03

On Sat, Oct 2, 2010 at 6:41 PM, Ralph Shnelvar <ralphs@dos32.com> wrote:

[#370958] Re: Pass by reference and copy on write — Caleb Clausen <vikkous@...> 2010/10/03

On 10/2/10, Josh Cheek <josh.cheek@gmail.com> wrote:

[#370964] ODBC app in Ruby - I don't believe it. — Ed Reed <joebananas10@...>

I'm trying to figure out what's so cool about Ruby. I need to create a

49 messages 2010/10/03
[#370982] Re: ODBC app in Ruby - I don't believe it. — Luis Lavena <luislavena@...> 2010/10/03

On Oct 3, 4:26=A0am, Ed Reed <joebanana...@gmail.com> wrote:

[#370996] Re: ODBC app in Ruby - I don't believe it. — Ed Reed <joebananas10@...> 2010/10/03

WOW! Thanks for all the responses and please accept my apologies for

[#371079] Re: ODBC app in Ruby - I don't believe it. — Ed Reed <joebananas10@...> 2010/10/04

Okay I've decided to start from scratch,... again. It's the start of a

[#371082] Re: ODBC app in Ruby - I don't believe it. — Jeremy Bopp <jeremy@...> 2010/10/04

On 10/4/2010 1:30 PM, Ed Reed wrote:

[#371087] Re: ODBC app in Ruby - I don't believe it. — Ed Reed <joebananas10@...> 2010/10/04

My mistake on the gem commands. I did use the correct ones with dbd

[#371102] Re: ODBC app in Ruby - I don't believe it. — Jeremy Bopp <jeremy@...> 2010/10/05

On 10/04/2010 04:29 PM, Ed Reed wrote:

[#371195] Re: ODBC app in Ruby - I don't believe it. — Ed Reed <joebananas10@...> 2010/10/05

The history.txt file for the mysql gem says

[#371209] Re: ODBC app in Ruby - I don't believe it. — Dave Howell <groups.2009a@...> 2010/10/06

[#371275] Re: ODBC app in Ruby - I don't believe it. — Ed Reed <joebananas10@...> 2010/10/06

Thanks for the extensive reply Dave. I certainly appreciate it.

[#371330] Re: ODBC app in Ruby - I don't believe it. — Brian Candler <b.candler@...> 2010/10/07

Ed Reed wrote:

[#371455] Re: ODBC app in Ruby - I don't believe it. — Ed Reed <joebananas10@...> 2010/10/08

Brian Candler wrote:

[#371413] Re: ODBC app in Ruby - I don't believe it. — David Masover <ninja@...> 2010/10/08

On Wednesday, October 06, 2010 02:40:38 am Dave Howell wrote:

[#371690] Re: ODBC app in Ruby - I don't believe it. — Dave Howell <groups.2009a@...> 2010/10/13

[#370991] install ruby on the mac — Basi Lambanog <basi.lambanog.tuba@...>

hello,

14 messages 2010/10/03

[#371020] save only first line from string? — Terry Michaels <spare@...>

Hi. What's the most simple and elegant way to remove all the contents of

21 messages 2010/10/04

[#371023] How to suppress display of specific code in irb?? — Don Norcott <dnorcott@...>

I am very new to ruby (but a retired experienced C programmer) and am

14 messages 2010/10/04

[#371049] how do i delete files in particular directoryin ruby ??? — Amit Tomar <amittomer25@...>

Hii all,

23 messages 2010/10/04
[#371052] Re: how do i delete files in particular directoryin ruby ??? — Stefano Crocco <stefano.crocco@...> 2010/10/04

On Monday 04 October 2010, Amit Tomar wrote:

[#371069] Re: how do i delete files in particular directoryin ruby ??? — Robert Klemme <shortcutter@...> 2010/10/04

On Mon, Oct 4, 2010 at 2:27 PM, Stefano Crocco <stefano.crocco@alice.it> wr=

[#371181] How can I count number of elements in an HTML page — Paul <tester.paul@...>

Hi there, I'm using net/http to retrieve some html pages and now I

11 messages 2010/10/05

[#371221] setting local variables in a binding — Martin DeMello <martindemello@...>

Why does this not work?

15 messages 2010/10/06

[#371226] XML-RPC WEBrick problem (error during method invocation) — Nikita Kuznetsov <moog_master@...>

I have a university assignement, and i am stuck. I am supposed to create

10 messages 2010/10/06

[#371239] "map" a deeply nested structure: Object#deep_map — Guido De Rosa <guidoderosa@...>

Hi,

11 messages 2010/10/06
[#371241] Re: "map" a deeply nested structure: Object#deep_map — Robert Klemme <shortcutter@...> 2010/10/06

On Wed, Oct 6, 2010 at 4:43 PM, Guido De Rosa <guidoderosa@gmail.com> wrote=

[#371250] A Real World example for Ruby to "compiled" version discussion — Philip Rhoades <phil@...>

People,

10 messages 2010/10/06

[#371286] Why does Module#include exclude the module's metaclass? — John Mair <jrmair@...>

When classes are inherited in Ruby the singleton classes are also

11 messages 2010/10/06

[#371533] Why does a lot of code not include parenthesis? — egervari <ken.egervari@...>

I just started playing around with ruby and rails, and one thing I've

32 messages 2010/10/11
[#371534] Re: Why does a lot of code not include parenthesis? — egervari <ken.egervari@...> 2010/10/11

On Oct 10, 8:21=A0pm, egervari <ken.egerv...@gmail.com> wrote:

[#371610] Re: Why does a lot of code not include parenthesis? — "ara.t.howard" <ara.t.howard@...> 2010/10/12

vim completion works with, or without, the '(' and ')'. same with

[#371570] Can DRbUndumped be disabled for certain return types? — Josh Mcdade <josh.ncsu@...>

I have server model classes that definitely need DRbUndumped. Except

11 messages 2010/10/11

[#371580] more idiomatic way to avoid errors when calling method on variable that may be nil? — Charles Calvert <cbciv@...>

I'm using Ruby 1.8.7 patchlevel 249

34 messages 2010/10/11

[#371702] sort_by: multiple fields with reverse sort — Rahul Kumar <sentinel1879@...>

I need to use *sort_by* to sort a table, since the user could select

16 messages 2010/10/13

[#371704] Excel and Ruby — "Dan Sr." <djonavarro@...>

Hello all,

17 messages 2010/10/13

[#371878] Is it possible to find out if an identifier is a method alias? — Ammar Ali <ammarabuali@...>

>> def method; end

11 messages 2010/10/14
[#371880] Re: Is it possible to find out if an identifier is a method alias? — Daniel Berger <djberg96@...> 2010/10/14

On 10/14/10 4:48 PM, Ammar Ali wrote:

[#371896] Re: Is it possible to find out if an identifier is a method alias? — Ammar Ali <ammarabuali@...> 2010/10/15

On Fri, Oct 15, 2010 at 2:17 AM, Daniel Berger <djberg96@gmail.com> wrote:

[#371978] mechanize - extract href — Corey Watts <cwatts@...>

Hey there everyone. I'm having a slight problem using Mechanize. I'm

12 messages 2010/10/16

[#372016] unable to preload "rbconfig" in my irb session — "Sandeep K." <uniqueembassy@...>

I'm using Ruby 1.9.2 with Windows XP as host, I ran the command

11 messages 2010/10/17

[#372070] su {block of code.} — Guido De Rosa <guidoderosa@...>

Hi!

13 messages 2010/10/18

[#372181] Help missing something BASIC — Don Norcott <dnorcott@...>

This code is conceptually what I want to do with the nokogiri code below

11 messages 2010/10/20

[#372232] about handling args in block — salamond <jarodzz@...>

Hi, guys.

11 messages 2010/10/20

[#372234] Long conditional statements — Courtland Allen <courtlandallen@...>

Some parts of my code call for really long conditional statements of the

16 messages 2010/10/20

[#372289] generating random argument lists — Melody Class <rmiddlehouse@...>

Hi,

10 messages 2010/10/21

[#372361] Why is top-level an object rather than just Object? — John Mair <jrmair@...>

Why is it that top-level isn't just the Object class itself? what's the

14 messages 2010/10/22

[#372493] Utilizing data from a csv file — Paul Roche <prpaulroche@...>

Hi I basically want to create a function that takes in data that has

20 messages 2010/10/24

[#372568] Can't get ruby serial port to work — Dd Dd <dd25@...>

I recently installed Ruby Version 1.9.2 on my PC. I am trying to get

14 messages 2010/10/25

[#372572] Extraction of single subarrays from multidimensional array — Maurizio Cirilli <mauricirl@...>

Hi there,

25 messages 2010/10/25

[#372704] rsruby install trouble — Guybrush Threepwood <deadpool93@...>

Hello, trying for no particular reason to create a K constant calculator

15 messages 2010/10/27

[#372760] undefined method `find' for.:Module — John Hammink <john@...>

Hello,

10 messages 2010/10/28

[#372820] Is this an effective loop — Ted Flethuseo <flethuseo@...>

I was wondering if a loop of this sort would be

13 messages 2010/10/29

[#372835] Dynamically reference instance vars — Greg Willits <lists@...>

If I need to dynamically reference instance vars, is this the only way

11 messages 2010/10/30

[#372886] the dark side of inherited methods — timr <timrandg@...>

Let's say I want to make a new class, Vector (that will function,

38 messages 2010/10/31
[#372893] Re: the dark side of inherited methods — James Edward Gray II <james@...> 2010/10/31

On Oct 31, 2010, at 5:30 PM, timr wrote:

[#372951] Re: the dark side of inherited methods — Tony Arcieri <tony.arcieri@...> 2010/11/02

On Sun, Oct 31, 2010 at 5:49 PM, James Edward Gray II <james@graysoftinc.com

[#372964] Re: the dark side of inherited methods — Robert Klemme <shortcutter@...> 2010/11/02

On Tue, Nov 2, 2010 at 4:29 AM, Tony Arcieri <tony.arcieri@medioh.com> wrote:

Re: how can we make a ruby compiler

From: Rick DeNatale <rick.denatale@...>
Date: 2010-10-05 15:13:52 UTC
List: ruby-talk #371153
On Tue, Oct 5, 2010 at 8:31 AM, Samuel Williams
<space.ship.traveller@gmail.com> wrote:
> Dear Ryan,
>
> Thanks for your comments. In this discussion there are many opinions, so =
please keep in mind this is simply my perspective based on my experience.
>
> On 5/10/2010, at 11:01 PM, Ryan Davis wrote:
>
>> On Oct 5, 2010, at 02:49 , Samuel Williams wrote:
>>
>>> If you have a truly dynamic language (like Ruby), it is almost impossib=
le to compile it adequately. This is because compilation is all about makin=
g assumptions. A dynamic language makes it very hard to make assumptions (t=
here is quite a bit of research in this area, it is worth reading about it)=
.
>>
>> Well this just isn't true (or is overly vague and my tired brain is read=
ing more into it than it should). Look at anything written by David Ungar, =
or the research done on self, smalltalk, the latest javascript engines, etc=
...
>
>
> I'm aware of most of this work, however I don't consider many of these la=
nguages to be completely dynamic. By dynamic, I mean that it is not possibl=
e to make an assumption about the result of an expression unless it is exec=
uted. If you can make an assumption about an expression, I don't consider i=
t to be dynamic.

What assumptions can you make about the result of an expression in any
of these languages without running it?

The result of a method send in Smalltalk, Ruby, or Self depends on the
runtime state of the receiver of the message, and in the case of Ruby
and Self, where compile time is the same as run-time methods can
change as the program runs.

In Ruby this evolution happens as the program requires new code, mixes
in new modules, defines singleton methods, redefines methods, uses
meta-programming techniques, such as the alias_method_chain found in
Rails ...

In Self static analysis of a method can't even determine if the
reference to an 'instance variable' is really just a value reference
or a method call.


> For example, in most of those languages, the name of a function is specif=
ied explicitly and can't change due to the environment or scope of executio=
n. We also know that all arguments to a function will be evaluated in the c=
urrent scope. We can do some analysis and determine that an expression won'=
t change in a loop, and then optimise for this case.

No I don't think we can.  Not for Ruby, nor Smalltalk, nor Self, nor
as Shyouhei-san has pointed out, for JavaScript.

Smalltalk is a bit more static than Ruby, Self, or JavaScript, in
that, although run-time and development take place in the same
environment, code changes happen mostly when a programmer changes a
method/class definition in the IDE, which causes an incremental
compilation of the affected methods.  Smalltalk classes are
'statically' defined in this sense.

>Many of these languages provide some semantic models which allow the inter=
preter to make assumptions.


>
> A good indication of a non-dynamic programming language is the presence o=
f semantically meaningful keywords, especially those that have fixed behavi=
our. Examples include "def", "if", "while", "switch" and "try". These expre=
ssions can all be analysed with the knowledge of a given semantic model. A =
truly dynamic language has no such luxury...
>

Smalltalk at the language level has no such keywords, control flow is
defined in terms of method sends.

For example if is implemented by ifTrue:, ifFalse:, and
ifTrue:ifFalse: messages, and boolean classes define these methods to
evaluate one of (or none) of the block arguments.

One could model this in Ruby with something like:

class Object
  # define the if methods for truthy values
  def if_true(eval_if_true)
    eval_if_true.call
  end

  def if_true_else(eval_if_true, eval_if_false)
    eval_if_true.call
  end

  def if_false(eval_if_false)
    nil
  end
end

module FalsyIfMethods
  # define the if methods for falsy values
  def if_true(eval_if_true)
    nil
  end

  def if_true_else(eval_if_true, eval_if_false)
    eval_if_false.call
  end

  def if_false(eval_if_false)
    eval_if_false.call
  end
end

class NilClass
  include FalsyIfMethods
end

class FalseClass
  include FalsyIfMethods
end

is_truthy =3D lambda {"truthy"}
is_falsy =3D lambda {"falsy"}

1.if_true(is_truthy)                    # =3D> "truthy"
1.if_true_else(is_truthy, is_falsy)     # =3D> "truthy"
1.if_false(is_falsy)                    # =3D> nil

nil.if_true(is_truthy)                  # =3D> nil
nil.if_true_else(is_truthy, is_falsy)   # =3D> "falsy"
nil.if_false(is_falsy)  # =3D> "falsy"

true.if_true(is_truthy)                 # =3D> "truthy"
true.if_true_else(is_truthy, is_falsy)  # =3D> "truthy"
true.if_false(is_falsy)                 # =3D> nil

(1 =3D=3D 2).if_true_else(is_truthy, is_falsy)  # =3D> "falsy"

Now most Smalltalk implementations do cheat on things like this and
treat methods like ifTrue: and its brethren  as special cases and
compile them to test and branch bytecodes, with or without an escape
if the receiver turns out not to be a boolean. But Self came about
primarily because Dave Ungar, whose PhD dissertation was on Smalltalk
performance, wanted to explore doing away with such cheats, as well as
statically determination of whether something was an iv or a method,
as well as relying on the 'static' class definitions in Smalltalk and
see if dynamic runtime techniques could achieve equivalent if not
better performance.

And that work led to things like the JIT implementations in the Java
hotspot VM, and Self appears to have been an strong influence on
JavaScript, which uses the same kind of prototype technique for
implementation sharing, rather than a class hierarchy.

> In the case of a dynamic language we are reduced to statistical analysis =
at run time. Compilation becomes a method of speeding up the interpreter ex=
ecution rather than optimising based on assumptions in the code itself. Few=
, if any, programming languages are completely dynamic. Scheme would be one=
 language that I would consider very dynamic, as an example.

Which you later correct to say 'Sorry, I meant to say "Scheme would be
one language that I would consider very close to being completely
dynamic".'

Which I interpret to mean that you put Scheme as being even more
dynamic than Smalltalk, Ruby, Self or JavaScript

> An interpreter is simply a high level processor (i.e. CPU). However, ther=
e are intrinsic semantic structures which cannot be lowered. "Sufficiently =
smart compilers", and all that. Programming languages range from completely=
 dynamic to completely static, depending on the semantic and execution mode=
l.

I'm confused by your argument at this point, because there are quite a
few compilers for Scheme
http://en.wikipedia.org/wiki/Category:Scheme_compilers  some of these
compile to an intermediate 'language' like C or JVM bytecodes, others
directly to some machine language.

And, Guy Steele, one the inventors of Scheme wrote his PhD
dissertation on a Scheme compiler "Rabbit"

So it's not impossible to write a compiler for a dynamic language, but
it takes more thought and techniques than most introductory compiler
texts/courses teach.

And Scheme was a seminal influence on those who have tackled the task.
 Particularly in the form of the "Lambda Papers" a series of M.I.T.
A.I. lab memos by Guy Steele and Gerald Sussman as they explored usage
and implementation around various issues such as the lambda calculus,
continuations and a few other things leading up to and including
Steele's dissertation on Rabbit.

http://en.wikipedia.org/wiki/History_of_the_Scheme_programming_language#The=
_Lambda_Papers
http://library.readscheme.org/page1.html

And Gerald Sussman went on to write, with Julie Sussman and Harold
Abelson, "The Structure and Interpretation of Computer Programs" which
should be an eye-opener to anyone who has thought of C as the
prototypical programming language.
--=20
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Github: http://github.com/rubyredrick
Twitter: @RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale

In This Thread