World: r3wp
[!REBOL3 Extensions] REBOL 3 Extensions discussions
older newer | first last |
Maxim 23-Jul-2010 [1305] | the above show the first sings of its power :-) |
Robert 23-Jul-2010 [1306] | Max, I can't see the benefit yet. What I write in the C header I could write directly on the Rebol side. |
Maxim 23-Jul-2010 [1307] | well, the fact that you don't have to write the command extension code itself in order to implement those 5 different interfaces is already a benefit. |
Robert 23-Jul-2010 [1308] | But those 5 lines of Rebol are written in 5 minutes. |
Gregg 23-Jul-2010 [1309] | Adrian, I like the tuplespace model for its simplicity as well. |
Anton 23-Jul-2010 [1310] | Maxim, typo: litteral -> literal |
Maxim 23-Jul-2010 [1311] | oh yes. |
BrianH 23-Jul-2010 [1312] | Look here: http://www.rebol.net/wiki/External_Callbacks |
Maxim 23-Jul-2010 [1313] | thanks for that |
BrianH 23-Jul-2010 [1314] | It's a discussion page, so it's not in any way complete yet. |
Maxim 23-Jul-2010 [1315] | I know... I meant thanks for setting it up. |
BrianH 23-Jul-2010 [1316] | Carl did :) |
Maxim 23-Jul-2010 [1317] | I just added GC notes.. |
Gregg 23-Jul-2010 [1318] | Graham, on IPC, I think Carl has to be involved in the initial spec. I've done point-to-point systems, using TCP ports, but that's not a general solution. I've done a tuplespace over Rugby, but it required polling. I wanted to revisit Uniserve to replace Rugby in that, but it fell off my radar. Ultimately, I think we need a central process--the tuplespace--that apps communicate through. To be general, scalable, and lightweight while allowing us to build something like GigaSpaces on top of it takes more net guru skills and design effort than I have mustered. |
BrianH 23-Jul-2010 [1319] | This design-with-discussion model we've been doing lately has worked pretty well for modules. Perhaps it can work for callbacks and IPC as well. All you need is a lead designer (so it isn't design-by-committee) and some quality feedback. |
Maxim 23-Jul-2010 [1320] | hehe ... I just realized that Carl and I are editing the page simultaneously... |
BrianH 23-Jul-2010 [1321] | Better edit different sections. |
Maxim 23-Jul-2010 [1322] | I just added quick notes at the end. Carl is flusing out the callback modes... |
BrianH 23-Jul-2010 [1323] | Oh, your GC thing should consider concurrency as well. GC won't necessarily be the only thing going on. |
Pekr 23-Jul-2010 [1324] | isn't Carl an author of AmigaOS, a message passing based OS? Aren't IPC techniques well known and defined concepts nowadays? Maybe we should not come-up with something completly new, just choose what fits our model. E.g. we have got async devices ... what about having IPC/messaging device? |
BrianH 23-Jul-2010 [1325x2] | Obviously, we would be best served by Carl as the lead designer on IPC and callbacks :) |
If we do IPC through the port model (likely) then there will be a device as part of that. | |
Pekr 23-Jul-2010 [1327] | cool, design choosen then :-) |
Maxim 23-Jul-2010 [1328] | I think it was always intended that way. |
Pekr 23-Jul-2010 [1329] | is choosing callback and IPC method close to get tasking implemented too? :-) That would be cool - the core would feel complete that way finally ... I mean - for beta status ... |
Maxim 23-Jul-2010 [1330] | callback not directly, but threading has some design considerations wrt callbacks which are probably all bubbling in Carl's mind. Inter thread and inter application IPC will most likely be built using the same design. |
Graham 24-Jul-2010 [1331x4] | Maybe, just maybe, it might be worthwhile adopting an IPC model that is used by others .. so that other languages can connect to REbol? |
See distributed IPC http://www.linuxjournal.com/article/2417 | |
ok, that one uses System V signals and Windows doesn't expose signals ( i think ) | |
The other ipc.lib I mentioned above runs on multiple platforms | |
Gregg 25-Jul-2010 [1335x2] | I think interop is important, but I don't know if there's a clear cross-platform choice. I looked at http://www.spread.org/some time back, but it doesn't support Windows and is probably best accessed as an extension. I can pull notes together for discussion, but I don't want to spend time on it without knowing that it has some chance of it being helpful and making a difference. |
And the very first IPC mechanism I would focus on would be STDIO. | |
Robert 26-Jul-2010 [1337] | IMO IPC shouldn't be a default thing as there are zillions of ways how to do it. |
Gregg 26-Jul-2010 [1338x2] | There are zillions of ways, and having choices is good, but if we have a standard it will be much easier to write tools that can coordinate with each other. If we have rebrowser (or, even better, a generic plug-in based app framwork that rebrowser is built on :-), it may be something that gets built anyway. |
Out of the zillions of options, and with Carl's background and knowledge, what is the best option for REBOL (or maybe the top 3)? If Carl has ideas/opinions/designs already, could he write up a paragraph that outlines how *he* thinks it should be done? | |
Robert 26-Jul-2010 [1340] | The thing is, that Rebol needs to connect to the rest of the world. Rebol-2-Rebol is nice but IMO not the focus at the moment. RebService can be picked up again by the community. |
Maxim 26-Jul-2010 [1341] | Each app choses its own IPC when the OS doesn't have one standard. No single IPC method will be usefull. for REBOL itself, I do think that we should provide a construct which will be similar or exactly the same as what will be build for thread messaging. |
Gregg 26-Jul-2010 [1342] | Robert, as I said, the first IPC mechanism should be STDIO. :-) |
Pavel 29-Jul-2010 [1343] | Gregg windows is supported by Spread by default (more exactly Win32) |
Gregg 29-Jul-2010 [1344] | Good to know Pavel. Thanks. |
Carl 29-Jul-2010 [1345x2] | Gregg... you're suggesting stdio pipes, right? I'm not sure of the quality of their support over all platforms, but perhaps it's possible. Of course, there are no easy alternatives. IOS had IPC, and it was implemented differently for each OS model. I was going to reuse most of that code for R3. But, it does use sockets for posix, but I think they work well. |
BTW, I'm not opposed to using something like Spread... does anyone know its general size (e.g. complexity level?) Also, if we went that direction, wouldn't we also want to look at MQ in general? | |
Pekr 30-Jul-2010 [1347] | I think that we can have those as external alternatives, but I am with Max here - we want the REBOL way ... |
NickA 30-Jul-2010 [1348] | + lots of points for having a code base that's already done and tested! |
BrianH 30-Jul-2010 [1349] | But is it tested for the same kind of work we are trying to do? No points for trying to massage an off-topic codebase into something useful. |
PeterWood 30-Jul-2010 [1350x4] | What is the REBOL way? |
Is something that only provides interoperability between REBOL processes? | |
There would surely be some advantage in be able to send inter-process message to non-REBOL applications? | |
... and to receive them of course. | |
Gregg 30-Jul-2010 [1354] | Carl, by STDIO, I just mean the basics for writing pipe-and-filter apps. e.g. while [data: input] [print data] I just found http://www.rebol.net/cgi-bin/r3blog.r?view=0282so maybe we're close and just need to write up some examples and a doc page explaining limitations on different OSs. Gabriele has some things in his power-mezz package as well (chain, filter, pipe), which are worth keeping in mind. The blurring of lines between in-process and inter-process, and piping is where we need design direction from above. A REBOL way (passing around blocks of dialected data, i.e., messages) vital, but we also need gateways to other mechanisms. The REBOL way is critical because it reduces or eimilates external dependencies and provides a model for gatewys to emulate. |
older newer | first last |