World: r4wp
[#Red] Red language group
older newer | first last |
DocKimbel 14-Oct-2012 [2690] | cURL example script still crashing... |
Kaj 14-Oct-2012 [2691x2] | OK |
I've added preliminary support for 64-bits integers to the SQLite binding. They're represented by a float! so they can be passed around, but they're hard to compute with | |
DocKimbel 14-Oct-2012 [2693x2] | Ok, it seems we'll have to return to an explicit callback declaring syntax. In cURL, the callbacks passing (get-word! syntax) occur after the callback declaration, so when the compiler is creating the callback prolog, it has no way to guess that this particular function will be used as callback later.... |
We already have discussed this in the tracker, but I can't find the related tickets... | |
Andreas 14-Oct-2012 [2695] | I also seem to remember this. Maybe it was the problem behind this: https://github.com/dockimbel/Red/issues/204 |
DocKimbel 14-Oct-2012 [2696x6] | #204: that's the one I would have loved to see documented ;-) |
I think #193 might be the closest. | |
Ok, I think I see where lies the issue in the compiler. | |
The compiler is using two ways to encode the fact that a function is used as a callback: - through the CDECL attribute presence (destined to be called by external code) - through the internal CALLBACK flag that is assigned to all functions that get their pointer passed as argument (get-word! syntax). | |
Somewhere in the compiler, these two conventions are conflicting...let see if I can fix that without having to change anything to the current semantics. | |
Kaj: your code is ok, as long as it sets CDECL for marking functions called by external libs. | |
Kaj 14-Oct-2012 [2702x2] | I should be doing that everywhere |
Normally a function can't be used before it's defined. How could I pass a pointer to a function that's not defined yet? | |
DocKimbel 14-Oct-2012 [2704x5] | It can if called from the body of another function. |
(IIRC) | |
Function's body compilation is deferred. During global code compilation, only functions prototypes are collected, so all functions are known before the first function body gets processed. | |
That approach allow to solve cross-reference issues. | |
Basically, Red/System compiler is doing automatically what C compiler requires you to do manually (i.e. specifying function prototypes separately in headers). | |
Kaj 14-Oct-2012 [2709x3] | So there is no forced function order? |
When I put one of the cURL callbacks behind the function that uses it, the code size increases by four bytes, even for Intel. But when I then remove the [cdecl] it goes back to the original size | |
The stack fix has degraded the behaviour. I now get an access violation on all programs | |
DocKimbel 14-Oct-2012 [2712x12] | I'm working on it, the fix is fine, but it seems it doesn't work with __libc_start_main call (and only that one). |
It's like this call doesn't respect the ARM EABI... | |
I will push the fix for callbacks correct prolog/epilog generation in a minute. | |
Fix pushed. | |
cURL binding should now work correctly (except the ending segfault caused by bad libc init call...I'm working on it). | |
Ok, this time, it's the good one :-) | |
(A bad copy/paste earlier changed the position of the first fix before I commited it, libc init is fine). | |
Both cURL and SDL audio test are now working fine on my RPi. | |
BTW, I've also applied the same fix for callbacks on IA-32 backend, so retesting all bindings on Linux/Intel would be needed. | |
Kaj: I can't find the URL for Glib repo? | |
Ok, found it, it's "GLib"... | |
PeterPaint-SDL demo works on RPi now. | |
Kaj 14-Oct-2012 [2724] | That already worked :-) |
DocKimbel 14-Oct-2012 [2725] | Ah! :) |
Kaj 14-Oct-2012 [2726] | The URL for GLib is Red-GLib |
DocKimbel 14-Oct-2012 [2727x2] | For GTK demos, I get an Xlib error: Xlib: extension "RANDR" missing on display ":1:0" |
I'm now running my RPi headless and using it remotely through VNC and ssh. Maybe the error is related to that? | |
Kaj 14-Oct-2012 [2729x2] | Could be, although it's also possible that the RANDR extension is really not there, because it seems to fix its screen resolution, needing its own utility to change it |
Doesn't seem like it should influence GTK, though | |
DocKimbel 14-Oct-2012 [2731x3] | Hmm, there are some bug tickets about that (old ones): https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/157319 |
It seems turning off the multiple screens feature might fix it. I'll try tomorrow on the RPi localy (not through VNC). | |
Hello-GTK-world is still segfaulting on my Debian-armel image on QEMU. I will investigate that tomorrow. | |
Kaj 14-Oct-2012 [2734x2] | Yep, seemed to be a separate issue, like 0MQ |
Actually, 0MQ works now. But I'm still getting the access violation on GTK, not an XLib error | |
DocKimbel 15-Oct-2012 [2736] | Kaj: for debugging the GTK issue, we need a minimalistic app. Could you re-implement the hello-GTK-world using only direct GTK calls and not going through typed functions? We could at least see if it's related to GTK calls or not. |
Pekr 15-Oct-2012 [2737] | New RPi, doubling the memory for the same price - http://www.engadget.com/2012/10/15/raspberry-pi-model-b-512mb-ram/ |
DocKimbel 15-Oct-2012 [2738] | Kaj: couldn't wait so I've implemented it myself. ;-) See ticket comments. |
Pekr 15-Oct-2012 [2739] | so, are ARM fixes almost complete now, and is 0.3.0 going to be oficially out soon? :-) |
older newer | first last |