World: r3wp
[Core] Discuss core issues
older newer | first last |
Volker 21-Aug-2005 [1712] | No, i dont see how. everything is referenced from locals. as long as you don't overwrite 'default itself, it should work? |
Ladislav 21-Aug-2005 [1713] | actually not, the problem is this: default [1 / 0] [default [2 / 0] [...] print mold disarm error] |
Volker 21-Aug-2005 [1714x2] | but i missed the point anyway, thought 'default takes care if i overwrite my own function. to hasty. its because of its own created function i guess. |
oh, recursion. and locals on the recursion-stack are not checked too? | |
Ladislav 21-Aug-2005 [1716] | aha, it *may* work, I didn't check it |
Volker 21-Aug-2005 [1717] | Hope with your bug-example Carl has an easy (and thus quick) time to fix it :) |
Ladislav 21-Aug-2005 [1718] | when we use DO method, we are *declaring* the function as anonymous and the interpreter takes care, the only problem may occur, when the interpreter handles the function as *named*, although that shouldn't matter, because every Rebol function is essentially anonymous |
Volker 21-Aug-2005 [1719x2] | it matters because the gc does not scan the c-stack correctly i guess. and its using c-stack for nesting. |
so the anonymous reference there does not count, is overlooked. You need another one, usually that from the functions name. kill that, next gc bang. 'do takes more care somehow. | |
Ladislav 21-Aug-2005 [1721] | actually DO names the function as its argument in a sense, that is why the original name isn't needed |
Volker 21-Aug-2005 [1722] | hmm, native functions could have argument-lists like normal ones, and then its "named" in that list? could be. |
Ladislav 21-Aug-2005 [1723] | funny, isn't it? |
Volker 21-Aug-2005 [1724] | :-) |
Anton 22-Aug-2005 [1725] | I believe, since you can expect the crash to be fixed some time in the future, that the solution is to provide both versions of the function, the fast, vulnerable version commented, and a note explaining when to switch from the slow, safe version to the fast, vulnerable version (preferably with test code to prove if your interpreter has the crash or not). |
Volker 22-Aug-2005 [1726] | To me the "sfae but slow"-version with 'do looks more elegant. i doubt it is slower. but i may compare the wrong sources, lots of them.. |
MikeL 22-Aug-2005 [1727] | Topic - needs or includes.... I am just cleaning up some scripts and want to use the dynamic load capability that I thought was enabled by pre-requisite setting in the REBOL header. The only link I can find is to the Values.R in the library. Is there a standard approach to this? Now I am using Carl's %include.r from the script library but it does not check for prior loading. |
Geomol 23-Aug-2005 [1728] | I don't think, it's initially possible to check, if a certain script has been loaded or not. One approach, that is often seen in C includes, is to have a big 'if' in the script around all the code there, which checks on a define, and inside the 'if' define the thing being checked on. I'm searching for a good 'include' myself from time to time. One where it's possible to include something without full path. Maybe variables like system/options/path, system/options/home or system/options/boot should be used. |
Ladislav 23-Aug-2005 [1729] | wrong, my include does it |
Geomol 23-Aug-2005 [1730x2] | :-) |
Ladislav, clever approach with the included block! Thanks! | |
Ladislav 23-Aug-2005 [1732] | check the latest INCLUDE now, http://www.fm.vslib.cz/~ladislav/rebol/include.r |
Geomol 23-Aug-2005 [1733x2] | How do you include "include.r" in your projects? Something like putting it in the home directory and type: do join system/options/home %include.r |
It should be part of REBOL. | |
Ladislav 23-Aug-2005 [1735x2] | yes, I put it in %user.r together with a definition of a suitable INCLUDE-PATH |
OTOH, if you mean how can I build a script containing INCLUDE, it can be done too, the easiest way is to use #include-string for that to prevent the "execution" of the preprocessor instructions defined in %include.r | |
Geomol 23-Aug-2005 [1737x2] | The new Core 2.6.0 in View 1.3 is running the user.r found by the environment variable APPDATA, it seems. On my Windows computer, it's in C:\Documents and Settings\John\Application Data\rebol\ , even if I install REBOL/View in E:\rebol\view\. Is it a good way of doing it? I find it a bit confusing. |
WinXP, that is. I wonder, how it is under Win98, Win2000 and Linux? | |
MikeL 23-Aug-2005 [1739] | Thank you Ladislav. More than I had hoped for. p.s. is there much of a penalty for using include/check instead of include? |
Ladislav 23-Aug-2005 [1740x3] | I didn't measure that but it doesn't matter to me, because Include isn't used often anyway |
I think, that it is unnoticeable | |
the slowest part of INCLUDE work is read anyway | |
MikeL 23-Aug-2005 [1743] | Great then I will use include/check as the default usage and may save some slow file access time in sub-modules. Thanks again. |
Gabriele 23-Aug-2005 [1744] | Geomol: you should be able to change the location of user.r and so on during installation (note that installation location and user files location are two different places, but can be set to the same dir) |
Ingo 23-Aug-2005 [1745] | Geomol: This way the executable may reside on a readonly file system. Sounds good to me. |
BrianH 24-Aug-2005 [1746] | Geomol, that way of locating user.r on Windows is really for the best. Windows is a multiuser OS after all, and the APPDATA directory on Windows is used roughly the same as the home directory on Linux. Global settings can be loaded from rebol.r in the same directory as the View executable. |
Geomol 24-Aug-2005 [1747] | I see, thanks! |
Anton 24-Aug-2005 [1748] | Geomol, I have an include system as well. It doesn't check for already loaded scripts but you may want to look at it. http://www.lexicon.net/antonr/rebol/library/include.r |
Geomol 24-Aug-2005 [1749] | Can't find www.lexicon.net, it seems. |
Anton 24-Aug-2005 [1750] | URL is correct, perhaps try again later. |
Pekr 24-Aug-2005 [1751] | I would like once again, if find/match on blocks has correct behavior? blk: ["Petr Krenzelok" "Richard Smolak" "Ladislav Mecir"] find/match blk "Richar" ... will not work, and I would expect it to. At least RebDB gives me such functionality and it is nice to have ... |
Henrik 24-Aug-2005 [1752] | doesn't find/match only work on a per element basis? otherwise it would be much more complex... if not strings, how would you search words, objects, integers, etc.? |
Pekr 24-Aug-2005 [1753x2] | if it would work on per-element basis, it would work ... |
actually I want someone to explain me, how is supposed find/match to work with blocks, if it was ever supposed to work? ;-) | |
Henrik 24-Aug-2005 [1755] | with per element basis, I meant full strings, not parts of a string... does find/match blk "Petr Krenzelok" not work? |
Pekr 24-Aug-2005 [1756x3] | well, it works in a following way - find/match blk ["Petr Krenzelok" "Richard Smolak"] - will return block in "Ladislav Mecir" element position ... |
which is, maybe consistent, but practically - unusable ... | |
I want find-each native then, like we have remove-each ... | |
Henrik 24-Aug-2005 [1759x2] | well, I wrote a function a while ago, which is pretty speedy for this purpose. I used it for real-time elimination of names in a list |
it equivalents a find/all blk "petr" | |
Pekr 24-Aug-2005 [1761] | well, iteration - that is not the way to go in scripting language, is it? |
older newer | first last |