Commit Graph
100 Commits
Author SHA1 Message Date
Francesco Cozzuto 401aeb130f minor adjustments to the docs 2023-01-25 01:34:13 +01:00
Francesco Cozzuto 9f7d1f6a1e implementation doc draft 2023-01-25 01:00:24 +01:00
Francesco Cozzuto 1331cd1ae3 cleaned up some documentation 2023-01-25 00:51:57 +01:00
Francesco Cozzuto 248fc1d1a8 bug fix 2023-01-23 22:04:08 +01:00
Francesco Cozzuto 5234fc73a8 testcases for instructions INSERT, INSERT2, SELECT and ASS 2023-01-23 21:36:44 +01:00
Francesco Cozzuto 31d0c100c1 reorganized tests and removed old compilation artifacts 2023-01-23 13:45:45 +01:00
Francesco Cozzuto 76bd70d833 tests for NLB and STP instructions 2023-01-23 13:28:32 +01:00
Francesco Cozzuto d786d7d1fd runtime tests for relational operators 2023-01-23 13:17:34 +01:00
Francesco Cozzuto f7a2cb0611 more tests for the runtime 2023-01-23 01:06:29 +01:00
Francesco Cozzuto 1780826a97 new testing infrastructure 2023-01-22 02:22:44 +01:00
Francesco Cozzuto 533cf01920 simplified the architecture 2023-01-20 23:31:57 +01:00
Francesco Cozzuto 411388755f major restructuring 2023-01-20 20:52:20 +01:00
Francesco Cozzuto 0980cc193d changed error reporting function interface 2023-01-20 01:22:20 +01:00
Francesco Cozzuto 9cc7121cd9 new built-in getCurrentScriptDirectory; new cli option syntax; added -p option to profile programs and -H to set heap size; fixed a bug in string.cat 2023-01-19 20:14:23 +01:00
Francesco Cozzuto 37420cdea2 added the ascii version of the docs 2023-01-18 01:28:59 +01:00
Francesco Cozzuto a8e89e09e9 fixed markdown file syntax 2023-01-18 01:27:11 +01:00
Francesco Cozzuto fc5785db20 did an oopsie with the last commit 2023-01-18 01:21:18 +01:00
Francesco Cozzuto 6539446b69 rewrote documentation for functions and expressions 2023-01-18 01:20:25 +01:00
Francesco Cozzuto 78fadb2a6a advanced the web server example 2023-01-15 19:52:42 +01:00
Francesco Cozzuto 0f40181e58 advances of the http server example; built-ins for generating random numbers; built-ins for slicing, trimming and converting strings to integers 2023-01-15 18:22:18 +01:00
Francesco Cozzuto 74a1648af8 utility functions for implementing noja functions in c; built-ins for socket management; http server draft in noja 2023-01-15 00:51:36 +01:00
Francesco Cozzuto 2c7e0ae2ba fixed tests that were failing because of the last modifications 2023-01-13 10:40:18 +01:00
Francesco Cozzuto 920b88c006 map can have function members by placing function declaration between the curly braces 2023-01-13 03:02:28 +01:00
Francesco Cozzuto 189bfa030b bugfix in buffer object. Didn't increase the refcount when slicing 2023-01-12 16:11:53 +01:00
Francesco Cozzuto a56a302fd0 missed null check in refactoring 2023-01-11 00:33:09 +01:00
Francesco Cozzuto 8de2ef719d added prelude noja script that's embedded into the executable 2023-01-11 00:31:01 +01:00
Francesco Cozzuto c0f6ddda50 more examples! 2023-01-10 21:35:55 +01:00
cozis 1671d178e4 example scripts update; new BUILD_MODE=CHECKMEM; patched some memory leaks 2022-12-09 14:26:31 +01:00
cozis 5284251e19 executable dumps were always written to stdout. Now they can be written to any stream 2022-12-08 12:56:03 +01:00
cozis 57b4f37d3a adjusted examples to use -> 2022-12-08 03:15:05 +01:00
cozis f7d28556a1 new -> operator 2022-12-08 03:01:04 +01:00
cozis b114387728 example http parser 2022-12-07 23:48:16 +01:00
cozis 60c2d3ea88 updated compiler testcases 2022-12-07 18:45:22 +01:00
cozis 98374ee491 refactoring of the instruction table; removed unused instructions PUSHTYPTYP and ERROR; new modulo operator %; new examples fibonacci.noja and isprime.noja 2022-12-07 18:31:35 +01:00
cozis d483822538 bugfix. Buffer object implemented keysof but didn't register it in its type table 2022-12-07 14:38:42 +01:00
cozis 16ecd28dd9 better syntax highlighting for vscode 2022-12-07 14:35:57 +01:00
cozis a92e8a71cc bug fix 2022-12-06 23:58:13 +01:00
cozis 380b8a8917 new built-in keysof and rewrote the json parser 2022-12-06 22:43:13 +01:00
cozis 7e3eb6364a undid an oopsie 2022-12-06 17:56:57 +01:00
cozis a327aa1cf7 basic language support for sublime and vscode 2022-12-06 17:42:37 +01:00
cozis 8f2723c3aa added "any" type 2022-12-05 17:02:13 +01:00
cozis ea428fdca2 added sum types 2022-12-05 11:36:19 +01:00
cozis 7a07a1eb3c implemented nullable type notation 2022-12-04 18:39:42 +01:00
Francesco Cozzuto d610a973f4 cleaning up 2022-08-24 18:01:32 +02:00
Francesco Cozzuto cd74dda4a9 general cleanups. Removed lots of unused code and redundant error checks 2022-08-24 16:46:32 +02:00
Francesco Cozzuto 71e8a9e4cb a bunch of grammar fixes 2022-08-17 23:58:28 +02:00
Francesco Cozzuto 7e0144faa3 renamed unicode builtin to ord 2022-08-17 21:25:49 +02:00
cozis 95392846d6 filename typo 2022-08-18 21:05:03 +02:00
cozis 782985e8b7 reorganized build-ins and implement a circular queue as an example 2022-08-18 19:01:26 +02:00
cozis b5b3a3e315 removed unused files and made minor fixed to the docs 2022-08-18 16:32:24 +02:00
cozis 4d4aadff66 more docs on functions 2022-08-18 16:26:37 +02:00
cozis 449c2073a7 docs about loops and functions 2022-08-18 15:53:19 +02:00
cozis 2da122a5ab some language docs 2022-08-18 05:46:38 +02:00
cozis e4bc4fe253 minor cleanups 2022-08-17 19:54:28 +02:00
cozis 6ba7fd21ef modified C api for native functions 2022-08-17 04:33:00 +02:00
cozis 919bc6fcbd fixed compiler warnings for release builds 2022-08-16 22:45:46 +02:00
cozis 7b9bf06630 fixed compiler tests after adding the EXIT instruction 2022-08-16 21:56:49 +02:00
cozis 0e94f644ab moved utility functions in src/lib/utils 2022-08-16 21:48:59 +02:00
cozis 3209afb513 cleanups 2022-08-16 18:54:49 +02:00
cozis 4d4e365002 made the import path relative to the current script 2022-08-16 18:41:29 +02:00
cozis 0a090c4cfa first draft of import builtin function 2022-08-16 17:35:58 +02:00
cozis 9935142a1e worked on the example noja json parser 2022-08-15 20:13:25 +02:00
cozis d9fd452b8b implemented default arguments 2022-08-15 19:33:46 +02:00
cozis 4a326bff7e bugfix! Missing error check in argument parsing routine 2022-08-15 16:38:16 +02:00
cozis cb5e41b814 added OPTP_IDX to distinguish address operands from OPTP_INT integer operands in an executable 2022-08-15 14:18:57 +02:00
cozis 8cac46440b updated code sample in the readme 2022-08-15 04:16:30 +02:00
cozis 6bd60bc84a added argument type annotations and runtime checks. To do that new opcodes were created (PUSHTYP, PUSHTYPTYP, ERROR) 2022-08-14 16:25:47 +02:00
cozis bc516f470a new built-in variables for each type 2022-08-14 13:04:53 +02:00
cozis d24877c5f3 made and and or operators short circuits 2022-08-13 23:37:22 +02:00
cozis 8565722bab deleted unused files 2022-08-13 20:08:42 +02:00
cozis ed02bbc9be refactorin' (incapsulated CodegenContext from codegen.c) 2022-08-13 17:42:37 +02:00
cozis 1ee68745a6 renamed compile() to codegen() and created new compile() that transforms a Source to an Executable directily 2022-08-13 15:42:34 +02:00
cozis ed62aa8a58 cleaned up bytecode generation code 2022-08-13 14:46:22 +02:00
cozis e064195f6d fixed compiler errors 2022-08-12 17:45:24 +02:00
cozis 29397402d2 cleanups in codegen code 2022-08-12 17:41:25 +02:00
cozis 5342501a15 removed compilation artifact and added ignore rule for it 2022-08-12 05:33:30 +02:00
cozis 18e936f0ad cleanups and more test cases 2022-08-12 05:30:41 +02:00
cozis f630830b3c new testing infrastructure and basic test suite 2022-08-12 02:26:40 +02:00
cozis 2f87e46beb bubblesort example in bytecode 2022-08-11 22:31:26 +02:00
cozis 36ffc24b9a minor updated in the readme 2022-08-11 19:33:40 +02:00
cozis 9c64635bdb removed makefile logs used to debug 2022-08-11 19:29:19 +02:00
cozis f25d78538b makefile supports multiple build modes. Deleted old shell build script 2022-08-11 19:26:03 +02:00
cozis cf11a1c6b3 removed old compilation artifacts 2022-08-11 18:25:11 +02:00
cozis 385e0145b8 new ignore rule for compilation artifacts and makefile rule for installation 2022-08-11 18:18:40 +02:00
cozis c3d4479e97 updated makefile. Now the noja interpreter is build as a library and then linked to the cli 2022-08-11 17:57:56 +02:00
cozis f8cd57da43 the interpreter implementation is now hidden behing the src/libnoja/noja.h facade. Also I wrote a disassembler that lets you build noja executables by specifying the bytecode directly in a text format 2022-08-11 16:26:56 +02:00
cozis 784914c7e6 changed the fuzzing script to use the makefile 2022-05-21 23:01:51 +02:00
cozis 5194a9082e minor formatting changes 2022-05-21 22:59:13 +02:00
Francesco Cozzuto fdf5bdc267 bug fix 2022-04-15 19:17:42 +02:00
Francesco Cozzuto 3117e7339e bug fix. Didn't check for division by zero 2022-04-15 19:02:52 +02:00
Francesco Cozzuto 99b47fc824 parsing bug fix 2022-04-15 18:56:09 +02:00
Francesco Cozzuto e60dfbd92a enhanced build script, added script that starts fuzz testing using afl and one to test coverage 2022-04-15 18:54:39 +02:00
Francesco Cozzuto ab3848c8cc fixed clang warnings 2022-04-15 16:28:45 +02:00
Francesco Cozzuto 9f825673c3 the language's heap doesn't grow anymore during a collection. Instead the collection throws an error to the runtime 2022-04-15 16:21:10 +02:00
cozis f8fdf7d0df bug fix 2022-04-06 23:49:39 +02:00
cozis 13f80915c7 bug fix 2022-04-06 13:40:55 +02:00
cozis ed63f09b57 added tuples and multiple return values 2022-04-06 13:22:31 +02:00
cozis 866648ed16 typo 2022-04-04 00:44:06 +02:00
cozis d26c285aa5 script that triggers a bug 2022-04-04 00:31:12 +02:00
cozis 07137b50c6 new curly bracket coding convention 2022-04-04 00:07:33 +02:00