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

World: r3wp

[!REBOL3 Extensions] REBOL 3 Extensions discussions

Carl
17-Jul-2010
[1047x5]
Has some useful new ext funcs:

	void *(*make_block)(u32 size);
	void *(*make_string)(u32 size, int unicode);
	int (*get_string)(REBSER *series, u32 index, void **str);
	u32 (*map_word)(REBYTE *string);
	u32 *(*map_words)(REBSER *series);
	REBYTE *(*word_string)(u32 word);
	u32 (*find_word)(u32 *words, u32 word);
	int (*series_info)(REBSER *series, REBCNT what);
	int (*get_char)(REBSER *series, u32 index);
	u32 (*set_char)(REBSER *series, u32 index, u32 chr);
	int (*get_value)(REBSER *series, u32 index, RXIARG *val);

 int (*set_value)(REBSER *series, u32 index, RXIARG val, int type);
	u32 *(*words_of_object)(REBSER *obj);
	int (*get_field)(REBSER *obj, u32 word, RXIARG *val);
	int (*set_field)(REBSER *obj, u32 word, RXIARG val, int type);
Also, the API is now auto-documented -- within the reb-ext-lib.h 
-- including special tips.
So, this will be A101.
To be released once we have a volunteer to write some tests for it.
(And no, we'll not just dump it to the group, because I don't want 
to flood Curecode due to non-tested status. Best to wait on it.)
Graham
17-Jul-2010
[1052x3]
Carl .. exactly how many posts regarding the hostkit have been made 
to curecode?
I presume curecode has a view filter too
Two ... one in May, and one in April 2010
Robert
18-Jul-2010
[1055x5]
Call to Community to help us get the next host-kit released:
We need a way to test extensions with each release.


Tests need to be able to handle normal extensions as well as embedded 
extensions (because the difference is only a few #ifdef statements.)

There are a few "dimensions" to test the basic mechanisms:

1. some commands (in a named extension module)
2. commands that use and verify all possible argument datatypes
3. commands that return all different datatypes
4. defining and setting words (variables)
5. accessing values in a block

6. accessing values in an object (new feature, but this is one reason 
why we need the test)

I'm sure there are a few other misc items.


We think that the entire tests can be generated with a REBOL script, 
and save a lot of typing. However, that's not a requirement.
I will release our test-framework, which should be used as base or 
as resulting format.
This is a simple to use test environment that can automatically run 
thousands of tests.
And, of course the host-kit that needs to be tested needs to be released. 
IMO we will release a RC to get feedback on the extension part.
Graham
18-Jul-2010
[1060x3]
Don't you release and then test?  Isn't this back to front?
What's the reason that the Linux host-kit has not been released yet?
I'm guessing most people are not on windows but other platforms
Robert
18-Jul-2010
[1063x3]
Really? I think let's first get the Windows version done, than the 
Linux.
Windows is there, so no reason not to use it for testing.
Published the test-framework on www.rm-asset.com
Maxim
19-Jul-2010
[1066]
Carl thanks.
Pekr
19-Jul-2010
[1067]
Wasn't there one RT's test framework in the past too?
Carl
19-Jul-2010
[1068x3]
Pekr, yes... RT uses a simple testing framework.
Graham: no, you don't release then test. That's insanity.
The concept of "just upload it" does not work.  Here's why:


1. Parts of the API may not work at all, because of course, they 
are not tested!


2. Parts may work incorrectly... and therefore are just going to 
confuse most developers, and they'll get frustrated.


3. Because the code is not tested, it floods CureCode with tickets, 
most of which should not even be posted there.


4. Without a testing methodology, there will be no consistent test 
suite over time... just a bunch of hacked together code pieces from 
various developers.
Maxim
19-Jul-2010
[1071]
btw, I have volunteered with robert, but have not gotten reply yet.


I have client work which deals with extensions and have started some 
extension building automation... 

since this testing goes hand in hand with actual work I'm doing so 
I guess Its logical for me to step up and take the task.
Carl
19-Jul-2010
[1072]
Sold! PS: Robert has another project today.
Maxim
19-Jul-2010
[1073]
also posted a private msg to you on R3 re this
Carl
19-Jul-2010
[1074]
Maxim, let me find a direct private channel to you.
Maxim
19-Jul-2010
[1075]
ok.
Carl
19-Jul-2010
[1076x2]
Check R3 Chat. I'll be sending you a few notes.
Check your email.
Maxim
19-Jul-2010
[1078x2]
ok
know what they say....  "carefull what you wish for... you just might 
get it"   :-)

I asked for it  ;-)
Graham
19-Jul-2010
[1080x2]
@Carl ... I don't think the three or so people testing extensions 
are going to flood anything.
And surely the testing argument applies to R3 ... so where is the 
test suite?
Pekr
19-Jul-2010
[1082]
Wasn't testing suite publicly available? http://www.rebol.net/r3blogs/0125.html
Graham
19-Jul-2010
[1083x2]
I don't recall seeing it ... but in April 2008 I wasn't playing with 
R3
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
[1096]
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"