Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: Enabling the REBOL community

From: john:schuhr at: 9-May-2001 11:12

Comments below :) ----------
> From: Joel Neely <[joel--neely--fedex--com]> > To: [rebol-list--rebol--com] > Subject: [REBOL] Re: Enabling the REBOL community > Date: Wed, 09 May 2001 07:42:41 -0500 > > Hi, John, > > John Schuhr wrote: > > > .... > > > > Maybe we need an anagram for the concept. Kinda like > > CPAN, but more oriented towards Rebol components? > > > > > > ERCR (pronouned ERaCeR) > > Extensible Rebol Component Repository > > > > > > How about acronyming into Swahili, and calling it UHURU > (which means "freedom", an appropriate meaning for a tool > to unchain the power of REBOL). > > Universal Home for Useful Rebol Units
Sounds good to me :) Anything catchy is good.
> > > > Another possibility had popped in my head briefly of > > rigging the Component Manager (working term) to update > > modules from a central location (hence the Repository > > part of ERCR) on demand. Kinda like: > > > > unit/update-lib %ERCR/libraries/text/textproc/parsers > > ;or using the working term "Rebol Component Manager" > > rcm/update-lib %ERCR/libraries/text/textproc/parsers > > > > This would cause the CM (Component Manager) to hit > > against the ERCR and look for new versions of the > > "ERCR/libraries/text/textproc/parsers" library, > > based on version numbers in the REBOL headers or > > some such thing. > > > > Sure. Add to that the idea of updating an entire branch > of the unit library (for those with the bandwidth and > time ;-) similar to > > unit/update-all %text/textproc/ > ;or, using the alternate acronym ;-) > UHURU/update-all %text/textproc/ > > which would recursively add all units AND branches (aka > directories) under that prefix.
Well, I was thinking that a unit library would only be located at the bottom of the hierarchy. Which is to say the %text/textproc path isn't actually a library, but contains several libraries. So if one were to specify a non-library path, then the Unit Manager would assume you mean to update all contained libraries recursively. But you may have the right of it by using a seperate function to eliminate any ambiguity.
> Incidentally, I also assume that the "ERCR/libraries" > (or "/usr/local/bin/rebol-lib/UHURU/" or whatever) would > be supplied automatically, based on whatever library > path(s) had been set up for the specific box.
I think the UHUHRU part of the path should be part of all units paths. So the cdf-parser would be called: UHURU/libraries/text/textproc/parsers/cdf.r And it would be up to the user as to where the UHURU home resides on their box. So they could have it in /usr/local/rebol/lib making the overall path into /usr/local/rebol/lib/UHURU... and they would use the following in their rebol.r: unit/add-lib-path %/usr/local/rebol/lib But unless the unit manager does recursive path searching you would have to specify: my-cdf-parse: unit/new UHURU/libraries/text/textproc/parsers/cdf Ick. Thoughts?
> This raises an interesting issue: suppose one had the > following code in user.r or rebol.r > > do %/usr/local/bin/rebol-lib/unit.r > unit/add-lib-path %/usr/local/bin/rebol-lib > unit/add-lib-path %/home/myacct/rebol-dev/lib > > There are now several policy options for what it means to > say > > unit/update-all %text/textproc/ > > with multiple paths set up: > > 1) Assume that the first path in lib-paths is the public > library, and add everything there. > 2) Search all paths until finding one that contains a > subpath of "text/textproc/" and add everthing there. > 3) Search all paths, finding EACH one that contains a > subpath of "text/textproc/" and add to all such. > 4) Ask the user which path(s) to add into. > > If no such sub-path could be found anywhere, either > > 5) Fail the update attempt, with appropriate notification. > 6) Assume that the first path in lib-paths is the public > library, and add everything there. > 7) Ask the user which path(s) to add into. > > I don't like (4) and (7), as they interfere with the ability > to run a cron job in the middle of the night to update my > libraries. > > Perhaps the best policy is "no policy -- specify which you > want with a refinement" with some defaults, such as (1) and > (6).
I agree with the "no default policy but feel free to create your own with the given feature set" approach :)
> > Naturally, all components submitted for inclusion into > > the ERCR would need to meet certain specifications for > > providing documentation, standard interfaces and respecting > > namespaces. Perhaps each component could be _forced_ > > to use a local context. > > > > How?
Good question. It's wishful thinking.
> One of the nice features of Perl's "use <module>" mechanism > is that one can explicitly indicate which names from the > module should be exported into the current namespace. > For example (using hypothetical REBOL syntax), it would be > nice to define a unit as > > unit [simpson montecarlo] [ > hiddenfunc1 func ... ;; details omitted > ... > hiddenfuncN func ... ;; details omitted > simpson: func ... ;; details omitted > montecarlo: func ... ;; details omitted > ] > > then utilize it via > > math-stuff: unit/new %math/integration > ... > math-stuff/simpson ... > math-stuff/montecarlo ... > > or via > > math-stuff: unit/new/import %math/integration [ > simpson montecarlo > ] > ... > simpson ... > montecarlo ... > > but strictly WITHIN the current namespace.
We may have to rely on RT for some mechanism in that regard. Unless someone out there knows a nifty hack for just such a thing.