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

World: r3wp

[!REBOL3-OLD1]

Steeve
21-Dec-2009
[20378]
i just think about an alias to shorten our code, the standardd word 
QUOTE would stay.
Ladislav
21-Dec-2009
[20379x2]
so, for example the expressions:

    'a

, and

    quote a

have the same effect
, but, certainly, a simple shortcut may be of use
Gregg
21-Dec-2009
[20381]
I have an old quote func as well. Two actually, and they do very 
different things. One prevents evaluation, and one encloses the value 
in double quote chars. I think the latter is the better use of the 
name, and we should come up with a better name for the func that 
prevents evaluation.
Izkata
21-Dec-2009
[20382]
keep
 ?
Gregg
21-Dec-2009
[20383]
KEEP is used inside COLLECT.  Something along the lines of LIT or 
LITERAL clearly says what it does.
Paul
21-Dec-2009
[20384]
One of my problems with R3 is that I get this feeling that an R3 
beta is immenant but feel it is still long way off and have concerns 
about the negative impact that will bring.  There is a great deal 
of expectation for the beta and I feel it is going to be viewed on 
Monday morning as a disappointment when it comes.  I'm hoping that 
the REBOL team makes sure that it hasen't left little things undone 
such as being able to change a date on a directory, etc...
Graham
21-Dec-2009
[20385x2]
That's part of the host code is it ot?
n
Henrik
22-Dec-2009
[20387]
Pavel, about bug #1399, we need to dig deeper to get a more accurate 
report for Carl, so he can fix it quickly. Which file transfer example 
are you talking about here?
Pavel
22-Dec-2009
[20388]
http://www.rebol.net/wiki/Port_Examples-> 4.4 Transfer a large file
Henrik
22-Dec-2009
[20389]
I do get interruptions during transfer here, but they are not reliable 
in size.
Pavel
22-Dec-2009
[20390x2]
In my machine this happen at the same point each time single client, 
but originally I've found this when I run 2 simultaneous clients 
with different large files (my was 50 and 100 MB)
Anyway I'm glad to you acknowledged the bug. Together with bug #1367 
and unsure garbage collection this prevents to build reliable (even 
simple) TCP servers.
Henrik
22-Dec-2009
[20392x2]
I don't think this is the same bug. I get different interruptions 
and no stack overflow.
Anyway, there's a lot to dig through here.
Steeve
22-Dec-2009
[20394]
#1367, why this one ?
Henrik
22-Dec-2009
[20395]
(sorry, forgot to mention that I didn't get a stack overflow)
Pavel
22-Dec-2009
[20396]
Sorry Typo #1369
Steeve
22-Dec-2009
[20397]
Henrik, i guess  your case  is covered by #1369 aswell
Henrik
22-Dec-2009
[20398]
I only use a single client/server.
Pavel
22-Dec-2009
[20399]
The difference is that #1399 breaks even if single client is running, 
I've observed that filetransfer goes parallel even for some time 
(but not finish) when two clients was run. So the difference was 
mutual block happen after some time. (Henrik you are quicker in typing")
Henrik
22-Dec-2009
[20400]
Pavel, what happens for me is that:

1. I start the server and it waits like it should

2. Then I start the client and transfer begins. At some point around 
10-20 MB in, the server just stops and the client returns to console. 
After a few seconds the server also returns to the console.

3. If I then start the server again, the read continues for another 
80000 bytes, like this:

>> do %/c/serve.r
Script: "Untitled" Version: none Date: none
subport read
len: 32000 total: 19192000 of 406258740...read
subport read
len: 32000 total: 19224000 of 406258740...read
subport read
len: 9000 total: 19233000 of 406258740...read
subport read
len: 7000 total: 19240000 of 406258740...read
subport close


And then the port closes and the server quits again, unless I start 
the client.
Pavel
22-Dec-2009
[20401]
Windows platform?
Henrik
22-Dec-2009
[20402]
yes, XP under Parallels.
Pavel
22-Dec-2009
[20403x4]
Mine last three server messages:
len: 20000 total: 4260000 of 51923978
subport read
len: 20000 total: 4280000 of 51923978
subport read
len: 20000 total: 4300000 of 51923978
And client:
send: 20000 bytes
wrote
send: 20000 bytes
wrote
** Internal error: stack overflow

** Where: either switch applier wake-up loop applier wait send-chunk 
either switch applier wake-up loop

er switch applier wake-up loop applier wait send-chunk either switch 
applier wake-up loop applier wait

ier wake-up loop applier wait send-chunk either switch applier wake-up 
loop applier wait send-chunk eit

op applier wait send-chunk either switch applier wake-up loop applier 
wait send-chunk either switch app

t send-chunk either switch applier wake-up loop applier wait send-chunk 
either...
>>
Server stops smoothly after pressetted timeout
Steeve
22-Dec-2009
[20407x2]
hum, i tried the ping-pong example  with 3clients and I don't have 
this bug, did you modified the client in some way Pavel ?
especially the send-chunk function which seems to do some recursive 
stuffs
Pavel
22-Dec-2009
[20409]
Steeve I've mentioned large file example with server/client not modified,
Henrik
22-Dec-2009
[20410]
let's be sure we're all running the same examples. The one in bug#1369 
is not the one Pavel is referring to, as far as I can tell.
Steeve
22-Dec-2009
[20411]
The thing i can say after inspecting the source, is that it's not 
adapted to have several clients.

The clients are not waiting for any response from the server after 
sending each chunk.

So that, the server could be stucked with massives waiting chunks 
in memory
Pavel
22-Dec-2009
[20412]
Steeve pls look up one page we are using single server single client 
large file example
Steeve
22-Dec-2009
[20413]
Well, my remark stay relevant.

Because  if for any reason the server is slower than the client, 
a lot of chunks can be stacked in the server's memory
Henrik
22-Dec-2009
[20414]
Pavel is referring to this example:

http://www.rebol.net/wiki/Port_Examples#Transfer_a_large_file
Steeve
22-Dec-2009
[20415]
Guys, I know that well, just read what i say
Henrik
22-Dec-2009
[20416]
it's not adapted to have several clients
 <- but why do I get problems, then?
Steeve
22-Dec-2009
[20417x5]
it's not the only one problem, all the chunks are sent in one massive 
request before the server treat them, i guess
can you just  change this function:

send-chunk: func [port file /local data] [
    append clear data read/part file 20000
    if empty? data [return false]
    print ["send:" length? data "bytes"]
    write port data
    read port
    true
]

just an idea, not tested
sorry, it's wrong, cause data is local.
I should make my tests first
Guess i'm stupid, the problem is really simple.
there is a timeout both in CLIENT and SERVER.
after 10 seconds both server and clients are stopped.
(check the wait command at the end of the scripts)
That's for Henrik's problem.
I don't have the stack overflow bug
Henrik
22-Dec-2009
[20422]
doh... it's even written in a comment. :-)
Steeve
22-Dec-2009
[20423]
:)
Henrik
22-Dec-2009
[20424x2]
I suggest that the wait is done in a different way in the example, 
otherwise the example is not very useful, I think.
removed the wait, and it transfers perfectly.
Pavel
22-Dec-2009
[20426]
Where you removed wait Henrik?
Henrik
22-Dec-2009
[20427]
oops, not the wait, just the 10 near the bottom of both scripts.