Commit Graph
100 Commits
Author SHA1 Message Date
samsonium d91ba3d63a fix: add missing RM_ENVTABLE opcode 2026-11-05 18:39:48 +03:00
samsonium de0e88f2e9 wip: begin writer impl for externs 2026-11-05 04:01:23 +03:00
samsonium 66f31ab865 fix: fix parser/generator issues 2026-11-05 03:46:16 +03:00
samsonium bd8272abc7 feat: finish generator 2026-11-05 00:04:12 +03:00
samsonium 181458ecda feat: add prepared error/null ok returns from gen_* functions 2026-11-04 22:52:40 +03:00
samsonium aae183c0c0 ref: add type/classname result for each gen_* function 2026-11-04 22:25:25 +03:00
samsonium b278e8bb74 wip: working on generator
- Feat: add break handler
- Feat: add class handler
- Feat: add format string handler
- Feat: add loop handler
2026-11-04 20:04:33 +03:00
samsonium 7fe3fe3ff3 wip: working on generator
- Feat: add typedefs' branches
2026-11-04 19:33:17 +03:00
samsonium 731b662cfc wip: working on generator
- Feat: add extern type resolving to type slot
- Feat: add extern block handling
- Feat: add extern function handling
2026-11-04 18:30:02 +03:00
samsonium f2b88e448e feat: add .clangd 2026-11-04 17:16:52 +03:00
samsonium c5c522cde8 feat: add generators' main entry 2026-11-04 17:10:21 +03:00
samsonium c0bd0d95b2 fix: add classname value for structs and handles 2026-11-04 17:04:09 +03:00
samsonium 26decf2626 wip: working on extern
- Feat: add new generator scope to replace walker
- Feat: add generators' context functions
- Feat: add generators' ops array functions
- Feat: add generators' utility functions
2026-11-04 17:03:48 +03:00
samsonium 358ede4c8c wip: working on extern
- Feat: stabilize extern header
- Feat: add externs to walker
- Feat: add extern node walking logic
2026-11-02 20:31:43 +03:00
samsonium 6a035a71eb wip: working on extern
- Ref: move extern header into common scope
- Feat: add extern symbols descriptors
- Feat: add `is_out` flag in declaration node
2026-11-02 19:24:09 +03:00
samsonium 8975d2fece feat: add out type arg info storing in declaration node 2026-11-02 18:55:40 +03:00
samsonium 3dd70ac293 wip: working on extern
Add TODOs for new nodes
2026-11-01 21:24:23 +03:00
samsonium 4d9c4ddd21 wip: working on walker (externs)
Begin working on extern walking (libs metadata collet + opcode gen)
2026-10-31 18:45:33 +03:00
samsonium a4aa220cfa feat: implement extern block analyzer 2026-10-31 01:58:10 +03:00
samsonium 5c96f96220 wip: working on dynamic linking
- Feat: add analyzers for:
  - external functions
  - reference
  - structures
  - type definitions
- Feat: add new nodes to debug print (ast)
2026-10-30 20:32:14 +03:00
samsonium f769313169 feat: implement extern block reading and parsing 2026-10-29 22:13:28 +03:00
samsonium 0448be0d38 ref: update linking example 2026-10-29 20:24:06 +03:00
samsonium 01dabd2bdd ref: remove build-release dependency from install make target 2026-10-29 20:23:54 +03:00
samsonium 6f54286724 doc: update project building steps 2026-10-29 18:18:50 +03:00
samsonium fe5fcd7b96 feat: add compiler installation step
- Ref: add `-debug` suffix to debug targets
- Ref: remove `-release` suffix from release targets
- Feat: add `make install` command
- Feat: add cmake variables:
  - `FZL_TESTS` for enable testing
  - `FZL_SKIP_C` to not build the compiler
  - `FZL_SKIP_VM` to not build the vm
2026-10-29 18:18:35 +03:00
samsonium a885746fdd feat: add object escaping on assing to variable in outer env 2026-10-29 17:46:56 +03:00
samsonium 2cf96d06c6 fix: fmtstring printing 2026-10-29 17:46:20 +03:00
samsonium bbdf91ee02 fix: cutted space in string literal begin 2026-10-29 17:46:08 +03:00
samsonium 27374a96eb fix: AST levels print 2026-10-29 17:45:39 +03:00
samsonium dcab2a8875 feat: add runtime speed comparison between fz, c and cpython 2026-10-29 05:21:31 +03:00
samsonium 7b804b8809 feat: optimize runtime (2x+ faster) 2026-10-29 05:21:00 +03:00
samsonium eeca5e653d feat: add benchmar Make target 2026-10-29 03:25:48 +03:00
samsonium f4c97795fa feat: optimize VM using dispatch table 2026-10-29 02:59:38 +03:00
samsonium e2de23ed57 fix: suppress libffi cmake warnings 2026-10-29 00:26:33 +03:00
samsonium 8c90d54782 ref: split parser into separate files 2026-10-29 00:08:44 +03:00
samsonium 62b0030e4a ref: move analyzer fn defs into compiler/iternals 2026-10-28 23:24:17 +03:00
samsonium bbdaa4a9b9 ref: split reader into separate files 2026-10-28 23:12:46 +03:00
samsonium 7c04d8b7ec ref: remove unused loop checker 2026-10-28 23:12:06 +03:00
samsonium 567bf49d27 wip: working on dynamic linking
- Feat: add example for wrapping dynamically linked library
- Feat: add new tokens (import, extern, type, handle, struct, ref, out)
2026-10-28 21:43:56 +03:00
samsonium d93c315359 fix: clear first AST node if got error inside parse_program 2026-10-28 19:37:17 +03:00
samsonium e11089c90f feat: implement format strings 2026-10-28 17:57:18 +03:00
samsonium ea28c470d2 wip: begin dynamic library loading dev 2026-10-28 15:20:58 +03:00
samsonium 70bf63e2ea feat: add libffi cmake dependency 2026-10-28 00:31:09 +03:00
samsonium 6498c73960 ref: move linked list example into tests folder 2026-10-27 15:42:02 +03:00
samsonium dc80de66e4 fix: review problems 2026-10-27 15:40:25 +03:00
samsonium c61322718d fix: some analysis stage problems 2026-10-27 14:12:09 +03:00
samsonium 411d291a2c feat: add VM protection for classes w/o fields 2026-10-27 12:55:46 +03:00
samsonium aa7a06bd22 feat: finish implementing analyzer 2026-10-27 12:50:58 +03:00
samsonium a263b6206f wip: working on analyzer
- Feat: add assigns analysis
- Fix: change node check condition in binary math analysis
- Feat: add unary and binary conditions analysis
- Fix: add type passtrough in declaration analysis
- Feat: add unary math analysis
2026-10-27 12:21:49 +03:00
samsonium 25991c6f15 wip: working on analyzer
- Feat: add binary math analysis
- Fix: check for function context in block analysis
- Feat: add 'break' analysis
- Fix: few fixes in call analysis
- Feat: add class analysis
- Feat: add construct analysis
- Feat: add declaration analysis
- Feat: add field analysis
- Feat: add function analysis
- Feat: add loop analysis
- Ref: updated utilities and context functions
2026-10-27 05:18:36 +03:00
samsonium d7630dbb6a wip: working on analyzer
- Feat: implement return analyzer
- Fix: add block return check if inside function
2026-10-26 22:20:09 +03:00
samsonium a70ad011f3 wip: working on analyzer
- Feat: add `nest_ctx` and `fin_ctx` fns for working with context and
environment
- Feat: add block analyzer
- Feat: add conditional statement analyzer
2026-10-26 21:34:54 +03:00
samsonium 62ae05b4cd wip: working on analyzer
- Feat: now symbols table store node on PUT
- Feat: call analyzer with callee resolving and arguments validate
- Feat: identifier analyzer
- Feat: analyzer utils (types compat, tok-to-type, type-to-string)
2026-10-26 20:47:24 +03:00
samsonium 4904f40037 wip: working on analyzer 2026-10-25 19:24:02 +03:00
samsonium 6d1f1ce66e fix: memory leak in postfix parsing function 2026-10-25 04:57:01 +03:00
samsonium c03fddf47f fix: fixes in compiler 2026-10-25 04:52:18 +03:00
samsonium 3bb60071bb feat: add infinite loop control args 2026-10-25 04:52:07 +03:00
samsonium 04fdd58e4f fix: fix typo in examples 2026-10-25 04:51:37 +03:00
samsonium e00e609589 ref: rename 'hard-1' test to 'linked-list' 2026-10-25 01:56:20 +03:00
samsonium a37b8cfe6e ref: remove test examples 2026-10-25 01:56:07 +03:00
samsonium c4eb148d17 ref: temporary comment out infinite loop check 2026-10-25 01:54:49 +03:00
samsonium dbca3129ab feat: add "while-not-null" test 2026-10-25 01:54:07 +03:00
samsonium e3878047d7 upd: rename neg1 tests (for negative in runtime) to negr 2026-10-25 01:53:46 +03:00
samsonium 7cfb8efef4 feat: implement break 2026-10-22 21:30:32 +03:00
samsonium b5ae959d14 feat: add test name format for runtime-only error 2026-10-22 21:30:17 +03:00
samsonium 0e319308a7 wip: working on infinite loop handling in vm 2026-10-22 20:25:48 +03:00
samsonium a20743a835 feat: implement simple infinite loop checker 2026-10-22 20:24:48 +03:00
samsonium 5dde75523d wip: working on loop infinity checker 2026-10-22 18:25:07 +03:00
samsonium cc5bbd61f2 feat: implement loops 2026-10-22 18:24:28 +03:00
samsonium 0188991f4d feat: add new tests for loops 2026-10-22 03:39:04 +03:00
samsonium 73a2a50a0b feat: add error message for variable redefenition attempt 2026-10-21 04:42:58 +03:00
samsonium 4a366cb0ac fix: missing ';' in variables example 2026-10-21 04:42:41 +03:00
samsonium c7cce94119 fix: add AST freeing on errors; add checks for parser, walker and writer are not NULL 2026-10-21 04:31:57 +03:00
samsonium 673a28fbc7 fix: check for EOF on block parsing (closing brace) 2026-10-21 04:31:02 +03:00
samsonium 160c6c6488 fix: incorrect test file directory prefix 2026-10-21 04:30:16 +03:00
samsonium c8f3cd61f4 ref: add build-release make target for building c/vm without sanitizer libs 2026-10-21 04:01:23 +03:00
samsonium 138d503bce feat: add examples with descriptions 2026-10-21 04:00:48 +03:00
samsonium e49ebba346 feat: add new tests 2026-10-21 04:00:03 +03:00
samsonium 80f07dc7c6 doc: fix typo in philosophy doc name 2026-10-21 02:29:27 +03:00
samsonium c43b5dfef0 feat: translate doc to en, add index files 2026-10-19 21:34:12 +03:00
samsonium 195b82408b doc: add 'basics-and-types' doc 2026-10-19 21:23:44 +03:00
samsonium 5e58ea1796 Merge branch 'master' into docs 2026-10-19 20:11:53 +03:00
samsonium 1e518c4c82 fix: sanitizer checks fix (iteration 3 - final) 2026-10-19 20:11:48 +03:00
samsonium 3f2f03f931 fix: sanitizer checks fix (iteration 2) 2026-10-19 19:54:11 +03:00
samsonium 1289f6c150 fix: sanitizer checks fix (iteration 1) 2026-10-19 19:41:39 +03:00
samsonium 04b367e7a0 fix: warnings fix (after -Wall -Wextra) 2026-10-19 18:39:40 +03:00
samsonium d09468cc6b fix: critical fixes for newer compiler versions
- Add token check before parsing statement or program
- Fix program freeing
2026-10-19 17:50:31 +03:00
samsonium d22b4009b0 doc: add stacks doc 2026-10-19 17:24:40 +03:00
samsonium a8d42f86c4 doc: add operators and types_system docs 2026-10-19 16:49:07 +03:00
samsonium a3319cd3be doc: add builtins and errors_print documents 2026-10-19 14:23:45 +03:00
samsonium a6d21a65cb doc: add full EBDF grammar 2026-10-19 12:02:10 +03:00
samsonium 2d006d5e2b ref: remove old docs variant 2026-10-19 12:01:59 +03:00
samsonium 81d07aa6e5 doc: add book,internal,reference,builtins sections 2026-10-19 11:11:43 +03:00
samsonium 306be6b82d feat: add first two book topics 2026-10-19 04:05:00 +03:00
samsonium c2532ae11f upd: update usage hint in vm and compiler 2026-10-19 04:04:32 +03:00
samsonium 345d711570 feat: add ru docs 2026-10-19 03:15:35 +03:00
samsonium 801b28e27d feat: implement address deferencing 2026-10-18 18:42:02 +03:00
samsonium c0df5fc9d4 feat: add exit builtin function 2026-10-18 18:41:49 +03:00
samsonium f0e641928d upd: add exit on error in examples 2026-10-18 18:40:48 +03:00
samsonium dce64e8b4d fix+ref: small objects rework
- Add nested objects escape on ESCAPE opcode
- Stabilize objects work in heap
2026-10-18 17:38:49 +03:00