r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[RAMBO] The REBOL bug and enhancement database

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?