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

World: r3wp

[Red] Red language group

Dockimbel
9-Mar-2011
[135x2]
Forgot to mention in the blog, but << and >> operators are not implemented 
yet. They are defined in the compiler but lacks the backend part 
in the code emitter. Anyway, you can achieve the same using * and 
/ with powers of 2, they'll generate shifts instead of math ops.
Added the missing builds/ folder to the repo.
Janko
9-Mar-2011
[137x2]
Congrats Doc :) .. I will be following this.
Since red/system is c-level and compiled you can't and don't plan 
to have runtime goodnes of rebol in it. But the code is still data, 
so do you think you could use compile time macros to keep the core 
simpler and solve many things with macros then (like lisps do)?
BrianH
9-Mar-2011
[139]
Are #define statements defining constants?
Andreas
9-Mar-2011
[140]
Brian: yes (afaict)
BrianH
9-Mar-2011
[141]
Will /Pro work, or is /View needed for something other than structs?
Dockimbel
9-Mar-2011
[142x3]
/Pro should be enough (just need struct! support AFAIR)
Janko: thanks! About compile-time macros: that's an option. You already 
have #define, but it's quite limited for now (no  multiline or parameters 
support).
I'm not sure adding macros at the "data" level (LOADed source) would 
be really needed. Once Red will be ready, you'll be able to compose 
Red/System dialect source code at Red level (with all the block! 
series power), as you do today in REBOL with VID, DRAW, or other 
dialects.
BrianH
9-Mar-2011
[145]
Can it output DLLs yet?
Dockimbel
9-Mar-2011
[146x2]
No, but it shouldn't be hard to add.
The linker needs to be extended to add an "export" section and the 
compiler needs to prepare some data to populate that section.
BrianH
9-Mar-2011
[148]
The R3 module system uses an export keyword for marking its exports. 
Perhaps Red/System can use the same keyword.
Dockimbel
9-Mar-2011
[149]
Sure, that part is the easy one...Having quick look at "export" section 
format, it seems to be as messed up as the "import" one. Would probably 
need several days to make it work reliably.
BrianH
9-Mar-2011
[150x2]
For that matter, will Red/System be getting a module system, or some 
other kind of packaging facility?
We won't want to be limited to one-file programs forever :)
Dockimbel
9-Mar-2011
[152x2]
I'll extend it to allow compiling several sources in a single executable, 
but I won't go past that. Red/System will live as a Red dialect, 
so will benefit from the whole Red environment. The only time it 
needs to work alone will be to produce the Red's runtime layer. But, 
as said in my blog, Red/System could be extended to a full-featured 
language if someone want to invest in it.
In fact, support for incremental compilation is almost done, just 
needs testing/debugging. With that, you could feed the compiler with 
several sources while preserving its internal states and ask to "finalize" 
the job on the last one (means link the project).
Gregg
9-Mar-2011
[154]
Works here Doc. Congratulations!
Dockimbel
9-Mar-2011
[155]
Thanks Gregg.
Rebolek
9-Mar-2011
[156]
Build hello.exe under OS X and works under Windows :)
Dockimbel
9-Mar-2011
[157]
Red/System is a cross-compiler. ;-)
Henrik
9-Mar-2011
[158]
Let me get this straight: Is this instead of using C?
BrianH
9-Mar-2011
[159]
Yup.
Henrik
9-Mar-2011
[160]
ok. that's all I need to know. :-)
Maxim
9-Mar-2011
[161]
great work doc!
Dockimbel
9-Mar-2011
[162x2]
Thanks.
Henrik: what an overwhelming enthusiasm! :-)
Henrik
9-Mar-2011
[164]
:-)
Kaj
9-Mar-2011
[165]
I went through the code and it's very impressive to me. Most people 
these days wouldn't think it would be possible
NickA
9-Mar-2011
[166]
Doc, do you have Paypal account for donations?
GrahamC
9-Mar-2011
[167x2]
he does .. see his cheyenne page for the address,
http://www.cheyenne-server.org/about.shtml
NickA
10-Mar-2011
[169]
Thanks :)
Dockimbel
10-Mar-2011
[170]
Thank you very much for your donation Nick, that is very much appreciated!
amacleod
10-Mar-2011
[171]
the helloworld.reds script exe opens a console, writes stuff and 
then closes. Is there a way to keep that wndow open so I can see 
the output?
Cyphre
10-Mar-2011
[172]
yes, run it from already opened cmd.exe
Dockimbel
10-Mar-2011
[173]
amacleod: It's mentioned in the README file:

4) The resulting binary is in red-system/builds/hello.exe, open a 
DOS console and run it.
Ashley
10-Mar-2011
[174]
Just wanted to say I really like the minimalist approach and am following 
this project with great interest.
Steeve
10-Mar-2011
[175x2]
I wonder Doc, why did you you choose to make your own compiler ?
And was OTCC behind your inspiration ?
Kaj
10-Mar-2011
[177]
There's some explanation in the comments on the Red website
Dockimbel
10-Mar-2011
[178x2]
I've looked at TCC sources for inspiration (don't know about OTCC). 
Making a compiler is at the heart of the project, Red (as Red/System) 
are compiled languages.
I've looked at TCC code emitter to be more specific, not at the compiler 
part.
Steeve
10-Mar-2011
[180]
OTCC is the ancestor of TCC
Maxim
10-Mar-2011
[181]
could LLVM also be a target for the emitter, eventually?
Dockimbel
10-Mar-2011
[182x3]
Right, looking at it right now, the one Bellard used to won the C 
obfuscated code contest.
Maxim: see http://groups.google.com/group/red-lang?hl=enfor the 
anwser to that question.
Short answer: sure, but it's not in the roadmap, I don't have a need 
for it.