• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r4wp

[!REBOL3] General discussion about REBOL 3

GrahamC
25-May-2013
[2453]
@robert .. I made several pull requests against the R3 docs yesteday, 
see https://github.com/saphirion/documentation/pulls
Robert
25-May-2013
[2454x2]
Yes, thanks. I saw them. I or some of our team will check them and 
integrate them.
I hope to find some time tomorrow to look at them. Otherwise on Monday.
Geomol
25-May-2013
[2456]
pair! can be floating point in R3. Is there a reason, it wasn't made 
a new datatype?
GiuseppeC
25-May-2013
[2457]
Robert, what about If someone ports those docs to REBOL Wiki ?
They would be easier to manage as DOC is not CODE.
GrahamC
25-May-2013
[2458x2]
I'd prefer them to be in the github repo
This way we only allow approved changes to be made
GiuseppeC
25-May-2013
[2460]
Graham, I don't think there could be a war on changes.
On REBOL wiki many hands could work on the documentation.
GrahamC
25-May-2013
[2461x3]
well, you may not recall but there were wholesale changes on the 
rebol.net wiki by a well intended person .. but they all had to be 
reverted
I don't people want a repeat of that experience
but the git docs could be mirrored in an unofficial community wiki 
.. but the official ones would be on the repository
GiuseppeC
25-May-2013
[2464x2]
Graham, I knew about this accident.

The solution we have is to revert the changes and inform the user 
as soon as we acknowledge the problen.
Just a question: do we know what has been lost during the big modification 
of REBOL wiki ? Is there a way to discover this?
Robert
26-May-2013
[2466x2]
For us docs stay on github. From there we integrate back into our 
mainline and make official releases. And from our mainline the docs 
on our web-site are generated.

Everyone is free to use the github as base for a wiki.
Otherwise it's unmanageable. Since there is no single point of R3 
project at the moment, it doesn't make sense to spread information 
on several places, get them out of sync etc. We need one place, where 
people know what they get.
GiuseppeC
26-May-2013
[2468]
Robert, Ladislav has sent to youa document with the changes of R3 
compared to R2. Could you upload it somewhere ?
Andreas
26-May-2013
[2469]
Giuseppe: https://github.com/saphirion/documentation/blob/master/r3/whatsnew.mdp
GiuseppeC
26-May-2013
[2470]
Yes, I have just seen the ANNOUNCE group ! ;-)
Andreas
26-May-2013
[2471x2]
So what are you asking for?
Or does that already answer your request :) ?
GiuseppeC
26-May-2013
[2473]
Andreas, I have read the REBOL3 group and wrote the request. Then 
read the ANNOUCE one and discovered the answer to my request was 
already there !
Endo
27-May-2013
[2474x2]
Which makedoc version should I use to compile those mdp files? I 
used makedoc2.r but the output html file is not correct completely?
makedoc-pro?
GrahamC
27-May-2013
[2476]
yes
MaxV
27-May-2013
[2477]
Can you explai what the follwing function do?
http://rebol.informe.com/forum/rebol-3-f9/what-does-it-t65.html
GrahamC
27-May-2013
[2478]
Invisible
Arnold
27-May-2013
[2479]
http://rebol.informe.com/forum/rebol-3-f9/what-does-it-t65.html
Cyphre
27-May-2013
[2480]
that function just converts a string (rebol script/code) into :C 
encoded string".  Such C-strings are then used usually at R3 boot 
time to execute all the interpreter system or host code etc.
Arie
28-May-2013
[2481]
Hi, i'm at the beginning of a project in which i need access to a 
remote MySQL db. 

I tried Softinnov's MySQL driver, but that seems to be outdated (MySQL 
complains about client protocol).
Does anyone know an up-to-date MySQL driver for Rebol (2 or 3)?
Pekr
28-May-2013
[2482x2]
hmm, maybe R3 plus ODBC extension?
but that's most probably for Windows ...
james_nak
28-May-2013
[2484]
@arie, what version of the MySQL driver are you using?
Maxim
28-May-2013
[2485]
and what version of mysql?
Arie
28-May-2013
[2486]
@james_nak 1.2.1 from 12/07/2008
DocKimbel
28-May-2013
[2487]
Arie, try with http://softinnov.org/tmp/mysql-protocol-41.r
Arie
28-May-2013
[2488x2]
@Maxim 5.5.31 protocol version 10
@DocKimbel i'll try ...
Maxim
28-May-2013
[2490x2]
latest drivers should work with 5.5  IIRC
I'm definitely using v5.5.31 on windows with R2 v2.7.8.  (just checked).


 pretty sure Quarter Master uses Doc's drivers (which is what is setup 
 for mysql right now), though I may be wrong.
Arie
28-May-2013
[2492]
@DocKimbel that works; hurray!

I guess that the documentation on Softinnov's site is still appropriate?
DocKimbel
28-May-2013
[2493]
Yes, the documentation is still up to date.
Arie
28-May-2013
[2494]
Thank you very much :-))
DocKimbel
28-May-2013
[2495]
You're welcome. :)
Geomol
29-May-2013
[2496x5]
Continuing from #Red group. A johnk asked for multi-line source from 
Carl. This is my W_GETS code in World, which has multi-line (blocks 
and long strings). I don't know, if you can use it, as World might 
be different internal:

char prompt_str[]	= "prin system/console/prompt";
char block_str[]	= "prin system/console/block";
char string_str[]	= "prin system/console/string";

#define W_GETS \
	if (W->line_read) { \
		free (W->line_read); \
		W->line_read = NULL; \
	} \
	if (W->top_of_series > W->series_base) { \
		W->stack = W->stack + 1; \
		int trace = W->trace; \
		W->trace = 0; \
		if (*W->top_of_series == BLOCK_BEGIN_T) { \
			tv.newline = 1; \
			do_string (W, block_str); \
			int i; \
			for (i = 0; i < W->top_of_blocks - W->blocks; i++) \
				w_printf ("    "); \
		} else { \
			do_string (W, string_str); \
			w_printf ("    "); \
		} \
		W->trace = trace; \
		W->stack = W->stack - 1; \
	} else { \
		W->top_of_code = W->code - 1; \
		W->top = -1; \
		if (NULL != W->P) \
			printf ("**** W->P != NULL ****\n"); \
		W->stack = W->stack + 1; \
		int trace = W->trace; \
		W->trace = 0; \
		do_string (W, prompt_str); \
		W->trace = trace; \
		W->stack = W->stack - 1; \
	} \
	W->line_read = w_readline (&auto_brackets, &tab_completion); \
	reset_stack (W); \
	if (W->line_read == NULL) throw_error (W, ERRMEM_S); \
	if (W->line_read[0] == KEY_CTRL_D) throw_error (W, QUIT_S); \
	W->save_line_read = W->line_read;
Some exmplanation:


W->top_of_series is a stack holding the different types of series 
being entered in the lexer, defined as:

#define BLOCK_BEGIN_T		58
#define PAREN_BEGIN_T		59
#define LONG_STRING_BEGIN_T	60
#define PATH_BEGIN_T		61
#define GET_PATH_BEGIN_T	62
#define LIT_PATH_BEGIN_T	63
#define BINARY_BEGIN_T		64
#define SET_GET_PATH_T		65


The code about trace is just, if tracing is on or off in World. W->top_of_code 
is a pointer to where the code for the virtual machine in World is 
being created, and W->code is the bottom of that stack in instructions, 
W->top the top. do_string executes a string of World code.
stack *of* instructions
The line
	tv.newline = 1;

sets a newline in the block of code entered. tv is a Tagged Value 
in World, a value with type specification.
The printf ... W->P != NULL is just some debug code, that should 
be removed.
sqlab
29-May-2013
[2501]
as long as you are not inside a string you should also reagard comments
Geomol
29-May-2013
[2502]
I do that in World in the lexer, which parses W->line_read, that 
is being entered into with the code above.

w> b: [ 
[    ; a comment
[    "hello"
[    ]
== [
hello
]
w> ? b
b is a block! of value: [
    "hello"
]
w>