World: r3wp
[!REBOL3 Schemes] Implementors guide
older newer | first last |
Graham 19-Jan-2010 [1680] | It's at the bottom of the page as a file attachment |
Carl 19-Jan-2010 [1681] | BTW, nice use of Deki wiki. |
Graham 19-Jan-2010 [1682x2] | It looks pretty but is slower than docbase :) |
and there's no REBOL formatting .. so I use ruby or whatever ... | |
Carl 19-Jan-2010 [1684] | Runs really fast here. Where's the server? |
Graham 19-Jan-2010 [1685x4] | I think EC2 |
It was a free hosting offer I picked up a couple of years ago ... | |
That is Mindtouch were offering free wikis to people limited to 200Mb I think | |
Of course what I really like about it is that there is a REST based API that I can use with REBOL. | |
Pekr 19-Jan-2010 [1689] | Carl - guys found out, that we have just one shared buffer - why? You have to read everything out during read phase, or you can get corrupted data .... |
Graham 19-Jan-2010 [1690] | pekr, what protocols are full duplex? |
Pekr 19-Jan-2010 [1691] | none ... but wasn't it you, after all, who just wondered, why the in-out buffer is shared? |
Graham 19-Jan-2010 [1692x2] | No .. I just pointed it out. |
And wondering if that imposes a lot of GC ... | |
Carl 19-Jan-2010 [1694x4] | It's one of those things that's in the "balance". |
It turns out, I think you can allocate separate buffers, but you must know how to do it... and I've not tried it yet, so have not mentioned it either. | |
But, I did give full duplex consideration during implementation. I think more modern IM systems benefit from it. | |
Also, it turns out that one must be careful when estimating GC overhead. Sometimes it is more efficient, becuase otherwise you must add extra code to manage memory usage... that is constantly being run. You know what I mean? | |
Graham 19-Jan-2010 [1698] | It wouldn't be a big change to the schemes if that gets implemented right ? |
Carl 19-Jan-2010 [1699x2] | Right. No change to schemes. |
lunch time, bbl | |
Graham 19-Jan-2010 [1701] | I think in my ftp scheme I access port/data directly so I can stream to the file system .. so it would require a tiny change if there were two sep buffers |
Andreas 19-Jan-2010 [1702] | Graham, instead of write imap-port [ dialect stuff ] wait [ imap-port timeout ] could you try: write imap-port [ dialect stuff ] read imap-port wait imap-port I think that should work. |
Carl 19-Jan-2010 [1703x2] | Graham, before looking at your new schemes, I decided to review some of DocBase. But... I must say that I have a difficult time finding things there... I'm not sure if the user who was reorganizing it got a chance to finish the updates. |
On http://www.rebol.net/wiki/Table_Of_Contents-- I've added some links to ports and schemes. Did I miss any? | |
Graham 19-Jan-2010 [1705x3] | Hard to say ... |
If I find anymore I'll update the wiki Andreas, going to try that now. | |
You did have an example somewhere of doing a large file transfer between client/server | |
Andreas 19-Jan-2010 [1708x3] | http://www.rebol.net/wiki/TCP_Port_Examples |
http://www.rebol.net/wiki/Ports:_Synchronous_and_Asynchronous_Operations may also make sense to be linked up | |
Ports:_Synchronous_and_Asynchronous_Operations -- that is | |
Carl 19-Jan-2010 [1711] | A: do you have a wiki account? |
Andreas 19-Jan-2010 [1712x2] | Not yet |
OK, created an account. I'll simple add those links myself, then | |
Carl 19-Jan-2010 [1714] | I tossed a few up just now. Go ahead and add or edit as needed. |
Graham 19-Jan-2010 [1715] | looks like we side tracked into a docbase update ... |
Andreas 19-Jan-2010 [1716] | Already debugging the IMAP thingie |
Carl 19-Jan-2010 [1717] | Not a sidetrack. See my note. This is an opportunity to check the docs against the code. |
Andreas 19-Jan-2010 [1718x2] | Ok, fixed the IMAP proto so that no timeout is needed anymore. Stumbled over what seems to be a bug in R3's USE, though: |
>> foo: func [] [use [] [return 42] 0] >> foo == 0 | |
Graham 19-Jan-2010 [1720] | Looks like this bug is what was causing me grief ... |
Andreas 19-Jan-2010 [1721] | Reported as bug#1436 |
Graham 19-Jan-2010 [1722x2] | Updated to 0.0.4 working http://rebol.wik.is/Rebol3/Schemes/Imap4 |
There's some optimizing of parsing the input and checking for incomplete data returned on a read to be done. | |
Graham 20-Jan-2010 [1724] | I've updated it to v 0.0.5 which hopefully checks now for incomplete read data, and factors out some of the parsing |
Pekr 20-Jan-2010 [1725] | Back to separate buffers - just a note. I think that we eventually don't need them. But we should be carefull to user errors. Because with one shared buffer, if you write to it, before you read-out all incoming data, you just destroyed a data. And what if you don't need to act on the data yet? You will temporarily store it in some other storage (buffer) anyway. But I never wrote a scheme, so maybe this is just plain theory, and in fact having one buffer will not cause any problems to anyone ... |
Graham 20-Jan-2010 [1726x2] | well, I think you normally read the data and then decide what to do with it. So, you have saved it somewhere ... |
Anyway I haven't had any issues so far .. and users unless they are writing schemes won't either. | |
Pekr 20-Jan-2010 [1728x2] | I mean - what if data comes, but you don't want/need to react on it, but you need to write? You have to read-out the buffer first, before you write, no? This constant small chunk read/wirte could cause unnecessary overhead, or not? |
Anyway - good to know, there is still some secret mode to reveal :-) So maybe one day Carl describes how to utilise two separate buffers :-) | |
older newer | first last |