World: r3wp
[Red] Red language group
older newer | first last |
Kaj 22-Jun-2011 [2375] | (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 [2422x2] | Could you parametrized those BSD-specific changes with a compiler option? |
Kaj: SIZE? has been extended to work with datatypes and aliases. | |
Kaj 22-Jun-2011 [2424] | Thanks! That will make my struct allocations less haphazard |
older newer | first last |