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

World: r3wp

[!REBOL3 Extensions] REBOL 3 Extensions discussions

Graham
19-Jul-2010
[1084]
The method seems sound, but I think there could be a problem with 
the quantity of tests generated. Currently, with only five (of 56) 
datatypes tested, there are more than 22'000 test vectors, and they 
build exponentially. We may end up with more than a million test 
vectors for the final suite.
Gregg
19-Jul-2010
[1085]
Yup. But that's OK if it's all automated.
Maxim
19-Jul-2010
[1086x2]
yes, let it run for two days... do we really care?
it might even provide other insight on running such a heavy script
Gregg
19-Jul-2010
[1088]
Or give Carl the impetus to build a grid/ipc/distribution infrastructure.
Robert
20-Jul-2010
[1089]
Graham, SQLite uses over 2 Billion tests before doing a release.
Graham
20-Jul-2010
[1090]
for i 1 1000'000'000 1 [  insert db {select * from test where id 
= (?)} i ]
BrianH
20-Jul-2010
[1091]
The point is that 22'000 test vectors isn't much, and can be generated 
for the most part. We don't have to write them by hand.
Graham
20-Jul-2010
[1092]
Guys .. I didn't write that .. it's a quote from Carls blog
BrianH
20-Jul-2010
[1093]
OK, cool. So the point goes to Carl :)
Robert
20-Jul-2010
[1094x2]
Yep :-)
And, it's all about test-coverage, not about high number of tests 
triggering always the same code.
Graham
20-Jul-2010
[1096x3]
write %qt2.dll read http://www.compkarori.com/r3extend/qt2.dll
secure [ extension allow]
test


and this brings up a Qt window with a push button .. says "hello 
world"
Better than nothing :)
Looks like Nokia sponsored the development of PySide, the Python 
bindings for Qt4 .. some 300 odd functions etc.  Wonder if they might 
sponsor a R3 binding!
BrianH
20-Jul-2010
[1099]
There is a Python port to at least two of Nokia's cellphone operating 
systems.
Maxim
20-Jul-2010
[1100x2]
** R3 EXTENSIONS MILESTONE **
I have successfully mechanically generated  a complete r3 extension 
and test script, by simply parsing a C language .h file.
  

if you have a makefile ready for your extension, it will even compile 
the extension for you and launch the test script in a single pass 
of the engine.

this is based on the latest r3 A101 build.
TomBon
20-Jul-2010
[1102]
congrats maxim, THIS is a real milestone.
Gregg
20-Jul-2010
[1103]
Cool Max!
TomBon
20-Jul-2010
[1104]
open the door to prebuilt (logic condensensed) C libs will enhance 
rebol straight to the commercial 
software development.
Maxim
20-Jul-2010
[1105]
capacity of the parser will be the main focus for on-going development.


I already have the complete C language parse rules from an older 
project, so I'll be slowing importing the rules into this engine.
Gregg
20-Jul-2010
[1106]
Some good SWIG-like tools will helpe people a lot.
Maxim
20-Jul-2010
[1107]
using comments in the C source, you can give instructions to the 
engine on alternate bindings and rebol test code you wish to compile.


the advantage is that these comments are side-by-side with the original 
C source file, so its easy to maintain.
TomBon
20-Jul-2010
[1108x2]
I guess there will be a lot of more work and testing ;-)
what current limitations you have and in what timeframe you could 
solve them?
Maxim
20-Jul-2010
[1110x4]
the current code is a single ~16kb file,  so its not too large right 
now.


obviously as more types are added, this will grow, but since I'm 
using a "rebol-formatted intermediate source tree", its easy to improve.


the parser just generates a version of the C source in this "RFIST" 
format, and the generator only has to convert this into something 
else.


in time, we might even build different emitters for the "RFIST" data.
limitiations, well, just the scope of supported datatypes, both in 
C and in REBOL commands.
others than that its working very well.
one fun thing is that we do not have to use the C source types as 
the interfaces for the commands.

my next test is to build a generic object to parameter map.

so, if you have a C func declared as:
int myFunc (int a, int b)

you'll be able to call it from rebol using:

obj: context [a: 1 b: 2]
myFunc obj
TomBon
20-Jul-2010
[1114]
yes please! :))
Maxim
20-Jul-2010
[1115]
its funny how the extension API feels like writting assembly  :-D
Graham
20-Jul-2010
[1116]
@Carl .. you called my suggestion insane, and now you post this blog 
http://www.rebol.net/r3blogs/0327.htmlsaying that you will do it 
anyway!
Maxim
20-Jul-2010
[1117x2]
he's being pressured by everyone   :-)
he feels the love   ;-D
Graham
20-Jul-2010
[1119]
Ok, so join the asylum ...
Maxim
20-Jul-2010
[1120]
and my tests (with a fix or two)  and successfull builds probably 
helped him be a bit more confident.
Graham
20-Jul-2010
[1121x7]
daily or perhaps less frequently releases are the way to go
this is a genetic approach :)
And my other suggestion about releasing a linux version also still 
stands
The linux users tend to be more experienced and yet they are being 
excluded in this process
The rebol 2.7.7 View problems on linux were reported way back and 
it' s only now that they are being addressed ...
We should parallelize testing and development.
As for flooding curecode with tickets ... I've already offered my 
Jira instance to be used until the hostkit has been stabilized
Maxim
20-Jul-2010
[1128]
my extension building engine will probably be released tomorrow. 
  its currently building extensions which are 100% functional.


now I will add more types and implement the command interface directive 
so that we can mutilate how C code is bound on the REBOL side.
Graham
20-Jul-2010
[1129]
So, Robert .. where is the A101 build?
Maxim
20-Jul-2010
[1130x2]
Carl has to merge some of my fixes first.
cause right now you can't compile extensions as DLLs... a small side-effect 
of the implementation of pair floats.... just related to linking.
Graham
20-Jul-2010
[1132]
Eh??  Of course you can compile extensions as DLLs... that's done 
outside of Rebol. But A101 won't allow you to use them any more?
Maxim
20-Jul-2010
[1133]
no the hostkit release broke this capability when you compile the 
DLL, there is a problem in the order of #include... but its fixed, 
will be part of release... which Carl has confirmed is happening 
very soon (probably today)