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

World: r3wp

[!REBOL3]

Maxim
22-Jul-2010
[4037]
hum...  I thought ordinal functions had become none safe in R3?

>> first none
** Script error: cannot use pick on none! value
** Where: first
** Near: first none

(this is in A96)
BrianH
22-Jul-2010
[4038]
No, they are bounds safe. We want FIRST none to trigger an error.
Ladislav
26-Jul-2010
[4039]
Originally I thought, that the FUNCT function was quite adventurous 
doing a deep search for set-words. But, after using it a couple of 
times, it really looks like it does what is useful most of the time.
Graham
26-Jul-2010
[4040]
saves time ..
Henrik
26-Jul-2010
[4041]
FUNCT is very nice. I love it.
Graham
26-Jul-2010
[4042]
I wonder if we can do the same for use ... uset
Henrik
26-Jul-2010
[4043]
CONTEXT would be close.
Endo
26-Jul-2010
[4044]
@Graham: context [...] is not enough?
Graham
26-Jul-2010
[4045x2]
Hmm.. could work :)
so what advantage is there for  use [ ] [ ... ] as opposed to context 
[ ] ?
Endo
26-Jul-2010
[4047]
use doesn't return an object, so its overhead is less I guess.
Henrik
26-Jul-2010
[4048]
and you can specify a list of words, thus being entirely independent 
of the code inside.
Endo
26-Jul-2010
[4049x2]
So, you can define a global variable without using set 'xxx = yyy.
Here is my benchmarks:

benchmark [use [a b c d] [a: 1 b: "xyz" c: 3 d: a * c]] ; == 0:00:01.094
benchmark [context [a: 1 b: "xyz" c: 3 d: a * c]] ; ==0:00:01.484
my benchmark function runs the block 1.000.000 times.
Henrik
26-Jul-2010
[4051]
interesting
Endo
26-Jul-2010
[4052]
benchmark: func [b][s: now/precise loop 1000000 [do b] difference 
now/precise s]
Graham
26-Jul-2010
[4053x2]
miniscule difference
I should use this for my web pages ...
sqlab
26-Jul-2010
[4055]
I get different results
>> benchmark [context [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:01.455
>> benchmark [use [a b c d] [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:03.753
Endo
26-Jul-2010
[4056x2]
strange..
>>  benchmark [context [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:01.468
>> benchmark [context [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:01.469
>> benchmark [context [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:01.469
>> benchmark [context [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:01.5
>> benchmark [use [a b c d] [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:01.093
>> benchmark [use [a b c d] [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:01.094
>> benchmark [use [a b c d] [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:01.094
>> benchmark [use [a b c d] [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:01.094
@sqlab: try to bigger value.
sqlab
26-Jul-2010
[4058]
>> benchmark [context [a: 1 b: "xyzdddddddd" c: 3 d: a * c]]
== 0:00:14.423


>> benchmark [use [a b c d] [a: 1 b: "xyzdddddddd" c: 3 d: a * c]]
== 0:00:37.302
Endo
26-Jul-2010
[4059]
very strange.. I guess it's because of OS, hardware etc.
>> benchmark [context [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:15.048
>> benchmark [use [a b c d] [a: 1 b: "xyz" c: 3 d: a * c]]
== 0:00:11.11
for 10.000.000 times.
Ladislav
26-Jul-2010
[4060]
Endo, the thing is much simpler than that. I bet, that you are using 
R2
Endo
26-Jul-2010
[4061]
ofcourse :)
Ladislav
26-Jul-2010
[4062]
then, read the name of this group
sqlab
26-Jul-2010
[4063]
That explains it.
Endo
26-Jul-2010
[4064x2]
oh, yes, sorry, I just wanted to reply Grahams question..
so, use and context are really different in R3.
BrianH
26-Jul-2010
[4066x2]
USE is a wrapper around a closure!. CONTEXT creates an object. Very 
different.
USE is mezzanine in R3 - source it.
Endo
26-Jul-2010
[4068]
Sure, I would think that USE would be faster than CONTEXT (as in 
R2) but it is not.
BrianH
26-Jul-2010
[4069x3]
USE is just a helper function in R3. We use modules as the primary 
structuring model now.
Or objects.
Now if you created the closure yourself ahead of time, instead of 
creating a new closure every time (as USE does) then it would be 
faster.
Oldes
26-Jul-2010
[4072]
Can you show how?
BrianH
26-Jul-2010
[4073]
blah: closure [a b c d] [a: 1 b: "xyzdddddddd" c: 3 d: a * c]
benchmark [apply :blah []]
RobertS
26-Jul-2010
[4074x3]
HTML of new R3 doc pages has similar problems on most pages due to 
no urlencode of ampersand in urls and invald <th> declarations using 
old <tr> attrib values for vertical-align in a <th> element.  I would 
gladly fix ad hoc and you can fix your page gen tools (?) later
test: 42 ;  test:none  ;  comment { test remains 42 but no error 
unlike, say, simple undefined  testnone   That missing space looks 
nasty when test:none should have been    test: none           Is 
this a bug in R3?    test:none does not return none but instead returns 
  test:none
>> test: 42
== 42
>> test:none
== test:none
>> testnone
** Script error: testnone has no value
Oldes
26-Jul-2010
[4077x2]
that's a bug:
>> test:none: 1
== 1

>> test:none
== test:none
And it's bug in R2 as well.
Endo
26-Jul-2010
[4079]
I don't think it is a bug, test:none: is a url.
>> test:none: print "x"
== x

if it would a set-word then it should give an error like "test:none 
needs a value"
x: print "a"; == x needs a value
>> ? test:none:
== test:none: is an url
Oldes
26-Jul-2010
[4080]
probably you are right.. maybe it's for cases like>  mailto:[carl-:-rebol-:-xxx] 
 <not very useful imho :)
RobertS
26-Jul-2010
[4081]
a tolerated bug in R2 becomes a revered feature in R3, no?   If that 
is not a bug, then I may be the pope.  Or is it "the caprice of the 
colon", otherwise known as 'the big C" ?  You must excuse me, Jon 
Stwarrt just explained that science is faith and I am still in awe.
Chris
27-Jul-2010
[4082]
Single colon urls, can use it for:

Machine tags - one:two=three
For taguris - tag:example.com,2006:Fluffy 
Database - db:movies
Placeholders - go:here

And mailto: ... which can have it's merits, eg. - mt: find "mailto:" 
load/next mt (not for spam)


All of which you can write mini port handlers for, should you have 
the need...
BrianH
27-Jul-2010
[4083]
RobertS, it's not a bug even in R2.
Maxim
29-Jul-2010
[4084]
has find/all been discussed in relation to R3?  I think its a huge 
gap in REBOL.   maybe there's another function for this, but I'd 
rather have it "close to the source".
Henrik
29-Jul-2010
[4085]
R3 A102 released internally. (Have no other info yet)

http://www.rebol.com/r3/changes.html
Oldes
29-Jul-2010
[4086]
http://www.rebol.com/r3/downloads/r3-host-kit-a102.zip