fix subroutine inlining symbol scope error

This commit is contained in:
Irmen de Jong
2024-06-29 17:47:13 +02:00
parent ead8aa7800
commit ddf990296b
6 changed files with 23 additions and 21 deletions

View File

@@ -70,9 +70,9 @@ Features
--------
- it is a cross-compiler running on modern machines (Linux, MacOS, Windows, ...)
- can produce smaller and faster running programs than equivalent C code compiled with CC65 or even LLVM-MOS
- the compiled programs run very fast, because compilation to highly efficient native machine code.
- Provides a convenient and fast edit/compile/run cycle by being able to directly launch
- code often is smaller and faster than equivalent C code compiled with CC65 or even LLVM-MOS
- provides a convenient and fast edit/compile/run cycle by being able to directly launch
the compiled program in an emulator and provide debugging information to this emulator.
- the language looks like a mix of Python and C so should be quite easy to learn
- Modular programming, scoping via modules, code blocks, and subroutines. No need for forward declarations.

View File

@@ -1,11 +1,9 @@
TODO
====
optimizer bug, see "optimizing inlined functions must reference proper scopes" unittest (skipped for now)
causes compiler error for virtual: just calling txt.cls() gives compile error undefined symbol clear_screen
https://github.com/irmen/prog8/issues/136 (string.find register order issue)
other issues on github.
optimize signed byte/word division by powers of 2 (and shift right?), it's now using divmod routine. (also % ?)
see inplacemodificationByteVariableWithLiteralval() and inplacemodificationSomeWordWithLiteralval()