World: r3wp
[RAMBO] The REBOL bug and enhancement database
older newer | first last |
Rebolek 7-Sep-2005 [1115] | search for "1.3.2" |
Pekr 7-Sep-2005 [1116x2] | I want timestamp bug resorted :-) |
and don't even dare releasing new View without fixing rebol.exe -i script.r (launching desktop, ignoring -i) :-)) ... because then rebol.exe can't be used for batch processing on machines, where you simply don't go via manual installation process .... | |
BrianH 7-Sep-2005 [1118] | Bug #3873 isn't a bug. REBOL does nesting of { and } when strings are specified with {}, and ignores { and } when strings are specified with "". The ^ is unnecessary in "{^}" because the } doesn't need escaping. The ^ is a syntax error in {{^}} because the } would already be escaped by the first { inside the string (the second overall), so escaping it again means that the string is never finished, as there must be one unescaped } after every unescaped { because of nesting. In both cases you either shouldn't put the ^ ( "{}" or {{}} ), or should escape the ^ if you want it in the resulting string ( "{^^}" or {{^^}} ). Sorry if that was a little confusing - I'm sure someone else can explain it better. |
Ladislav 8-Sep-2005 [1119] | with all respect on I completely disagree. 1) I am not able to understand, why {^{} is a syntax error 2) I completely disagree, that Rebol should check pairs of {} inside a string - I do want to be able to handle strings with arbitrary contents |
Ingo 8-Sep-2005 [1120] | Hi Ladislav, about 1) I completely agree ... >> {^{} { } ** Syntax Error: Invalid string -- } ** Near: (line 2) } >> {^}} == "}" >> these should both be OK. About 2) I agree partly ... if rebols parser counts pairs of {} I don't need to escape them, as long as I only have paired braces in a string. So that may be a nice feature ... |
Ladislav 8-Sep-2005 [1121] | If the said feature works against the main purpose of strings - the ability to contain any sequence of characters, then I am wholeheartedly against it. |
Ingo 8-Sep-2005 [1122] | Well, what I meant to say on 2) if counting of braces frees me from escaping, fine with me. But escaping should obviously work. and it doesn't (at least not for opening brace) |
BrianH 8-Sep-2005 [1123x3] | Ladislav, I agree that since ^} is usable, so should be ^{. Counting of braces can be quite awkward without this. This should be submitted to RAMBO. In any case, this behavior doesn't affect the ability to work with strings or limit the characters that they can contain. This only affects how strings are specified in REBOL source code. Once they are parsed by load, it doesn't matter where any ^ is in their contents. Try reading (READ native) data with arbitrary ^, { and } from a file and there will be no escaping performed. A load (LOAD native) of that same file will check REBOL data syntax and do any escaping it can. |
Still, the behavior described in bug #3873 was actually intentional and documented. | |
I suspect that this nesting behavior was intended to better enable using REBOL to generate code in languages with C-like block structure. I know it is useful for putting Javascript in generated web pages. There may even be such generation of C code as part of the REBOL build process. For that matter, it can be useful when specifying REBOL source code in strings when that code also contains strings. | |
Ladislav 8-Sep-2005 [1126x2] | OK, I submitted it as a special case. |
What I wanted to say is, that this property works against the possibility to specify a string containing some possible sequences of characters. The fact, that such strings can be read from file doesn't suffice as an argument, that Rebol can handle any string - Rebol cannot handle some strings using the escape convention defined in the Rebol/Core User's Guide. | |
Volker 8-Sep-2005 [1128x2] | do you test that from console? because console has some limitations. if i do in a script probe {^{} that works. in console this works too: !>load "{^^{}" == "{" |
see #3873, #3872 . console simplifies a bit. | |
BrianH 9-Sep-2005 [1130x3] | Ladislav, as I said, you make a good point that I agree with. I find it more than annoying that {} nesting without being able to escape { is awkward, often requiring joins with the string "{". They should definitely escape {. The REBOL User's Guide doesn't say how escaping works, really. I was left with the impression that ^ would always escape the next character and any special treatment thereof, but unless the next character (or characters for ^(00) style escaping) fits the subset that is handled by the current REBOL version, the ^ is stripped and ignored. At this point the { character is the only one that I've found that has special treatment that isn't disabled, but I haven't done an exhaustive search. |
Volker, all of my testing has been done from the console. It never occured to me that there would be any differences. Disturbing. | |
So, the loader escapes { and } but the console reader doesn't, and thinks the string either isn't done yet when it should be, or is when it shouldn't, respectively. Weird. | |
Volker 9-Sep-2005 [1133] | Console has to to do this: !>[ [ 1 [ 2 [ ] == [1 2 ] So it cant use the default 'load. So either it was implemented a bit lazy, and/or compatible based on some old version. The early rebols had really problems with such bracket-things. |
JaimeVargas 11-Sep-2005 [1134] | ;APPEND not returning the head of list! >> append my-list: make list! [] [value1 value2] ;== make list! [value1 value2] >> head? my-list ;== false |
Ladislav 11-Sep-2005 [1135] | >> my-list: append make list! [] [value1 value2] ;== make list! [value1 value2] == make list! [value1 value2] >> head? my-list == true |
BrianH 11-Sep-2005 [1136] | Volker, well then I guess I'd better check Core 2.5.0 to see how it behaves. I still use that version on WinCE - it is still the current version on many platforms. It doesn't seem like it would be difficult to add escape processing to the console reader, especially since it would only have to do it with { and }, and even then only in {} delimited strings. |
Ladislav 13-Sep-2005 [1137x2] | >> s: l: next make list! [1 2 3] == make list! [2 3] >> remove l == make list! [3] >> s == make list! [] |
I am not able to call this behaviour consistent, I am sorry | |
JaimeVargas 13-Sep-2005 [1139] | Agreed. I'm glad list! is not commonly used, otherwise someone optimizing code will probably throw rebol out of the window due to this "side effect" |
Ladislav 13-Sep-2005 [1140] | err, both S and L are the same, sorry, it is consistent in that sense |
JaimeVargas 13-Sep-2005 [1141x2] | More errors with list. TAIL? and HEAD? throwing errors. |
>> l: next make list! [1 2 3] == make list! [2 3] >> remove l == make list! [3] >> l == make list! [] >> tail? l ** Script Error: Out of range or past end ** Near: tail? l >> head? l ** Script Error: Out of range or past end ** Near: head? l >> l: head l == make list! [1 3] | |
Pekr 13-Sep-2005 [1143] | Jaime - will you report those bugs? That should be fixed, no? |
JaimeVargas 13-Sep-2005 [1144] | Yes. I am reporting them. |
Pekr 13-Sep-2005 [1145] | #3898 shows what I too reported as a critical - total annoyance of how View "works" in behind the firewall environment. I am glad I am not alone. Either rebol proxe detection code should be made smart (and I posted analysis how), or it should not try to connect to internet at all, gee! If it at least would be possible to shut the task down, but it isn't ;-) |
Tomc 13-Sep-2005 [1146] | any thoughts on for i 0 0 0[prin "dejavu"] |
Graham 13-Sep-2005 [1147] | 0 <> 0 ? |
Tomc 13-Sep-2005 [1148] | I would expect it to not do anything since the end is reached before beginning |
Graham 13-Sep-2005 [1149] | I thought 'while was the only iterative control structure that didn't execute at least once. |
Sunanda 13-Sep-2005 [1150] | 0 seems to be a buggy increment value....Worth reporting: for i 99 99 0[prin "dejavu"] Graham: for can execute zero times if the end condition is already true -- even with a zero incr: for i 99 -99 0[prin "dejavu"] |
Ashley 13-Sep-2005 [1151] | >> repeat i 0 [print i] >> foreach i [] [print i] == none |
Will 14-Sep-2005 [1152x5] | bug? |
>> to-idate 30-dec-2004/0:00+2 == "Thu, 30 Dec 2004 00:00:00 +0000" >> to-idate 30-dec-2004/0:00+2:0 == "Thu, 30 Dec 2004 00:00:00 +0200" | |
getting this: | |
** CRASH (Should not happen) - Invalid string width 20 : type 41 | |
rebol2600024 | |
Anton 14-Sep-2005 [1157] | that's what it says ! ;-) |
Ammon 14-Sep-2005 [1158x2] | >> About REBOL/Command 2.5.55.3.1 8-Nov-2004 Core 2.6.0 Copyright 2000-2004 REBOL Technologies. All rights reserved. REBOL is a trademark of REBOL Technologies. WWW.REBOL.COM >> ? datatype! ... number! datatype! number! ... >> ? number! No information on number! (word has no value) This doesn't seem very consistant. I'd love to have the help function return a list of datatypes within a specific seudo-type such as all datatypes included in the Number! type. |
While playing with this REBOL I got a "** CRASH (should not happen)" and spewed a bunch of garbage on the console. Unfortunately I haven't been able to reproduce this. I did get a screenshot of the console, however, if you're interested... | |
JaimeVargas 14-Sep-2005 [1160] | Were you playing with callbacks? |
Ammon 14-Sep-2005 [1161x2] | No |
the actual line that caused the crash: >> number? "10 | |
JaimeVargas 14-Sep-2005 [1163] | Then some other issue callbacks can crash rebol if the limit of them is exceeded. |
Ammon 14-Sep-2005 [1164] | What callbacks are we talking about here? |
older newer | first last |