diff --git a/CHANGELOG.md b/CHANGELOG.md index 370f8eef..e855b841 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ Features - WIP: added batch compilation (TODO: more details) - Added `define-values` from R7RS. +Bug Fixes +- Do not inline functions if optimizations are disabled via `-O0`. + ## 0.11.8 - December 30, 2019 Features diff --git a/cyclone.scm b/cyclone.scm index dcb630b5..9b9a92e2 100644 --- a/cyclone.scm +++ b/cyclone.scm @@ -106,7 +106,8 @@ (set! program? #f) (set! lib-name (lib:name (car input-program))) (set! c-headers (lib:include-c-headers (car input-program))) - (set! inlines (lib:inlines (car input-program))) + (when (> *optimization-level* 0) + (set! inlines (lib:inlines (car input-program)))) (set! lib-exports (cons (lib:name->symbol lib-name) @@ -145,7 +146,8 @@ (let ((lis (lib:inlines `(dummy dummy ,@input-program)))) (cond ((not (null? lis)) - (set! inlines lis) + (when (> *optimization-level* 0) + (set! inlines lis)) (set! input-program (filter (lambda (expr)