World: r3wp
[!REBOL3 Extensions] REBOL 3 Extensions discussions
older newer | first last |
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 [1354x4] | 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. |
It looks like the Win32 binary is from 2006 and the main daemon is ~200K. | |
http://www.spread.org/download.html | |
License note: This software is licensed under the Spread Open Source License. This license is SIMILAR BUT NOT IDENTICAL to the BSD license. Specifically, the license includes the requirement that all advertising materials (including web pages) mentioning software that uses Spread display a specific acknowledgement. | |
BrianH 30-Jul-2010 [1358] | So it's like the old BSD with the advertising clause, the one that people complained about. Nifty. |
Gregg 30-Jul-2010 [1359] | Yeah, but if that's the biggest complaint we have... ;-) |
BrianH 30-Jul-2010 [1360] | That's not insignificant, as the advertising clause of the old BSD made it legally incompatible with a lot of other licenses. Particularly (L)GPL, but we as a community need to be avoiding (L)GPL code anyways for a lot of reasons. We'll have to be careful. |
Gregg 30-Jul-2010 [1361x2] | If it's done as an extension it shouldn't be an issue for RT, correct? |
If it's rolled into a host, then you need to care. Having it built in would be very cool so, yeah, you're right that we need to care. | |
BrianH 30-Jul-2010 [1363x2] | One: yes, it would still be a problem even as an external extension. Two: we would have to do it as a host-embedded extension if we want to use this for the core intertask messaging solution, and that is the same as linking the code in. |
Remember that advertising clauses are transitive, so all of our apps that we build with R3 would need to advertise Spread too. Even apps that we build for third-parties. | |
Gregg 30-Jul-2010 [1365] | Yes, if it's built in, we're in sync. But if it's an external extension, doesn't it become a problem for us as individuals rather than RT? |
BrianH 30-Jul-2010 [1366x3] | Nope, because it becomes a problem for any person who uses that extension in their product. |
It doesn't matter anyways, because we are discussing the standard intertask messaging mechanism for R3. That can't be external, it would have to run when external extensions are prohibited by security restrictions. | |
This is why BSD got rid of the advertising clause in the first place. | |
older newer | first last |