A couple of notable facts about this release: - gxi startup time was cut by 40% with the optimizer! - there is content in the Gerbil wiki now to help get you started: https://github.com/vyzo/gerbil/wiki
-- vyzo
On Thu, May 11, 2017 at 6:57 PM, Dimitris Vyzovitis vyzo@hackzen.org wrote:
Hi all,
Another week, another hacking spree and the gerbil compiler now has an optimizer. Currently it optimizes opt-lambda/case-lambda dispatch and inlines all struct operations for statically known structs, including struct direct constructor dispatch. All optimizations are applied across module boundaries.
For sources and downloads: https://github.com/vyzo/gerbil https://github.com/vyzo/gerbil/releases
Detailed changes since Gerbil v0.6:
- compiler: modularize and implement optimizer pass
- optimizations:
- lift opt lambdas and case-lambdas and optimize direct call dispatch
- recognize struct MOP definitions and inline direct struct operations
- cross module optimization with concurrent compilation and ssxi
module generation - ssxi prelude for writing type declarations for the optimizer
- gxc:
- add -O and -no-ssxi options for optimization
- add -cc-options and -ld-options for gsc compilation flags
- add -h option for printing usage
- runtime:
- new MOP functions: class-subtype? next-method call-next-method
- stdlib
- std/text/zlib
- support transparent gzip/deflate decompression
- support gz compression
- support compression and decompression of input ports
- std/net/request
- accept gzip/deflate encoding with transparent content decompression
- std/iter
- accept when and unless filters in for and it's variants
- optimize iter transforms to use a direct iterator instead of a
coroutine - make coroutine and input-port iter-value idempotent between iter-next calls
- std/srfi/9
- generate record constructor that is recognized by the optimizer
- use interned symbols for module scoped records, as in defstruct
- std/misc/queue and std/test
- fix accessor bugs caught by the optimizer
-- vyzo