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

World: r3wp

[Core] Discuss core issues

Graham
13-Sep-2005
[1982]
Jaime, can you list these issues in the gotchas in the wikibook so 
that they can be documented for all.
BrianH
13-Sep-2005
[1983]
I would probably stop using CONTEXT with this change.


I may not be a newbie, but I don't see how this behavior is different 
from the way blocks that aren't explicitly copied are shared throughout 
REBOL. Once you learn this gotcha once (like, the first time you 
make a function with a local block), you have learned it throughout. 
There are always workarounds, and the default behavior can be extremely 
useful if you are expecting it.
Ladislav
13-Sep-2005
[1984x3]
I am speaking about the following example:
objects: []
loop 2 [
	append objects make object! [a: 1 block: [a]]
]
objects/2/a: 2
do objects/1/block ; == 2 !
are you sure you can never be caught?
BrianH
13-Sep-2005
[1987]
I usually do that kind of thing like this:

objects: []
loop 2 [
	append objects make object! [a: 1 block: does [a]]
]
objects/2/a: 2
objects/1/block ; == 1 !
Volker
13-Sep-2005
[1988]
To me thats the typical copy-problem. i use 'copy in context-blocks 
too.
   make object! [a: 1 block: copy[a]]
In most cases it does not matter, as 'func copies too.
But when it goes wrong, its pretty confusing.
BrianH
13-Sep-2005
[1989]
The only time it can get tricky is when sharing parse rules. The 
way I work around that is to encapsulate them in a shared object, 
but occassionally it can cause a problem (simultaneous parsing) that 
only copying can help with.
Ladislav
14-Sep-2005
[1990]
BrianH: nevertheless, you didn't tell me, when would the changed 
CONTEXT cause you any trouble and what kind of trouble?
Graham
14-Sep-2005
[1991]
Now that we have open/seek, is there some way to compute a check 
sum on a large file by reading it in part by part ?
BrianH
15-Sep-2005
[1992]
Ladislav, I frequently use shared data in non-copied data structures 
that are referenced by many objects. This data isn't always in blocks 
- frequently I use hashes, lists or objects. These would be copied 
by your CONTEXT changes too, when my code expects them to stay the 
same. Lists and hashes are not affected by your rebinding problem 
- only blocks, parens and functions are rebound during object creation, 
because only they directly contain code under normal circumstances.


In the past I've found it easier to change the code that treats blocks 
as shared code ckunks into functions, or to make helper functions 
that create and initialize objects appropriately.
Rebolek
15-Sep-2005
[1993x7]
Hm this is strange
>> none and true
** Script Error: Cannot use and~ on none! value
** Near: none and true
Looks like 'and is calling 'and~
So perform some simple tests.
>> x: now/time/precise loop 10000000 [true and true] probe now/time/precise 
- x
0:00:03.39
>> x: now/time/precise loop 10000000 [and~ true true] probe now/time/precise 
- x
0:00:05.188
Hm, 'and is calling 'and~ but is faster than 'and~
Ladislav
15-Sep-2005
[2000x3]
BrianH: do you think, that you could give a simple example using 
MAKE OBJECT! that would break using the deep copying variant of CONTEXT?
Even better, if you have got such an example already in your scripts
TIA
Joe
15-Sep-2005
[2003]
I found that that running core on a AMD 64-bit box is not better 
than in a 3-year older 32-bit box. Should we expect a 64-bit core 
build ?
Graham
15-Sep-2005
[2004]
Not any time soon.
Pekr
15-Sep-2005
[2005]
how do you know? :-)
Graham
15-Sep-2005
[2006]
logic!
Pekr
15-Sep-2005
[2007]
>> true? logic!
== false :-)
Graham
15-Sep-2005
[2008]
RT has already stated their priorities viz OSX, SDK, and then IOS. 
 Since Rebol presumably runs already on windows 64 bit version, there 
is no pressing need to develop that product, and so it is logical 
to assume that it falls in priority after all of the above.
Pekr
15-Sep-2005
[2009]
well, no news on OS-X for how long? One month? Things really go way 
too much slowly .....
Graham
15-Sep-2005
[2010]
However, since Carl released the Genesi PPC Linux version  just recently, 
I guess it also true to assume Carl does not act logically !
Pekr
15-Sep-2005
[2011x2]
:-))
well, it is surely easier to port Core than to port View ... that 
might be the reason?
Graham
15-Sep-2005
[2013x2]
Do you mean, do the easy things first and leave the hard stuff to 
later?
If so, I don't think that's a recipe for success.
Pekr
15-Sep-2005
[2015x2]
not sure ... but maybe Genesi sponsored some of Carl's time and convinced 
him it might be important for them to have Rebol ... then Rebol for 
Genesi might be an enabler ...
once again we are here to ask ourselves, if open-source would not 
speed-up things significantly ...
Graham
15-Sep-2005
[2017]
speed is not RT's priority, but ensuring a successful company is.
Pekr
15-Sep-2005
[2018x2]
hmm, that does not have logic at all? How you want to be succesfull, 
if you are not able to fullfill your plans for one year? What from 
last year's plans got actually released?
I can tell you the truth - if there would not be 1.3, I would not 
be with rebol already ... and ppl at ml were right - 4 years to wait 
for View update? I hope it will not happen again ...
Graham
15-Sep-2005
[2020]
fortunately we are seeing updates at regular intervals.
Volker
15-Sep-2005
[2021]
genesis - this medical firm is in search for an os, isnt it? its 
small, efficent, amiga-like? and ppc is a good embedded processor? 
Just thinking loud :)
Joe
16-Sep-2005
[2022]
I recall AMD was a big RT customer (using IOS for intranet, documentation, 
...). This would make the case for x86_64 core
Graham
17-Sep-2005
[2023]
What's the logic! in this ?

>> true: all [ false ]
== none
Henrik
17-Sep-2005
[2024]
>> false
== false
>> all [false]
== none
>> true: all [false]
== none
Graham
17-Sep-2005
[2025x2]
I mean, should all [ false ] return false ?
instead it returns none.
Henrik
17-Sep-2005
[2027x2]
>> ? All
USAGE:
    ALL block

DESCRIPTION:

     Shortcut AND. Evaluates and returns at the first FALSE or NONE.
     ALL is a native value.
if there is nothing before false... what's there to evaluate?
Graham
17-Sep-2005
[2029x3]
returns at the first FALSE
>> all [ true false ]
== none
>> true and false
== false