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

World: r3wp

[!REBOL3 Schemes] Implementors guide

Graham
11-Jan-2010
[995x4]
Brian, can you look at this to see what I'm doing wrong regarding 
the waits ...
I uploaded it as an attachment to that page ... too much hard work 
posting to the wiki ...
I guess timeout should be supplied when I use port-spec-net ...
Robert's diagram ... http://www.websequencediagrams.com/?lz=Q2xpZW50IFNjcmlwdC0-AAINOiBNYWtlIFBPUlQKAAoeU2V0IEFXQUtFIEZ1bmN0aW9uACEQUG9ydDogT1BFTgpQb3J0LT5BY3RvcgALBwAHBS0-VENQX0RldmljZSAAgREGOiBMT09LVVAKAAkRLT5Bd2FrZQAZCC1FVkVOVApub3RlIHJpZ2h0IG9mIAAbB0NhbiBkbyBJUCBmaWx0ZXJpbmcgZXRjLgoAPQUAYRUybmQAgSUGAGYSAIEZDVNlcnZlcjogQ09OTkVDVACBGwwAFQYAgSAHACAJQUNDRVBUAIEnBwAPDABCFVJFQUQKYWN0aXZhdGUgAGcRAFwTAIIvFQBCBQCCKBoAgTYHAIInHDFzdCBXUklURSBzdGFydCBmbG93IG9mIGV2ZW50cwCCLhsAMAkAgTIVAIR2BgCCPSgAQgYAgkIhUkVBRACECAdkZQCCFyYAhEQPV1JPVEUAJh0AgTIHAIRaFUFmdGVyIGEAgikHd2Ugbm93IGNhbgCDSAYAhFoaAINUGQCCHwcAhA0hAIIIGACGQxUAgjwRAIZIDwCCOwsAhkITCgCFFgUgZGF0YSAmIHJldHVybiBUUlVFIHRvIGV4aXQgV0FJVAogb3IgaXNzdWUgbmV4AIQBCGVuZCBub3RlAII9HgCGfh4AhE0G&s=modern-blue
Andreas
11-Jan-2010
[999]
looks nice
Graham
11-Jan-2010
[1000]
better than a napkin style!
Andreas
11-Jan-2010
[1001]
:)
Graham
11-Jan-2010
[1002x4]
It looks like I should be able to re-use the directory parser from 
the r2 ftp scheme ...
Just add these two lines to the definition

		scopy: :system/contexts/system/copy
		sremove: :system/contexts/system/remove
Got this on a file download ..

==TCP-event on dataport: read
?read: 15008
** Access error: cannot open: %wubi.exe reason: -3

** Where: write switch switch applier wake-up loop applier wait while 
either eit
her either read catch either either applier do
** Near: write/append port/spec/method port/data clear port/data
Might be a permissions issue ...
Andreas
11-Jan-2010
[1006x8]
sooo ....
prepared for the madness?
http://www.websequencediagrams.com/cgi-bin/cdraw?lz=U2NyaXB0LT4AAgY6IE1BS0UgUG9ydAphY3RpdmF0ZSAAHQYKbm90ZSBvdmVyAAoHLFBvcnQ6IG9wZW4gUE9QMyBwb3J0CgBICAAXBk9QRU4KZGUAOxBQb3J0LQAeBiBBY3RvcgAjBwBqCSIAEQoiACkFACEGLT5TdWJwAFAKAIEJCwAtBSIsACwNICAgIGxvb2t1cAAGBWNvbm5lY3QAEgVyZWFkIHdlbGNvbWUKZW5kIG5vdGUAXQ0AgVgGUkVBRACBNQwAgQgRAIE4DwArBQCBHCtXQUlUAEcZCgCBZwctAIFvCSBBd2FrZTogTE9PS1VQIEV2ZW4Agx4LIgAZDSIANwgALwYAgiwQAIFJDAApDwBsDGVydmVyAIQMBToAgjgJAIQFBXJpZ2h0IG9mICIAGQsiOiAuLi4KACsLAIEyCgA2CgCBPhlDT05ORUNUAIEgOACDHBEAgUgQbG9vcCByZXNwb25zZSBpbWNvbXBsZXRlPwCEJgUAglUZUkVBRACCZQcgICAgAIJXGQA6CwCBBhYgICAgAIJdG2VuZACDWRsAewsAg0snAIIODVRVUk4gdHJ1ZQCDXhwAhGcKAIcQDGV4aXQAhSQGAIURFwCGah06IGJ1ZmZlciBVU0VSAIZQE1dSSVRFAIY4LAArBgCGHBcAhlAWAF4FAIgzFQCDVwUoKjEpAIgpJHNlbmQAgUEGAIg7CQCERggAh0WBAACBPgYAiBgyV1JPVEUAg1eDGgCNfBcAhksmUEFTUwCFLigAJwUAhTAmAJAjCgCITwcoZnJvbQCPZwUgYWN0b3IAhG4aAI0gCwCQcwUiCg&s=modern-blue
should be a complete walkthrough of what happens
when you do:
mbox: open pop3://user:[pass-:-server]
the blue liveness bars in the "port actor" might be slightly misleading
maybe i should use three separate actors instead (open, read, write)
i'll try that
Graham
11-Jan-2010
[1014x2]
heh ... should give us the link to the source of your diagram as 
well :)
Currently streaming a ftp download of the ubuntu server iso image 
... will see how that longs before I get an error.
Andreas
11-Jan-2010
[1016x3]
http://www.websequencediagrams.com/cgi-bin/cdraw?lz=cGFydGljaXBhbnQgU2NyaXB0CgAHDFBvcgADDiJPcGVuIEFjdG9yIgALDlJlYWQABBVXcml0ZQArCAoAXwYtPgBnBjogTUFLRQBhBmFjdGl2YXRlAIEACG5vdGUgb3ZlcgCBEgcsUG9ydDogb3BlbiBQT1AzIHBvcnQARwkAFwZPUEVOClBvcnQtLT4AgSAKABEHAFgJAIE4DQCBRwotPlN1YnAAPgoAdwsiUG9ydCIsAIFxDSAgICBsb29rdXAABgVjb25uZWN0ABIFcmVhZCB3ZWxjb21lCmVuZCBub3RlAF0NAIFGBlJFQUQAgScIAII2CgARBwCBJQoAgk8MAIJdCgCBJAtXQUlUCgoAgTcHLQCBPwkgQXdha2U6IExPT0tVUCBFdmVuAIJcCyIAGQ0iADcIAC8GAIF8EGRlAB8ZAGwMZXJ2ZXIAhDEFOgCCCAkAg0MFcmlnaHQgb2YgIgAZCyI6IC4uLgoAKwsAgTIKADYKAIE-GUNPTk5FQ1QAgSA4AIJ4BQCBPBxsb29wIHJlc3BvbnNlIGltY29tcGxldGU_AIN2BQCCVRlSRUFEAIJlByAgICAAglcZADoLAIEGFiAgICAAgl0bZW5kAINZGwB7CwCDSycAgg4NVFVSTiB0cnVlAINeHACEZwoAhTEMZXhpdACFDAYAhSELAIcBDgBaBgCESA0AiDMMAIZbHjogYnVmZmVyIFVTRVIAhkITV1JJVEUAh30IAIhyCwASCACHfQoAiQwOAIkdCwCGTwwASQUABhYAg2UFKCoxKQAvDQCBSiEAigMOAIhDInNlbmQAgWcGAIhTCQCFDggAh3VoAIFgBgCISBpXUk9URQCDEIN5UEFTUwCFICgAJwUAhSImAJAbCgCIHRMAkHwMAJBEEC4uLgo&s=modern-blue
much improved version, schowing the actual activation lifetime
best consumed on a huge screen side-by-side with the code :)
Graham
11-Jan-2010
[1019]
I wonder if it might be better to call the subport the pop port instead 
?
Andreas
11-Jan-2010
[1020x2]
it's the tcp port
port
 is the pop port
Graham
11-Jan-2010
[1022]
I know .. but that's where all the action is occurring.
Andreas
11-Jan-2010
[1023x2]
if anything, i'd rather call the "port" pop3 port and the "subport" 
tcp port
where the action occurs pertains to how the code is structured
Graham
11-Jan-2010
[1025]
ok, tcp port is good too .. I've always found the use of subport 
in r2 confusing ..
Andreas
11-Jan-2010
[1026x12]
true
i should've broken with that habit :)
so, to stop with this pollution of huge urls: http://bit.ly/7cflf4
and the flow up to "buffer USER" will be pretty much the same for 
each protocol that sends and initial welcome message
where the server sends an initial welcome message, that is
if the client is expected to send a request before receiving anything 
from the server, things will look different
the other design issue is wether the protocol should be sync or async 
for the user (i.e. the "script")
sync behaviour is depicted in this picture. basically each READ will 
WAIT on the tcp port until the response has fully arrived
if one would like to expose an async scheme, instead of the first 
WAIT, control will return to the script
ah, not really!
you'd return TRUE from the CONNECT event handler, and returns through 
all back to the script
i think the lookup should most of the time wrapped silently, and 
not asyncly exposed to a scheme's user, even if the scheme is supposed 
to be async
Graham
11-Jan-2010
[1038]
your pop scheme is sync ..
Andreas
11-Jan-2010
[1039x4]
yep
but i'd love to be provide an async mode as well
problem is: we can't truly do that yet
but that would be _my_ answer to your recent read/as concerns
Graham
11-Jan-2010
[1043]
I'm forcing sync by waiting until all the data has arrived
Andreas
11-Jan-2010
[1044]
so do i