I think that technically, if we put the effort into it, we can be running in 64 bit mode some time next week. The issues relating to type size in the FFI code are not difficult to fix. There are other issues we are likely to run into, including:
1. I don't think we tested our instruction encodings as extensively on 64 bits. There could be a few latent bugs there. 2. The C calling conventions are different in 64 bit mode. This would require some more adjustments.
Personally, I've been working on preparing the current JavaScript code to support a GC. I think it's realistic to think we could have a copying GC working in two weeks. This will require some back-end modifications too. At the very least, the addition of GC maps and maps of the linked pointers inside compiled code blocks.
I think that getting a GC working is actually more work, but that the result will be worth it in the end. That being said, we also need to support 64 bit mode eventually.
- Maxime
On 11-03-04 04:40 PM, Erick Lavoie wrote:
Bootstrapping on 64 bits won't be trivial as I've found two issues today:
- It is not possible to do a call/jump with a 64 bits relative offset.
It breaks the way we implemented static calls so far (by computing an offset between the destination address and the call site at linking time). We need this to call malloc/free/exit/puts because they are mapped too far in the address space of the process. Maxime suggested that we always do a move in a register before the call/jump. This way we can move a 64 bits absolute address into a 64 bits register, avoiding the relative offset problem. The function call protocol needs to be changed to support this.
- We assumed sizeof(int) == sizeof(void *) in the d8 extensions we
wrote and in the Tachyon C proxy generation. We will need to change it to adequately support 64 bits.
At this point, I don't know if those are the only issues we will encounter to allow bootstrapping on 64 bits in addition to debugging latent bugs. It might be faster to go the GC way and come back after for 64 bits support. What do you guys think?
Erick _______________________________________________ Tachyon-list mailing list Tachyon-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/tachyon-list