<div dir="ltr"><div>Hi all,<br><br>Another week, another hacking spree and the gerbil compiler now has<br>an optimizer.<br>Currently it optimizes opt-lambda/case-lambda dispatch and inlines all<br>struct operations for statically known structs, including struct<br>direct constructor dispatch. All optimizations are applied across<br>module boundaries.<br><br>For sources and downloads:<br><a href="https://github.com/vyzo/gerbil">https://github.com/vyzo/gerbil</a><br><a href="https://github.com/vyzo/gerbil/releases">https://github.com/vyzo/gerbil/releases</a><br><br>Detailed changes since Gerbil v0.6:<br>- compiler: modularize and implement optimizer pass<br>  - optimizations:<br>    - lift opt lambdas and case-lambdas and optimize direct call dispatch<br>    - recognize struct MOP definitions and inline direct struct operations<br>    - cross module optimization with concurrent compilation and ssxi module generation<br>    - ssxi prelude for writing type declarations for the optimizer<br>  - gxc:<br>    - add -O and -no-ssxi options for optimization<br>    - add -cc-options and -ld-options for gsc compilation flags<br>    - add -h option for printing usage<br>- runtime:<br>  - new MOP functions: class-subtype? next-method call-next-method<br>- stdlib<br>  - std/text/zlib<br>    - support transparent gzip/deflate decompression<br>    - support gz compression<br>    - support compression and decompression of input ports<br>  - std/net/request<br>    - accept gzip/deflate encoding with transparent content decompression<br>  - std/iter<br>    - accept when and unless filters in for and it's variants<br>    - optimize iter transforms to use a direct iterator instead of a coroutine<br>    - make coroutine and input-port iter-value idempotent between iter-next calls<br>  - std/srfi/9<br>    - generate record constructor that is recognized by the optimizer<br>    - use interned symbols for module scoped records, as in defstruct<br>  - std/misc/queue and std/test<br>    - fix accessor bugs caught by the optimizer<br><br></div>-- vyzo<br><br></div>