Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Roadmap #4

Open
3 of 23 tasks
Technius opened this issue Feb 22, 2019 · 0 comments
Open
3 of 23 tasks

Roadmap #4

Technius opened this issue Feb 22, 2019 · 0 comments
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@Technius
Copy link
Owner

Technius commented Feb 22, 2019

TODO list (in no particular order):

  • External functions
  • (Implement parametric polymorphism #7) Parametric polymorphism
  • Support for builtin functions
    • sin, cos, tan
    • string length
  • String operations
    • Concatenate binary operator
    • to string (for any type)
    • string interpolation (syntax sugar)
  • Lambdas/inline functions
  • Partial application
  • Known-size immutable arrays
  • Mangle names in LLVM output (e.g. fun foo becomes @simpl.foo)
  • Multiple compilation units
    • Multiple source file input
    • Fully qualified names
  • Expression location diagnostics (e.g. line numbers)
    • Annotations
    • Source positions in messages
  • (Implement intermediate representation with join points #5) ANF intermediate representation with explicit join points (like from Compiling without Continuations)
  • Static analysis and optimizations
    • Referential transparency (limited)
    • Reachability and dead code elimination
    • Constant propagation
@Technius Technius self-assigned this Feb 22, 2019
@Technius Technius added enhancement New feature or request help wanted Extra attention is needed labels Feb 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant