Python68k v0.7.0


Development Log: Python68K Version 0.7.0 Release

Summary of Changes: The 0.7.0 release marks a significant milestone for Python68K, introducing robust support for generator functions and generator expressions, alongside refined runtime improvements. This update focuses on enhancing language capabilities to better align with Python-compatible patterns on classic Amiga systems.

Key Highlights & New Features:

  • Generators (Level 0.7 Implementation):
    • Generator Factory Support: yield statements are now fully supported, allowing standard functions to behave as generator factories.
    • Generator Expressions: Implemented support for generator expressions (e.g., (expr for x in iterable)), including unparenthesized syntax when used as a function's sole argument (e.g., sum(x for x in range(5))).
    • Runtime Logic: Added full generator lifecycle management, including next() iteration, handling of StopIteration, and proper iteration for builtins like list, tuple, set, and sum.
    • Free-Variable Snapshotting: Added logic for capturing free variables during generator creation, ensuring correct closure behavior.
  • Runtime & Compiler Enhancements:
    • Amiga Stack/Build Management: Refactored documentation and code to improve build reliability for Amiga targets.
    • Builtin Consumption: Optimized builtins that consume iterables to correctly drain generators into lists.
    • Error Handling: Improved Amiga-specific error handling, including better support for stderr redirection on older configurations.
    • Diagnostics: Enhanced test coverage and diagnostics documentation to ensure consistent behavior across host and Amiga environments.
  • Miscellaneous:
    • Updated and refined Makefile.amiga and Makefile.host to support the new generator runtime.
    • Updated build metadata and release documentation to reflect the 0.7.0 version bump.

Current Implementation Boundaries: Note that features such as yield from, send(), throw(), and close() remain out of scope for the 0.7.0 release. Consult the docs/decisions.md and the final implementation checklist in the repository for detailed architectural boundaries.

Files

python68k.lha 82 kB
2 days ago

Get Python68k (Amiga)

Download NowName your own price