Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Compiler Milestone 4 #3804

Open
20 tasks
turbolent opened this issue Feb 27, 2025 · 0 comments
Open
20 tasks

Compiler Milestone 4 #3804

turbolent opened this issue Feb 27, 2025 · 0 comments

Comments

@turbolent
Copy link
Member

turbolent commented Feb 27, 2025

Functionality that needs to be implemented to match parity with the interpreter. For now, an unprioritized laundry list, we need to go over this after finishing #3769

Features

  • Source location info (for debugging)
  • Remaining/full values
  • Range value
  • Dictionaries in for-loop
  • All integer types
  • All fixed-point types (atm, Fix64)
  • Member functions of built-in values
  • Swap statement
  • Assignment / variable declaration / if-let with second value
  • Force assignment
  • Optional arguments

Simple features

  • String templates
  • Implicit boxing
  • Global variables (lazy)
  • Resource invalidation (validate / finish; maybe already complete)

Harder features

  • Entitlements
  • Attachments

Optimization

  • Similar to static-types^, bypass encoding-decoding of constants
  • Add ‘resource-ness’ (flag) to the static-type. Might need a state migration. (maybe not needed for the initial version)
    • Move resource-ness from instruction to static type (currently instructions have resource-nes operand)
  • Avoid creation of result variable if there are no post conditions
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

1 participant