World: r3wp
[Core] Discuss core issues
older newer | first last |
btiffin 16-Feb-2008 [9096] | I investigating the deets, but you might get away with strict-equal? res == false; need to test. |
[unknown: 5] 16-Feb-2008 [9097] | what is the difference again between strict-equal? and equal? |
btiffin 16-Feb-2008 [9098x2] | strict-equal? compares value and type, and then there is identical testing with =? where a: "abc" b: "abc" a =? b is false c: a a =? c is true (pretty much has to occupy the same ram) |
Oh just in case 1 = 1.0 is true 1 == 1.0 is not. | |
[unknown: 5] 16-Feb-2008 [9100] | that is what I thought btiffin - when you mentioned using strict-equal? you have me confused. How did you see it being used in a true false function? |
btiffin 17-Feb-2008 [9101] | Instead of if false? expression [ ] you might get away with if strict-equal? false expression [ ] and skip writing the false? func. |
Anton 17-Feb-2008 [9102] | All you should ever need is = false |
btiffin 17-Feb-2008 [9103] | Good point. Paul ... What Anton said. ;) |
[unknown: 5] 17-Feb-2008 [9104x4] | Yeah I don't see a need for a true function only a false function. |
Anyone know of a bug in REBOL where the word "end" shows up in a list! of values? I have got this weird problem where the word "end" shows up in what should be a list! block of nothing but integers but instead I have integers and a few references of the word "end" without the string as it is not a string datatype. If I do a foreach and attempt to step through each item it crashes on that entry. I can't determine what datatype it is. I looked at my code and nothing in my code or the data it handles contains the word "end". | |
I did some more research and it appears that the "end" I seen is a datatype. I didn't even know there was an end! datatype. | |
here is what the list block looks like for example: == make list! [1 4 5 end unset 6 7 8 9 10 11 12 13 14 15 16 17 18 19] except it is a lot longer I'm not sure why I'm getting the unset! or the end! datatypes at this point. I only use insert to add to this list and all the values being inserted should be integer datatypes. | |
Geomol 17-Feb-2008 [9108] | You could test, if what you're inserting actual is an integer. Something like: if integer! <> type? value-to-insert [print ["Not an integer:" value-to-insert]] |
[unknown: 5] 17-Feb-2008 [9109] | I actually did that and it got no errors which really has me a bit stumped. |
Geomol 17-Feb-2008 [9110x2] | That's weird. Could you test, if the just inserted value in the block is not integer!? Like: if integer! <> type? first blk [print "something"] |
And do that for every insert. | |
[unknown: 5] 17-Feb-2008 [9112x3] | Well that is actually how I did my test. I had the following in the subject area of the problem: if not integer? record-number: first to-block raw-record [print record-number] Problem is that it never printed anything |
Maybe someone can tell me what the end! datatype is used for and that might help find the problem | |
Gonna go see if the core manual refers to the end! datatype. | |
Geomol 17-Feb-2008 [9115] | end! is the datatype used to specify ends of blocks, if I remember correctly. |
[unknown: 5] 17-Feb-2008 [9116] | I didn't even know there was one. In what way would it be used? |
Geomol 17-Feb-2008 [9117x3] | Yes, "internal marker for end of block" |
It's an internal datatype. | |
My guess is, that somehow your input is an empty block (or the end marker) in some situations. | |
[unknown: 5] 17-Feb-2008 [9120x3] | Hmm... ok then that might explain something. I recall a copy function I had that caused the interal code of REBOL to spill out so I assume it has something to do with my port handling as that copy function I had did similiar. |
So it might be in the area where I have a copy/part on file data which would result in a block. | |
Geomol where did you get that information as it being an internal marker for end of block? | |
Geomol 17-Feb-2008 [9123x2] | R3 datatypes: http://www.rebol.net/wiki/Datatypes |
Many are the same in R2. | |
[unknown: 5] 17-Feb-2008 [9125] | ok thanks. |
Geomol 17-Feb-2008 [9126] | I think, end! was hidden in R2 and will be exposed in R3. |
[unknown: 5] 17-Feb-2008 [9127x4] | I suppose so. Maybe Gabriele will be lurking and can provide more info. |
I suppose the end! datatype isn't really interal code as I understood internal code in REBOL. | |
It appears possibly to do with the sort function | |
You can see the problem here - as it only seems to appear when the sort function is introduced: >> head dbrecs == make list! [1 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ... >> length? head dbrecs == 10098 >> dbrecs == make list! [] >> find head dbrecs end! == none >> sort head dbrecs == make list! [1 4 5 end unset 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 7 28 29 30 31 32 33 34 35 36 37 38 39 40... >> find head dbrecs end! == make list! [end unset 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 9 30 31 32 33 34 35 36 37 38 39 40 41 42... | |
Geomol 17-Feb-2008 [9131] | What do you see, if you do a >> ? system/version |
[unknown: 5] 17-Feb-2008 [9132] | >> system/version == 2.7.5.3.1 |
Geomol 17-Feb-2008 [9133] | Have you checked the bug database, if it's a known issue? http://www.rebol.net/cgi-bin/rambo.r |
[unknown: 5] 17-Feb-2008 [9134] | If it is the sort function then that would explain why putting the checks in my script didn't catch it because I was only using the sort in the console to test some other ideas. |
Geomol 17-Feb-2008 [9135] | (Just click the link, I gave, to run the bug database in your browser.) |
[unknown: 5] 17-Feb-2008 [9136] | I just searched it and didn't find mention of this problem. |
Geomol 17-Feb-2008 [9137] | This is related, I think: http://www.rebol.net/cgi-bin/rambo.r?id=3761& |
[unknown: 5] 17-Feb-2008 [9138x8] | Possibly. |
But that one says its built already so there is still a problem that exists with the function. | |
I'm going to run another test real quick to see if it effects just the list datatype by converting to block before the sort | |
Ahhh - the problem goes away if I convert my list to a block datatype before the sort. | |
So sort is causing the problem when performed on a list datatype | |
Do you know of any mezzanine functions that utilize sort? | |
Is there a version 2.76? | |
2.7.6 rather | |
older newer | first last |