package mazeppa
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
On This Page
  
  
  A modern supercompiler for call-by-value functional languages
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
  
    
      mazeppa-0.3.3.tar.gz
    
    
        
    
  
  
  
    
  
  
    
  
        md5=e732cb5cca65b4c8c489f9a9f557e0b6
    
    
  sha512=1150bf0c72e9116bba485a344c35c5a5bc39266ef16b989110a162b86b2097b4a49c1cc6250491d89f7c8fa21fe3ae5daa76b570ce795f503eb64a6189d02c19
    
    
  doc/CHANGELOG.html
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
unreleased
0.3.3 - 2024-10-03
Fixed
- Tweak the dependencies in 
dune-projectafter trying to publish the package. 
0.3.2 - 2024-10-02
Added
- Expose the 
Gensymmodule in the public API (previously private). 
0.3.1 - 2024-09-23
Added
- The Mazeppa-to-C translator (with GNU11 extensions) via the new 
translateCLI command (issue https://github.com/mazeppa-dev/mazeppa/issues/1). - The 
translate_to_candmazeppa_hAPI functions. 
0.3.0 - 2024-08-16
Added
- The 
--print-gc-statsflag forrunandevalto observe total memory usage. - Expose the 
checkfunction in the public API. 
Changed
- Optimize homeomorphic embedding by maintaining a local result cache (issue https://github.com/mazeppa-dev/mazeppa/issues/20).
 Other homeomorphic embedding performance tweaks (issue https://github.com/mazeppa-dev/mazeppa/issues/17).
- In particular, utilize 
Weakhash consing while building function bodies. 
- In particular, utilize 
 - Rename the functions 1) 
Symbol.kindtoop_kind, 2)Symbol.is_lazytois_lazy_opfor clarity [BC]. - Hide the middles of long reduction paths with 
(N more...)(issue https://github.com/mazeppa-dev/mazeppa/issues/21). 
Fixed
- Evaluation of built-in panics raising an exception (issue https://github.com/mazeppa-dev/mazeppa/issues/22).
 
Removed
- The function 
Raw_term.is_immediateis no longer public [BC]. 
0.2.0 - 2024-08-03
Added
- Propagate positive information for inequality (
!=) tests (issue https://github.com/mazeppa-dev/mazeppa/issues/7). More simplification rules:
- op(op(t)) -> op(t), where op is one of 
u8,u16,u32,u64,u128,i8,i16,i32,i64,i128,string. - /(0, t) -> 0
 - |(t, all ones), |(all ones, t) -> all ones
 - &(t, all ones), &(all ones, t) -> t
 
- op(op(t)) -> op(t), where op is one of 
 - Add the 
checkcommand to the CLI for checking program well-formedness (issue https://github.com/mazeppa-dev/mazeppa/issues/18). - Expose the 
Symbol.listfunction in the public API. 
Changed
- Only whistle on terms with equal redex signatures (issues https://github.com/mazeppa-dev/mazeppa/issues/9, https://github.com/mazeppa-dev/mazeppa/issues/11).
 - Only whistle on equal integers (issue https://github.com/mazeppa-dev/mazeppa/issues/12).
 - Rebuild as less terms as possible when substituting contractions (issue https://github.com/mazeppa-dev/mazeppa/issues/14).
 - Optimize homeomorphic embedding by storing term sizes (issue https://github.com/mazeppa-dev/mazeppa/issues/17).
 
Fixed
- Internal compiler errors when analyzing 
T/F-patterns during driving. Instead, show proper error messages (issue https://github.com/mazeppa-dev/mazeppa/issues/6). - Incorrect exception backtraces (issue https://github.com/mazeppa-dev/mazeppa/issues/8).
 - Require constructors to be used consistently [BC] (issue https://github.com/mazeppa-dev/mazeppa/issues/10).
 
0.1.2 - 2024-07-20
Added
- Function productivity analysis for preventing unneeded specializations (issue https://github.com/mazeppa-dev/mazeppa/issues/2).
 pattern_to_stringandpattern_verbatim(Raw_term).
Changed
- Simplify horizontal configuration analysis by only checking for renamings instead of matching arbitrary safe instances.
 - Do not emit 1) linear let-bindings for redexes, 2) unused let-bindings for immediate terms.
 
0.1.1 - 2024-07-15
Added
mazeppa eval: A built-in evaluator for the Mazeppa language (issue https://github.com/mazeppa-dev/mazeppa/issues/5).- Expose the 
Constmodule in the public API. 
Changed
The following simplification rules have been upgraded to handle arbitrary values instead of variables:
- *(x, 0), *(0, x) -> 0
 - &(x, 0), &(0, x) -> 0
 - %(x, 1) -> 0
 - /(x, 0), %(x, 0) -> out of range
 - |(x, x), &(x, x) -> x
 - =(x, x), >=(x, x), <=(x, x) -> T()
 - !=(x, x), >(x, x), <(x, x) -> F()
 
0.1.0 - 2024-07-11
Added
- The Mazeppa supercompiler.
 
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  On This Page