aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2019-07-31 01:25:05 +0200
committerdec05eba <dec05eba@protonmail.com>2020-07-25 14:36:46 +0200
commit1f28c3c733ea3ae4234bff91e1c55e61b1ee3e96 (patch)
tree0ab52e362da03fde741ce8159ef8a4110cd1fb6a /README.md
parentec1a48e7b86fcd00127dd5a88d56c42083af1d78 (diff)
Starting on asm, implementing extern function call so progress is visible
Diffstat (limited to 'README.md')
-rw-r--r--README.md11
1 files changed, 9 insertions, 2 deletions
diff --git a/README.md b/README.md
index c02a2d2..f4f228c 100644
--- a/README.md
+++ b/README.md
@@ -6,8 +6,15 @@ Amalgam is not meant to be a replacement for any other language but rather a new
with gpu without writing an external gpu program (glsl/hlsl).
Files have to be in utf-8 format and can optionally have utf-8 BOM.
+# Fast compilation
+Every stage of the compiler is multithreaded and data copy is kept to a minimal, for example tokenization
+is done without storing tokens in a list. Almost all allocation is done using an arena allocator that
+is only cleaned up once (when the compiler is finished), and the data is allocated sequentially.
# TODO
-Build with -nostdlib and replace use of libc with syscalls (on linux)
+Build with -nostdlib and replace use of libc with syscalls (on linux).
+Don't parse files unless the variable they are assigned to (with @import) is used. This is useful when only using small parts of a library.
+Align machine code to word boundary for the start of functions. No need to pad with NOP, as functions return before the padding.
+Use const to cleanup ANSI C style variable declarations, since const allows you to declare and assign variables on the same line.
# Documents
Documents are located under doc. The file doc/Documentation.md is generated from source files by running doc/doc_extract.py
-but there is no need to run this script unless you are modifying documentation in the source. \ No newline at end of file
+but there is no need to run this script unless you are modifying documentation in the source.