AltME groups: search
Help · search scripts · search articles · search mailing listresults summary
world | hits |
r4wp | 708 |
r3wp | 7013 |
total: | 7721 |
results window for this page: [start: 4601 end: 4700]
world-name: r3wp
Group: Core ... Discuss core issues [web-public] | ||
btiffin: 2-Apr-2008 | Only add fork that time as this is a three-way Brian chat. :) | |
btiffin: 5-Apr-2008 | Has anyone ever detailed the voodoo of caret escapes in strings? ^^^{ does not return ^{ as I read it should. It's ==ing as ^^{, but I'm not sure if this a post process of the == result display. ?? Seems like voodoo. And instead of exploring, I'd rather just read something this time. | |
Henrik: 17-Apr-2008 | I'm debugging my debugger right now. For some reason it does not log certain lines of debug information. The method I use is: write/binary/append %debug-file.r string By probing it in console, I get the correct output, but the same lines are always missing in the disk version. Would there be any time this write would not occur? | |
Anton: 21-Apr-2008 | I think I know what the trouble is - it's not easy to know whether a host OS rename can support move or not. Therefore rebol can't choose beforehand between rename and copy+delete. A workaround to that might be to try the rename first and see if it works (does not return an error message), but that adds complexity and performance problems. It could be done once at rebol startup in a temp directory, though it still seems a bit messy. (The real solution seems to be to go back in time and define POSIX rename and move properly.) | |
Henrik: 25-Apr-2008 | I had hoped to be at any time able to identify the running script by filename | |
BrianH: 25-Apr-2008 | It is currently impossible to determine the filename of an inner script unless you have stored this information somewhere. For that matter, if there is an error in a script, you would only be able to get the name of the running script. If the error is in a function created by a script that is used after the script is finished executing, there is no way to determine which script the function came from without storing that information somewhere ahead of time. | |
Henrik: 25-Apr-2008 | yeah and run that every time a script is renamed and perhaps also when an enduser gets a hold of the script. nope, it's too errorprone. I can see this won't be fixed, but I still think it's a missing feature. gotta go spend a couple of hours fixing this. :-) | |
[unknown: 5]: 27-Apr-2008 | I use it in TRETBASE to define the datatype of each respective field. It saves time and performance cost. | |
btiffin: 28-Apr-2008 | Maxim once mentioned that he spent a lot of time sandboxing his Elixir engine. iirc, he was confident enough to let it be open to random code. | |
BrianH: 29-Apr-2008 | In your version, the syntax error was at load time, before the attempt was called. | |
BrianH: 6-May-2008 | PeterWood, you should definitely try MOVE. We were very careful to avoid the aliasing and overlap issues that often happen with move functions; getting it right the first time was the whole point of its inclusion. :) | |
Geomol: 7-May-2008 | What's the best way to produce random passwords? I have an algorithm, that use RANDOM. I figured, I would use seed to start the random generator like this: random/seed to decimal! now/time/precise to be sure, it starts in the most random way. In theory this will give the same result, if the routine is called two times right after each other, and the time didn't evolve meantime. Maybe I shouldn't use seed? How does REBOL start its random generator, when REBOL launch? What does RANDOM/secure do? | |
Sunanda: 7-May-2008 | We take several steps in various bits of REBOL.org system code to produce unique identifiers. The code factors in not just now/time/precise but also things like: -- user name -- length? mold system -- incoming IP address But, ultimately, you cannot *guarantee* not to get an id clash that way. So (in cases where clashes matter), we also create a temporary file, id.tmp .... If that already exists, we generate a fresh id until we get a unique one. In the case of REBOL.org, the id.tmp files are deleted weekly, as a week old clash is not important. | |
Gabriele: 7-May-2008 | Geomol, use RANDOM/SEED NOW/PRECISE (no /time and no to decimal!) | |
Geomol: 7-May-2008 | Gabriele, I'm afraid, that's not good enough. Try this: >> loop 10 [random/seed now/precise print random 100] 28 28 28 28 28 28 28 28 28 28 While if I do it my way, I get this: >> loop 10 [random/seed to decimal! now/time/precise print random 100] 75 53 21 3 2 57 54 69 74 15 (I did it under OS X with version 2.7.6) | |
Sunanda: 7-May-2008 | As I suggested above, if it is a webservice, you can use other things in addition to the precise time: -- caller's ip address -- referer URL They will vary between calls -- unless exactly the same incoming URL is processed at exactly the same moment....That's unlikely, even if someone is resetting the server's time. | |
Geomol: 7-May-2008 | To illustrate my point, try create this rebol script (call it random.r or whatever) on you disk: REBOL [] print random 100 ask "OK" Now click it from the explorer in windows. I get the result 95 every time. That's not random! | |
Gregg: 7-May-2008 | Generate pools of passwords, and store a counter to use when you need to re-seed and generate a new pool. That way you can generate them over a long period of time and just pull them as necessary. | |
Reichart: 8-May-2008 | what happens if no random/seed is used in a REBOL program? That same thing that happens with almost all random generators, which is a pattern is used. REBOL has a starting seed value (unknown with out extensive testing). However, it will (and should) have the same value upon start up. The problem (you are perceiving) is with the word "RANDOM" Perhaps it should be called PATTERN instead. However, if seeded, RANDOM in turn will use a formula to generate more in the series. This is indeed true random, in as much as the seed's size sets the size of the universe. So, if you want to always have a random set, you need to get fresh random data (hmmm, I seem to recall mentioning this in another thread). Of note, the RANDOM we use in slot machines is NOT like REBOL's random function. REBOL's RANDOM (like most language random functions) is really SEED+OFFSET in a series. (thus a pattern). I'm not sure what Carl did to make it secure, but my best guess is he is sucking in what ever he can find to make it Random (this doing what I'm suggesting in the first place). For example, reading the mouse port, temperature, current time (to the jiffy), etc. This would make RANDOM what you expected it to be in the first place…but in theory this would be slower. In your case, this would be the way to go. | |
Geomol: 8-May-2008 | I think, I should do, as I first suggested: random/seed to binary! now/time/precise before making my random password. If I put in a little wait, I can also make sure, I don't produce the same password two times in a row. | |
Sunanda: 8-May-2008 | random/seed now/time/precise followed by an indeterminate number of random/secure to-decimal now/time/precise or a few waits will make it harder for anyone trying to guess your passwords. But none of that guarantees you won't produce a random number you already have. If you need your passwords to be unique, you need to do one of several things: -- check each one against all previously issued (as I've suggested) -- generate a unique pool in advance (as Gregg suggests) Both approaches introduce a potential security flaw: the table/pool of passwords is an attack point for a hacker. | |
Gabriele: 8-May-2008 | Geomol, you need a single daemon to give you out random numbers, or, if you're on Linux, use /dev/random or something like that. to decimal! now/time/precise means that your numbers just cycle in 24 hours, that is, i can easily predict what your password will be at a certain time of the day. | |
Geomol: 8-May-2008 | Yes, random/seed with a decimal doesn't use the seed: >> loop 10 [random/seed 1 random/seed to decimal! now/time/precise prin [random 100 ""]] 52 52 52 52 52 52 52 52 52 52 So I need to construct an integer from the time. | |
Geomol: 8-May-2008 | This is misleading to me. I got the impression, that I could do random/seed to decimal! now/time/precise but that's no good! Should it be reported as a bug/flaw? | |
Geomol: 8-May-2008 | Does anyone know, that now/time show at midnight? Is it 24:00 or 0:00? | |
Pekr: 8-May-2008 | try to switch you PC to 23:59 and do some loop which will print time :-) | |
Geomol: 8-May-2008 | A suggestion for an algorithm to produce a random seed from the time: s: to integer! 2 ** 32 / 86400 * (to decimal! now/time/precise) - (2 ** 31) s: enbase/base debase/base to-hex s 16 2 reverse s s: to integer! to issue! enbase/base debase/base s 2 16 random/seed s It does this: 1) convert now/time/precise to an integer using all possible bits 2) make a string of 0 and 1 from it 3) reverse the string 4) convert it back to an integer 5) And finally use it as a seed Doing it this way, I hope to have a good span of possible start values for the random generator. Did I miss anything? | |
Geomol: 8-May-2008 | So this should be about as good: random/seed to integer! 2 ** 32 / 86400 * (to decimal! now/time/precise) - (2 ** 31) | |
Reichart: 8-May-2008 | John wrote "It seems to be 1." And this is probably correct from a social point of view. But I will stick with "unkown without extensive testing" because many integers can give the same sequence, and might even give the same sequence for a long time before they diverge. This is the subtle point I'm trying to make about what is random vs pattern. Things that "seem" are the reason hackers crack codes…this is where I used to start when I cracked other people's systems… | |
Geomol: 8-May-2008 | My test show, that random/secure give the exact same sequence of numbers every time, if started with the same seed. Check it with code like: >> random/seed 1 loop 1000000 [random/secure 10000000] random/secure 10000000 == 1253129 >> x: 1 loop 10 [random/seed 1 loop 1000000 [random/secure 10000000] if 1253129 <> random/secure 10000000 [print x] x: x + 1] So I conclude, that I can only make 2 ** 32 different passwords with this, not 60 ** 8. | |
Dockimbel: 8-May-2008 | that random/secure give the exact same sequence of numbers every time, if started with the same seed That's an intended feature ! You should set the seed only *once* with a random (or pseudo-random) value like now/time. | |
Geomol: 8-May-2008 | So a way to get good random numbers over a long period of time, is to start such a routine (like the Mersenne twister) only once. The routine should then work with a high number of bits, the more the better and store the state, it has come to, to disk. Every time the computer is turned on, it can pick the state from disk, and start from where it left off. A password generator should use this routine and call it between each character in the password. If the routine has high enough resolution, it should be possible to produce 60 ** 8 different passwords. | |
Gregg: 8-May-2008 | This is the randomize func I use, FWIW: Alan Parman did quite a bit of R&D and posted this as his best solution. randomize: func [ "Reseed the random number generator." /with seed "date, time, and integer values are used directly; others are converted." ][ random/seed either find [date! time! integer!] type?/word seed [seed] [ to-integer checksum/secure form any [seed now/precise] ] ] | |
Geomol: 8-May-2008 | I installed R on my Mac more than a year ago, but haven't found the time to use it yet (or did't find the need). I've heard, it should be good at doing graphs. | |
Geomol: 9-May-2008 | I'm not fair using the word "ignorance". I don't think, you are. I base my conclusion on the following: See the password generator as a black box, that you feed with an integer, and out come a password. The integer input has 2 ** 32 different combinations and is used for the random/seed. Out come a password, and there can only be 2 ** 32 different passwords coming out at most. It doesn't matter, how the algorithm is constructed, if you put time delay in, call random or random/seed more than once, etc, as long as you don't get other input as the first integer. This is basic in information theory. And it's related to the determinism in digital computing. | |
Dockimbel: 9-May-2008 | Given a good algorithm (like Mersenne twister), and a true random generator for seeding (like hardware sensors) a computer could cover the 60**8 range. A humain brain, even given enough time, can't (I'm talking about generating random combinations, not using loops to generate every single combination). Even worse, humain results would show heterogeneous distribution of results, while computer will give a uniform distribution. So in that case, computers would give you better randomness than analog brains. | |
Gregg: 9-May-2008 | A long time ago, I remember reading something where the author suggested, as a shared seed, using a substring of PI. | |
Gabriele: 10-May-2008 | about 2 ** 32, that's a limitation of *your* algorithm, not RANDOM. indeed, if you don't reset the seed each time, and use random/secure, you probably get all of the possible passwords (and very likely more than humans would pick). besides, it is not proven that random/seed only takes 32 bits of data when seeded with a date!. (C rand() is most likely 32 bit, but random/secure could be using more than that.) | |
Anton: 16-Jun-2008 | I don't know where you got that number from; If I remember correctly the first time you can get a problem with rebol file size is at 2 ^ 31 - 1 | |
[unknown: 5]: 16-Jun-2008 | ahhh time to eat - be back in a few. | |
Graham: 28-Jun-2008 | If it's a time critical app like a web server I'd go for speed ... | |
[unknown: 5]: 23-Jul-2008 | I use them all the time. | |
Oldes: 2-Sep-2008 | yes... jeruzalem time-zone:) | |
Oldes: 2-Sep-2008 | yes... it's every time... there is no timezone in windows settings as well for this zone | |
Oldes: 2-Sep-2008 | or the app has to be no timezone aware:) Don§t know what can takes less time to fix:) | |
Oldes: 2-Sep-2008 | Maybe it's because 0 is false in C so the native time format thinks there is no timezone | |
BrianH: 24-Sep-2008 | Don't presume, check. If you don't get the ack in time, timeout. | |
Terry: 11-Oct-2008 | I knew this at one time, but is there a way to test if a word has been set / exists, that doesn't involve error trapping? >> if error? try [n][print "error"] error | |
Geomol: 15-Oct-2008 | Learn to bind knots with REBOL lecture one. ;) I always have trouble with BIND. Maybe I didn't ever take the time to really get it. So much to investigate with this language. :) | |
Anton: 16-Oct-2008 | Geomol, I was like that too, for quite some time, at the beginning. But... we can teach it to you !! It's really a simple concept. | |
Anton: 16-Oct-2008 | Geomol, yes the known word just defines the context. I use two binds because there are two contexts involved - the h/q/1 context, and the function's context. (Each time you create a function, a context is created for its locals.) | |
Anton: 16-Oct-2008 | Geomol, when FUNC is evaluated, a new function is created, along with a new "function context", as we say. The words in the function body block are then bound to the new function context. There are only two words in the block, 'do and 'code. So those are the only words affected. This binding only happens *once*, at function creation time. It does not happen again automatically when the function is evaluated for the first time, or any time afterwards. Even if it did, it would not affect the block of words referred to by 'code, because, as I've said above, BIND does not evaluate words to check if they are a block so it can recurse into them. (If it did, that would have far reaching consequences.) Not having to rebind words each time the function is evaluated keeps it efficient. If we want 'foreign' code to be bound to a function's context so it can interact with the function's locals, then we have to do it ourselves; functions created by FUNC won't do it for us. | |
amacleod: 16-Oct-2008 | Did you mean: s3: load rejoin ["{" s2"}"] ? with s2 in the rejoin and not s ? That seems to work and produce what I'm tring to get... A little awkward but only two lines for what I want... Thanks again, Anton. I can use this in the short time but I may need to just use SQLite or my own solution for storage as Paul is no longer developing Tretbase... | |
Graham: 25-Oct-2008 | I need to form the date in UTC coordinates.... eg. 2008-10-25T08:33:0.4Z Anyone got something more elegant than this? form-utc: func [ d [date!] /local ][ ; convert to GMT d: d - d/5 rejoin [ d/year "-" either d/month < 10 [ join "0" d/month] [ d/month ] "-" either d/day < 10 [ join "0" d/day ][ d/day ] "T" either d/time/1 < 10 [ join "0" d/time/1][ d/time/1 ] ":" either d/time/2 < 10 [ join "0" d/time/2][ d/time/2 ] ":" round/to d/time/3 .1 "Z" ] ] | |
Gregg: 25-Oct-2008 | as-utc: func [date] [ if all [date/zone 0:00 <> date/zone] [ date: add date negate date/zone ] date/zone: none if none? date/time [date/time: 0:0:0] date ] to-ISO8601-date: func [ "Converts a date! value to an ISO 8601 format string." date [date!] "The date to format" /T {Use T to delimit time value, rather than a space} /no-zone "Don't include the timezone" /local pad z ][ pad: func [val /to len] [ val: form val head insert/dup val #"0" ((any [len 2]) - length? val) ] rejoin [ pad/to date/year 4 "-" pad date/month "-" pad date/day either T ["T"] [" "] either none? t: date/time ["00:00:00Z"] [ ;<< reusing 'T here! rejoin [ pad t/hour ":" pad t/minute ":" pad round t/second either no-zone [""] [ either 0:00 = z: date/zone ["Z"] [ ;<< setting 'z here! rejoin [ pick ["+" "-"] z/hour > 0 pad abs z/hour pad abs z/minute ] ] ] ] ] ] ] | |
Graham: 25-Oct-2008 | format-10: func [ d [integer! decimal!] ][ either d < 10 [ join "0" d ] [ form d ] ] form-utc: func [ d [date!] /local ][ ; convert to GMT d: d - d/5 rejoin [ d/year "-" format-10 d/month "-" format-10 d/day "T" format-10 d/time/1 ":" format-10 d/time/2 ":" format-10 round/to d/time/3 .1 "Z" ] ] | |
BrianH: 28-Oct-2008 | COLLECT will be back-ported to R2. At the time of the 2.7.6 release the function was still under discussion - now it is finalized. We only backport final functions. I'm thinking that FOLD will probably make it too :) | |
Pekr: 12-Nov-2008 | I think not. The only way might be to set start: now at the beginning, and then read it out somehow. If the process crashes though, you are lost. You could write it to log from time to time, to see, what was happening and when .... | |
Ashley: 1-Dec-2008 | How can I iterate over a range of IP addresses (looking for a particular response) and "time out" the ones that "hang". I've got something like: ip: 10.1.1.0 loop 100 [ rc: read join http:// ip if find rc ... [...] ip: ip + 0.0.0.1 ] This works great on most devices (IP Phones, Printers, etc) but hangs when it hits a computer with Stealth mode. I've tried read/no-wait but that doesn't seem to make a differemce. | |
Ammon: 1-Dec-2008 | Ashley think I did something like that a long time ago by construction a port! and then calling wait [port! 0:03] in a loop. | |
Tomc: 5-Dec-2008 | dont sort by name to don't try to be efficent and send to multiple names in the same domain as the same time don't send spamy content | |
james_nak: 5-Dec-2008 | Yeah, these are separate emails only sent to one person at a time. And the content is just simple words (these are tests) and no symbols. | |
Steeve: 8-Dec-2008 | you mean time consumming ? | |
Steeve: 18-Dec-2008 | i give you a script i used to profile the ideal size of the buffer used with read-io to have the best perfs. On my computer the best size for the buffer is 8ko or 16ko. REBOL [] f: open/seek/binary %large.dta foreach len [64 128 256 1024 2048 4096 8192 10240 16384 32768 65536 131072] [ f/state/index: 0 ;*** Problème quand on emploie read-io : ;*** apparement c'est un bug, par défaut l'index est à 1 ;*** du coup, le premier octet n'est jamais lu buff: make binary! len + 1 ;*** Encore un bizarerie, si le buffer a exactement ;*** la taille voulue, read-io lit un octet de moins n: 0 recycle t: now/time/precise while [0 < read-io f buff len] [n: n + 1 clear buff f/state/index: f/state/index + len] print [len tab v: now/time/precise - t tab v / n tab n] ] close f halt | |
BrianH: 18-Dec-2008 | You need to print out the time to more precision. | |
Steeve: 18-Dec-2008 | each time you do a copy/part a new internal buffer is created, it's better to use always the same buffer. easy to understand. more of that, the profiling script say that it''s faster to read 16ko than 2 times 16 bytes | |
Steeve: 18-Dec-2008 | because each time you do a copy/part you create new buffers in memory which are not erased by the recycler so that you should consider using always the same buffer especially if you do thousands and thousands access in one second | |
[unknown: 5]: 18-Dec-2008 | let me put it another way Steeve, I will not be reading more than 16 bytes per request (because I don't need any more than that) and it isn't a 16 bytes segment that is next to another 16 byte segment really I'm moving back and forth all over the file to get 16 byte segments each time. | |
Gabriele: 22-Dec-2008 | 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) | |
btiffin: 3-Jan-2009 | I think Maxim mentioned that he had done a lot of work when he sandboxed Elixir. I didn't study enough of the magic Elixir to know how he pulled it off, but if it's Max, it's good and ahead of it's time. | |
Sunanda: 7-Jan-2009 | No one is really saying, Nick. It's a part of the implementation that may change at any time. Some clues have surfaced over the years in discussions about "slots" (search for [REBOL slots] for more links: http://www.rebol.org/cgi-bin/cgiwrap/rebol/ml-display-thread.r?m=rmlKVVC | |
Sunanda: 7-Jan-2009 | /secure provides its own seed. Theoretically, that seed is less guessable than the sort of things we are likely to think of in mezzanine code -- like time/precise. But we don't know for sure. All we do know is that with /seed we can provide the same seed and get the same series of random values; while with /secure if is not so easy. | |
Graham: 7-Jan-2009 | I usually seed with a precise time value | |
Henrik: 7-Jan-2009 | Graham, if you ever (ever) need to do that under win98, you must be careful, because time precision is much lower there. | |
Graham: 7-Jan-2009 | Hmm... mine is already time based. I doubt my hard drive IO is faster than that! | |
Graham: 7-Jan-2009 | but then I synchronize the user's clock to NIST time at the start of the session. | |
Nicolas: 7-Jan-2009 | Noticing that many people use two words to time things, I made a little timer function. | |
Nicolas: 7-Jan-2009 | time: func [s] [ t: now/time/precise if do s [now/time/precise - t] ] | |
btiffin: 7-Jan-2009 | Historical? start (set) and then end (report). R3 has a dt (delta-time) function built in and some other nice profiling words. | |
Pekr: 8-Jan-2009 | I used simple randomized copy/part upon checksum/secure now/time/precise. Worked so far ... | |
BenBran: 16-Jan-2009 | The past few weeks I've had more time to devote to Rebol. I'm working on some typical examples and routines to get aquainted with it. So I appreciate all the help I'm getting from this forum. Currently just playing with the delete-dir function. I'm not able to get this to work....is this even possible..... in the environment: myPath = C:\myTemp myPath: probe get-env "myTemp" ....(tried several iterations of code here to fix the path perfectly) delete-dir myTemp also tried reduce the path has been refomed to //%/myTemp/, %C/myTemp/, and several others forms. it says that it expects a dir argument of type: file url | |
Janko: 19-Jan-2009 | Chris: I googled about what you said but didn't find any source, but interesting.. this stuff was running on amiga at the time :) | |
Janko: 19-Jan-2009 | hm.. but why is it then called fifo if read needs to happen at the same time as write, I thought it's some sort of fifo (first in first out) stack/queue | |
BrianH: 21-Jan-2009 | It's not the insert that changes the litword to a word, it is the initial evaluation of the litword. By the time insert sees it it's already a word. | |
BrianH: 25-Jan-2009 | COPY "" is faster than MAKE STRING! 0 (amazingly enough), and you don't have to allocate a literal "" every time, just once at LOAD time | |
DideC: 26-Jan-2009 | In R3 (R2 is a very small bit faster, but I guess its related to the console) : >> t: now/time/precise loop 1000000 [copy ""] print [t - now/time/precise] -0:00:00.203 >> t: now/time/precise loop 1000000 [make string! 0] print [t - now/time/precise] -0:00:00.25 | |
BrianH: 26-Jan-2009 | The other way around, Doc. Mezzanines are not slow. It all depends on what the function is doing. Most of the time any interpreter overhead is dwarfed by the work the code is doing. This is why REBOL can be so fast when do much of it is written in REBOL. | |
Gabriele: 27-Jan-2009 | BTW DideC, if you use now/precise instead of now/time/precise and use difference instead of - then you don't have a problem around midnight. | |
Will: 27-Jan-2009 | I'm having a hard time producing code that reproduce the bug, if anyone can provide a piece of code that could stresstest [call] I'd be gratefull! 8) | |
Dockimbel: 1-Feb-2009 | Well, thanks for the offer, having Gab's Call script would save me some useful time. Anyway, I would rather prefer Carl to fix this issue. Carl maybe forgot, but all RT's customers are running on R2, not R3. The priority should be clear. | |
btiffin: 1-Feb-2009 | I made a post about 2.7.6 being near the end of life of the REBOL 2 line. I was told by Carl that I was mistaken ... completely. That was oh, 8 months ago or so. At that time; REBOL 2 is still very much an RT supported product line and there are no plans to change that stance. | |
Oldes: 1-Feb-2009 | I'm almost ready with the lexer for Python's Pygments syntax highlighter. Just need to define the keywords.. All the time I do it I don't know, which one to choose:) | |
Dockimbel: 2-Feb-2009 | Anton: thanks for taking the time to test it. | |
Janko: 8-Feb-2009 | I will experiment a little with this when I find time, thanks all | |
Tomc: 13-Feb-2009 | the initial offset (which column) the sort is on changes, but that is sort/skip/compare/part ref1 span column ref2 Brian's concern is what does this sort do to ref5 and ref 6 position. are they still valid. time to experiment | |
Graham: 19-Feb-2009 | I presume it's recreated anew each time the create-template runs | |
Janko: 21-Feb-2009 | (I participatted in this discussion already one time and it also seems consistent to me) | |
Janko: 21-Feb-2009 | Paul: I think Brian or Henrik told that time that 'word is "active" something and rebol reduces it when encounters it in the same way as it would auto-reduce function a: get-two not assign it to a (at least that was my compilation of it that time :) ) | |
[unknown: 5]: 21-Feb-2009 | It does sometimes but not all the time. | |
BrianH: 22-Feb-2009 | By the time LIT-WORD? sees the value, DO has already converted it to a word!, the way it is supposed to. LIT-WORD? works fine. |
4601 / 7721 | 1 | 2 | 3 | 4 | 5 | ... | 45 | 46 | [47] | 48 | 49 | ... | 74 | 75 | 76 | 77 | 78 |