diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -6,6 +6,8 @@ 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. +## Important +Amalgam is not ready to be used yet. # 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 @@ -21,7 +23,16 @@ This could be done checking if an AST expression is referenced before evaluating that compiles everything even if not referenced, since another user of the program/library may use the functions that are not used in your program and they might have compile-issues.\ 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. +Use const to cleanup ANSI C style variable declarations, since const allows you to declare and assign variables on the same line.\ +Make the bytecode work with big endian. On a big endian machine, the bytecode should be converted to little endian +to make work on little endian as little as possible, meaning it would be a small penality to use big endian.\ +Verify all members of an extern struct are extern as well. Verify all parameters are of extern types for extern functions.\ +Verify all code execution paths in a function return a value, if the function excepts return values.\ +Show compile error if the result of a function call is ignored.\ +Show compile error if function result type and assigned to variable have different types. +## Urgent +Simplify src/compiler.c, it's pretty complex with the thread work done right now. The thread work should be put in a +thread dispatch file that only handles thread job dispatching. # 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. |