sdc

所属分类:collect
开发工具:D
文件大小:0KB
下载次数:0
上传日期:2023-07-10 11:34:43
上 传 者sh-1993
说明:  Snazzy D编译器,
(The Snazzy D Compiler,)

文件列表:
.prettierrc.yaml (318, 2023-12-20)
AUTHORS (44, 2023-12-20)
LICENCE (1093, 2023-12-20)
default.nix (779, 2023-12-20)
docs/ (0, 2023-12-20)
docs/dalloc.md (7050, 2023-12-20)
dub.json (1233, 2023-12-20)
import/ (0, 2023-12-20)
import/java/ (0, 2023-12-20)
import/java/c/ (0, 2023-12-20)
import/java/c/jni.d (24467, 2023-12-20)
import/llvm/ (0, 2023-12-20)
import/llvm/c/ (0, 2023-12-20)
import/llvm/c/analysis.d (2466, 2023-12-20)
import/llvm/c/bitReader.d (3803, 2023-12-20)
import/llvm/c/bitWriter.d (2269, 2023-12-20)
import/llvm/c/core.d (128377, 2023-12-20)
import/llvm/c/disassembler.d (11925, 2023-12-20)
import/llvm/c/errorHandling.d (1890, 2023-12-20)
import/llvm/c/executionEngine.d (7732, 2023-12-20)
import/llvm/c/initialization.d (2028, 2023-12-20)
import/llvm/c/irReader.d (1536, 2023-12-20)
import/llvm/c/linkTimeOptimizer.d (1830, 2023-12-20)
import/llvm/c/linker.d (1540, 2023-12-20)
import/llvm/c/lto.d (23393, 2023-12-20)
import/llvm/c/object.d (4322, 2023-12-20)
import/llvm/c/orcBinding.d (5336, 2023-12-20)
import/llvm/c/support.d (2359, 2023-12-20)
import/llvm/c/target.d (12187, 2023-12-20)
import/llvm/c/targetMachine.d (5923, 2023-12-20)
import/llvm/c/transforms/ (0, 2023-12-20)
import/llvm/c/transforms/IPO.d (2772, 2023-12-20)
import/llvm/c/transforms/passManagerBuilder.d (3418, 2023-12-20)
import/llvm/c/transforms/scalar.d (5834, 2023-12-20)
import/llvm/c/transforms/vectorize.d (1986, 2023-12-20)
... ...

# SDC - The Snazzy D Compiler This is the home of a [D][0] compiler. SDC is at the moment, particularly stupid; it is a work in progress. Feel free to poke around, but don't expect it to compile your code. The project currently provides a collection of tools: - [sdc][1], the D compiler. - [sdunit][2], an utility to run the unit tests in D modules. - [sdfmt][3], a code formatter for D. This compiler is based on [libd][4] for D code analysis. It uses [LLVM][5] and [libd-llvm][6] for codegen and JIT CTFE. It uses [libsdrt][7] to support various runtime facilities required by programs compiled by SDC. The code is released under the MIT license (see the LICENCE file for more details). Contact me at deadalnix@gmail.com. SDC requires latest DMD release to compile. [0]: http://dlang.org/ [1]: https://github.com/snazzy-d/sdc/blob/master/src/driver/sdc.d [2]: https://github.com/snazzy-d/sdc/blob/master/src/driver/sdunit.d [3]: https://github.com/snazzy-d/sdc/blob/master/src/driver/sdfmt.d [4]: https://github.com/snazzy-d/sdc/tree/master/src/d [5]: http://llvm.org/ [6]: https://github.com/snazzy-d/sdc/tree/master/src/d/llvm [7]: https://github.com/snazzy-d/sdc/tree/master/sdlib # Goals Right now, SDC is a work in progress and unusable for any production work. Its intent is to provide a D compiler as a library (libd) in order to improve the overall D toolchain by enabling the possibility of developing new tools. SDC now supports many very advanced features (static ifs, string mixins, CTFE) of D, but not many basic ones. This is a development choice to allow the architecturing of the compiler around the hardest features of the language. As a consequence, SDC has a solid base to build upon. # What Can It Compile? See the [tests directory][20] for a sample of what is/should-be working. You can also build [SDC's runtime library][21], that is compiled using SDC. [20]: https://github.com/snazzy-d/sdc/tree/master/test [21]: https://github.com/snazzy-d/sdc/tree/master/sdlib # Compiling SDC on Linux You'll need `make` and the latest DMD installed and LLVM 15. Run `make`. Then you can run the test suite using `make check`. There should be no regressions. SDC requires a recent version of LLVM. If the default llvm-config on your system is too old, you can specify a newer version via `LLVM_CONFIG`. For instance, on a debian system, you want to use `LLVM_CONFIG=llvm-config-11 make` . # Compiling SDC on Mac OS X You'll need `make` and the latest DMD installed. You'll also need a recent version of LLVM if you don't already have it. One way to install llvm that's been tested is to use [Homebrew][40], a package manager for OS X. After installing it by following instructions from the web page, run the command `brew install llvm11`, followed by `LLVM_CONFIG=llvm-config-11 make` . If you are using [MacPorts][41] instead, you can run `sudo port install llvm-11`, followed by `LLVM_CONFIG=llvm-config-mp-11 make` . You'll also need a recent version of `nasm`; if `nasm` does not recognise the `macho64` output format, try upgrading `nasm` to a newer version. [40]: http://brew.sh/ [41]: http://www.macports.org # Building SDC as a Nix package On Linux, you can also use the [Nix package manager][50] to automatically fetch dependencies and build SDC for you. You may need to use the unstable nix channel, to have a new enough `dmd` to build SDC. Clone or download this repository. To build the executable, run `nix-build -E "(import {}).callPackage ./. {}"` or `nix-build -E "(import {}).callPackage ./. {dflags=\"-O -release\";}"` from the project root directory. [50]: https://nixos.org

近期下载者

相关文件


收藏者