Irmen de Jong
|
f4b2264fcf
|
fix struct type checks for subroutine call arguments
|
2025-05-14 23:33:55 +02:00 |
|
Irmen de Jong
|
913ab03963
|
get rid of invalid ARRAY_STRUCT data type (arrays of struct instance are not yet supported)
|
2025-05-14 20:43:00 +02:00 |
|
Irmen de Jong
|
38448e471c
|
Merge branch 'master' into structs
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/ForLoopsAsmGen.kt
# codeGenIntermediate/src/prog8/codegen/intermediate/IRCodeGen.kt
# examples/test.p8
|
2025-05-13 23:42:13 +02:00 |
|
Irmen de Jong
|
67231af623
|
fix forloop codegen over non-split word arrays of length >= 64 elements
|
2025-05-13 23:32:26 +02:00 |
|
Irmen de Jong
|
435dfbb932
|
optimize: rewrite suitable when into on..goto
|
2025-05-13 01:12:58 +02:00 |
|
Irmen de Jong
|
ba93966474
|
optimize codegen: shortcut redundant jumps in when statement
|
2025-05-13 00:35:22 +02:00 |
|
Irmen de Jong
|
ea8d17cdb2
|
optimized the cx16 multi-irq dispatcher used in cx16.enable_irq_handlers()
|
2025-05-12 23:26:54 +02:00 |
|
Irmen de Jong
|
924e28e9b3
|
Merge branch 'master' into structs
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/AsmGen.kt
# compiler/src/prog8/compiler/astprocessing/CodeDesugarer.kt
# compiler/src/prog8/compiler/astprocessing/SimplifiedAstMaker.kt
# compilerAst/src/prog8/ast/AstToSourceTextConverter.kt
# compilerAst/src/prog8/ast/antlr/Antlr2Kotlin.kt
# compilerAst/src/prog8/ast/walk/AstWalker.kt
# compilerAst/src/prog8/ast/walk/IAstVisitor.kt
# docs/source/todo.rst
# examples/test.p8
# parser/src/main/antlr/Prog8ANTLR.g4
|
2025-05-11 23:23:06 +02:00 |
|
Irmen de Jong
|
31c1bf8bc5
|
added on..goto/call statement
|
2025-05-11 21:37:44 +02:00 |
|
Irmen de Jong
|
37d4055036
|
translate newline '\n' to char code 13 in various encodings such as ISO (used to be 10)
This means that when printed, such newlines will now properly go to the next line in these encodings too (ISO variants, KATAKANA).
|
2025-05-11 19:45:24 +02:00 |
|
Irmen de Jong
|
abbb7d7ba3
|
fix struct pointers in subroutine parameters and return values
|
2025-05-11 02:08:59 +02:00 |
|
Irmen de Jong
|
59c378089e
|
fix some struct type and symbol lookup errors
|
2025-05-11 00:52:35 +02:00 |
|
Irmen de Jong
|
246e4f35a6
|
Merge branch 'master' into structs
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/assignment/AssignmentAsmGen.kt
# codeGenIntermediate/src/prog8/codegen/intermediate/ExpressionGen.kt
# compiler/test/ast/TestConst.kt
# docs/source/todo.rst
# examples/test.p8
|
2025-05-10 16:36:16 +02:00 |
|
Irmen de Jong
|
99b9370178
|
fix various bugs around word-indexing combined with address-of: &buffer[2000]
|
2025-05-10 16:22:05 +02:00 |
|
Irmen de Jong
|
506062c6b6
|
start implementing ptr deref augmented assigns
|
2025-05-09 23:05:27 +02:00 |
|
Irmen de Jong
|
8353c689ca
|
start making '&' (address-of) return a typed pointer, fixes some errors
|
2025-05-08 23:40:41 +02:00 |
|
Irmen de Jong
|
e98e6f70ac
|
Merge branch 'master' into structs
# Conflicts:
# compiler/src/prog8/compiler/astprocessing/AstChecker.kt
# compiler/test/TestTypecasts.kt
# docs/source/todo.rst
# examples/test.p8
# gradle.properties
|
2025-05-07 23:26:21 +02:00 |
|
Irmen de Jong
|
53e442d509
|
fix regression in 11.3.1: allow bitwise operation between different types as long as they're the same size.
|
2025-05-07 23:06:45 +02:00 |
|
Irmen de Jong
|
134352ed7c
|
Merge branch 'master' into structs
# Conflicts:
# compiler/test/TestTypecasts.kt
# docs/source/todo.rst
# examples/test.p8
# virtualmachine/src/prog8/vm/VmProgramLoader.kt
|
2025-05-07 22:32:41 +02:00 |
|
Irmen de Jong
|
f7cbfdff06
|
skip this test for now
|
2025-05-07 21:14:52 +02:00 |
|
Irmen de Jong
|
b28ee0819f
|
revert behavior change of @dirty variables, instead document the initialization behavior correctly in the docs
they get zeroed at program startup (like other uninitialized BSS variables), just not on entry in the subroutine.
|
2025-05-07 21:07:12 +02:00 |
|
Irmen de Jong
|
5de626aab8
|
support comparison operators on pointers
|
2025-05-06 22:26:27 +02:00 |
|
Irmen de Jong
|
701f155951
|
Merge branch 'master' into structs
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/ProgramAndVarsGen.kt
# compiler/test/TestSymbolTable.kt
# docs/source/todo.rst
# examples/test.p8
# intermediate/src/prog8/intermediate/IRFileReader.kt
# intermediate/src/prog8/intermediate/IRFileWriter.kt
# intermediate/src/prog8/intermediate/IRSymbolTable.kt
# simpleAst/src/prog8/code/SymbolTable.kt
# simpleAst/src/prog8/code/SymbolTableMaker.kt
# virtualmachine/src/prog8/vm/VmProgramLoader.kt
|
2025-05-06 17:59:36 +02:00 |
|
Irmen de Jong
|
8c324d7514
|
tweak error
|
2025-05-06 17:50:53 +02:00 |
|
Irmen de Jong
|
522958e0e9
|
@dirty variables now actually end up in the uninitialized BSS_NOCLEAR section
|
2025-05-06 01:41:34 +02:00 |
|
Irmen de Jong
|
af920d1427
|
pointer arithmetic for '-', fixed '+'
|
2025-05-05 21:06:49 +02:00 |
|
Irmen de Jong
|
779ebc0537
|
pointer arithmetic for '+'
|
2025-05-05 18:09:19 +02:00 |
|
Irmen de Jong
|
38949b82c3
|
type check tuning
|
2025-05-05 15:41:32 +02:00 |
|
Irmen de Jong
|
d11386ef26
|
type check tuning
|
2025-05-04 23:23:21 +02:00 |
|
Irmen de Jong
|
0e0377d1f0
|
IR/VM implemented struct allocations and initialization
|
2025-05-04 14:04:44 +02:00 |
|
Irmen de Jong
|
55e0dbab27
|
preparing for statically allocating struct instances
|
2025-05-03 23:44:29 +02:00 |
|
Irmen de Jong
|
4dc82f2c83
|
preparing for statically allocating struct instances
|
2025-05-03 19:00:27 +02:00 |
|
Irmen de Jong
|
1ba5587404
|
allow syntax for declaring variables with struct instance type
|
2025-05-03 16:14:22 +02:00 |
|
Irmen de Jong
|
835c4b6da3
|
allow multi-field declarations in structs, get rid of . -> ^^ rewrite
|
2025-05-03 12:32:29 +02:00 |
|
Irmen de Jong
|
dbd955b61e
|
tweak typecheck and better code for constant indexes in pointer derefs
|
2025-05-02 23:44:26 +02:00 |
|
Irmen de Jong
|
e0dea89477
|
added support for ptr[x].field
|
2025-05-02 22:16:20 +02:00 |
|
Irmen de Jong
|
6fc2902895
|
fixing ptr traversal typecheck issues
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
c96e4b40d4
|
building syntax support for ptr[x].field
attempting to do this by making '.' an expression operator
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
2661d3c489
|
allow array syntax on pointers
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
b89bbb9281
|
allow pointers in subroutines params and return values
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
696bf636ed
|
better parsing of directive names results in better error messages when an invalid one is found
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
40952a788a
|
PtSub: params and returns now as children (in PtSignature node) for easier Ast walking
PtPointerDeref: same but for its start identifier
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
0162e7a0c1
|
fix the scoping problems on subtypes
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
6ce099f176
|
IR: fix ptr type checks and struct field assignment errors
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
63a410a6df
|
implicit cast to bool for numeric or pointers as condition arguments (to if, while, until)
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
803e6bd81a
|
fix uword vs pointer type errors and casts
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
88269628a2
|
had to turn ^type syntax into ^^type to avoid confusion with the eor operator once again
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
b920d553a0
|
make address-of dereference work
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
5e2d0d0dfc
|
fix param order of AssignTarget
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
2ae3bd68eb
|
more pointer dereferencing for chains
|
2025-05-02 00:41:42 +02:00 |
|