search for: defunion

Displaying 3 results from an estimated 3 matches for "defunion".

2008 Mar 27
0
[LLVMdev] Hooking the global symbol resolver
Hi Jonathan, In the context of a static compiler, I would recommend that you implement your own “on the side” symbol table in order to track this state and perform on-demand instantiation as required. It is worthwhile to consider the LLVM module to be a passive output sink, not an active object. The JIT compiler, by contrast, is an active object, cooperating with its environment via
2008 Mar 27
2
[LLVMdev] Hooking the global symbol resolver
...rally useful for languages having well-integrated template mechanisms. The approach you advocate may still be the best approach, but I'ld like to make sure that we are having the same conversation. Let me illustrate the problem concretely. Consider the BitC primitive definition of lists: (defunion (list 'a) (cons 'a (list 'a)) nil) Modulo surface syntax, this looks on first inspection to be exactly like the corresponding definitions in ML or Haskell. But in ML or Haskell there is only one run-time "expansion" of this type, because all of the possible element ty...
2008 Mar 26
4
[LLVMdev] Hooking the global symbol resolver
Okay, we're starting to dig in, and I've hit a question that will no doubt seem strange. Context: BitC is a polymorphic language. Since it has unboxed value types, our approach to compiling a polymorphic function is to polyinstantate it -- once for each signature. The name mangling scheme is both stable and reversible. At the site of the use occurrence, we can fully determine the mangled