World: r3wp
[!REBOL3 Extensions] REBOL 3 Extensions discussions
older newer | first last |
Andreas 29-Jan-2010 [641x2] | the nice thing about my patch: it would enable linux extensions _right now_ |
letting people play with them | |
BrianH 29-Jan-2010 [643] | We aren't just supporting 3 platforms. |
Andreas 29-Jan-2010 [644x2] | currently you the hostkit supports only 2 |
i like small, incremental changes | |
BrianH 29-Jan-2010 [646] | No, it wouldn't because LOAD-EXTENSION doesn't work on Linux yet. |
Andreas 29-Jan-2010 [647] | load extension works great on linux |
BrianH 29-Jan-2010 [648] | Check if it works with .rx named files, I'm curious. |
Andreas 29-Jan-2010 [649x4] | $ file ext/sample.so ext/sample.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped |
that's the sample extension from the R3 extension zip released some months back | |
$ ./r3 -sq System object protected >> append system/options/file-types [%.so extension] == [%.bmp bmp %.gif gif %.png png %.jpg %.jpeg jpeg %.dll extension %.so extension] >> import %ext/sample.so >> add-mul 10 20 30 == 900 | |
and that's a hostkit compiled with my posix loading patch | |
BrianH 29-Jan-2010 [653] | And have you tested by adding .so to system/options/file-types at runtime and then using IMPORT on an extension? |
Andreas 29-Jan-2010 [654] | ... |
BrianH 29-Jan-2010 [655] | Never mind, it was an AltME delay. |
Andreas 29-Jan-2010 [656x4] | thought so :) |
>> append system/options/file-types [%.rx extension] == [%.bmp bmp %.gif gif %.png png %.jpg %.jpeg jpeg %.dll extension %.rx extension] >> import %ext/sample.rx >> add-mul 10 20 30 == 900 | |
works with whatever extension you like | |
don't get me wrong, i really like the .rx idea | |
BrianH 29-Jan-2010 [660] | Cool, like Windows. I can make a mezzanine patch for the platform file-types that would work for all supported platforms if you like. |
Andreas 29-Jan-2010 [661x4] | but this minimal change of adding two lines would get things started for now |
yes, please | |
but wouldn't that exactly be what i did in rebdev#6258? | |
heck, osx is not even supported right now :) | |
BrianH 29-Jan-2010 [665] | No, it wouldn't be the same. Don't take it personally if I deny that submission - it's what started this conversation :) |
Andreas 29-Jan-2010 [666x2] | I don't |
So you'd get rid of the append in mezz-init.r completely, and add the extension filetype some place else? | |
BrianH 29-Jan-2010 [668x2] | I'd put it there (I think), but it would be different code. |
The mezzanine parts of the extension/module model are where I am the most familiar with the code :) | |
Andreas 29-Jan-2010 [670x2] | great |
just a quick reminder: on osx .dylib and .so are both ok | |
BrianH 29-Jan-2010 [672x2] | OK. They're just for convenience though, since every almost dylib that is loadable as an extension will have been written specificly for that purpose and probably can't be used otherwise, so sticking to the .rx filename makes sense. |
I'm hoping to prove that wrong with some extensions though. | |
Andreas 29-Jan-2010 [674x3] | It might be nice to use .rx as "virtual" extension only |
then i could have a single script, say foo.r shipped with bar.dll bar.so and bar.dynlib, use import %bar.rx in foo.r and it will select the proper platform specific library | |
this will break down as soon as we have e.g. 32b and 64b builds for the same platform | |
BrianH 29-Jan-2010 [677x7] | If LOAD-EXTENSION can be changed to look for .rx first then for .dll (or whatever) then this can be seamless. Otherwise it will require ugly changes to LOAD. It might be better to make a platform wrapper module for your app. |
Fortunately the module system is based around importing into the system, rather than importing into modules directly. This means that you can have all of your platform-specific requirements handled by one module or script and then have the rest just reference by module name, not file name. | |
There won't be 32 and 64 bit builds on the same platform, in theory; 32bit builds get one platform number, 64bit builds another. | |
We'll see if they mess that up though. | |
Andreas, what do you think of this code instead? append system/options/file-types [%.rx extension] switch fourth system/version [ 3 [append system/options/file-types [%.dll extension]] 2 [append system/options/file-types [%.dylib extension %.so extension]] 4 7 [append system/options/file-types [%.so extension]] ] | |
Whoops, that's a little too verbose. | |
switch/default fourth system/version [ 3 [append system/options/file-types [%.rx %.dll extension]] 2 [append system/options/file-types [%.rx %.dylib %.so extension]] 4 7 [append system/options/file-types [%.rx %.so extension]] ] [append system/options/file-types [%.rx extension]] | |
Gregg 29-Jan-2010 [684] | append system/options/file-types switch/default fourth system/version [ 3 [[%.rx %.dll extension]] 2 [[%.rx %.dylib %.so extension]] 4 7 [[%.rx %.so extension]] ] [[%.rx extension]] ? |
BrianH 29-Jan-2010 [685] | Better. I wrote the original before I wrote the default. |
Pekr 30-Jan-2010 [686] | I like .rx name for an extensions. I also seem to understand, what is your motive for it. But - will not it confuse users? I mean - if I try to run R3 under Linux, I might be tempted to copy extensions to linux, becase I expect .r script to be cross-platform, so some ppl might expect .rx is just cross-platform too. But that surely is not the case - those are platform specific, no? |
Robert 30-Jan-2010 [687] | I have some extension macros (simple stuff) how to submit to Carl? |
Steeve 30-Jan-2010 [688] | and why not submitting it to our eyes too ? |
Pekr 30-Jan-2010 [689] | R3 Chat ... |
Robert 30-Jan-2010 [690] | Ok, because posting source-code within AltME is really no fun. |
older newer | first last |