r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3 Extensions] REBOL 3 Extensions discussions

Andreas
29-Jan-2010
[615x2]
Yeah, but who cares?
They even might, if someone wrote a dylib loader for windows
BrianH
29-Jan-2010
[617]
We do. Simplifying the code would be to just support .rx and have 
the LOAD-EXTENSION native in the host code do the translation.
Andreas
29-Jan-2010
[618x5]
Go for it, then
I'd add some nice magic for .rx
And keep .dll .so and .dylib as they are now
If some use desperately wants to use .dylibs on Linux, I don't care
some user*
BrianH
29-Jan-2010
[623]
I want to keep .dll, .so and .dylib files as they are now. That is 
what we write .rx extensions to wrap.
Andreas
29-Jan-2010
[624]
But a .rx is nothing but a .so
BrianH
29-Jan-2010
[625]
No, it's a .so with a really specific set of exported functions.
Andreas
29-Jan-2010
[626x3]
Yes, the definition of a dynamic library
If you want a single platform extension: name it foo.so, use it with 
import %foo.so; if you want a multiplatform extension: create libraries 
foo.so, foo.dll, foo.dylib, import with %foo.rx
Sounds reasonable and simple to me
BrianH
29-Jan-2010
[629]
It's the same as .ocx or .exe files on Windows - what matters is 
the specific functions they export. All .rx files export the same 
functions.
Andreas
29-Jan-2010
[630x2]
That's fine, but they will still be platform specific binaries
But whatever
BrianH
29-Jan-2010
[632]
So what? There's no reason why dynamic libraries should be called 
.dll on Windows and .so on Linux, none at all.
Andreas
29-Jan-2010
[633x3]
Go for .rx, fine with me
If you add a capability to ship multiple libraries easily, that would 
be great as well
I.e. that i can ship linux, windows and osx extensions along with 
a simple script, and use the proper extension on the proper platform
BrianH
29-Jan-2010
[636]
Universal Binaries or some such?
Andreas
29-Jan-2010
[637x2]
nope, just simple namespacing issues
if all three extensions ought to be called foo.rx, shipping them 
side by side will be tough :)
BrianH
29-Jan-2010
[639]
There are many platforms that use incompatible .so or .dll files, 
so a packaging/installer format would be good.
Andreas
29-Jan-2010
[640x3]
yes
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 :)