[#37231] Announcing New Ruby Book Under Development! — <robert.calco@...>

Everybody:

31 messages 2002/04/02
[#37250] Re: [ANN] Announcing New Ruby Book Under Development! — "John" <jyeung@...> 2002/04/02

Have you checked out?

[#37279] About efficiency — Jean-Hugues ROBERT <jean_hugues_robert@...> 2002/04/02

[#37289] Re: About efficiency — nobu.nokada@... 2002/04/03

Hi,

[#37291] Re: About efficiency — Sean Middleditch <elanthis@...> 2002/04/03

On Tue, 2002-04-02 at 20:16, nobu.nokada@softhome.net wrote:

[#37232] seeking to understand... — Mark Probert <probertm@...>

38 messages 2002/04/02
[#37255] Re: Ruby, python, perl, ... — Chris <chris@...> 2002/04/02

In article <87d6xhaoif.fsf@jenny-gnome.dyndns.org>,

[#37281] Is eval a code/design smell? — "Chris Morris" <home@...>

I seem to have an inherent distaste for eval, but I don't know why. I've

51 messages 2002/04/03
[#37323] Re: Is eval a code/design smell? — Ron Jeffries <ronjeffries@...> 2002/04/03

On Wed, 03 Apr 2002 00:15:10 GMT, "Chris Morris" <home@clabs.org> wrote:

[#38034] Re: Is eval a code/design smell? — Ian Macdonald <ian@...> 2002/04/11

On Wed 03 Apr 2002 at 20:35:30 +0900, you wrote:

[#38045] Re: Is eval a code/design smell? — Sean Middleditch <elanthis@...> 2002/04/11

On Thu, 2002-04-11 at 01:40, Ian Macdonald wrote:

[#38061] Re: Is eval a code/design smell? — Ian Macdonald <ian@...> 2002/04/11

On Thu 11 Apr 2002 at 22:07:03 +0900, you wrote:

[#38063] Re: Is eval a code/design smell? — Sean Middleditch <elanthis@...> 2002/04/11

On Thu, 2002-04-11 at 12:06, Ian Macdonald wrote:

[#38064] Re: Is eval a code/design smell? — ts <decoux@...> 2002/04/11

>>>>> "S" == Sean Middleditch <elanthis@awesomeplay.com> writes:

[#38066] Re: Is eval a code/design smell? — Sean Middleditch <elanthis@...> 2002/04/11

On Thu, 2002-04-11 at 12:25, ts wrote:

[#38067] Re: Is eval a code/design smell? — ts <decoux@...> 2002/04/11

>>>>> "S" == Sean Middleditch <elanthis@awesomeplay.com> writes:

[#38068] Re: Is eval a code/design smell? — Sean Middleditch <elanthis@...> 2002/04/11

On Thu, 2002-04-11 at 12:42, ts wrote:

[#38069] Re: Is eval a code/design smell? — ts <decoux@...> 2002/04/11

>>>>> "S" == Sean Middleditch <elanthis@awesomeplay.com> writes:

[#38072] Re: Is eval a code/design smell? — Sean Middleditch <elanthis@...> 2002/04/11

On Thu, 2002-04-11 at 12:59, ts wrote:

[#37342] regular expression question — "Firestone, Mark - Technical Support" <mark.firestone@...>

Thanks for the help with the tread questions guys... I have one about (gasp)

16 messages 2002/04/03

[#37385] TextPad replacement for Linux? — Tobias Reif <tobiasreif@...>

TIA,

25 messages 2002/04/03

[#37397] Really new-new-newbie question :) — "Philip Mateescu" <philip@...>

Hi,

13 messages 2002/04/03

[#37454] ModRUBY question — George Moschovitis <gmosx@...>

Hi everybody,

18 messages 2002/04/04

[#37470] Test the result of an initialization ? — jayce@... (Jayce Piel)

17 messages 2002/04/04

[#37540] Fibonacci Number Generators — jzakiya@... (Jabari Zakiya)

Hi, I'm a newbie, coming to Ruby from a

14 messages 2002/04/04

[#37549] OO/Ruby Terminology — <james@...>

I added a wiki page for Ruby book development ...

22 messages 2002/04/05
[#37808] Re: OO/Ruby Terminology — <bbense+comp.lang.ruby.Apr.07.02@...> 2002/04/10

-----BEGIN PGP SIGNED MESSAGE-----

[#37861] RE: OO/Ruby Terminology — <james@...> 2002/04/10

> From: bbense+comp.lang.ruby.Apr.07.02@telemark.stanford.edu

[#37944] Re: OO/Ruby Terminology — Chris <chris@...> 2002/04/10

In article <PGEPJIFLPEPOHCKEEEIKIEFADCAA.james@rubyxml.com>,

[#37963] RE: OO/Ruby Terminology — <james@...> 2002/04/10

> From: Chris [mailto:chris@cmb-enterprises.com]

[#37617] Addition to file.c (File.extension) — Mike Hall <mghall@...>

18 messages 2002/04/05
[#37736] Re: Addition to file.c (File.extension) — matz@... (Yukihiro Matsumoto) 2002/04/08

Hi,

[#37653] Switching from PHP to Ruby - Comments Please — Jim Freeze <jim@...>

Hi:

34 messages 2002/04/06

[#37746] ruby-dev summary 16501-16750 — TAKAHASHI Masayoshi <maki@...>

Hi all,

17 messages 2002/04/08

[#37833] Ruby as replacement for VB? — "Robb Shecter" <rs@...>

Hi,

19 messages 2002/04/10
[#37923] Re: Ruby as replacement for VB? — Michael Davis <mdavis@...> 2002/04/10

Robb Shecter wrote:

[#39153] Re: Ruby as replacement for VB? — "Euan Mee" <xlucid@...> 2002/04/26

On 11 Apr 2002, at 1:03, Michael Davis wrote:

[#37835] crypting ruby source — Ludo <coquelle@...>

Hi,

32 messages 2002/04/10
[#38280] Re: crypting ruby source — web2ed@... (Edward Wilson) 2002/04/14

Ludo <coquelle@enib.fr> wrote in message news:<3CB31298.13A44B26@enib.fr>...

[#38044] RFC - class_added callback — Michal Rokos <m.rokos@...>

Hello,

16 messages 2002/04/11

[#38046] GetoptLong question — djberg96@... (Daniel Berger)

Hi all,

16 messages 2002/04/11
[#38051] Re: GetoptLong question — "Pit Capitain" <pit@...> 2002/04/11

On 11 Apr 2002, at 22:16, Daniel Berger wrote:

[#38101] How to Make a Method Ineffective Efficiently? — William Djaja Tjokroaminata <billtj@...>

Hi,

15 messages 2002/04/11
[#38135] Re: How to Make a Method Ineffective Efficiently? — Jean-Hugues ROBERT <jean_hugues_robert@...> 2002/04/12

Hello,

[#38159] Re: How to Make a Method Ineffective Efficiently? — William Djaja Tjokroaminata <billtj@...> 2002/04/12

Thanks for all the responses. I just want to add the final

[#38126] Ruby/Google — Ian Macdonald <ian@...>

Hi,

19 messages 2002/04/12

[#38136] Idea for a new shorthand — "Hal E. Fulton" <hal9000@...>

OK, maybe this is an idea no one will like. Or

17 messages 2002/04/12

[#38167] Why Object#class Is Inconsistent in "==" and "case"? — William Djaja Tjokroaminata <billtj@...>

Hi,

12 messages 2002/04/12

[#38199] not vs !, and vs && — <james@...>

I'm confused about the behavior of 'not'. The Pickaxe and Ruby21Days books

17 messages 2002/04/12

[#38238] Barnes & Noble putting on the squeeze — David Alan Black <dblack@...>

Hello --

11 messages 2002/04/13

[#38239] Freshmeat article about Ruby — Tobias DiPasquale <anany@...>

Hi all,

28 messages 2002/04/13
[#38447] Re: Freshmeat article about Ruby — Joel VanderWerf <vjoel@...> 2002/04/16

Tobias DiPasquale wrote:

[#38457] Re: Freshmeat article about Ruby — David Alan Black <dblack@...> 2002/04/16

Hi --

[#38560] Re: Freshmeat article about Ruby — Mark Hulme Jones <mjones@...> 2002/04/18

David Alan Black <dblack@candle.superlink.net> writes:

[#38561] Re: Freshmeat article about Ruby — Paul Brannan <pbrannan@...> 2002/04/18

On Fri, Apr 19, 2002 at 01:07:22AM +0900, Mark Hulme Jones wrote:

[#38562] Re: Freshmeat article about Ruby — Pat Eyler <pate@...> 2002/04/18

On Fri, 19 Apr 2002, Paul Brannan wrote:

[#38564] Re: Freshmeat article about Ruby — Jack Herrington <jack_d_herrington@...> 2002/04/18

On 4/18/02 9:30 AM, "Pat Eyler" <pate@eylerfamily.org> wrote:

[#38648] Ruby golf (FFT) Was: Freshmeat article about Ruby — Christian Szegedy <szegedy@...> 2002/04/19

Jack Herrington wrote:

[#38657] Re: Ruby golf (FFT) Was: Freshmeat article about Ruby — David Alan Black <dblack@...> 2002/04/19

Hello --

[#38331] mime type — Tobias Reif <tobiasreif@...>

Hi all,

15 messages 2002/04/15

[#38338] Compiling Ruby on Mac OS X — Alwyn <alwyn@...>

I've downloaded the latest Stable Snapshot and tried building it. It

18 messages 2002/04/15

[#38449] Help wanted for statvfs extension — djberg96@... (Daniel Berger)

Hi all,

35 messages 2002/04/16
[#38470] Re: Help wanted for statvfs extension — "James F.Hranicky" <jfh@...> 2002/04/17

On Wed, 17 Apr 2002 05:04:06 +0900

[#38525] resolv.rb Bug — "Roy J. Milican" <roy@...>

Greetings,

18 messages 2002/04/17

[#38627] Imlib2-Ruby 0.4.0 — Paul Duncan <pabs@...>

I just posted Imlib2-Ruby version 0.4.0, my Ruby bindings for Imlib2

12 messages 2002/04/19

[#38635] Threads creating threads creating threads... — Tobias Peters <tpeters@...>

I have already asked this question in [ruby-talk:19661], but I will ask it

12 messages 2002/04/19

[#38694] Ruby on .NET? — Ron Jeffries <ronjeffries@...>

I scanned the .net threads here and didn't see whether there is, or is not, an

37 messages 2002/04/19
[#38696] RE: Ruby on .NET? — "repeater" <repeater@...> 2002/04/19

recently found:

[#38839] building extensions-- new vs initialize — "Norman Makoto Su" <normsu@...>

Hi, I'm trying to build a ruby extension in C. While looking at the pickaxe CD

14 messages 2002/04/23

[#38910] Numberic#prev — Sean Chittenden <sean@...>

I do a lot of incrementing and decrementing of values: it'd be nice if

36 messages 2002/04/24

[#39047] A Wild Idea: What do you think? — Jim Freeze <jim@...>

Hi:

16 messages 2002/04/26

[#39122] RE: A Wild Idea: What do you think? — "Morris, Chris" <chris.morris@...>

> > OK, then let's have it in Texas. How about August? Oh, what do you

28 messages 2002/04/26
[#39123] Re: A Wild Idea: What do you think? — Jim Freeze <jim@...> 2002/04/26

On Sat, Apr 27, 2002 at 03:15:21AM +0900, Morris, Chris wrote:

[#39176] Re: A Wild Idea: What do you think? — Pat Eyler <pate@...> 2002/04/27

On Sat, 27 Apr 2002, Jim Freeze wrote:

[#39177] Re: A Wild Idea: What do you think? — David Alan Black <dblack@...> 2002/04/27

Hi --

[#39228] RubyConf.new(2002) - ideas for agenda — "Daniel Berger" <djberg96@...>

Ok - so I'm probably jumping the gun here, but hey, what the heck.

27 messages 2002/04/28

[#39394] ncurses, mingw32 — tony summerfelt <snowzone5@...>

i've been away from ruby for awhile, it was time to dust off the pickaxe book

13 messages 2002/04/30

Re: Is eval a code/design smell?

From: Sean Middleditch <elanthis@...>
Date: 2002-04-06 18:08:59 UTC
List: ruby-talk #37659
On Sat, 2002-04-06 at 12:41, Tobias Reif wrote:
> Sean Middleditch wrote:
> 
>  >>>if you provide a schema in non-code
>  >>>format,
>  >>>
>  >>you mean non- Ruby code?
>  >>
>  > Ya.
> 
> which format for example?

Whichever - XML might work, by dumping the tree nodes.  I did that with
a mini-language I wrote a while back (to help facilitate in sending
pre-compiled chunks across the network, for some really nifty
distributed computing.)

> 
> 
> > Na, I was saying that how you were concerned with speed, pre-parsed
> > loads even faster. 
> 
> 
> So currently I seem to have a good compromise between
> "security" (generated code is written to a file, in a human readable 
> form, not silently evaled in mid air, or compiled into unreadable 
> bytecode) and
> "speed" (libs are generated only once).

Yes, I suppose you probably are at the best you can be right there.  You
also are loading the libraries, not evaling them (requiring is done at
compile time, right?)

> 
> 
> > Heck, I almost never compile source code when installing software - I
> > jsut apt-get it into place.  But I know if I need the source (which of
> > course happens every now and again) I can get it.
> 
> 
> But we're talking about Ruby; what does this mean then?

Just an example of that distributing Ruby code in binary format doesn't
mean you're not open source, like you implied in the paragraph you cut
out.

> 
> "methods for quickly, easily, and powerfully constructing classes at 
> runtime with sending untrustable content to the parsing engine."
> 
> What features are you proposing; exactly? (I really am interested in 
> seeing actual code examples.)

OK, say you have a method 'dothis' you want in a class:

def dothis (a,b)
	a+b*c
end

Now, you can easily add that to a class, with (for example), and use the
function, like this:

myclass.dothis = dothis
myclass.c = 10
print (dothis (1, 2))

And have that print 21.

In another example, say you have code that asks a user for a command,
takes that command, and calls a similarly named method in a Command
class:

comm = get_user_input ()
Command.call_method ('comm_' + comm, arg1, arg2)

Which is pretty much wht Ruby already provides with signals; just nobody
seems to understand or use them in all the ways they could be used. 
(Since everybody complicates things by constructing the method calls
themselves using eval()).

The point I'm trying to make, tho, is that passing strings to eval() to
be parsed isn't necessary, because you can dynamically generate all the
classes/code you need from pre-parsed code.  That's my gripe with eval()
- it's not preparsed code.  And, eval() offers rooms for too many
uncatchable bugs, thanks to string expansion, and untrustable input. 
When all the executable code is the code the programmer entered, and all
the user provides is the data (which can be converted to indices or
method lookups in a safe fashion), I again see no need for eval().

Accessors, of coure, can be made directly into methods at compile time. 
Mathematical expressions could be passed to a math library (possibly the
GNU math utils, or whatever - it's not hard to write one) that doesn't
have the ability to run arbitrary code.  If you need variable expansion
in user input, it would be better to parse those out yourself and use a
special hash or other construct for finding the variables, because then
input can't access arbitrary data (i.e., and the username/password data
from a database connection object the code is using).

Ruby provides, in *most* ways that I can tell, what we need to not use
eval().  The other few things seem to be design issues that I'm not too
familar with (i.e., do accessors really call eval at each usage during
runtime? I should probably grab the latest source and check...).

> 
> Tobi
> 
> 
> -- 
> Neither simple nor complex matters are to be complicated.
> 


In This Thread

Prev Next