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
26-Jan-2006
[1515x3]
>> do http://www.lexicon.net/antonr/rebol/gui/demo-percent-progress.r
connecting to: www.lexicon.net

** User Error: Error.  Target url: http://www.lexicon.net/antonr/rebol/gui/demo-percent-progress.r
could not be retrieved.  Server re
sp...

** Near: do http://www.lexicon.net/antonr/rebol/gui/demo-percent-progress.r
>>
In the above console session, the Error message is cut off just at 
"Server reps..."
so I can't see the response from the server.
(I uploaded the file now, so you can't replicate my error message.. 
:)
Volker
28-Jan-2006
[1518x4]
Can somebody confirm this pair-bug in rebservices? http://polly.rebol.it/test/test/rebservices/pair-bug/
Problemi shere:
mold-packet calls compand-packet always, and thus insert pair! .
but the call to expand-packet happens only if there is extra data. 
if i outcomment "if not zero? num [" it works
Gabriele
29-Jan-2006
[1522]
Volker, interesting finding, i will look into it. i guess that removing 
that if is the correct fix.
Ladislav
2-Feb-2006
[1523]
added a new 1.3.2 bug to Rambo:
b: head insert copy [] make list! [1] produces an invalid block
Graham
5-Feb-2006
[1524x2]
RAMBO Ticket #-578
Exists? corrupts http protocol.
Are Rambo tickets now negative ??
Sunanda
5-Feb-2006
[1526]
I believe the new/unreviewed submissions have a temporary sequence 
number and it is negative.

Once the submission been checked manually and found not to be spam, 
it'll get a more permanent sequence number.
Graham
5-Feb-2006
[1527x3]
>> q: query http://www.rebol.com/index.html
== none
>> read http://www.rebol.com/
== {<html>
<head>

<META NAME="Description" CONTENT="Lightweight distributed computing, 
collaboration, and programming systems for t...

>> q: query http://www.rebol.com/asdfsa.r

** User Error: Error.  Target url: http://www.rebol.com/asdfsa.r
could not be retrieved.  Server response: HTTP/1.0
404 Not Found
** Near: q: query http://www.rebol.com/asdfsa.r
>> read http://www.rebol.com/
== ""
looks like 'query is corrupting http protocol.
*but* also fixes it :)

>> q: query http://www.rebol.com/index.html
== none
>> read http://www.rebol.com/
== {<html>
<head>

<META NAME="Description" CONTENT="Lightweight distributed computing, 
collaboration, and programming systems for t...
Anton
6-Feb-2006
[1530x6]
Nice one Graham.
This looks like an inconsistency:
>> save %afile [[1]]
>> load/all %afile
== [[[1]]
]
>> save %afile [[1] 2]
>> load/all %afile
== [[1] 2
]
>> save %afile [[1] 2 3]
>> load/all %afile
== [[1] 2 3
]]
The first load/all seems to wrap in brackets once too often !
The difference is in whether there is a single item or multiple items 
being loaded.
Mmm, don't see it in RAMBO already. Anybody can confirm ?  By the 
way, SAVE or SAVE/ALL doesn't make a difference, but it must be LOAD/ALL 
to show the inconsistency.
I'm sure we've been over this one before, actually.
Similar behaviour:
>> save %afile [1]
>> load/all %afile
== [[1]
]
>> save %afile [1 2]
>> load/all %afile
== [1 2
]
>> save %afile [1 2 3]
>> load/all %afile
== [1 2 3
]
Gabriele
6-Feb-2006
[1536x2]
that's because save is like mold/only, except when the block only 
has one item.
i'm not sure we can classify it as a bug.
Anton
7-Feb-2006
[1538]
It's difficult to know what was saved after the fact.  Or at least, 
I am finding it difficult to see the logic clearly, in order to produce 
a nice loading function that handles all cases consistently.
Gabriele
7-Feb-2006
[1539x2]
either use write mold/only, or don't use load/all.
though, i guess this deserves some more thinking. add it as an issue 
ticket? or as note...
Anton
7-Feb-2006
[1541x10]
Ahh.. Of course ! Excellent suggestion.
Last time I remember Carl talking about it, he seemed to like the 
idea of being able to save/load a single value easily, so it is perhaps 
difficult to convince him.
.. to change it.
My solution: I used SAVE and SAVE/ALL, and LOAD.

The reason I wanted to use SAVE/ALL is to save none! in a serialised 
way. So I used SAVE/ALL in one place for that, and in another place 
I used SAVE and just made sure I wasn't saving none values, so it 
wasn't a problem.
(I will keep a note to use write mold/only, in case any problems 
crop up.)
Hang on a minute. There is an issue there, surely:
>> save %afile [1]
>> print read %afile
[1]
>> load %afile
== [1]
>> load/all %afile
== [[1]
]
>> save %afile [1 2]
>> print read %afile
1 2
>> load %afile
== [1 2
]
>> load/all %afile
== [1 2
]
LOAD and LOAD/ALL are the same when there are multiple values in 
the block, but different when there is only one value.
(I think I will post a ticket for this...)
Gabriele
8-Feb-2006
[1551]
LOAD and LOAD/ALL are the same when there are multiple values in 
the block, but different when there is only one value.


Exactly, and I think that is intentional, although weird and probably 
deserving some discussion.
Anton
8-Feb-2006
[1552x2]
Deserving discussion, yes. Do you have any idea what this difference 
of LOAD/ALL could be used for ? Anyone ?
I suppose that's why I should post a ticket.  :)
Henrik
8-Feb-2006
[1554]
I first thought that mold and mold/all would be the mirrored functions 
of load and load/all, but that's not the case?
Anton
8-Feb-2006
[1555x2]
Umm...
I would say SAVE should mirror WRITE MOLD, and LOAD should be orthogonal 
to that.

(Or at least, that's what you kind of expect.) (and same for SAVE/ALL, 
MOLD/ALL, LOAD/ALL.)
Henrik
8-Feb-2006
[1557]
hmm...
Ashley
8-Feb-2006
[1558]
load/all is very useful if you are loading a block of values from 
a file, eg.

	1 2 3 "Bob"


and you don't want to code for the case where the file only has one 
value in it. For example, with a file containing a single value in 
it I get:

>> load %a.txt
== 1
>> load/all %a.txt
== [1]


but in all other cases (zero or more than one value), I always get 
a block. I asked about this ages ago and the answer at the time was 
that beginners expected to be able to "load" a value without worrying 
about unwanted block creation (and those who wanted it would use 
load/all).
Anton
8-Feb-2006
[1559]
Yes, it all seemed to make sense at the time SAVE/ALL and LOAD/ALL 
were implemented. I remember the discussions about it. But trying 
to get a consistent method for saving/loading my data the other night 
proved very confusing. I spent a couple of hours testing different 
cases and I still haven't finished thinking about the issue.
Henrik
8-Feb-2006
[1560]
I would probably have said that if you are to return something, use 
as few different types as possible, even at the cost of an additional 
function. then a block would be returned regardless of contents
Anton
8-Feb-2006
[1561]
Yes, that's what I had in mind. One way of saving and loading, where 
I can always expect the data in a particular format.
Ashley
8-Feb-2006
[1562]
In RebDB I ended up with the following to handle this:

	switch/default length? tables/:table/data [
		0	[write tables/:table/dat-file ""]
		1	[save/all tables/:table/dat-file first tables/:table/data]
	][
		save/all tables/:table/dat-file tables/:table/data
	]
Anton
8-Feb-2006
[1563x2]
I think, as per Gabriele's suggestion, that can be simplified to:
	write  tables/:table/dat-file  mold/all tables/:table/data
(though it's not exactly the same for the 0 case.)
(The only reason I would want to use SAVE or SAVE/ALL is to avoid 
the slightly longer expression: WRITE MOLD or WRITE MOLD/ALL)