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

World: r4wp

[#Red] Red language group

DocKimbel
25-Feb-2012
[52]
Isn't the libc doing important initialization and clean-up in these 
two functions?
Andreas
25-Feb-2012
[53]
Nope, they can safely be NULL.
DocKimbel
25-Feb-2012
[54]
__libc_start_main by itself is not doing much work, just a few calls 
and some global var init (like __environ). When I disassemble a C 
binary, these two calls are doing a lot of work.
Andreas
25-Feb-2012
[55x7]
well, __libc_csu_init and __libc_csu_fini are functions that are 
linked by gcc into the generated executable.
__libc_csu_init calls _init which in turn calls two more functions: 
call_gmon_start and __do_global_ctors_aux
call_gmon_start is support for the gnu profiler
__do_global_ctors_aux is for traversing ELF "constructors" (stored 
in a .CTORS section) which are then rnu
run*
as red/s neither supports elf ctors/dtors nor gprof, none if this 
should be needed
(again, all of the above are functions linked into the program binary 
by gcc)
DocKimbel
25-Feb-2012
[62]
okay, thanks for checking that.
Andreas
25-Feb-2012
[63]
i'm pretty sure none of that is needed for actual glibc setup
DocKimbel
25-Feb-2012
[64x2]
New commit pushed to `libc-init` branch, new simplified and more 
conforming way to init libc (at least I hope).
I need to add support for Syllable, I have the right doc from Kaj 
for that, so no problem.


For Darwin, I would need the right stack layout description on starting 
a new process, I haven't found yet a recent and official description 
for that, just a lost page in google's cache from 2009: http://webcache.googleusercontent.com/search?q=cache:4zQ0NwtOKdsJ:blogs.embarcadero.com/eboling/2009/10/13/5620+MacOSX+stack+layout+on+start&cd=4&hl=fr&ct=clnk&gl=fr
Andreas
25-Feb-2012
[66x2]
from that doc, the osx stack layout looks identical to linux/elf
(so that should be easy to try)
DocKimbel
25-Feb-2012
[68]
identical from the main() POV, but I'm not sure that's the right 
kernel stack layout before libc is initialized.
Andreas
25-Feb-2012
[69]
in that doc, it's not describing the stack for main() but the stack 
layout as setup for the entry point ("_start")
DocKimbel
26-Feb-2012
[70x2]
Yes, that's what I am after.
_start
 emulation
Andreas
26-Feb-2012
[72x2]
yep
so osx looks just like linux :)
DocKimbel
26-Feb-2012
[74]
Okay, libc-init is now working fine for Linux and conforming to Gcc 
ABI. Once again, man has won over the machine, but I wonder how many 
neurons were killed both in my and Andreas brain during the battle...;-)
GrahamC
26-Feb-2012
[75]
the reverse ... you probably grew a few :)
Kaj
26-Feb-2012
[76x2]
It's a loosing battle
The documentation seems to describe that when you write a floating 
point constant, it will be a float32! if it fits. However, it turns 
out that it is interpreted as float64!
Andreas
26-Feb-2012
[78x3]
Indeed, the spec is misleading here. All literals are float64!, float32! 
has no literal form.
So the only way to construct a float32! from a literal, is by casting 
(`as float32!`) from a float64! literal.
(So it's propapbly best to remove the "syntax" section in the float32! 
spec and add a note describing the above.)
DocKimbel
26-Feb-2012
[81x2]
Agreed.
Doc fixed.
Kaj
26-Feb-2012
[83]
I found another freak bug
DocKimbel
26-Feb-2012
[84]
ah?
Kaj
26-Feb-2012
[85]
In the tracker
DocKimbel
26-Feb-2012
[86]
Kaj: proper libc init code added for Syllable. It works fine on my 
Syllable VM.
Kaj
26-Feb-2012
[87]
That is great, thanks!
Pekr
27-Feb-2012
[88]
Doc - so your sister tweets about the Red development? Cool :-)
MagnussonC
27-Feb-2012
[89]
Why not delete the Twitter message if it was an error?
GrahamC
27-Feb-2012
[90]
Good movie?
Andreas
27-Feb-2012
[91]
Behold, an OpenGL triangle rendered by a Red/System program:
http://earl.strain.at/share/reds-opengl-triangle-20120227.png
GrahamC
27-Feb-2012
[92x2]
GUI next?
Can we view the code that does this?
Andreas
27-Feb-2012
[94x2]
Of course:
https://gist.github.com/d3b0e5c6fdbc4f19ff7a
(2/3 inline binding code and the rest is very plain OpenGL and, yuck, 
GLUT.)
PeterWood
27-Feb-2012
[96]
Looks good and the code looks some much easier on the eye than C 
to me.
GrahamC
27-Feb-2012
[97x2]
so what to add to be able to click on something and get a calback 
working?
a few 1000s of LOC :)
DocKimbel
27-Feb-2012
[99]
That's where dialects can shine: abstract low-level APIs.
TomBon
27-Feb-2012
[100]
andreas, cool! perhaps time to add GLFW? ;-)
Andreas
27-Feb-2012
[101]
tombon: would most likely be better than glut :)