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
|
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
|
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
|
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
|
e0dea89477
|
added support for ptr[x].field
|
2025-05-02 22:16:20 +02:00 |
|
Irmen de Jong
|
ccc6b56e35
|
added link to prog8reu library
|
2025-05-02 19:38:59 +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
|
37da3e2170
|
parser
|
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
|
476a4bac8e
|
IR: LOADI allows r1 and r2 to be the same for pointer chain dereference optimalization
|
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
|
cca27faa3b
|
fix pointer value assignment (not dereferencing the actual pointer)
|
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
|
2ae3bd68eb
|
more pointer dereferencing for chains
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
8046023e82
|
pointer dereferencing for simple types (read and write)
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
e328520588
|
initial struct and typed pointer support
|
2025-05-02 00:41:40 +02:00 |
|
Irmen de Jong
|
7eb079050c
|
fix strings.hash() on 6502 CPU's. NOTE: now takes string pointer in AY instead of R0 on all platforms
|
2025-05-01 22:47:43 +02:00 |
|
Irmen de Jong
|
2fdd5543b2
|
release 11.3.1
|
2025-04-30 22:40:54 +02:00 |
|
Irmen de Jong
|
d04164c0a6
|
fix const evaluation of bitwise logical expressions (&, |, ^, <<, >>) of signed operands
|
2025-04-30 22:27:31 +02:00 |
|
Irmen de Jong
|
b047731f82
|
removed some redundant arguments
|
2025-04-25 23:27:06 +02:00 |
|
Irmen de Jong
|
4d91f92a2e
|
clearer error message
|
2025-04-25 19:38:45 +02:00 |
|
Irmen de Jong
|
98505d27b1
|
IR: fix invalid removal of label chunks and include asmsubs when looking for labels
|
2025-04-24 23:30:51 +02:00 |
|
Irmen de Jong
|
cd63a58ad9
|
IR: get rid of problematic PREPARECALL pseudo instruction
|
2025-04-24 22:32:40 +02:00 |
|
Irmen de Jong
|
170f8dd092
|
IR: new CALLFAR instructions to support callfar into another bank
|
2025-04-24 21:17:48 +02:00 |
|
Irmen de Jong
|
619dcb6a84
|
fix error in IR register typing
|
2025-04-24 20:50:19 +02:00 |
|
Irmen de Jong
|
99ae8ea52e
|
code cleanup
|
2025-04-24 18:51:03 +02:00 |
|
Irmen de Jong
|
dc031c30eb
|
add -version option to just print the compiler version and then exit
|
2025-04-24 18:13:35 +02:00 |
|
Irmen de Jong
|
8debc42381
|
slightly stricter assignment type compatibility checking
|
2025-04-24 15:05:35 +02:00 |
|
Irmen de Jong
|
532d719089
|
more optimal math.randrange() routines
|
2025-04-24 04:04:14 +02:00 |
|
Irmen de Jong
|
b40860aca4
|
get rid of RTS after JMP
|
2025-04-23 17:08:16 +02:00 |
|
Irmen de Jong
|
2cbe6b5f7f
|
info message when more optimal goto array[idx] is possible
|
2025-04-23 16:59:18 +02:00 |
|
Irmen de Jong
|
d2cc7ccdfa
|
remove redundant variable=0 initializations (BSS clear takes care of them)
|
2025-04-23 14:45:38 +02:00 |
|