• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r4wp

[!REBOL3] General discussion about REBOL 3

Gregg
3-Mar-2013
[1371x2]
value -- Maximum value of result or series (modified when series)
Should have a comma:


value -- Maximum value of result, or series (modified when series)
Bo
3-Mar-2013
[1373x3]
Moving from the 'random topic back to prot-send.r, I found a somewhat 
serious bug with attachments and base-64 encoding.  I sent the exact 
same attachment using webmail and R3.


at position 32677 in the email sent by webmail (the headers are slighly 
different sizes and the base-64 line breaks are different between 
the two clients) we have the following data:


eMHgCm4jUznXtDnpVKaErkAc107QbjVC6siyHYBu96hxLUjnXDKeWqPOTzVmWxuUY7kJ+lRGF16x

tn6VmO4ncYpZX34HYU0qw7EU3afSgdyUKCvy1s6DpEN3doL93jtyD9089Caq6bZO0g3Llj0Wu8t9

OhsNDu7uUK9wYiq/7OeOK1p03Mwq1eXRbnnUVuZJcKCecD3rctbVbYjdy5/Si1ks7WTLyAerYzUH


at position 32521 in the email sent by R3, we have the following 
data:


vaHNtZYHTmoHtcDpXRSQDk1UeMHgCm4jUznXtDnpVKaErkAc107QbjVC6siyHYBu96hxLUjn
XDKeWq

doL93jtyD9089Caq6bZO0g3Llj0Wu8t9OhsNDu7uUK9wYiq/7OeOK1p03Mwq1eXRbnnUVuZJ


I copied the three lines of data around where the problem occurs. 
 On the short line in the R3 data, the following sequence is missing:


POTzVmWxuUY7kJ+lRGF16xtn6VmO4ncYpZX34HYU0qw7EU3afSgdyUKCvy1s6DpEN3


You can imagine the kind of trouble that causes with binary data. 
;-)
Other than that, the two series are identical.
Before delving deep into R3 code, does anyone have any knowledge 
or idea of why this is happening?  Could it be a problem with buffer 
allocation around the 32K boundary?
Ladislav
3-Mar-2013
[1376x3]
Example (allow me to be a bit "unreasonable"):

random/seed 0
block: reduce [1 2 random 100] ; == [1 2 31] (in R3)


now being ordered "Pick a random value from BLOCK" I may (not very 
intelligently, I know) expect that I am required to pick 31 because 
that is the only random value in there (absurd, but compatible with 
the text, as I see it)
While being ordered "Pick a value from BLOCK at random", I would 
just pick whatever I like
I am not a native speaker, though, (but Bo understood my concern, 
I think), so I may be wrong when interpreting the sentences.
BrianH
3-Mar-2013
[1379x2]
Unfortunately, English is pretty random itself. All of those sentences 
could have ambiguous interpretations.
I like "Pick a value from a series at random" because the potential 
ambiguity would be whether any value is picked at all, which you 
could say always happens in some other docs if you feel it to be 
necessary to resolve the ambiguity.
Ladislav
3-Mar-2013
[1381x2]
Hmm, right, that ambiguity remains in the text
So, maybe it wasn't a good idea to suggest a change, I am not sure
BrianH
3-Mar-2013
[1383x2]
For native English speakers understanding of English is probabalistic, 
based on cultural preconceptions. So you pretty much have to hope 
for the best.
You can throw more words at the problem to try to make things less 
ambiguous, but that doesn't always work and tends to make your speech 
patterns a little off-putting or overbearing. Some people don't take 
well to overly-precise English. You have to balance things.
Ladislav
3-Mar-2013
[1385x2]
I am not writing a ticket for it, then, since it looks like not needing 
an improvement.
(or at least not requiring one)
BrianH
3-Mar-2013
[1387]
Your other doc string changes were more necessary.
GrahamC
3-Mar-2013
[1388x2]
@Bo .. no idea on why the binary attachments are different.
can you capture the attachment before sending and dump them to see 
if the problem is in building the attachment or sending it ...
Bo
3-Mar-2013
[1390x2]
@GrahamC:  Yes. I am going to try to find the source of the problem. 
This used to be my job at RT. ;-)
(One of my jobs)
GrahamC
3-Mar-2013
[1392]
Great .. saves me from debugging this.  not my favourite task
Bo
3-Mar-2013
[1393]
So far, I've gotten all the way to where the message is being written 
to the smtp port without finding any problems.  It looks perfect 
up until that point.  Unfortunately, this means I'll probably have 
to go into prot-smtp.r to track the problem further.
GrahamC
3-Mar-2013
[1394x3]
That's not good then ..
So, I take it the issue is with files greater than 32Kb?
I managed to send pdfs and mp3 larger than that with no errors ... 
and I think zip files so that it would test integrity but never did 
any checksum testing
Bo
3-Mar-2013
[1397x4]
So it seems.
It could be specific to R3 on Arm.  I'll try it on Windows before 
tracing any further.
So R3 on Windows works fine.  It seems to be a problem related to 
R3 Arm.
This part of the output seems to indicate that the messages get split 
on 32K boundaries:

C: sending 32K
=== Client event: wrote
C: sending  17834  bytes of  17834
=== Client event: wrote
GrahamC
3-Mar-2013
[1401]
Yes, I create a 32Kb buffer to send files in parts
Bo
3-Mar-2013
[1402]
That's my best guess as to where the problem is happening, but I 
haven't gotten to that point yet.
GrahamC
3-Mar-2013
[1403x2]
buffer size here https://github.com/gchiu/Rebol3/blob/master/protocols/prot-smtp.r#L66
and sending here https://github.com/gchiu/Rebol3/blob/master/protocols/prot-smtp.r#L284
Bo
3-Mar-2013
[1405x2]
Thx!
I'm running out of time for this evening.  I may have to hold off 
until Tuesday morning (Monday mornings are crazy for me).
GrahamC
3-Mar-2013
[1407x4]
so it waits for the 'wrote event and then once that  happens it writes 
again
which is here and thereafter https://github.com/gchiu/Rebol3/blob/master/protocols/prot-smtp.r#L312
wonder if reducing the buffer size in r3/droid might help?
or arm as it may be
Bo
3-Mar-2013
[1411]
Reducing the buffer size causes breaks at each boundary.  Increasing 
it seems to fix the problem for my attachments less than 64k,
GrahamC
3-Mar-2013
[1412]
so if it fits inside the buffer size it's ok?
Bo
4-Mar-2013
[1413]
Yes.  If it fits inside the buffer size, it works perfectly.  Tested 
and verified.  It may be fixed in the latest build, but I don't have 
the latest ARM Linux build, and won't have time to build it until 
tomorrow at the earliest.
GrahamC
4-Mar-2013
[1414x3]
How about writing to a file and sending to the port and seeing if 
there's a difference ...
so both semi concurrently
I don't have an ARM machine available to test
Bo
4-Mar-2013
[1417]
If I make the buffer 64KB, then there are no problems.
GrahamC
4-Mar-2013
[1418]
stil need to sort out whether the issue is in the rebol port or userland
Sunanda
5-Mar-2013
[1419]
Has this been discussed as an R2/R3 change? in R2 the variable used 
in a FOR is hard to mess with:
     for nn 1 5 1 [prin nn nn: 3]
    12345
     for nn 1 5 1 [prin nn unset 'nn]
     12345

But in R3:
     for nn 1 5 1 [prin nn nn: 3]
     144444444444444444444444444444444444444 <esc>
     for nn 1 5 1 [prin nn unset 'nn]
     1** Script error: unset! type is not allowed here
Ladislav
5-Mar-2013
[1420]
FOR has too many bugs in R2 for me to even want to list them all. 
Is this property something you mind about?