[#33161] Call/CC and Ruby iterators. — olczyk@... (Thaddeus L Olczyk)

Reading about call/cc in Scheme I get the impression that it is very

11 messages 2002/02/05

[#33242] favicon.ico — Dave Thomas <Dave@...>

19 messages 2002/02/06
[#33256] Re: favicon.ico — Leon Torres <leon@...> 2002/02/06

[#33435] Reg: tiny contest: who's faster? (add_a_gram) — grady@... (Steven Grady)

> My current solution works correctly with various inputs.

17 messages 2002/02/08

[#33500] Ruby Embedded Documentation — William Djaja Tjokroaminata <billtj@...>

Hi,

24 messages 2002/02/10
[#33502] Re: Ruby Embedded Documentation — "Lyle Johnson" <ljohnson@...> 2002/02/10

> Now, I am using Ruby on Linux, and I have downloaded Ruby version

[#33615] Name resolution in Ruby — stern@... (Alan Stern)

I've been struggling to understand how name resolution is supposed to

16 messages 2002/02/11

[#33617] choice of HTML templating system — Paul Brannan <paul@...>

I am not a web developer, nor do I pretend to be one.

23 messages 2002/02/11

[#33619] make first letter lowercase — sebi@... (sebi)

hello,

20 messages 2002/02/11
[#33620] Re: [newbie] make first letter lowercase — Tobias Reif <tobiasreif@...> 2002/02/11

sebi wrote:

[#33624] Re: [newbie] make first letter lowercase — "Jeff 'japhy' Pinyan" <jeffp@...> 2002/02/11

On Feb 11, Tobias Reif said:

[#33632] Re: [newbie] make first letter lowercase — Mathieu Bouchard <matju@...> 2002/02/12

[#33731] simple XML parsing (greedy / non-greedy — Ron Jeffries <ronjeffries@...>

Suppose I had this text

14 messages 2002/02/13

[#33743] qualms about respond_to? idiom — David Alan Black <dblack@...>

Hi --

28 messages 2002/02/13
[#33751] Re: qualms about respond_to? idiom — Dave Thomas <Dave@...> 2002/02/13

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

[#33754] Re: qualms about respond_to? idiom — David Alan Black <dblack@...> 2002/02/13

Hi --

[#33848] "Powered by Ruby" banner — Yuri Leikind <YuriLeikind@...>

Hello Ruby folks,

78 messages 2002/02/14
[#33909] Re: "Powered by Ruby" banner — Leon Torres <leon@...> 2002/02/14

On Thu, 14 Feb 2002, Yuri Leikind wrote:

[#33916] RE: "Powered by Ruby" banner — "Jack Dempsey" <dempsejn@...> 2002/02/15

A modest submission:

[#33929] Re: "Powered by Ruby" banner — yet another bill smith <bigbill.smith@...> 2002/02/15

Kent Dahl wrote:

[#33932] OT Netscape 4.x? was Re: "Powered by Ruby" banner — Chris Gehlker <gehlker@...> 2002/02/15

On 2/15/02 5:54 AM, "yet another bill smith" <bigbill.smith@verizon.net>

[#33933] RE: OT Netscape 4.x? was Re: "Powered by Ruby" banner — "Jack Dempsey" <dempsejn@...> 2002/02/15

i just don't understand why it didn't show up! dhtml/javascript, ok, but a

[#33937] Re: OT Netscape 4.x? was Re: "Powered by Ruby" banner — Chris Gehlker <gehlker@...> 2002/02/15

On 2/15/02 7:16 AM, "Jack Dempsey" <dempsejn@georgetown.edu> wrote:

[#33989] Re: OT OmniWeb [was: Netscape 4.x?] — Sean Russell <ser@...> 2002/02/16

Chris Gehlker wrote:

[#33991] Re: OT OmniWeb [was: Netscape 4.x?] — Rob Partington <rjp@...> 2002/02/16

In message <3c6e5e01_1@spamkiller.newsgroups.com>,

[#33993] Re: OT OmniWeb [was: Netscape 4.x?] — Thomas Hurst <tom.hurst@...> 2002/02/16

* Rob Partington (rjp@browser.org) wrote:

[#33925] Re: "Powered by Ruby" banner — Martin Maciaszek <mmaciaszek@...> 2002/02/15

In article <3C6CFCCA.5AD5CA67@scnsoft.com>, Yuri Leikind wrote:

[#33956] Re: "Powered by Ruby" banner — Leon Torres <leon@...> 2002/02/15

On Fri, 15 Feb 2002, Martin Maciaszek wrote:

[#33851] Ruby and .NET — Patrik Sundberg <ps@...>

I have been reading a bit about .NET for the last couple of days and must say

53 messages 2002/02/14

[#34024] Compiled companion language for Ruby? — Erik Terpstra <erik@...>

Hmmm, seems that my previous post was in a different thread, I'll try

12 messages 2002/02/16

[#34036] The GUI Returns — "Horacio Lopez" <vruz@...>

Hello all,

33 messages 2002/02/17

[#34162] Epic4/Ruby — Thomas Hurst <tom.hurst@...>

Rejoice, for you no longer have to put up with that evil excuse for a

34 messages 2002/02/18

[#34185] Operator overloading and multiple arguments — ptkwt@...1.aracnet.com (Phil Tomson)

I'm trying to overload the '<=' operator in a class in order to use it for

10 messages 2002/02/18

[#34217] Ruby for web development — beripome@... (Billy)

Hi all,

21 messages 2002/02/19

[#34350] FAQ for comp.lang.ruby — "Hal E. Fulton" <hal9000@...>

RUBY NEWSGROUP FAQ -- Welcome to comp.lang.ruby! (Revised 2001-2-18)

15 messages 2002/02/20

[#34375] Setting the Ruby continued — <jostein.berntsen@...>

Hi,

24 messages 2002/02/20
[#34384] Re: Setting the Ruby continued — Paulo Schreiner <paulo@...> 2002/02/20

Also VERY important:

[#34467] recursive require — Ron Jeffries <ronjeffries@...>

I'm having a really odd thing happen with two files that mutually

18 messages 2002/02/21

[#34503] special characters — Tobias Reif <tobiasreif@...>

Hi all,

13 messages 2002/02/22

[#34517] Windows Installer Ruby 166-0 available — Andrew Hunt <andy@...>

16 messages 2002/02/22

[#34597] rdoc/xml questions — Dave Thomas <Dave@...>

24 messages 2002/02/23

[#34631] Object/Memory Management — "Sean O'Dell" <sean@...>

I'm new to Ruby and the community here (I've been learning Ruby for a grand

44 messages 2002/02/23

[#34682] duplicate method name — Ron Jeffries <ronjeffries@...>

I just found a case in a test file where i had two tests of the same

16 messages 2002/02/24
[#34687] Re: duplicate method name — s@... (Stefan Schmiedl) 2002/02/24

Hi Ron.

[#34791] Style Question — Ron Jeffries <ronjeffries@...>

So I'm building this set theory library. The "only" object is supposed

13 messages 2002/02/25

[#34912] RCR?: parallel to until: as_soon_as — Tobias Reif <tobiasreif@...>

Hi,

18 messages 2002/02/26

[#34972] OT A Question on work styles — Chris Gehlker <gehlker@...>

As a Mac baby I just had to step through ruby in GDB *from the command line*

20 messages 2002/02/28

[#35015] Time Comparison — "Sean O'Dell" <sean@...>

I am using the time object to compare times between two files and I'm

21 messages 2002/02/28

Re: Ruby's Future

From: Sean Middleditch <elanthis@...>
Date: 2002-02-23 04:47:38 UTC
List: ruby-talk #34601
On Fri, 2002-02-22 at 16:57, Paul Brannan wrote:
> On Sat, Feb 23, 2002 at 06:19:51AM +0900, Sean Middleditch wrote:
> > 1.  Precompiled blocks.  Let these byte-codes (hell, even an XML dump of
> > the code tree) be loadable without the full compiler.  Similarly, eval
> > would have be optional.  These *are* big bits of code that aren't needed
> > for apps that need simpler scripting.
> 
> eval is optional.  Instead of doing this:
>   eval(x)
> 
> you can do this:
>   my_proc = eval("proc { |a,b,c| #{x} }")
>   my_proc.call(a, b, c)
> 
> For tasks that aren't computationally intensive, I notice a 4x
> improvement in speed doing this.

Both of those solutions used eval().  ^,^  It's not the speed of eval
I'm worried about, it's the point of having the parser/compiler loaded
into memory at all times (also incurring a bigger startup time on
stand-alone interpreter).

Not to mention eval() is rather insecure and ugly.  Assuming the parse
tree/byte code is stored sanely, a very lite and simple API can be
generated that will allow building/manipulating the tree.  That could be
made into a loadable module (not everyone needs it).  Or, hell, just put
the parser and eval() into a loadable module - precompiled byte code
files will run much faster, and source files won't suffer too much of a
penalty at compile time.

> 
> > 2.  Reentrant.  Ruby/Rite should let multiple instances of the
> > interpreter run at in the same ( or even different ) threads.  The
> > usefulness with be apparant with the features below.
> 
> Definitely.  And get rid of those global variables.
> 
> > 3.  Breakable execution.  I might want to let a script/Ruby thread run,
> > but I'd need my app to continuously run as well (think network or GUI
> > apps).  if the Ruby script has a bug (infinite loop), I don't want my
> > whole app to lock up.  The app should be able to say "run for 500
> > milliseconds tops" or "run for 300 expression evaluations."  The thread
> > could then be "frozen", the controlling app does its work, then lets the
> > script/thread continue.  The controlling app could do its own magic to
> > put time limits on threads (to get rid of the scripts with infinite
> > loops).
> 
> Hmm... is this what rb_thread_wait_for does?  There's no inline
> documentation for many of these functions, so sometimes it's hard to
> tell.
> 
> The way I handle this is with an ACE reactor; the reactor is wrapped so
> I can add Ruby IO objects to the reactor.  99% of the time, my
> application is sitting inside the reactor event loop.  When data is
> available on an fd, a callback is made, either into C++ code or Ruby
> code, depending on who registered the fd.  Ruby threads can be running
> in the background while the reactor is sitting in an rb_thread_select
> loop.
> 
> If a callback hangs, then the program will hang, but if a background
> thread hangs, then I'm still safe.

I didn't know Ruby had that in there.  Indeed, like you said, it is
mostly undocumented.  But, you also mention hangs are possible...
scripts, which are possibly entered by the user at runtime (depending on
your application), should *never* have the ability to hang or crash your
application.  If user data can ever cause a hang or crash, I consider it
a serious bug ... user data cannot be trusted to be safe or accurate.

> 
> > 4.  Optional non-blocking system requests.  The core I/O and other
> > blocking requests (files and sockets) should have an option set for
> > breaking block.  Let's say a script wants to read a file, and the
> > request would block - instead, the script should be frozen (as in
> > request 3 above) and the controlling app runs.  When it lets the script
> > run again, it would check for blocking, read what it can, then break
> > again if it would block again.  This way, if a script needs system I/O,
> > it won't lock up the controlling application.
> 
> Would something like:
> 
>   io.fcntl(Fcntl::F_SETFL, Fcntl::O_NONBLOCK)
> 
> work?
> 
> (Granted, a nice wrapper library around this would be nice)

Well, again, that would make Ruby non-block... But say I have a script
running in my app.  My app needs to respond to events (lets say user
input).  If Ruby is blocking, the script runs, the whole app is
unresponsive until the script is done blocking.  With the above code,
the script would have to run in a loop or something, constantly checking
the fd, which would not in any way necessary return execution context to
the embedding app, and it would actually just cause an increae in CPU
usage.

> 
> > 5.  Easily enable/disable core libs.  In some apps, it may be desirable
> > to completely and totally disable some of the core libs (like I/O), and
> > so on.  I would want to be able to not load the compiler/eval, not load
> > I/O, and not allow require, in some of the apps I would embed Ruby in. 
> > Lua lets you do this, which is nice.  (note: when I say disable I/O, I
> > mean *all* I/O... even print())
> 
> I don't know why you'd want to do this, but why can't you simply iterate
> over all the methods in IO and undef them?

First, I shouldn't have to do that.  Second, that is a memory and CPU
waste.  Third, that won't totally get rid of them.

The reason is fairly simple.. you can quite easily have applications in
which I/O is *bad* (user scripts running on a server, in which you don't
want the scripts to access files, load modules that might circumvent
security, or send I/O to the system (for a number of reasons - log
contamination if you log stdout/stderr, performance hit for I/O access,
and so on).

Those libraries are not necessary for an application to run, they
shouldn't be there (libc is not built into C - it is merely a standard
API that your average C program expects to find)

> 
> > In any event, I know that's a big list of requirements for what I'd want
> > in Ruby, but everyone has their list, right?  ~,^
> 
> I was pleased how short your list was :)

Short != easy.  ~,^  Gods know i've tried implementing that feature list
enough times to with no complete success.  But then, I don't have nearly
as much language coding experience (or even plain coding experience) as
the majority of Ruby hackers.  ^,^

> 
> Paul
> 


In This Thread