diff --git a/CHANGELOG.md b/CHANGELOG.md index db86c050..63590a7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,21 +4,23 @@ Bug Fixes - - Modified the compiler to ensure that a variable is not assigned to itself in the generated C code. +- Fixed Windows build using MSYS2 and setup a continuous integration job for this platform to prevent breaking this build in the future. +- Tweaked build flags to prevent spamming of compiler warnings when using Clang. +- Modified the compiler to ensure that a variable is not assigned to itself in the generated C code. ## 0.11.7 - December 5, 2019 Bug Fixes - - Fixed an issue with the library path when building on Mac OS. +- Fixed an issue with the library path when building on Mac OS. ## 0.11.6 - December 2, 2019 Features - - Faster record type constructors. - - During compilation, validate the number of arguments passed to local function calls. - - Added the `-use-unsafe-prims` compiler option to generate faster code for certain primitives by eliminating runtime safety checks. +- Faster record type constructors. +- During compilation, validate the number of arguments passed to local function calls. +- Added the `-use-unsafe-prims` compiler option to generate faster code for certain primitives by eliminating runtime safety checks. Bug Fixes diff --git a/Makefile.config b/Makefile.config index 7014be94..7a4c7e58 100644 --- a/Makefile.config +++ b/Makefile.config @@ -22,8 +22,8 @@ LIBS += -ldl endif # Compiler options -CFLAGS ?= $(CYC_PROFILING) $(CYC_GCC_OPT_FLAGS) -fPIC -Wall -Iinclude -BASE_CFLAGS ?= $(CYC_PROFILING) $(CYC_GCC_OPT_FLAGS) -fPIC -Wall -I$(PREFIX)/include +CFLAGS ?= $(CYC_PROFILING) $(CYC_GCC_OPT_FLAGS) -fPIC -Wall -Wno-shift-negative-value -Iinclude +BASE_CFLAGS ?= $(CYC_PROFILING) $(CYC_GCC_OPT_FLAGS) -fPIC -Wall -Wno-shift-negative-value -I$(PREFIX)/include # Used by Cyclone to compile programs, no need for PIC there BASE_PROG_CFLAGS ?= $(CYC_PROFILING) $(CYC_GCC_OPT_FLAGS) -Wall -I$(PREFIX)/include ifeq ($(OS),Darwin) diff --git a/README.md b/README.md index 8826ca91..e4affbcd 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,17 @@ [![Travis CI](https://travis-ci.org/justinethier/cyclone.svg?branch=master)](https://travis-ci.org/justinethier/cyclone) -Cyclone is a brand-new Scheme-to-C compiler that allows practical application development using R7RS Scheme. [Cheney on the MTA](https://github.com/justinethier/cyclone/raw/master/docs/research-papers/CheneyMTA.pdf) is used by Cyclone's runtime to implement full tail recursion, continuations, and generational garbage collection. In addition, the Cheney on the MTA concept has been extended to allow execution of multiple native threads. An on-the-fly garbage collector is used to manage the second-generation heap and perform major collections without "stopping the world". +[![Github CI - Linux](https://github.com/justinethier/cyclone-bootstrap/workflows/Ubuntu%20Linux%20Build/badge.svg)](https://github.com/justinethier/cyclone-bootstrap) -Cyclone is the first compiler written entirely in the latest R7RS Scheme language standard, and the intent is to support as much of that language as possible. +[![Github CI - MacOS](https://github.com/justinethier/cyclone-bootstrap/workflows/MacOS%20Build/badge.svg)](https://github.com/justinethier/cyclone-bootstrap) + +[![Github CI - MacOS Homebrew](https://github.com/justinethier/cyclone-bootstrap/workflows/MacOS%20Homebrew%20Build/badge.svg)](https://github.com/justinethier/cyclone-bootstrap) + +[![Github CI - Windows](https://github.com/justinethier/cyclone-bootstrap/workflows/Windows%20MSYS2%20Build/badge.svg)](https://github.com/justinethier/cyclone-bootstrap) + +Cyclone is a brand-new Scheme-to-C compiler with the goal of supporting real-world application development using the R7RS Scheme Language standard. We provide modern features and a stable system capable of generating fast native binaries. + +[Cheney on the MTA](https://github.com/justinethier/cyclone/raw/master/docs/research-papers/CheneyMTA.pdf) is used by Cyclone's runtime to implement full tail recursion, continuations, and generational garbage collection. In addition, the Cheney on the MTA concept has been extended to allow execution of multiple native threads. An on-the-fly garbage collector is used to manage the second-generation heap and perform major collections without "stopping the world". # Features