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

World: r3wp

[!REBOL3 Extensions] REBOL 3 Extensions discussions

Anton
16-Dec-2010
[1934]
(#ifndef, yes)
Kaj
17-Dec-2010
[1935]
Is it safe to have a command without arguments return a value? Is 
there a return slot reserved anyway in the arguments frame?
Maxim
17-Dec-2010
[1936]
the return slot is the first argument in the frame.  AFAIK the argument 
frame is always the same size no matter how many arguments to actually 
supply (0 to 8)
Kaj
17-Dec-2010
[1937]
Ah, OK, safe then. That makes that combination a lot easier
Oldes
18-Dec-2010
[1938x2]
Is there any example how to deal with objects? Especially how to 
create objects on C side.
I've found it.. I must use RL_SET_FIELD macro... but it requires 
to define all posible words.
Andreas
21-Dec-2010
[1940x3]
After importing an extension, I consistently get a REBOL error if 
I allocate any non-trivial amount of memory afterwards:

>> import %./sample.so
>> array 100'000 
== REBOL System Error:
REBOL System Error #1207: assertion failed
Happens for my own extensions on both Win32 A110 and Linux A110. 
Also just tried it with Kaj's cURL extension, same problem.
Anyone else seeing this?
Kaj
21-Dec-2010
[1943]
== REBOL System Error:
REBOL System Error #1207: assertion failed

Program terminated abnormally.
This should never happen.
Please contact www.REBOL.com with details.
Andreas
21-Dec-2010
[1944]
Linux A110?
Kaj
21-Dec-2010
[1945]
Yes
Andreas
21-Dec-2010
[1946]
Thanks, I'll report it as bug.
Kaj
21-Dec-2010
[1947]
Looks noteworthy :-)
Kaj
22-Dec-2010
[1948]
When I go beyond 14 commands, importing segfaults. I thought people 
had made extensions with far more commands?
Oldes
22-Dec-2010
[1949x4]
I don't see none of these these problems with my FMOD extension.
I'm on XP only.
Maybe you do something wrong in your extension.
Just tested your extension attached to CC (sample.c) and I cannot 
repro the assertion as well.
Andreas
22-Dec-2010
[1953x3]
Thanks for testing, Oldes.
Would you mind mailing me your resulting .dll?
And what compiler did you use? GCC or MSVC?
Oldes
22-Dec-2010
[1956]
gcc (GCC) 3.4.5 (mingw-vista special r3)
Andreas
22-Dec-2010
[1957]
Would you mind trying the following:
http://bolka.at/2010/rebol3/tmp/sample.dll
Oldes
22-Dec-2010
[1958]
works
Andreas
22-Dec-2010
[1959]
Ok, so works on XP, fails on Linux and Wine. Will try Win7 later 
on.
Kaj
22-Dec-2010
[1960]
I've tested extensively, and no matter what I do, it segfaults right 
away on init when there are more than 14 commands in the init block. 
That's indeed on Linux
Andreas
22-Dec-2010
[1961x2]
Hm, a trivial extension exporting 20 commands seems to work fine 
for me:
https://gist.github.com/e9192ae7083a2fbf5d78
Both for A110 Linux and A110 Win32+Wine.
Kaj
22-Dec-2010
[1963x3]
Interesting, but that's a very empty example. Can you try with command 
parameters?
I'm exporting them wrapped in a context. That may make a difference
When I split the cURL binding in two contexts, it works, so it seems 
to be some object limit
Andreas
22-Dec-2010
[1966x3]
Very peculiar.
When I export a context wrapping the above 20 cmds, it still works.
export cmds: context [cmd01: command [] cmd02: ...]
Kaj
22-Dec-2010
[1969x2]
Then please give them some more work to do
It also bombs out for me when the fifteenth context slot is such 
an empty command
Andreas
22-Dec-2010
[1971x2]
Makes no difference even if I add 3 parameters to each of them.
Let me try with 10 parameters each.
Kaj
22-Dec-2010
[1973]
It sure is a strange thing :-)
Andreas
22-Dec-2010
[1974x3]
Most peculiar, yes.
Nope, 20 cmds with 10 params each works as well.
Maybe something to do with the length of the init block?
Kaj
22-Dec-2010
[1977x2]
OK, let me upload the cURL binding source for you
I tried shortening the init block, but it didn't help
Kaj
24-Dec-2010
[1979]
An error return code is defined for extensions, but it's not used 
anywhere in the host kit or documentation, so we don't know how to 
use it
Kaj
25-Dec-2010
[1980]
There's also a SET_EXT_ERROR macro, but also undocumented, and it 
only allows setting an unknown number
Oldes
26-Dec-2010
[1981]
I'm experimenting with image! as a command agrument and found this 
strange behaviour:
I have:
	img-echo: command [img [image!] ]
In RX_Call I use just:   return RXR_VALUE;

And then when I call the img-echo I get image, but with index at 
the tail so it looks like:
>> i: img-echo img
== make image! [50x20 #{
}]
>> index? i
== 1001

Is this normal? How I can set the index on the C side?
Oldes
27-Dec-2010
[1982]
I've found solution for my answer related to warning: ../R3A110/src/include/reb-config.h:107: 
warning: ignoring #pragma warning  

To remove this warning, use this compiler option:  -Wno-unknown-pragmas
Kaj
27-Dec-2010
[1983]
Image index at tail sounds like a bug