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

World: r3wp

[Red] Red language group

Dockimbel
22-Jun-2011
[2373]
300 commits reached! And now the compiler runs on /Core!
Kaj
22-Jun-2011
[2374x2]
Excellent
(Must write a cheer bot one of these days)
Dockimbel
22-Jun-2011
[2376]
hehe :-)
Henrik
22-Jun-2011
[2377]
Silly question (I'm not in the loop), why was View necessary? Feel 
free to point to a blog post or something that explains it.
Andreas
22-Jun-2011
[2378x2]
because we used struct! quite heavily
which (still) is not available in /core
Henrik
22-Jun-2011
[2380]
ok, interesting.
Andreas
22-Jun-2011
[2381x2]
the binary emitters (PE, ELF) need to adhere to the respective format 
specification, which is usually supplanted with C struct definitions. 
the primary issue is that C structs have particular (platform-specific) 
memory layout rules, which REBOL's struct! mimicks.
for example a struct of an 8-bit char! and a 32-bit integer! takes 
up not 40-bits but actually 64-bits in size (due to alignment constraints, 
in this case).
Henrik
22-Jun-2011
[2383]
so this is one of the challenges that are required to solve, when 
creating a new binary emitter?
Andreas
22-Jun-2011
[2384x3]
when writing a new emitter, the "challenge" is mostly the rather 
tedious task os transliterating C structs into REBOL struct!s
Have a look at the current ELF/PE emitters, for example:

https://github.com/dockimbel/Red/blob/master/red-system/formats/ELF.r#L87

https://github.com/dockimbel/Red/blob/master/red-system/formats/PE.r#L145
For comparison, that's the spec of the ELF "Ehdr" struct:
http://sco.com/developers/gabi/latest/ch4.eheader.html
Dockimbel
22-Jun-2011
[2387x3]
REBOL/Core 2.7.8 doesn't run on FreeBSD8.2, it requires libm.so.4 
(FreeBSD 4)...
# ln /lib/libm.so.5 /lib/libm.so.4
# rebol

/libexec/ld-elf.so.1: Shared object "libc.so.6" not found, required 
by "rebol"
Getting /Core to run on FreeBSD looks like a real challenge :-)
Kaj
22-Jun-2011
[2390]
Aren't there "compat" libraries for FreeBSD 4 etc. backwards compatibility?
Dockimbel
22-Jun-2011
[2391]
Yes, but it requires me to install a lot of stuff...The real issue 
is that /Core is built on obsolete libraries version.
Kaj
22-Jun-2011
[2392]
I know, but all operating systems should deal with backwards compatibility, 
and the Unixes usually do it with optional packages that you need 
to install
Andreas
22-Jun-2011
[2393x3]
hmm, /core 2.7.8 runs fine for me on freebsd 8.2
let's see where those ancient libm/libc versions come from :)
compat6x-amd64-6.4.604000.200810_3 :)
Kaj
22-Jun-2011
[2396]
So the compatibilty base seems to be FreeBSD 6
Dockimbel
22-Jun-2011
[2397x2]
I tried: pkg_add -r compat6x-amd64 from http://www.freshports.org/misc/compat6x, 
but keep getting "unable to fetch messages".
Did I miss something?
Andreas
22-Jun-2011
[2399]
are you on an amd64 system?
Kaj
22-Jun-2011
[2400x2]
Are you on AMD64?
:-)
Dockimbel
22-Jun-2011
[2402x2]
on Vmware
I guess it emulates an Intel CPU
Andreas
22-Jun-2011
[2404]
uname -m ?
Dockimbel
22-Jun-2011
[2405x2]
i386
works
Andreas
22-Jun-2011
[2407]
should be just `pkg_add -r compat6x` then
Dockimbel
22-Jun-2011
[2408]
thanks!
Andreas
22-Jun-2011
[2409]
(or -i386 :)
Dockimbel
22-Jun-2011
[2410x4]
nope, add to append -i386 :)
add => had
solves REBOL issues
Let see now if the compiler is running
Andreas
22-Jun-2011
[2414]
hm, automatic creation of the builds/ folder bugs
Dockimbel
22-Jun-2011
[2415]
Can you push a fix for that? (I'm cooking at the same time)
Andreas
22-Jun-2011
[2416]
yep, will do
Dockimbel
22-Jun-2011
[2417x2]
# builds/hello 
ELF binary type "0" not known.
builds/hello: Exec format error. Binary file not executable.
Have you pushed your BSD-specific ELF fixes or does it require a 
proper target config?
Kaj
22-Jun-2011
[2419]
I think FreeBSD's ID is somewhere around 5
Andreas
22-Jun-2011
[2420x2]
nope, i didn't push the freebsd emitter hack mainline
that just hardcoded freebsd-specifics, so would have broke linux 
in that form. only a quick experiment to see what's really necessary
Dockimbel
22-Jun-2011
[2422]
Could you parametrized those BSD-specific changes with a compiler 
option?