World: r3wp
[Rebol School] Rebol School
older newer | first last |
Graham 5-Jan-2009 [1344] | presumably when one transfer finishes, it could check the others and then render if they were all finished. Do I need to poll? |
Maxim 5-Jan-2009 [1345x2] | the checkup loop was something like you can do it that way too... but you might get into some strange stack issues, cause you end up handling port messages from one port to another within the messaging stack... but I guess a simple test sould suffice to see if its stable or not. in my case, the gui had to stay responsive, since the xfer-contexts had cancel methods, which interrupted any xfer in real-time, and the whole gui had to still handle events smoothly, like scrolling a huge list, while it was adding items to that list, as it parsed the return value from the google search engine :-) |
oops hehe missing some lines there... | |
Graham 5-Jan-2009 [1347] | Does seem straight forward when you explain it like that :) |
Maxim 5-Jan-2009 [1348x3] | you verification could be something like: unless all [ctx1/done? ctx2/done? ...] [ ;all done, do whatever ] |
or using an integer with bit handling, it could be as simple as ; a four bit setup unless done-bits = 7 [ ] | |
and to set individual "done" bits xfer-context: [ set-done: does[ done-bits: done-bits OR power 2 index? find port-list self ] ] :-) | |
Steeve 5-Jan-2009 [1351x2] | usualy, when dealing with bits, it's better to use bitset!, all operations are faster (insertion, modification, search) |
i noted that bitset! are mostly under rated by rebolers | |
Graham 5-Jan-2009 [1353] | I think it's about language compactness. |
Steeve 5-Jan-2009 [1354] | what do you mean ? |
Graham 5-Jan-2009 [1355] | for non-compact languages like Rebol, users form their own compact subsets and tend to use them exclusively. |
Maxim 5-Jan-2009 [1356] | the bit example is just a 20 year old programming habit... hehehe I do find the bit sets a bit awkwards... but I use them profusely in parse... go figure... hehehe |
Graham 5-Jan-2009 [1357] | So, better programmers will use more of the language than others. Which is why it's a good idea to read other people's code :) |
Steeve 5-Jan-2009 [1358x2] | i use them not only in parse |
i use them to build fast indexes for examples | |
Graham 5-Jan-2009 [1360x2] | So, C and Python are considered semi-compact languages, and C++ an anti-compact language. |
I expect languages like REBOL and forth that expand their own dictionaries are not as compact as Python. | |
Maxim 5-Jan-2009 [1362x2] | define compact. |
cause syntactically, rebol has extremely few rules. | |
Graham 5-Jan-2009 [1364] | Compactness is a measure of how easily a design can fit inside one's head. |
Graham 8-Jan-2009 [1365] | Well, I've got it working mostly. sometimes it doesn't kick off an async function ... and seems to need a wait here and there :( |
Maarten 8-Jan-2009 [1366] | REBOL is very compact. Everything is either a word or a value, and even words can be values. |
BrianH 8-Jan-2009 [1367x2] | Graham, by your standards REBOL 3 is more compact than REBOL 2, but maybe that is just to me. |
Once you start adding Draw into it though, I lose the whole. With R2 there is also the broken port model, design flaws and legacy stuff, so I lose the big picture a lot quicker. Python I don't know much about, and C is getting more complex all the time. I guess it depends on the head. | |
Maarten 8-Jan-2009 [1369] | LOL.... the toplogy of the head determines if you can wrap it around a language... |
Graham 10-Jan-2009 [1370] | Yes I would put view as part of REBOL. |
[unknown: 5] 11-Jan-2009 [1371] | Here is a post about the read-io function for newbies. http://www.tretbase.com/forum/viewtopic.php?f=8&t=55&p=128#p128 |
Chris 12-Jan-2009 [1372] | Paul, what are the issues with 'read-io on network ports? |
[unknown: 5] 12-Jan-2009 [1373] | The only think I recall is that Holger use to express (this was obviously years ago) that we shouldn't use read-io for network ports and instead use copy instead. |
sqlab 13-Jan-2009 [1374] | I remember Carl writing, that here is no need anymore to use read-io and write-io after a certain version. But I use it still sometimes to see when data could not be written, because there is no space anymore left on disk |
Maxim 13-Jan-2009 [1375] | IIRC, for a server I did, I had to use read-io, don't rememeber why but it made it simpler in a complex and timed server multi-port management loop (direct tcp socket handling). |
Gabriele 14-Jan-2009 [1376] | the only case where you need read-io and write-io currently is if you are using async-modes. sqlab's may be a good case too. i don't know of others at this point. |
[unknown: 5] 14-Jan-2009 [1377x2] | Why is that Gabriele? |
I'll be implementing an async server soon so any info is good info in that regard. | |
Gabriele 15-Jan-2009 [1379] | because async-modes is a hack in rebol, and only works with read-io and write-io. |
[unknown: 5] 15-Jan-2009 [1380x2] | Ahhh, good to know Gabriele. |
I hope you can expound on that when you get a chance. | |
DanielP 16-Jan-2009 [1382x3] | Hi. |
Let's see this code: toto: [25 10 14] renv: func [b [block!]] [ foreach Val b [ print Val + 1] ] | |
when I call this function, with "renv [ toto] ". I receive an error message because the elements in toto are viewed as word!, not as integer! by Rebol. | |
Graham 16-Jan-2009 [1385] | you've got a block inside a block |
DanielP 16-Jan-2009 [1386] | ? |
Graham 16-Jan-2009 [1387x3] | you can't add 1 to a block |
renv [ toto ] | |
and toto has no value | |
DanielP 16-Jan-2009 [1390] | ok, but when I use the same code without insert it in a function, it work perfectly |
Graham 16-Jan-2009 [1391] | renv reduce [ toto ] => renv [ [ 1 2 3 ]] |
DanielP 16-Jan-2009 [1392] | the code : toto: [25 10 14] foreach Val toto [ print Val + 1] work because elements in toto are considered as integers. |
Graham 16-Jan-2009 [1393] | and so will renv toto |
older newer | first last |