World: r3wp
[!REBOL3]
older newer | first last |
Graham 26-Jul-2010 [4046] | 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 |
Graham 29-Jul-2010 [4087] | No support for structures yet? |
BrianH 29-Jul-2010 [4088x3] | No conversion functions yet, if that is what you mean. No struct! type as well, but that was a given. You can pass pointers to structures around as the handle! type, structure data in the binary! type, and convert using extension functions, or even REBOL code for binary! data. |
If you want a great set of conversion functions start writing them, and get others involved for the advice and help. You might consider starting with the conversion blog here: http://www.rebol.net/cgi-bin/r3blog.r?view=0317#comments | |
If conversion functions aren't done by the time I finish the module system revamp, and I have the time, I'll try implementing the model suggested in the comments of that blog. Not the struct! type though, that would be terrible for conversions. | |
Graham 31-Jul-2010 [4091x3] | A quick poll .. who is actually working on end user projects using R3 now?? |
Or, if that is too much to expect .. who is actually using R3 for anything?? | |
And if you're not .. what is the thing that is blocking you the most from using R3 ? | |
Pekr 31-Jul-2010 [4094] | GUI, console (not willing to experiment that much with the Windows default one), call, protocols (ftp, email, easy-cgi), DB (mysql, sqlite) |
Graham 31-Jul-2010 [4095] | Well, of those, I think I only see 'call and 'gui as blocking ... as the others are either usable in some sort of fashion |
older newer | first last |