World: r4wp
[#Red] Red language group
older newer | first last |
Pekr 14-Sep-2012 [1662] | Two notes: - when in root directory, where %red.r resides, is there a need to specify it in compilation process? do/args %red.r - or do we expect more compilers here? - executable is spilled out into the root too. I would probably use the way compatible to red/system, and create /builds subdir? Or is all above intentional to allow to compile/link from working dirs? |
DocKimbel 14-Sep-2012 [1663] | It is intentional. You can use the -o option to redirect the binary where you want. |
Pekr 14-Sep-2012 [1664x2] | *Important*: Red will be distributed as a binary to end users and the effect of: red script.red will be to compile and run it from memory directly. So the -o option will become mandatory in the future for generating an executable without running it. During the bootstrapping stage, it is complex to support that feature, but it will be implementd as soon as possible. |
Could you please elaborate? Is red executable going to be kind of launcher for our scripts? Hence it compiles them before running it? Most probably not a solution for CGI, as the compilation stage will happen each time? | |
DocKimbel 14-Sep-2012 [1666x2] | For CGI, you should obviously pre-compile them if you want performances. The future JIT-compiler should be able to handle such cases fine though. But yes, the goal is to be able to run Red scripts directly in the same way REBOL does. The fact that Red compiles them should be transparent to users. The -o option will be roughly equivalent to what encap provides (except that scripts will be compiled to native code). |
The main drawback right now to support direct Red script execution is REBOL inability to execute native code from memory. The workaround would be to provide a DLL to pass the memory pointer and call the Red code, but as I aim at a single Red binary, this option wouldn't be very satisfying. | |
sqlab 14-Sep-2012 [1668] | I would prefer Red to compile either to the directory, where the source is by default or at least not to the system/options/home path, but to the path I get with pwd |
DocKimbel 14-Sep-2012 [1669] | Agreed, change done. |
sqlab 14-Sep-2012 [1670] | That's quick. Thanks |
DocKimbel 14-Sep-2012 [1671] | I got math ops for integers working, but I think it's time we get a better macro system. |
PeterWood 14-Sep-2012 [1672x2] | quick-test has been broken by one of the last 13 commits in branch v0.3.0. I'll try to sort it out over the weekend. |
That was under OS X, it runs okay under Windows. | |
Arnold 14-Sep-2012 [1674] | So time really is running out for REBOL |
PeterWood 14-Sep-2012 [1675] | quick-test is also broken on Linux. |
DocKimbel 14-Sep-2012 [1676] | Peter: let me know if I can help. |
NickA 14-Sep-2012 [1677] | Very exciting to compile hello.exe on my Windows PC! |
DocKimbel 14-Sep-2012 [1678] | Kaj: what do you think of that? (for Red/System) #define MAX(a b) [either a > b [a][b]] print MAX(78 12) outputs: 78 |
Arnold 14-Sep-2012 [1679] | Try it the other way around ;-) |
DocKimbel 14-Sep-2012 [1680x2] | Huh! :-) |
Works! (was testing in the wrong console) | |
Arnold 14-Sep-2012 [1682x2] | That's good ;) I take it for granted that this is just on the way to having maximum: max block-of-values ? |
and it returns the max in maximum? | |
Gregg 14-Sep-2012 [1684] | I think he's just working on macro support in this example. |
Arnold 14-Sep-2012 [1685] | that makes sense. |
DocKimbel 14-Sep-2012 [1686x4] | Arnold: it's for Red/System, not Red. |
Nice features of the new macro support: - the replacement in the argument block operates for any block series (includes paths types) - nested macros in macros are resolved - you can define the argument as paren! instead of block!, and paren! will then stay once macro resolved. | |
Here's a more complex example: #define MIN(a b) [ either a < b [a][b] ] #define MAX(a b) [ either a > b [ MIN(p/a p/b) ][p/b] ] p: "Hello" print MAX(2 1) outputs: H | |
(in fine, MAX(2 1) resolves to: p/1) | |
Arnold 14-Sep-2012 [1690] | Nenad, thank you for the explanation. Good to know even the simple test works both ways, and I am a programmer not a tester ;) |
DocKimbel 14-Sep-2012 [1691] | New macro system pushed online in the v0.3.0 branch. If anyone needs it in other branches, let me know. |
szeng 14-Sep-2012 [1692] | hello.red segfaults on my ubuntu 12.04 system, any idea? |
DocKimbel 14-Sep-2012 [1693] | No, I haven't yet tested the Red codebase on Linux, but I will in a few minutes. |
szeng 14-Sep-2012 [1694] | So I am the first one to test it on linux? :) |
DocKimbel 14-Sep-2012 [1695] | It looks like. ;-) |
szeng 14-Sep-2012 [1696] | Cool, it compiles anyway. |
james_nak 14-Sep-2012 [1697] | Doc, did you know you have a possible theme song? It goes back to when I was a young lad but it still rocks: "Red" by Sammy Hagar. http://www.youtube.com/watch?v=sfdy7tC-Us0&feature=fvwrel |
DocKimbel 14-Sep-2012 [1698] | Nice Red rock song. :-) |
GrahamC 14-Sep-2012 [1699x5] | I did this $ git clone https://github.com/dockimbel/Red.git so how come red.r doesn't come down? |
I got the redme.md and the license ... | |
hmm..lots of files don't come down | |
ooops .. my bad | |
anyone know how to pull this branch down? | |
DocKimbel 14-Sep-2012 [1704] | If your `git clone`succeeded, `cd`inside the repo, and do a `git checkout origin/v0.3.0` |
GrahamC 14-Sep-2012 [1705] | thanks .. found the answer on SO too |
DocKimbel 14-Sep-2012 [1706x2] | Math operations now supported in Red (integer! values only for now). For example: a: 123 a: a + 2 print a * 6 - a will correctly output 625. |
@szeng: I will look into the Linux issue tomorrow. | |
Kaj 14-Sep-2012 [1708x4] | I'm awed by the great elegance of it all |
The code is very accessible | |
I like the new macro system, too. I've wanted that for a long time (in silence :-) | |
We'll inform Peter Busser that Red supports round brackets now ;-) | |
older newer | first last |