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
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
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
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
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
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
da7ea294ef
todo cleanup
2026-10-14 01:29:22 +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
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
fd3add76e4
rename amiga_gfx to easygfx
2026-10-11 14:39:37 +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
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
Irmen de Jong
e7dfe79919
m68k: add log2, diff, lerp, interpolate, gcd and crc16/32; fix qemu68k word shifts and const-eval of log2/atan2
2026-10-10 17:49:29 +02:00
Irmen de Jong
31dbbc3fe1
m68k: implement bcd library routines
2026-10-10 15:41:32 +02:00
Irmen de Jong
233ca21492
m68k: frameable inline asm, word-sized sys.exit, and sys.die alerts
2026-10-10 00:19:22 +02:00
Irmen de Jong
e515dee561
m68k: suggest @shared for locals referenced from inline assembly
2026-10-08 19:08:27 +02:00
Irmen de Jong
0189903a63
m68k: pin @shared variables to static storage
2026-10-08 04:17:40 +02:00
Irmen de Jong
9c9552174e
m68k: stackful coroutines fixed with per-task stacks, new %option noframe
2026-10-08 01:59:50 +02:00
Irmen de Jong
5e709fca7e
m68k: stack-frame zero-clear coalescing
2026-10-07 19:06:16 +02:00
Irmen de Jong
cc8df33418
m68k: plan for optimized stack frame zeroing
2026-10-07 19:06:16 +02:00
Irmen de Jong
125af552ff
amiga: added recursive fractal-tree example
2026-10-07 19:06:16 +02:00
Irmen de Jong
a1a48405b0
m68k: fix a5 frame pointer register clobbering
2026-10-07 19:06:16 +02:00
Irmen de Jong
bbff472457
doc cleanup
2026-10-07 19:06:16 +02:00
Irmen de Jong
353b0c84b7
slice 5 for m68k stack memory model
...
(slice 4 was skipped)
2026-10-07 19:06:16 +02:00
Irmen de Jong
3beb565c84
m68k targets: add sys.stack_size() function that gives remaining stack size in bytes
2026-10-07 00:39:11 +02:00
Irmen de Jong
1f8b42fae5
make user docs and some code comments less convoluted
2026-10-05 20:00:32 +02:00
Irmen de Jong
a1ce45e409
doc updates
2026-10-02 23:24:07 +02:00
Irmen de Jong
09d469714b
whole enum aliasing (by aliasing each member)
2026-10-02 22:53:25 +02:00
Irmen de Jong
38db571f20
implemented -o / --output to specify specific output file
2026-10-02 22:33:43 +02:00
Irmen de Jong
5f3b587af1
docs
...
outputfile todo
2026-10-02 21:28:18 +02:00