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

World: r4wp

[#Red] Red language group

Arnold
20-Nov-2012
[4165]
I want to compliment you on the speed of development of Red! It is 
truly amazing. Keep up the good work.
Is this news also worth mentioning on the red-lang.org website?
DocKimbel
20-Nov-2012
[4166x2]
Thanks Arnold. Not yet, I will make a 0.3.1 release for that, but 
it needs a few more days to stabilize.
FYI, I have started working on EXIT and RETURN implementation. It 
will probably take a day to design and implement them correctly. 
In the meantime, feel free to push issues with Red functions on the 
bugtracker.
Pekr
20-Nov-2012
[4168]
Haven't read commints, so sorry if already answered - will there 
be a FUNCT equivalent, allowing to use local words only?
BrianH
20-Nov-2012
[4169]
FUNCTION. It's mentioned here: https://github.com/dockimbel/Red/commit/cc5c8dcb839572bb25559f964ed7d30419cb5a31
Gregg
20-Nov-2012
[4170]
Thanks Doc. I support the idea of decimal! as the BCD type.
Pekr
21-Nov-2012
[4171]
Doc, I can see Rudolf being pretty active with testing Red, Red/System? 
Nice, I thought we have lost him when R3 went into a non-development 
mode ....
DocKimbel
21-Nov-2012
[4172]
He showed up again shorter after Red first alpha release. He's working 
on updating the BNF grammar of Red/System to add namespaces.
kensingleton
21-Nov-2012
[4173]
No gob! Does this mean no GUI or just gui done in different way?
Kaj
21-Nov-2012
[4174x2]
There are GTK+ and SDL bindings. There will be bindings to native 
GUIs in the future (I consider GTK to be the most native binding 
for Linux and BSD systems)
They're for Red/System for now, not connected to Red yet
DocKimbel
21-Nov-2012
[4176x2]
Does this mean no GUI or just gui done in different way?

 See all the presentation slides for Red, a native GUI system will 
 be provided. Also a web server with a new web framework will be part 
 of Red stack, so modern style web apps will be supported.


The GUI will probably be done in different way than R3 underneath, 
maybe a gob!-like datatype will be a good match, but such implementation 
detail is not known until implementation starts. Also, it is possible 
to extract R3 GUI code, wrap it in a shared library and plug it in 
Red (but I won't be the one doing that and maintaining such wrapper).
As Kaj underlined, GTK+ will most probably be the native target for 
Linux.
Kaj
22-Nov-2012
[4178x2]
I've finally been able to write a Red version of Fibonacci numbers. 
It executes twice as fast as R3
Red/System is roughly hundred times faster
Henrik
22-Nov-2012
[4180]
Is the Red version pure Red? Why exactly is it faster than R3?
Kaj
22-Nov-2012
[4181x2]
It's compiled
parameter: 35

fibonacci: func [
	n		[integer!]
	/local	a
][
	either n < 2 [
		n
	][
		a: fibonacci n - 1
		a + fibonacci n - 2
	]
]

prin "Fibonacci "
prin parameter
prin ": "
print fibonacci parameter
Steeve
22-Nov-2012
[4183]
Functions in red are not compiled yet, right ?
PeterWood
22-Nov-2012
[4184x2]
Wrong.
Functions are compiled  in Red.
Steeve
22-Nov-2012
[4186]
I talk about Red not Red/system
Kaj
22-Nov-2012
[4187]
Yes, Peter i right
PeterWood
22-Nov-2012
[4188]
Me too!
Kaj
22-Nov-2012
[4189]
is
Steeve
22-Nov-2012
[4190]
I think you're both wrong ;-)
Kaj
22-Nov-2012
[4191]
Red is a compiler, as simple as that
PeterWood
22-Nov-2012
[4192]
Well I'm usually worng :-)
Steeve
22-Nov-2012
[4193x2]
You're talking 	about Red/system not Red
Red is evaluated
Kaj
22-Nov-2012
[4195]
No, we've been publishing that fact for almost two years now. I don't 
know what else we can do
Steeve
22-Nov-2012
[4196]
like Rebol
PeterWood
22-Nov-2012
[4197x2]
No, it is compiled like C.
This might give you a clue - https://github.com/dockimbel/Red/issues/308
DocKimbel
22-Nov-2012
[4199x2]
Kaj: nice! Actually, such kind of function (highly recursive, very 
small body) should perform 5-10 times faster than R3 in the target 
compiler. Functions with bigger bodies shoud be in the 10-15 range. 
Functions with pure math expressions should be in a 20-100 range.


Though, these are very rough early estimates I did on the base of 
a few micro-benchmarks.
Red is evaluated
 No, compiled. :-)
Steeve
22-Nov-2012
[4201]
why is kaj's script so slow then ?  ;-)
Kaj
22-Nov-2012
[4202]
No optimisations
Steeve
22-Nov-2012
[4203]
okay T_T
Pekr
22-Nov-2012
[4204]
Uh, what optimisations, Kaj? We are talking Red bing compiled to 
Red/System, so how comes, that the result is only 2 times faster 
than R3? I expected speed of nearly a R/S version. Something must 
be wrong, or Red would not make sense with such poor performance 
at all imo ...
Kaj
22-Nov-2012
[4205x2]
The fact that you're complaining means that the optimisations are 
missing, isn't it?
If Red doesn't make sense at all, then R3 doesn't make sense double 
at all
Pekr
22-Nov-2012
[4207]
Well, R3 is dynamic. We are supposed to give-up something in exchange 
in much bigger performance. And R/S gave us some rewards, being only 
some 4-5 times slower than C version? Now if Red is going to be orders 
of magnitude slower, I would be really disappointed ...
Kaj
22-Nov-2012
[4208]
You can get Red/System speed if you write in Red/System, not if you 
write Red
Pekr
22-Nov-2012
[4209]
Well, I thought, that Red code gets compiled/translated into R/S 
code, and that code is going to be translated into machine code :-)
DocKimbel
22-Nov-2012
[4210]
Red is a high-level language with high-level abstract types. Once 
we get optimizations, Kaj's example should run 5-10 faster than R3. 
For some high-level expressions that have low-level counterparts, 
it is possible to achieve very high gains (in the 10-100 range), 
for those that do not have low-level counterparts, you can only expect 
typical gains from moving from an interpreter to a compiler (on average 
5-10 faster).


Also, there is also a source of additional speed gains: the possible 
runtime optimizations enabled by the JIT-compiler.
Kaj
22-Nov-2012
[4211]
Yes, and that doesn't magically make it being programmed in machine 
code
DocKimbel
22-Nov-2012
[4212]
Pekr: high-level language have higher level semantics (materialized 
in the case of Red by the runtime code in %runtime/ folder), you 
can't expect all that "disappear by magic" when translated to native 
code. It is not in the domain of possible things. :-)
Steeve
22-Nov-2012
[4213]
to be exact R3 is 300-500 time slower than c compiled code in my 
last tests.
So at least Red should be at leatst 30-50 times faster than Rebol
DocKimbel
22-Nov-2012
[4214]
Those high-level layers are what makes Red able to accomplish all 
the things you like instead of being limited to a macro-assember 
level language (like C or Red/System).