base-clm


Package info
Description

The Clean make tool, forked for use in Nitrile.

Readme
# clm `clm` is a make tool for [Clean][]. This repository is a fork of the [upstream][] found in classic Clean, with additions for use in [Nitrile][]. Normally you should not need to use it directly, but use the [`clm`](https://clean-and-itasks.gitlab.io/nitrile/nitrile-yml/reference#buildscriptclm) script in `nitrile.yml` instead. `clm` is released in the `base-clm` package, which is included in `base`. ## Maintainer & license This fork is maintained by [TOP Software Technology][]. The upstream is maintained by John van Groningen. For license details, see the [LICENSE](/LICENSE) file. The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Radboud University Nijmegen. [TOP Software Technology]: https://www.top-software.nl [Clean]: https://clean-lang.org [Nitrile]: https://clean-and-itasks.gitlab.io/nitrile [upstream]: https://gitlab.science.ru.nl/clean-and-itasks/clm
Changelog
# Changelog ### v1.7.0 - Feature: `-c` now accepts multiple modules and checks them using the existing compiler pool. ### v1.6.0 - Feature: add `-gra`/`-Pgra` flag to enable generating `.r` annotations. - Fix: enable optimizing uniqueness typing by default (`-ou` flag) to match the documentation. #### v1.5.2 - Fix: only compile main module with `-c` on Windows. #### v1.5.1 - Fix: Revert ea82a8c3, "Compare file time with < instead of <=" as this could result in a race condition. ### v1.5 - Feature: add `-aui` and `-naui` flags to enable or disable the allowance of undecidable instances. - Enhancement: recompile if an existing ABC file was compiled for a 32-bit system and we are compiling for a 64-bit system, or vice versa. - Fix: fix heap and stack sizes of more than 4GB for generated executable (on linux 64 bit). #### v1.4.2 - Fix: fix parallelization bug when `-j` is turned on. #### v1.4.1 - Fix: fix when only one processor is used (on non-Windows systems). ### v1.4.0 - Feature: add `-j [n]` to parallelize compilation, ABC optimization, bytecode generation, and code generation over processors (not on Windows). - Change: remove use of `CLEANOPATH` environment variable. Rename `CLEANABCPATH` to `CLM_ARTIFACTS_PATH`, and use this path for all generated files (`.abc`, `.s`, `.o`, `.obj`, `.opt.abc`, and `.bc`). - Fix: fix bugs in handling of `CLM_ARTIFACTS_PATH` (previously `CLEANABCPATH` and `CLEANOPATH`). - Fix: fix checking that bytecode needs to be regenerated when optimized ABC code is used. #### v1.3.4 - Fix: on Windows, don't let the compiler inherit all handles. This fixes the bug that `clm` does not exit when the compiler crashes. #### v1.3.3 - Fix: fix bytecode generation pipeline on Windows. - Fix: implement `-ns` (generation of symbol table) on Windows. #### v1.3.2 - Fix: increase some array and buffer sizes to fix segfaults on Windows. #### v1.3.1 - Fix: implement `-aC` on Windows. ### v1.3.0 - Feature: add `-post-link` option, used for the iTasks web resource collector. ### v1.2.0 - Feature: add options `-Pw`, `-Pd`, `-Psa`, `-Pou`, `-Pfusion`, `-Pgeneric_fusion` to 'lift' main module options (`-w`, `-nw`, etc.) to project options. They are then applied to all modules in the project, instead of only the main module. #### v1.1.5 - Change: always recompile when `-c` ('check syntax') is given. #### v1.1.4 - Change: use same tool names on Windows as on Linux (`cocl`, `cg`, `linker`, `abcopt`, `bcgen`, `bclink`, `bcstrip`, `bcprelink`). - Robustness: don't wait indefinitely for compiler output on Windows. #### v1.1.3 - Fix: fix passing of compiler output on Windows. #### v1.1.2 - Enhancement: generated bytecode is now stripped. - Change: `.exe` is no longer included in the bytecode name. #### v1.1.1 - Fix: don't generate bytecode when `-S` or `-O` is given. ### v1.1.0 - Feature: add bytecode generation support with `-optabc`, `-bytecode`, and `-prelink-bytecode`. #### v1.0.1 No notable changes. ## v1.0.0 First tagged version.
Versions