-
Notifications
You must be signed in to change notification settings - Fork 17
Hacking Notes
David Jeske edited this page May 31, 2020
·
36 revisions
These are prefixed with "zz" so they sort at the bottom of the pages list.
- zzz-notes: OO methods, type classes, etc
- zz-note: assembler bug on OS X
- zz-note: bootstrapping manually
- zz-note: distributing irken output
- zz note: memory size
- zz-note: self brain surgery
- zz-note: Garbage Collection
- zz-note: inference predicate type args
- zz-note: thread safety in runtime
- zz-note: type-checked embedded DSLs with quotations
- zz-note: exception improvements
- zz-note: better compiler errors
Three possible options for debugging:
- Add debugging support to the VM, teach the compiler to output debugging symbols for bytecode
- adding #line directives to the C output
- add an LLVM backend, using LLVMs debugging directives
For 2/3, gdb can be extended to support language specific commands. See Google Go GDB extensions
CLR supports Tail Call Optimization.
LuaJIT supports Tail Call Optimization.
EcmaScript 6 requires proper tail call optimization. When TCO is implemented in Google V8, it could be an interesting backend target, because of its aggressive JIT, and support for Source Map, which is like debugging symbols for javascript transpilers.
Research that might one day make it into Irken.
- Dijkstra, On-the-fly Garbage Collection, 1978
- Beltway: Getting Around Garbage Collection Gridlock, 2002
- C4: The Continuously Concurrent Compacting Collector, 2011
- Set-Theoretic Types for Polymorphic Variants
- Polymorphism, Subtyping, and Type Inference in MLsub (see cool online demo)
- Smith, Polymorphic Type Inference for Languages with Overloading and Subtyping, 1991
- is this the same as Type Classes? it sounds similar.
- Coercion as Homomorphism: Type Inference in a System with Subtyping and Overloading
- Coercion and Type Inference
- Type Reconstruction for Variable-Arity Procedures