1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-08-15 20:02:56 +02:00
Commit Graph

994 Commits

Author SHA1 Message Date
Tim Voronov
09df483164 Refactor iterator-related opcodes (OpIterSkip, OpIterLimit) to fix operand handling and label resolution in vm, emitter, and disassembler. Update instruction formatting and improve disassembler output. 2025-07-03 18:03:04 -04:00
Tim Voronov
a1e98c3c3c Refactor logical operator compilation to optimize short-circuit evaluation, add assembly utilities (assembler and disassembler), and migrate integration tests from bytecode to compiler package for improved organization. 2025-07-03 16:56:24 -04:00
Tim Voronov
ea827fc2f4 Refactor FOR-WHILE loop compilation to ensure proper LoopKind handling and value/key resolution, update map operations, and add integration tests for COLLECT scenarios. 2025-07-02 22:34:14 -04:00
Tim Voronov
0b528b62c0 Refactor FOR-WHILE loop compilation to ensure proper LoopKind handling and value/key resolution, update map operations, and add integration tests for COLLECT scenarios. 2025-07-02 21:14:33 -04:00
Tim Voronov
b3970fbb43 Add integration tests for FOR-WHILE loops with LIMIT scenarios and custom function usage 2025-07-02 20:02:37 -04:00
Tim Voronov
d2098cadb8 Refactor FOR-WHILE loop compilation to ensure compatibility with FOR-IN loops, update value register resolution, and add integration tests for sorting scenarios. 2025-07-02 16:33:50 -04:00
Tim Voronov
802672711e Refactor FOR-IN loop cleanup handling; add conditional jump logic for custom iterators. Update integration test case to replace SkipCaseArray with CaseArray. 2025-07-02 14:46:24 -04:00
Tim Voronov
b66007e9c7 Migrate integration tests from bytecode to compiler package for improved structure and clarity. 2025-07-02 13:33:39 -04:00
Tim Voronov
74a2ced589 Introduce base utilities in integration tests for improved reuse and consistency. Refactor test cases to use base.Run and base.Exec. Add new shortcuts.go for shared helpers. 2025-07-02 13:31:02 -04:00
Tim Voronov
2f25e4e4be Remove redundant base imports from integration tests and refactor usage of UseCase to TestCase for improved clarity and consistency. 2025-07-02 13:30:01 -04:00
Tim Voronov
b95d39a552 Refactor loop handling and RETURN statement compilation; enhance register assignment, optimize operand usage, and simplify integration test cases with new helpers and better error handling. 2025-07-02 12:54:01 -04:00
Tim Voronov
17a0778331 Refactor FOR and WHILE loop compilation to introduce labeled jumps, add LoopKind distinction for ForIn and ForWhile loops, and improve loop operation consistency. Update integration and bytecode tests with new helper functions and scenarios. 2025-07-02 12:35:40 -04:00
Tim Voronov
714672ceb0 Refactor emitter and loop compilation to replace positional jumps with labeled jumps, improve label management, and optimize control flow handling. Update integration tests and add utility for safe function execution. 2025-07-01 17:34:48 -04:00
Tim Voronov
223c28aa6b Remove outdated compiler benchmarks, refactor function registration in namespace, and migrate math stdlib functions to simplified argument handling. Add new benchmarks for function calls and sorting scenarios. 2025-06-30 17:02:09 -04:00
Tim Voronov
e09f981560 Refactor loop and dataset handling; introduce Patchx method for emitter, add FindParent to loop table, and update DISTINCT logic with nested loop support. Expand integration tests for DISTINCT scenarios. 2025-06-28 14:29:53 -04:00
Tim Voronov
7dbcc24e04 Add COUNT_DISTINCT function to stdlib collections, update related integration tests, and refactor min/max calculation methods for clarity and consistency. 2025-06-27 14:42:47 -04:00
Tim Voronov
f48f819607 Remove obsolete TestCollectAggregateAdditional test file, refactor aggregation logic with skipping empty accumulators, add Length support to collectors and sorters, and update integration tests for grouping and array operations. 2025-06-27 13:47:00 -04:00
Tim Voronov
54c036e9c8 Remove unused HTML element attribute manipulation functionality, including attribute getters, setters, and related utility code, across drivers and stdlib. 2025-06-25 20:48:48 -04:00
Tim Voronov
e60a02ec12 Refactor loop aggregation logic; optimize destination register handling, adjust collector allocation, and improve resource management in nested aggregation scenarios. Update integration tests with consistent formatting for nested FOR cases. 2025-06-25 16:23:39 -04:00
Tim Voronov
dd817e7115 Add nested FOR loop integration tests with grouping and concatenated gender scenarios 2025-06-25 14:31:52 -04:00
Tim Voronov
8731b7d71f Refactor loop and collect compilation; replace lc and cc parameters with c for consistency, unify naming conventions across loop and collect compilers, and improve method clarity and readability. 2025-06-25 14:10:41 -04:00
Tim Voronov
b49c73250e Add additional nested FOR loop test cases with sorted concatenation 2025-06-25 11:35:16 -04:00
Tim Voronov
df45d13b56 Refactor loop and sort compilation; update loop position handling, improve dataset patching logic, and restructure nested sorting and collector workflows. Add integration tests for distinct and nested FOR loops. 2025-06-25 11:21:18 -04:00
Tim Voronov
3433e3d4d1 Add new test case for grouping and aggregating values with calculated age ranges 2025-06-24 18:24:51 -04:00
Tim Voronov
f859c4ead7 Refactor collector and aggregator handling; add Get and Close methods to collectors and sorters, restructure aggregation logic with multi-argument support, and update loop compilation to optimize resource management and key-value integration 2025-06-24 18:19:22 -04:00
Tim Voronov
4de53a5665 Refactor loop compilation; update initialization logic for zero/one registers and adjust range iteration handling, restructure range iterator tests, and align imports for consistency 2025-06-19 19:52:10 -04:00
Tim Voronov
215501c78f Refactor loop and collect compilation; introduce key-value pairs for collection, unify loop handling, restructure methods, and improve aggregation and grouping logic 2025-06-19 18:05:38 -04:00
Tim Voronov
4f59a07e99 Refactor loop sort compilation; restructure LoopSortCompiler, introduce key-value pair handling for sort clauses, and improve sorting logic clarity 2025-06-19 16:57:19 -04:00
Tim Voronov
87ace590bf Refactor loop compilation; introduce LoopSortCompiler and LoopCollectCompiler to unify sort and collect logic, restructure loop methods, and improve clarity 2025-06-19 16:54:13 -04:00
Tim Voronov
f3e660ed5e Refactor collect compilation; rename grouping methods to unify collect logic and improve clarity 2025-06-18 17:29:05 -04:00
Tim Voronov
2e78bc4c64 Refactor collect handling; restructure group and aggregation logic, unify loop operations, and improve method clarity 2025-06-18 17:22:39 -04:00
Tim Voronov
16137db876 Refactor collect aggregation; improve loop handling, add initialization/binding methods, and restructure aggregation logic for grouped and global cases 2025-06-18 16:55:46 -04:00
Tim Voronov
8e3b250201 Refactor integration tests and imports; organize imports alphabetically, improve test structuring, and enable previously skipped test cases 2025-06-17 15:59:38 -04:00
Tim Voronov
54fa2a0d51 Refactor compiler tests and internals; introduce new base test utilities, replace and restructure integration tests, and update register and constant handling 2025-06-11 21:46:27 -04:00
Tim Voronov
1520861ea0 Refactor opcode handling; add string representation for Opcode to improve readability and debugging 2025-06-11 16:18:50 -04:00
Tim Voronov
7d317aca3c Refactor compiler context; rename FuncContext to CompilerContext and update related references for improved clarity 2025-06-11 11:42:47 -04:00
Tim Voronov
b0158406da Refactor compiler internals; rename files and update context usage for improved clarity and structure 2025-06-11 10:28:09 -04:00
Tim Voronov
775e24b5b2 Refactor compiler internals; rename files and update context usage for improved clarity and structure 2025-06-11 10:12:42 -04:00
Tim Voronov
09f47e66fc Refactor compiler structure; move internal packages to core and update references 2025-06-11 10:00:57 -04:00
Tim Voronov
cf87b63720 Refactor compiler components; introduce CatchStack and enhance FuncContext for improved state management 2025-06-11 08:02:05 -04:00
Tim Voronov
fb26157bf5 Rename and refactor constants and loop management; introduce new context and update related structures 2025-06-09 21:23:51 -04:00
Tim Voronov
e7bf6de25f Refactor register allocation and symbol management; introduce ConstantsPool for deduplication 2025-06-09 21:16:24 -04:00
Tim Voronov
11f493ef79 wip 2025-06-09 20:34:04 -04:00
Tim Voronov
8ba359166f Refactor file structure and update import paths for consistency 2025-06-09 17:24:10 -04:00
Tim Voronov
0a007a36c3 Introduce CollectorType enumeration and refactor loop handling for aggregation support 2025-06-09 16:14:34 -04:00
Tim Voronov
f3fc807789 Refactor loop handling and introduce support for aggregation in COLLECT clauses
Enhance loop processing with new aggregation support in `COLLECT` clauses. Introduce `emitCollectAggregator` for handling advanced accumulator logic. Optimize symbol scope management with new utility `DefineVariableInScope`. Skip outdated test cases and add support for aggregation operations such as `MIN` and `MAX` in tests.
2025-06-09 14:29:04 -04:00
Tim Voronov
889365c56f Categorize and group opcodes; improve readability and maintainability of opcode.go 2025-06-06 16:38:07 -04:00
Tim Voronov
176fe8ce4f Refactor collectors and sorters; introduce Transformers
Refactor `Collector` into `Transformer` for enhanced flexibility and modularity. Introduce `Sorter` and `MultiSorter` as specialized transformers to handle sorting operations. Streamline VM operations by replacing dataset-based methods with transformer logic. Add encoding/decoding utilities for multiple sorting directions. Optimize `Emit` logic and update related tests.
2025-06-06 16:34:20 -04:00
Tim Voronov
38625ad059 Refactor collectors and sorters; introduce Transformers
Refactor `Collector` into `Transformer` for enhanced flexibility and modularity. Introduce `Sorter` and `MultiSorter` as specialized transformers to handle sorting operations. Streamline VM operations by replacing dataset-based methods with transformer logic. Add encoding/decoding utilities for multiple sorting directions. Optimize `Emit` logic and update related tests.
2025-06-06 16:34:14 -04:00
Tim Voronov
24b9a7697b Move compiler-related components to internal package
Refactored the structure by relocating `compiler` elements into an `internal` package. Made `visitor` struct and methods exported for broader access. Added new utility methods in `Emitter` and `RegisterAllocator` to optimize functionality.
2025-06-06 11:19:29 -04:00