[#13775] Problems with racc rule definitions — Michael Neumann <neumann@...>

15 messages 2001/04/17
[#13795] Re: Problems with racc rule definitions — Minero Aoki <aamine@...> 2001/04/18

Hi,

[#13940] From Guido, with love... — Dave Thomas <Dave@...>

52 messages 2001/04/20

[#13953] regexp — James Ponder <james@...>

Hi, I'm new to ruby and am coming from a perl background - therefore I

19 messages 2001/04/21

[#14033] Distributed Ruby and heterogeneous networks — harryo@... (Harry Ohlsen)

I wrote my first small distributed application yesterday and it worked

15 messages 2001/04/22

[#14040] RCR: getClassFromString method — ptkwt@...1.aracnet.com (Phil Tomson)

It would be nice to have a function that returns a class type given a

20 messages 2001/04/22

[#14130] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Guy N. Hurst wrote:

21 messages 2001/04/24
[#14148] Re: Ruby mascot proposal — Stephen White <spwhite@...> 2001/04/24

On Tue, 24 Apr 2001, Conrad Schneiker wrote:

[#14188] Re: Ruby mascot proposal — matz@... (Yukihiro Matsumoto) 2001/04/25

Hi,

[#14193] Re: Ruby mascot proposal — "W. Kent Starr" <elderburn@...> 2001/04/25

On Tuesday 24 April 2001 23:02, Yukihiro Matsumoto wrote:

[#14138] Re: python on the smalltalk VM — Conrad Schneiker <schneik@...>

FYI: Thought this might be of interest to the JRuby and Ruby/GUI folks.

27 messages 2001/04/24
[#14153] Re: python on the smalltalk VM — Andrew Kuchling <akuchlin@...> 2001/04/24

Conrad Schneiker <schneik@austin.ibm.com> writes:

[#14154] array#flatten! question — Jim Freeze <jim@...> 2001/04/24

Hello.

[#14159] Can I insert into an array — Jim Freeze <jim@...> 2001/04/24

Ok, this may be a dumb question, but, is it possible to insert into an

[#14162] Re: Can I insert into an array — Dave Thomas <Dave@...> 2001/04/24

Jim Freeze <jim@freeze.org> writes:

[#14289] RCR: Array#insert — Shugo Maeda <shugo@...> 2001/04/27

At Wed, 25 Apr 2001 01:28:36 +0900,

[#14221] An or in an if. — Tim Pettman <tjp@...>

Hi there,

18 messages 2001/04/25

[#14267] Re: Ruby mascot proposal — "Conrad Schneiker" <schneik@...>

Danny van Bruggen,

16 messages 2001/04/26

[#14452] How to do it the Ruby-way 3 — Stefan Matthias Aust <sma@3plus4.de>

First a question: Why is

21 messages 2001/04/30

[ruby-talk:14177] Re: RCR, strange things in $:

From: "Benjamin J. Tilly" <ben_tilly@...>
Date: 2001-04-24 21:12:40 UTC
List: ruby-talk #14177
matz@zetabits.com (Yukihiro Matsumoto) wrote:
>Hi,
>
>In message "[ruby-talk:14102] Re: RCR, strange things in $:"
>    on 01/04/24, Dave Thomas <Dave@PragmaticProgrammer.com> writes:
>
>|> Back to the point.  I think that it would be handy to have
>|> a single hook where you can programatically give Ruby
>|> something and have it load it as a module.  Useful things
>|> can be built on that hook.  Dangerous things can also be
>|> built on that hook.  We can argue against the dangerous
>|> things while letting people experiment with potentially
>|> useful ones...
>|
>|Add to the wish the ability to have versioning at that interface.
>
>Hmm, both loading from zip archive and versioning are intersting.
>I'd like to see bit more detailed proposal to start up active
>discussion.

As both versioning and loading from a zip archive are
experimental, how about making both of them just hooks?

require can accept a list of arguments.  The first is
the name of the library.  The rest are optional (but
theoretically will be versioning information.)

When loading a library, each element in $: is searched.
If it has a load_library method, that is called with the
name of the file being searched for.  It returns one of three
things.  If it gives back false, that library was not loaded.
If it gives back true, that library was found and loaded
successfully, but there is no versioning implemented in the
load.  If it gives back something else, that something is a
closure.

If the element in $: does not have a load_library method, it
should be a string, and that string will go through a default
load_library implementation that searches a directory, loads
the file if it is found, and hands back whether or not the
library was found.

When loading a library that was already loaded, if true was
given back before, nothing is done.  Otherwise the closure
is called with the new version information for an (optional)
version check.

The planned future change is that at some point a choice will
be made among the (hopefully) competing versioning
implementations that people have tried, and that will be made
available as a core module that can be easily included in
custom loading schemes, plus the default method for a string
in $: will incorporate that.

Hopefully the proposed hooks will not be much work for matz,
and will have enough flexibility for the things that people
want to try.

Cheers,
Ben

PS Yes, I do hate making decisions up front. :-)

In This Thread

Prev Next