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

World: r4wp

[#Red] Red language group

Gerard
26-Dec-2012
[4968]
And my "remerciements" have to go to every direct and indirect contributor 
too (Carl S, KaJ, Peter, Andreas, Ladislav, BrianH, Nick, Maxim, 
Pekr,  Jerry, many guys of the French and other international communities 
too ... name them - there's too much to name all of them without 
leaving someone behind). My best wishes to you all Gang- you're forming 
an exceptionally tight and prosperous team. Your tools are the best 
I saw for being productive and easyness of use. Let's the Red/Red-System 
combination, to be the future C language replacement as the new World's 
low/high level language mix of choice.  Not to be without mentioning 
the REBOL and its loyal followers too (many of the same Red contributors 
but many more like Robert, Cyphre, Henrik ... and many others which 
have found their way while we were waiting for R3 to become open 
source, like Gabriele, Geomol ... - without which we would never 
be here now.
Kaj
26-Dec-2012
[4969x7]
Thanks :-)
Wow, the interpreter and console add all of 3.5 KB to a Red executable 
;-)
Wait, that's probably the console. The interpreter also seems to 
be in an empty executable
It barely runs under wineconsole 1.2.2 though. The character output 
is borked
Seems to be a WINE limitation. Dunno if it's fixed in newer versions:
fixme:msvcrt:_setmode fd (1) mode (0x00020000) unknown
fixme:msvcrt:_setmode fd (2) mode (0x00020000) unknown
Can it be that the Windows PE backend compiles in a random number 
or otherwise random uninitialised values? Windows builds seem to 
change on every build run without Red having changed. This is inefficient 
for my incremental builds repository and makes it hard to validate 
build correctness
Andreas
26-Dec-2012
[4976]
It barely runs under wineconsole 1.2.2 though. [..] Dunno if it's 
fixed in newer versions


Unusable under wine 1.5.20 as well (same setmode fixmes on startup).
Endo
27-Dec-2012
[4977]
Gregg: "Remember, everyone, I'll match donations made by 31-Dec up 
to USD$200."

I just donated 50 eu (68,93 usd) to Doc for the big progress of Red!
Pekr
27-Dec-2012
[4978x2]
OK, just sent another 50 EUR. I also sent 50 EUR on 15.12.2012, dunno 
since when Gregg's doubling applies (should be OK for NickA though) 
....
Doc - console does not seem to support two consecutive expressions? 
E.g. a: 1 print a, crashes ....
DocKimbel
27-Dec-2012
[4980x4]
The interpreter also seems to be in an empty executable
 Yes, it is part of Red's runtime.
_setmode call is used to properly set the DOS console to UTF-16 (Unicode 
mode).
Can it be that the Windows PE backend compiles in a random number 
or otherwise random uninitialised values?

 No, it shouldn't AFAIR, you can open a ticket on the bugtracker if 
 it's the case.
Pekr: thanks for reporting, will look into it.
Gregg
27-Dec-2012
[4984]
That's great Endo! I'm glad Doc's hard work is turning into donations, 
so he can see real support for the project from others. Kaj and Peter 
are doing a lot to help him, and I hope to make time in a few weeks 
to show my support with action as well.
DocKimbel
27-Dec-2012
[4985]
Petr: issue fixed.
Kaj
27-Dec-2012
[4986]
Console binary updated
Kaj
28-Dec-2012
[4987]
Console binary updated with the added conditionals
Pekr
28-Dec-2012
[4988]
it almost seems, like you have to reimplement all the Red functionality 
for console?
Kaj
28-Dec-2012
[4989x2]
Nah, just another wrapper over the existing runtime
I think the interpreter added less than 10 KB to the binary
DocKimbel
28-Dec-2012
[4991x2]
Pekr: just the natives that are processed as keywords by the compiler 
and that don't needed a runtime counterpart until now. Anyway, as 
you can see from the commits, it's just a thin layer.
didn't need
Kaj
28-Dec-2012
[4993]
Console binary updated with the added loops
DocKimbel
28-Dec-2012
[4994x2]
Thanks Kaj.
Kaj: congrats on the first binding made available to Red! :-)


I've noticed in %examples/do-sql.red the comment for #include:  "FIXME: 
#252". Actually, #252 is for Red/System, Red  implements its own 
#include which behaves differently than the Red/System version. I've 
tried to make it more intuitive, but it still needs some adjustments, 
so feel free to open new tickets about that (with simple concrete 
test cases I can reproduce). 


Also keep in mind that #include at Red level is intended to be a 
temporary feature until we get DO, LOAD and READ working with files. 
I would like an include system that could work both for the interpreter 
and compiler without having to change any code. I'm not sure this 
is achievable, so in worst case, we'll keep #include as fall-back.
Kaj
28-Dec-2012
[4996]
Yeah, there's a question mark behind it because I wasn't sure it's 
the same issue, but #252 is the closest
Jerry
28-Dec-2012
[4997]
I think SQLite-binging was misplaced in "Red/System contributions" 
Section in Red-lang.org. It's Red not Red/System. ... Good to know 
that SQLite Binding is done. Thanks. Kaj.
Kaj
28-Dec-2012
[4998x2]
Until ten minutes ago it was a Red/System binding. :-) Now it's both 
a Red/System and a Red binding, built on top of the Red/System one
The same will happen with my other bindings
Janko
28-Dec-2012
[5000x2]
wowo! for the console interpreter and bindings!! awesome
I sent 70eur in from 14.Dec to now (for NickA or Gregg deals / btw 
thanks for that).
DocKimbel
28-Dec-2012
[5002]
Janko: thanks for your donations!
Kaj
29-Dec-2012
[5003x3]
Shouldn't block/rs-head and rs-tail have a /local s ?
Same for string. Perhaps it comes out of string/rs-length? which 
doesn't have s
block/copy seems to need /local s too
DocKimbel
29-Dec-2012
[5006]
Yep, copy/paste bug.
Kaj
29-Dec-2012
[5007x2]
I've implemented the first string marshalling in the SQLite binding, 
of the version identifiers
version: routine [  ; Return SQLite version.
;	return:				[string!]
	/local				version
][
	version: sqlite/version
	SET_RETURN ((string/load version length? version))
]
DocKimbel
29-Dec-2012
[5009]
You should wait for me to add the marshalling and unmarshalling functions 
(that will be used everywhere Red needs to interface with non-Red 
code). In your code example, it should be: 1 + length? version (as 
it needs to account for terminal NUL character). Also, you need to 
get sure that the source c-string! buffer is always available or 
make a copy of it (a pointer to it is stored as a UTF-8 cache, unused 
yet, but intended for speeding up I/O, still experimental, not sure 
it will stay for v1.0).
Kaj
29-Dec-2012
[5010]
I was wondering about those things. There's not much I can do then 
to make working bindings currently
DocKimbel
29-Dec-2012
[5011]
I'll try to speed things up.
Kaj
29-Dec-2012
[5012]
Don't tremble apart when passing the sound barrier ;-)
DocKimbel
29-Dec-2012
[5013]
:-))
Kaj
30-Dec-2012
[5014]
I adapted the console to work on POSIX platforms with the ReadLine 
library, but due to bugs in ROUTINE it's currently impossible to 
keep it integrated with the Windows version
Marco
30-Dec-2012
[5015]
Since Red compiles to Red/system, how can I get the red/system source 
result?

Red is simpler to use but sometimes we want speed so why not let 
red compile to r/s

and then use that source to make a routine! or as a stand-alone program?
Kaj
30-Dec-2012
[5016]
You can use the -v options to the compiler, but you'll probably be 
disappointed. What Red generates is completely integrated with its 
runtime, not something you would use standalone or even hack
DocKimbel
30-Dec-2012
[5017]
Marco: it's explained in the README file there: https://github.com/dockimbel/Red