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

Anton
18-Mar-2005
[301x2]
Isn't that kind of inconsistant ? You have a choice of 0 or 2+.  
How do you get just 1 leading space ?
Furthermore:
prin ["" "hello" ""] print "."
;hello .   ; <---- 1 traling space
form ["" "hello" ""]
;== "hello "   ; <--- 1 trailing space
Izkata
18-Mar-2005
[303]
print rejoin [" " "whatever" " "] ;   ;)
Anton
18-Mar-2005
[304x2]
The inconsistency is also between empty strings which are in first 
position or a later position in the block.
Yes, Izkata, I am well aware of that workaround.
Izkata
18-Mar-2005
[306]
No real argument from me, though, since I don't know and have never 
used 'form or simply printed blocks
Anton
18-Mar-2005
[307x2]
However, I keep bumping into this problem and so it wastes my time 
continually. I also imagine it's a small confusion for beginners.
So, I would like:
print ["" "hello"]
; hello  ; <---- 1 leading space
form ["" "hello"]
;== " hello"  ; <--- 1 leading space
form ["" "hello" ""]
;== " hello "  ; <--- 1 leading and 1 trailing space
And similar results for PRINT.
Anyone have any objections ?
Pekr
18-Mar-2005
[309]
Anton - how can you produce space without actually providing a space? 
;-) "" is empty string. Even 'empty? tells you so ... it can't add 
space by some magis, just only because it is used in a  block or 
form ...
Anton
18-Mar-2005
[310x3]
FORM puts a space between all items in the block when it is joining 
them together, even items which are empty strings - *except* if it 
is the first item.
You should read my examples more carefully.
Well now, that is not always true either !
form [{} {} {} {} {}] ; a whole bunch of empty strings
;== ""  ; <--- empty string
form [{} {a} {} {} {}] ; one character added
;== "a   "  ; <--- three trailing spaces
Izkata
18-Mar-2005
[313]
Perhaps form is just waiting until there's a value before it adds 
stuff?
>> form [{} {} {} {Hi} {} {}]
== "Hi  " ;2 spaces, and only after string w/value found
>> form [{} {} {} {Hi} {} {} {Hi} {}]
== "Hi   Hi " ;2 spaces and 1 space..


But yes, there probably ought to be a space in fron like you said 
before.  If the behavoir I think is happening, then 'trim should 
just be used, not letting it be automatic
Anton
18-Mar-2005
[314]
I am guessing the logic behind FORM is that it changes mode at the 
first non-empty string.
Izkata
18-Mar-2005
[315]
Basically what I tried to say but couldn't type correctly  ;)
Pekr
18-Mar-2005
[316]
Anton - it does not matter imo. It is design of 'form or 'print, 
that those add spaces between chars, but once you put empty string 
into block, it is value, and the value is empty string, so it is 
imo incorrect to want it represent space
Anton
18-Mar-2005
[317x2]
Read my comment above.
Pekr, look at this example. There are five items in the block (some 
are empty strings). So I expect five items to be separated by four 
spaces. 
form ["" 1 "" 2 ""] 

;== "1  2 "     ; <<<< but I count only three spaces in the result
Anton
20-Mar-2005
[319x2]
Gabriele, I see #3455 and #3576 are basically identical. I think 
#3576 is more accurate, so older #3455 should be removed.
Ok, submitted a report for the struct! comparison bugs above.
Anton
21-Mar-2005
[321x5]
Undecided about FORM....
Here's another bug:

BUG: using DETECT (instead of ENGAGE) is unreliable with stopping 
time events, as in this example:
lay: layout [btn "start" [lay/rate: 1 show lay] btn "stop" [lay/rate: 
none show lay]] lay/feel: make lay/feel [detect: func [face event][if 
event/type = 'time [print ['tick now/precise lay/rate]] event]] view 
lay
p: open http://www.rebol.com
close p
view lay
If you paste the above code straight into your console, the problem 
is present in the first VIEW as well as the second VIEW.

If you type/paste each line individually into your console, the problem 
is only present after the network access.

Once a console has the problem, it remains "contaminated", and you 
will need to open another console to continue testing.
Testing on REBOL/View 1.2.57.3.1e
Gabriele
21-Mar-2005
[326x5]
Anton: I have no idea if the FORM behavior is intentional or a bug. 
about detect: maybe the difference is due to copy&paste?
it's hard to believe something that hasn't been evaluated yet (i.e. 
the open) affects the view...
indeed, if you preceed the lines after the first view by semicolons 
(;) you get the same problem
to me it looks like that the problem happens if there are pending 
characters in the console yet to be read.
try to paste that into a string and then try to DO the string. the 
problem is only there after the OPEN. so, OPEN does trigger it anyway.
Romano
21-Mar-2005
[331x4]
I have submitted an issue entry in RAMBO about make integer!. I should 
like to know what people think about what must be the "RIGHT" conversion 
result.
My first question  is "make integer! should return a decimal! in 
some cases"?
Anton, i have the same rate problem in a program of mine! I was not 
able to reduce the problem to a simple example.
There is a workaround: call unview, then rate restarts to stop :-)
Gabriele
22-Mar-2005
[335]
make integer!: asked carl directly.
Anton
22-Mar-2005
[336x6]
Gabriele, about detect:  Yes, perhaps the console input is similar 
enough to a network access (a port access ?).   And, amazingly, doing 
from a string after "contamination" does *not* show the problem.
And yet more amazingly, doing from a string in a fresh rebol console 
*does* show the problem at the first VIEW.
Romano, that's not really a workaround if the requirement is to keep 
the window open. :)
Romano, "make integer!", I think if it can't fit all the integer 
digits from the input string into a valid integer, then it should 
throw an invalid argument error. Any digits after a decimal point 
should be discarded.  That would mean MAKE at least understands arbitrary 
length numbers in a string, even if it can't fit them into a rebol 
datatype.
(or throw a math overflow error).
and so "make integer!" should never return a decimal!, in my opinion.
Ladislav
6-Apr-2005
[342]
hi all, I found a nasty surprise in alpha async, at least for me 
it is a nasty surprise:


 http://www.rebol.net/cgi-bin/rambo.r?sort=4&limit=1&cmd=Search&id=&pattern=Read+handler


The behaviour I observed is observable in OpenBSD 3.6 too, Gabriele, 
could you add this note to it?
Gabriele
6-Apr-2005
[343]
Tom: I don't think .a libraries can be loaded dynamically, but i 
might be wrong.
JaimeVargas
6-Apr-2005
[344]
Thats correct .a libraries are used for static compilation.
Ladislav
6-Apr-2005
[345]
Gabriele: this is the response I get:

Chunk no 1
before insert
read handler execution interrupted! response
Chunk no 2
before insert
after insert
after insert
Gabriele
6-Apr-2005
[346]
this makes me think it's recursion, rather than interruption. a bit 
strange maybe, though.
Ladislav
6-Apr-2005
[347x2]
aha, so it looks that the handler eventually "returns", fine
then it is a bit better
Tomc
6-Apr-2005
[349]
Gabriele: Carl thought it was a possibility,  and asked me to add 
the request ro rambo so it did not get lost.
Gabriele
6-Apr-2005
[350]
ok. maybe it is possible on some OSes.