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

World: r3wp

[!REBOL3 Schemes] Implementors guide

Gregg
14-Jan-2010
[1422]
I'd like to see it stay low level in the scheme, as Andreas has it, 
and add wrappers for higher level operations.
Steeve
14-Jan-2010
[1423]
yep, i think so
Andreas
14-Jan-2010
[1424x3]
we can add a series protocol later on
the source avail at http://bolka.at/share/prot-pop3.rcurrently still 
has a series interface
length? for getting the num of messages avail, pick for reading a 
specific message
Gregg
14-Jan-2010
[1427]
I think I understand Steeve, but then how does your calling code 
know the block has been extended, without polling?
Steeve
14-Jan-2010
[1428x2]
and read for the whole block (which can be updated)
Greeg, i think we could add some info in the block, like a timestamp 
at the head
Andreas
14-Jan-2010
[1430]
hm, that'll get messy soon
Steeve
14-Jan-2010
[1431]
perhaps it's better to return an structured object
Gregg
14-Jan-2010
[1432]
The ability to get just headers, number of messages, etc. is great. 
Get a little info, show the user, request more data as desired, and 
show progress for lengthy ops.
Andreas
14-Jan-2010
[1433x2]
progress for length ops still is an open problem
i could enable copy/part for downloading large messages
Gregg
14-Jan-2010
[1435x2]
Still, without a callback or notification of some kind, the caller 
has to poll against the block to check for changes.
Having the basics first is great Andreas.
Andreas
14-Jan-2010
[1437x3]
ah, i know where i got the idea from. the large file copy example 
on the "docbase" wiki
http://www.rebol.net/wiki/Port_Examples#Copy_a_large_file
ha! read/part :)
Steeve
14-Jan-2010
[1440]
Andreas, your binding in the awake function should ne done only one 
time, at construction
Andreas
14-Jan-2010
[1441]
sure. but forget that code, i'll put up something more up-to-date 
soon
Gregg
14-Jan-2010
[1442x2]
Yes, I think that should work. Then your state machine will need 
to know it's building a message, or loop internally.
All the recent scheme work makes me want to jump in and see if we 
can make a nice scheme dialect. :-)
Steeve
14-Jan-2010
[1444]
Agree
Andreas
14-Jan-2010
[1445x2]
i intend to iterate POP3 until i consider it to be a good example 
for a basic scheme implementation for an "interactive" (lock-step 
request/response) protocol
i think we can then extract a dialect or at least some helper functions 
from there
Steeve
14-Jan-2010
[1447]
pop3 is good starter, not too complicated
Gregg
14-Jan-2010
[1448]
Agreed. The simple protocols help us identify the foundation elements.
Steeve
14-Jan-2010
[1449]
we could give a try for real time collaborative work and update the 
code in a shared sheet. There some tools for that
Andreas
14-Jan-2010
[1450x3]
too little code :)
prot-pop3.r is 113 lines atm
but it's in a git repository anyway, i could share that, if someone 
wants to collab
Gregg
14-Jan-2010
[1453]
I'll leave it to you guys for now. I need to make time before I'll 
add much value. I agree with Andreas as well. Better to have him 
complete his vision on this I think.
Steeve
14-Jan-2010
[1454]
precisely it's shorten, I think that is an advantage
Andreas
14-Jan-2010
[1455]
but that means i edit all over the place, which i think is anti-usage 
for collab editors
Gregg
14-Jan-2010
[1456]
What is the @@ for in comments?
Andreas
14-Jan-2010
[1457]
those are TODOs
Gregg
14-Jan-2010
[1458]
Why not say TODO then? ;-)
Andreas
14-Jan-2010
[1459]
two characters less :)
Gregg
14-Jan-2010
[1460x2]
I'll buy you more memory. :-)
I won't complain though. Your code is excellent. Clean and easy to 
read. Very nice.
Andreas
14-Jan-2010
[1462x3]
more time, please :)
it's rather about quick typing, than about saving memory :)
(thanks)
Gregg
14-Jan-2010
[1465]
You must be a very slow typist for those chars to add up. ;-)
Andreas
14-Jan-2010
[1466]
has what i consider now to be a really stupid overloading of READ, 
though
Gregg
14-Jan-2010
[1467x3]
There are definitely time in REBOL where things get overloaded and 
the context is hard for humans to deal with.
Schemes are one of the areas where I think you need to internalize 
the model of port, sub-port, actors and events to really "get it".
Then you can write a scheme. :-)
Steeve
14-Jan-2010
[1470]
Andreas, on linux what do you get for this ?
>>? :system/ports/system/awake
Andreas
14-Jan-2010
[1471]
same as in win32