Irmen de Jong
63e2a45f09
Require explicit via for linked-list for loops
2026-10-20 01:42:39 +02:00
Irmen de Jong
6076b01f6d
Require explicit via for linked-list for loops
...
Removes the header shorthand, extracts shared validation into
LinkedForLoopChecks.kt, fixes until-validation for pointer sentinels,
and updates docs/examples/tests.
2026-10-20 00:25:27 +02:00
Irmen de Jong
d0bf2c3dcb
fix doc build for RTD
2026-10-19 23:07:18 +02:00
Irmen de Jong
d9bf6f090e
antlr4 parser tweaks
2026-10-19 22:57:49 +02:00
Irmen de Jong
e08a995067
amiga: get rid of local var address escape warnings
2026-10-19 22:49:03 +02:00
Irmen de Jong
da2288db93
improved variable source line position
2026-10-19 22:16:53 +02:00
Irmen de Jong
31b5cddb96
apply new linked list iteration for loop syntax
2026-10-19 22:10:19 +02:00
Irmen de Jong
264b894909
Add linked-list for-loop iteration with via/until syntax
2026-10-19 21:59:56 +02:00
Irmen de Jong
09ae0c6322
Fix 6502 codegen for pointer-to-pointer struct field double-deref
2026-10-19 19:44:44 +02:00
Irmen de Jong
9ca5db3436
fix 6502 pointer deref clobbering bare pointer variable
2026-10-19 04:01:12 +02:00
Irmen de Jong
375214b5e3
Add emudbg library module for amiga500/amiga1200 targets
...
New Prog8 standard library module for emulator debug output on the Amiga
targets, targeting the Copperline emulator (with partial WinUAE support).
2026-10-19 01:29:04 +02:00
Irmen de Jong
1da37e4119
skill
2026-10-17 23:45:22 +02:00
Irmen de Jong
16f7d588a7
add '-emu2' for amiga targets, -emu now launches the actual 'copperline' emulator, -emu2 still launches vamos.
2026-10-17 14:01:03 +02:00
Irmen de Jong
f6c8a3f2ed
defer: keep static per-subroutine mask, fix m68k carry bug, document recursion limitation
...
Roll back the per-activation defer-mask change because its code/RAM cost
outweighed the benefit. The pending-defer state is again a single static
mask variable per subroutine.
Keep the m68k bugfix: the handler now tests each defer bit with
`mask & bit != 0` instead of `mask >>= 1; bcc`, because the `>>=` store
on m68k uses MOVE which clears carry before the branch can read it.
Document that recursive/mutually recursive subroutines containing defer
are not supported on stack-frame targets, and remove the recursion-sound
defer todo item.
2026-10-17 05:00:02 +02:00
Irmen de Jong
5619898113
reduce test memory footprint
2026-10-17 02:43:39 +02:00
Irmen de Jong
ae0414631e
fix compiler crash on peek/poke/popp used in the wrong statement/expression context
...
fixes #248
2026-10-17 02:27:51 +02:00
Irmen de Jong
e3ca9ae4a8
Fix virtual target typed pop results
2026-10-17 02:12:17 +02:00
Irmen de Jong
38c60a2d75
harden AstWalker detached-subtree skipping and extract shared canSkipExplicitCmpi helper
2026-10-17 01:46:35 +02:00
Irmen de Jong
5e83c44300
fix wrong result for short-circuit boolean and/or on the virtual target
2026-10-17 01:43:08 +02:00
Irmen de Jong
99ff5768c5
fix compiler crash on 'not' combined with or/and in one expression
...
cherry-picked from v12 maintenance b71787a929
2026-10-17 01:18:09 +02:00
Irmen de Jong
fba4bb5272
6502 codegen bug: subtraction with a register-clobbering right operand
2026-10-16 00:58:49 +02:00
Irmen de Jong
17322a08ec
6502 math: convert lerp/lerpw/interpolate/interpolatew to 6502 assembly
2026-10-16 00:07:46 +02:00
Irmen de Jong
06d2f9ebbe
when->on..goto: calibrate the jump-table sizeLimit per target
2026-10-15 22:10:52 +02:00
Irmen de Jong
3a5f2c33ab
when->on..goto: allow arbitrary choice bodies by generating labels and jump tables
2026-10-15 20:23:02 +02:00
Irmen de Jong
d523ecd1e1
when->on..goto: synthesize a gap label so gapped value ranges also use jumpi tables instead of the compare chain
2026-10-15 04:57:02 +02:00
Irmen de Jong
159634a99f
Fix m68k frame teardown for intra-subroutine dispatch
2026-10-15 04:29:33 +02:00
Irmen de Jong
55dcb45230
when->on..goto: let the else part be any body, not just a single goto
...
Only the value choices have to be goto's, since those become entries in the
jump table. The else is taken over verbatim as the on..goto's else part, so a
common `else -> { ... }` body no longer disqualifies the whole when.
2026-10-15 04:05:45 +02:00
Irmen de Jong
de75342198
fix when->on..goto rewrite for signed-byte conditions and non-zero-based values. Also made it smarter to allow a nonzero start value index
2026-10-15 03:29:02 +02:00
Irmen de Jong
30d3b76787
LSP: extract more document symbols
...
SymbolExtractor now also emits symbols for enum members, struct
fields, aliases, subroutine parameters, local variables and labels,
and finds labels/declarations nested in control-flow bodies.
Also refresh the LSP feature list in the introduction docs.
2026-10-15 01:47:45 +02:00
Irmen de Jong
8bbe5bd209
label names hash numbers are now stable
2026-10-14 19:35:49 +02:00
Irmen de Jong
da7ea294ef
todo cleanup
2026-10-14 01:29:22 +02:00
Irmen de Jong
05d8acc4bb
optimized VM initialization and update Mordant library to fix a FFM crash
2026-10-13 22:48:29 +02:00
Irmen de Jong
6cac707fd1
code cleanups
2026-10-13 22:40:19 +02:00
Irmen de Jong
dea43c99bb
m68k: remove word packed args plan doc
2026-10-13 21:42:57 +02:00
Irmen de Jong
0b902f06b5
m68k: word-packed stack argument slots
2026-10-13 21:37:43 +02:00
Irmen de Jong
733a3fb752
add missing helper routines doc
2026-10-13 17:49:31 +02:00
Irmen de Jong
460adb9e02
Remove Exec-specific for-loop over linked lists, disallow pointer as struct field name
2026-10-13 01:01:24 +02:00
Irmen de Jong
3c22dfc11a
fix compiler crash on indexed reads/writes through ^^pointer struct fields
2026-10-13 00:45:21 +02:00
Irmen de Jong
dfb3257c04
reserve the 'pointer' datatype name, it can no longer be used as a symbol name
2026-10-13 00:00:26 +02:00
Irmen de Jong
8bcd176746
fix invalid parsing of ^^pointer
2026-10-12 20:45:12 +02:00
Irmen de Jong
fd3add76e4
rename amiga_gfx to easygfx
2026-10-11 14:39:37 +02:00
Irmen de Jong
4d0a7ff8bf
added amiga/tictactoe example
2026-10-11 06:42:29 +02:00
Irmen de Jong
e1f2faabe7
added diskfont.p8
2026-10-11 05:33:47 +02:00
Irmen de Jong
25bd60368a
fix undefined symbol error
2026-10-11 03:23:49 +02:00
Irmen de Jong
f61c1dc7ef
fix mouse click offsets and aspect ratio
2026-10-11 02:41:42 +02:00
Irmen de Jong
eda21a6ebf
Fix in operator on arrays larger than 255 elements
2026-10-11 02:05:21 +02:00
Irmen de Jong
c0267e37b0
added amiga_gfx module and amiga/gfxdemo example
2026-10-11 01:03:59 +02:00
Irmen de Jong
78f9df203c
inline math trig routines
2026-10-10 20:46:10 +02:00
Irmen de Jong
d3e10b4974
m68k: optimize log2 and gcd routines, added log2l
2026-10-10 19:36:04 +02:00
Irmen de Jong
c4679bd8af
m68k: optimize lerp/interpolate/CRC routines; add interpolatew
2026-10-10 18:28:12 +02:00