World: r3wp
[Core] Discuss core issues
older newer | first last |
[unknown: 5] 21-Dec-2008 [11819] | Self has to be evaluated in that sense to see what value it is in each context. |
Steeve 21-Dec-2008 [11820x2] | i don't think it's checking values, we have the proof now |
2 distinct objects, so that same values in the same memory location are not taking in account | |
[unknown: 5] 21-Dec-2008 [11822] | The description of same? is this: Returns TRUE if the values are identical. if it isn't checking values in each context then how do you believe it would be checking the values? |
Steeve 21-Dec-2008 [11823] | identical means the inner pointers (in memory) are the same |
[unknown: 5] 21-Dec-2008 [11824] | I'm not sure how you can see that the self of one could be the same value as a self of another? |
Steeve 21-Dec-2008 [11825] | in R3 they do |
[unknown: 5] 21-Dec-2008 [11826] | I thought we were talking about R2. Sorry I got confused. I don't know regarding R3. That indeed could be the case. |
Steeve 21-Dec-2008 [11827x2] | i said previously that in R3 (comparing to R2) the bind? function returns the same object, not a different one. |
i used the first alpha release | |
[unknown: 5] 21-Dec-2008 [11829] | I'll yield to those that have used the Alpha a bit more as I really couldn't speculate at this point even. |
Anton 21-Dec-2008 [11830x2] | Steeve, it does look odd, like a bug. |
These are ok. >> same? o do bind [self] o == true >> same? o do bind [self] in o 'b == true | |
[unknown: 5] 21-Dec-2008 [11832] | If you think it is a bug Anton, then you should report it to Rambo assuming your talking about R2. |
Anton 21-Dec-2008 [11833] | I leave this honour to Steeve. :) |
Steeve 21-Dec-2008 [11834] | boring... |
Anton 21-Dec-2008 [11835] | There are no tickets that match a search for "bind?" in Rambo. |
Steeve 21-Dec-2008 [11836] | so you are the one who will fill the hole ;-) |
Anton 21-Dec-2008 [11837] | Aha! I like your style of humour! :) |
Steeve 21-Dec-2008 [11838] | especialy when we know that the word humour has a greek root meaning FLUID |
Gabriele 22-Dec-2008 [11839x2] | Steeve, o and the result of bind? are the same context but not the same object. this is an implementation detail of R2. |
I do not think this is a bug, and it may not be trivial to fix it if it was (which means, it'll never get fixed as Carl is not going to spend that much time on R2 for something not important) | |
Steeve 22-Dec-2008 [11841] | i agree Gab, for me, it's not a bug but a functionnality |
Anton 22-Dec-2008 [11842] | What use does it have ? |
Steeve 22-Dec-2008 [11843x5] | none for the moment... ;-) |
i | |
in R3 it would be usefull combined with the ability to expand an object | |
it would be something like an inheritance link | |
a dynamic one | |
[unknown: 5] 22-Dec-2008 [11848] | Sure it does - it allows Gabriele's function to work. |
Steeve 22-Dec-2008 [11849] | don't think it's related |
Steeve 23-Dec-2008 [11850x3] | Gabriele's func would work without this |
be | |
besides in R3, the bind? func doen't return a cloned object anymore | |
Gabriele 23-Dec-2008 [11853] | Anton, it's not that it has any use, it's that there is no "object" internally, just a "context", and the bind? function creates an "object" for the "context" so that it can return it (there is no way to access a context directly). bind? does not know whether the context is already referenced by an existing object or not, nor has any way to get to any such existing objects, so it just always creates a new one. |
Anton 23-Dec-2008 [11854] | Ahh that makes sense. So yes, an implementation detail of R2. |
Geomol 23-Dec-2008 [11855x2] | Has anyone noticed a max length for filenames giving to EXISTS? under Windows? I get a false reply, if the length of the full path is more than some 54 characters. |
Ah, my bad. It works! I had my dir in another place. doh! ;-) | |
Geomol 25-Dec-2008 [11857] | When using local blocks in functions, that is called many times, I often define them as: my-block: clear [] instead of my-block: copy [] The idea is to reuse the block (the memory area), so the garbage collection has less to do. Could there be any drawback in this? |
Henrik 25-Dec-2008 [11858] | I do the same thing, so I would be interested in hearing about draw backs. But it may also be important to specify the size of the block, when it's first created. That gives the garbage collector even less to do. |
[unknown: 5] 25-Dec-2008 [11859x8] | Yeah, you don't want to do that. Because with each loop that evaluates the command you actually recreating the pointer. Instead do this: my-block: [] ... clear my-block |
This way your doing less evaluation. | |
However, it allows you to be more flexible and possibly save some evaluation depending on how you implement it. | |
Let me give some examples. | |
Example 1 >> stats/evals/clear == [1 1 1] >> my-block: [] == [] >> loop 100 [insert my-block "somedata" clear my-block] == [] >> stats/evals == [506 202 103] Example 2 >> stats/evals/clear == [507 203 104] >> loop 100 [my-block: clear [] insert my-block "somedata"] == [] >> stats/evals == [604 202 102] Example 3 >> stats/evals/clear == [605 203 103] >> >> loop 100 [insert my-block: clear [] "somedata"] == [] >> stats/evals == [504 202 102] | |
Notice that example1 is more efficient than example 2. However, Example 3 takes the flexibility of setting my-block to a cleared block and actually is more efficient than example 1. | |
So unless your gonna utilize that method as in Example 3 then your better off with Example 1. | |
Am I missing something or should this function be like an operator or something?: family?: func [arg1 arg2][ if equal? type? arg1 type? arg2 [return true] false ] Maybe convert >< into op! that performs that task. Maybe there is another function I overlooked. | |
PeterWood 26-Dec-2008 [11867] | I'm running a CGI script from which I want to 'launch another script to do some housekeeping. The output from the launched script (including the Rebol banners) is returned to the browser. Is there a way to redirect the output from the launched Rebol session? (I am getting this behaviour on both Mac OS X and Linux). |
eFishAnt 26-Dec-2008 [11868] | OK, so 'close does not return anything...so you can't try a block with close if close is the last line in the block of you check if error? try [close whatever] If I use instead: if error? catch [ close whatever true ][print "will this ever get printed?"] |
older newer | first last |