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
Afficher les réponses par date
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