Skip to content
This repository has been archived by the owner on Feb 3, 2019. It is now read-only.

Latest commit

 

History

History
118 lines (95 loc) · 4.16 KB

CHANGES.org

File metadata and controls

118 lines (95 loc) · 4.16 KB

0.0.11

  • Fix #5, implement multiple arity to single arity reduction

[#B] Multi-arity to single arity reduction

[#B] Static arity dispatch

  • Walk the AST collecting the arities of fns and the arities of call sites
  • If a function is ever the target of an apply, it cannot be lifted to methods or multiple functions as the arity cannot be statically determined. Tag these fns and collect all others.
  • Rewrite each fn into N fns of a single arity, updating the rest of the AST as appropriate so that all invocations statically dispatch to a single arity except where impossible due to application of apply.

[#B] Static arity elimination

This should just be tree shaking re-applied after method to fn lifting is applied, but the machinery for checking that fn partitioning by arity is valid is probably relevant.

0.0.10

  • Fix #3, implement called by what analysis

0.0.9

  • Fix #6, implement var as value analysis
  • Fix #7, implement a gensym wrapper with metadata
  • Fix #9, implement macro discarding

Prior to 0.0.9

Called-by-what analysis pass

Whole program AST

Lambda lifting

Def location

Static error detection

Tree shaking

tools.emitter.jvm reading

Tree shaking load

Defmacro discarding pass

Function as value analysis

Implement a whole program AST structure

Implement compiler warnings for unsupported forms & errors

Test coverage is not completely woeful