scheme.git
4 years agoAdd WIP on passing about closures
Luke Lau [Wed, 24 Jul 2019 15:20:12 +0000 (16:20 +0100)]
Add WIP on passing about closures

4 years agoAllocate heap at the start
Luke Lau [Wed, 24 Jul 2019 13:30:34 +0000 (14:30 +0100)]
Allocate heap at the start

4 years agoFix string addressing and clobbered register
Luke Lau [Wed, 24 Jul 2019 13:29:45 +0000 (14:29 +0100)]
Fix string addressing and clobbered register

4 years agoFix static string addressing
Luke Lau [Wed, 24 Jul 2019 12:21:09 +0000 (13:21 +0100)]
Fix static string addressing

4 years agoMake the ABI respect stack etc.
Luke Lau [Tue, 23 Jul 2019 16:12:18 +0000 (17:12 +0100)]
Make the ABI respect stack etc.

4 years agoUpdate main for codegen changes
Luke Lau [Tue, 23 Jul 2019 10:14:20 +0000 (11:14 +0100)]
Update main for codegen changes

4 years agoAdd strings and print primitive
Luke Lau [Tue, 23 Jul 2019 10:13:51 +0000 (11:13 +0100)]
Add strings and print primitive

4 years agoRemove C dependency, directly emit _start
Luke Lau [Tue, 23 Jul 2019 07:57:52 +0000 (08:57 +0100)]
Remove C dependency, directly emit _start

4 years agoCodegen if statements
Luke Lau [Tue, 23 Jul 2019 00:36:06 +0000 (01:36 +0100)]
Codegen if statements

4 years agoAdd ast-traverse helper
Luke Lau [Tue, 23 Jul 2019 00:35:16 +0000 (01:35 +0100)]
Add ast-traverse helper

4 years agoRefactor ast "pattern matching" to a single function
Luke Lau [Mon, 22 Jul 2019 23:03:24 +0000 (00:03 +0100)]
Refactor ast "pattern matching" to a single function

4 years agoAdd recursive let-bindings
Luke Lau [Mon, 22 Jul 2019 19:41:24 +0000 (20:41 +0100)]
Add recursive let-bindings

4 years agoFix some normalization issues, add codegen tests
Luke Lau [Mon, 22 Jul 2019 01:37:02 +0000 (02:37 +0100)]
Fix some normalization issues, add codegen tests

4 years agoFirst pass at lambdas and closures
Luke Lau [Mon, 22 Jul 2019 00:28:50 +0000 (01:28 +0100)]
First pass at lambdas and closures

4 years agoAdd pretty printing for types
Luke Lau [Sun, 21 Jul 2019 22:49:41 +0000 (23:49 +0100)]
Add pretty printing for types

4 years agoAdd more binary ops
Luke Lau [Sun, 21 Jul 2019 00:40:02 +0000 (01:40 +0100)]
Add more binary ops

4 years agoResolve types in lambda arguments, recursively substitute
Luke Lau [Sat, 20 Jul 2019 16:48:01 +0000 (17:48 +0100)]
Resolve types in lambda arguments, recursively substitute

Also add test

4 years agoNormalize lambdas to be single arguments only
Luke Lau [Sat, 20 Jul 2019 16:02:28 +0000 (17:02 +0100)]
Normalize lambdas to be single arguments only

4 years agoSplit out compiler into codegen and main
Luke Lau [Wed, 17 Jul 2019 23:35:35 +0000 (00:35 +0100)]
Split out compiler into codegen and main

4 years agoFix up codegen-add for vars
Luke Lau [Wed, 17 Jul 2019 22:23:16 +0000 (23:23 +0100)]
Fix up codegen-add for vars

4 years agoAdd let bindings
Luke Lau [Wed, 17 Jul 2019 22:15:15 +0000 (23:15 +0100)]
Add let bindings

Also split out some helpers into a separate ast file
Need to split compiler out into codegen and main

4 years agoAdd .gitignore
Luke Lau [Wed, 17 Jul 2019 20:54:13 +0000 (21:54 +0100)]
Add .gitignore

4 years agoAdd consolidation, tie up with typechecker
Luke Lau [Wed, 17 Jul 2019 20:53:26 +0000 (21:53 +0100)]
Add consolidation, tie up with typechecker

Also normalize program before typechecking

4 years agoStart typechecker
Luke Lau [Wed, 17 Jul 2019 14:07:58 +0000 (15:07 +0100)]
Start typechecker