r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3]

Andreas
22-Sep-2010
[5039]
IMPORT with a block! as argument does the same as the NEEDS block 
in a header.
Gregg
22-Sep-2010
[5040]
Right, what I don't want is to have to explicitly import "basic functionality" 
in every script. The question is what is basic? And while we can 
certainly do it in a single header line, that's far from the same 
as having it "just work". 


I just want to make sure we're saving enough to make it worthwhile. 
You know how I hate premature optimization. ;-)
Andreas
22-Sep-2010
[5041]
That's precisely the point: what one considers "basic" functionality 
varies widely :)
Maxim
22-Sep-2010
[5042]
I think the point of the public release of this effort is to collect 
what you want (or not) as default.
Andreas
22-Sep-2010
[5043]
And some simple modularisation helps everyone, in the end.
Gregg
22-Sep-2010
[5044]
Right, so where is our list of options and dependencies?
Andreas
22-Sep-2010
[5045]
Heh, _compiling_ that list of options and dependency is part of the 
work in progress, I think :)
Gregg
22-Sep-2010
[5046x2]
So we know if we allow a url! as an arg we're sure to get all the 
protcols that are supported for any url! we might get.
Yes, and that task is important.
Andreas
22-Sep-2010
[5048x2]
I wouldn't say so. Those functions which process urls must ensure 
that the protocols they need are loaded.
(Just as READ, OPEN, etc will have to do internally.)
Gregg
22-Sep-2010
[5050x3]
Not sure I want to think about what those simple, generic, rebol-leveraging 
funcs might look like. Still, I'll keep an open mind. Show me the 
benefit and let me count the cost.
If we had a list of modules, along with their cost in memory consumption, 
"clutter", and load time, it would be easy to weigh their value.
Sorry, "weigh their value" should be "evaluate their cost".
Andreas
22-Sep-2010
[5053x2]
$ rebol3 --do what | wc -l
480
(-3, because of some useless startup output.)
Maxim
22-Sep-2010
[5055]
so rebol3 is worth 480$ ?   ;-)
Andreas
22-Sep-2010
[5056x4]
+ all schemes (currently only http is bundled with R3), + all functions 
which are not yet bundled in R3 but where available in R2 (cgi, html), 
+ modules which might be worth bundling (database?)
I guess the first step will be to go through these 480 functions 
and group them into some basic modules: possibly core, extra, math, 
debug.
extra == "plus". In a recent CC bug Carl for example mentioned having 
LAST? in core and moving SINGLE? to plus, if it is still wanted.
(And note that all "plus" functions will still be immediately available 
per default.)
Pekr
22-Sep-2010
[5060x2]
I am fully with Gregg here. At least http(s), ftp, smtp, pop, could 
be allowed by default ...
I often use those protocols in console, and I don't want to become 
'import monkey ...
Maxim
22-Sep-2010
[5062x2]
well voice, your needs on the web  ;-)
hum... the comma there makes the sentence a bit weird... ignore it...
Andreas
22-Sep-2010
[5064x2]
Pekr, import [http ftp smtp pop] is tough typing, for sure.
And as I mentioned above, most likely READ will do the import automagically 
for some "blessed" internal modules.
Maxim
22-Sep-2010
[5066]
there will probably be shortcuts like import_plus  import_full.
Andreas
22-Sep-2010
[5067x2]
Maybe a pseudo-module named 'full, then import 'full will do.
And I'm sure there'll be a way to just put the import in user.r/rebol.r 
and be done with it.
Gregg
22-Sep-2010
[5069]
Andreas, while the typing is simple, do you agree that you aren't 
just going to type it once, and that there is a cognitive overhead 
to defining the imports?
Andreas
22-Sep-2010
[5070]
I agree.
Gregg
22-Sep-2010
[5071]
Again, I'm not necessarily against it, as long as there is a benefit. 
If the benefit is 3ms faster loading and 30K less memory consumption, 
I will probably say that my time is more valuable than that. :-)
Andreas
22-Sep-2010
[5072x2]
3ms would be a startup time improvement of over 10%.
In a CGI use case, that is _definitely_ worth it.
Gregg
22-Sep-2010
[5074]
It wouldn't help a CGI script, because it would need to import CGI, 
HTTP, HTTPS, ... ;-)
Andreas
22-Sep-2010
[5075x3]
Don't be that anxious about your console. Once modularisation is 
done, it is ridiculously easy to get back a REBOL console with all 
modules and then some enabled and ready to use just like nothing 
ever happened.
It is the other way round that is hard.
It would help a CGI script a lot, because it won't have to import 
20 network protocols it never uses. But I sure noticed the ;-) at 
the end :)
Gregg
22-Sep-2010
[5078]
Oh to have to complain about the overhead of 20 standard network 
protocols...<wistful sigh>


But I take you're point, if my CGI is called hundreds of times per 
day, it adds up. ;-)
Pekr
22-Sep-2010
[5079]
I will have to do my own builds - full-fledged rebol - all-inclusive 
:-D
Andreas
22-Sep-2010
[5080]
Yes, and you'll be nicely able to do just that :)
AdrianS
22-Sep-2010
[5081]
yeah, but what about scripts that are put out in the public domain 
- I can see some people forgetting to add includes if their version 
has everything
Andreas
22-Sep-2010
[5082]
Nothing changes in this situation. Either tell people how they should 
run your script (same problem currently: /View or /Core?) or make 
sure your script runs with the plain, unmodified official downloads.
BrianH
22-Sep-2010
[5083x2]
Sorry for not being here earlier to clear up the misconceptions about 
the module system and functionality split :(
Gregg, you don't have to explicitly import modules into every module 
like you do in the Qtask system. Importing means something different 
in R3.
Andreas
22-Sep-2010
[5085]
(Maybe move the discussion to !REBOL3 Modules, while we are at it 
...)
BrianH
22-Sep-2010
[5086x3]
If they were reading !REBOL3 Modules we wouldn't need to have this 
discussion. The info is there already.
But I have a new idea, based on what is possible with the new modules 
(that haven't been integrated yet), so let's move there :)
There is no reason that R3 can't have standard builds that include 
everything. In fact, the blog says as much: Most of the options are 
opt-out based on a command line option, not opt-in. But we definitely 
need some stuff to be opt-in, like graphics stuff on OSes like Linux 
that don't necessarily have the supporting libraries.