World: r3wp
[!REBOL3 Extensions] REBOL 3 Extensions discussions
older newer | first last |
Pekr 29-Jan-2010 [565x2] | ... and if it will a bit more powerfull, than R2 version, even better (referring to Ladislav's proposed enhancements) |
The thing is, if we can come up with corrent architecture. R3 plans on handle! type, as well as custom datatypes (not sure it is needed), but surely is R3 not planning to use routine! and struct! ones (IMO) | |
Janko 29-Jan-2010 [567] | I am without money currently so I donate 50 USD but happily for same thing that Pekr |
Pekr 29-Jan-2010 [568x2] | license - BSD or MIT - simply for devs being able to use it freely ... |
OK, so we have got 150 USD ... who's next? :-) | |
TomBon 29-Jan-2010 [570x2] | me, I am in with 100 usd |
and another 100 usd if nested structs and clean pointer handling are included | |
Pekr 29-Jan-2010 [572] | ok, thats 250 + 100 USD, upon above defined conditions :-) |
Will 29-Jan-2010 [573] | I'm in with 100USD for the os x version of /library if that is usefull for porting Che |
Andreas 29-Jan-2010 [574] | that will be difficult, as we don't even have an osx hostkit right now :) |
BrianH 29-Jan-2010 [575x2] | It's not difficult to start; that's just a matter of doing the research on dynamic library loading and mocking up some code. And once extensions (not the host kit) are available on OS X, then the code can be tweaked and compiled. |
You can start by going through R3 chat and helping Carl with his difficulties with porting the host kit and extensions to OS X. | |
Andreas 29-Jan-2010 [577x2] | That's exactly what I did |
See rebdev message #6332, from 39 days ago | |
BrianH 29-Jan-2010 [579] | Cool. |
Andreas 29-Jan-2010 [580x3] | The extensions are not the problem, they will work on OSX just as they work on Linux. |
And in rebdev message #6257 I explain how to get extensions working on Linux. | |
(45 days ago) | |
BrianH 29-Jan-2010 [583] | Good. So once we resume work on such things (we're working on bug fixes and tickets now) the information will be there. Thanks. |
Andreas 29-Jan-2010 [584] | Besides that I have 10 more patches lined up, which I held back to not overwhelm anybody. |
BrianH 29-Jan-2010 [585x2] | Um, Carl is *right now* working on integrating community patches into a new host kit. Don't hold back. |
Community = mostly Maxim, but you could tip the balance if you post your patches. | |
Andreas 29-Jan-2010 [587] | As I said, I posted two already, did not get any feedback so far. |
BrianH 29-Jan-2010 [588] | Because we have been working on other things, mostly R2 and the web site (and R3 mezzanines in my case). |
Andreas 29-Jan-2010 [589] | Mostly a matter of process, though. No idea if Carl is fine with dumping patches onto R3 chat. |
BrianH 29-Jan-2010 [590x2] | He is OK with that. |
If they are mezzanine fixes, you don't have to wait for Carl. You can submit them directly, or post them for comment there or here if they apply to functions that someone else is in charge of (like LOAD or the module system). | |
Andreas 29-Jan-2010 [592] | The only mezz fix I had for now, is in rebdev #6258 |
BrianH 29-Jan-2010 [593] | I saw that one, but it doesn't seem to be the right approach. Two reasons: - .so and .dynlib aren't dynamicly linked library formats on Windows, .dll isn't on Linux, etc. - It kind of defeats the purpose of extensions: making all of that platform-specific stuff go away. Don't get me wrong, the current behavior also has the second problem. Extensions are imported like modules, and so the code that is asking for them has to specify the filename to load them. However, *that* code is supposed to be cross-platform, so putting a platform-specific filename in their Needs list is inappropriate. What do you think of using a generic filename extension like .rx for extensions, then having LOAD translate to the native filename? Or on platforms that don't require a specific filename extension for their dynamic library loader (like Windows), you could use the .rx extension directly. |
Andreas 29-Jan-2010 [594x4] | Sounds good |
I'd keep on using .dll on windows, though | |
And I'd also keep the platform specific extensions in system/options/file-types | |
Why keep the extensions stored as .dll?: I'd prefer not hiding the fact that a rebol extension is really a proper dynamic library | |
BrianH 29-Jan-2010 [598] | Windows is the one that needs to use the .rx extension the most, and the one that we definitely can use it. And system/options/file-types has to have the extension we are trying to LOAD, not what it might be translated to. |
Andreas 29-Jan-2010 [599] | Why does Windows need .rx the most? |
BrianH 29-Jan-2010 [600] | It's not hiding. Most of the executable file types on Windows are really DLLs, including .dll, .exe, .ocx, .vbx, ... |
Andreas 29-Jan-2010 [601] | Is there any harm in allowing .rx alongside with .dll .so and .dylib? |
BrianH 29-Jan-2010 [602] | We need it on Windows so we can make a .rx wrapper for a .dll third-party library. |
Andreas 29-Jan-2010 [603] | With both .rx and .dll having the same name? OK. |
BrianH 29-Jan-2010 [604] | The harm comes from having .dll, .so or .dylib in the Needs lists of what would be otherwise portable REBOL modules and scripts. |
Andreas 29-Jan-2010 [605x2] | Would only be portable, if there are ported versions of the extension they are needing |
So if you only have a .so version of your extension, using Needs: %foo.so has no harm done | |
BrianH 29-Jan-2010 [607] | It's better to not have .so in there at all. Part of the design strategy of the R3 language is to at least pretend that the language is portable, and keep all of the non-portable stuff wrapped in extensions or hidden in the host code. |
Andreas 29-Jan-2010 [608x2] | But realistically there will be loads of purpose built non-portable extensions |
And as allowing them to be used with their native extension does no harm as far as I can tell, I'd enable that usage alongside the .rx | |
BrianH 29-Jan-2010 [610] | Doesn't negate my argument. Having them named .rx will mark them as extensions, which have a specific calling convention that must be supported. Nonetheless, if you do decide to also allow the default platform dynamic library naming convention, only allow the name supported by the current platform. So no .dll on Linux, no .so on OS X, no .dylib on Windows. |
Andreas 29-Jan-2010 [611x3] | Sounds like needlessly complicating the code |
.so is correct on osx | |
simply marking rx/dll/so/dylib as possible extensions for extensions sounds perfectly reasonable | |
BrianH 29-Jan-2010 [614] | Not needlessly - .dylib files don't work on Windows. |
older newer | first last |