1
1
LDC – the LLVM-based D Compiler
2
2
===============================
3
3
4
- [ ![ Build Status] ( https://circleci.com/gh/ldc-developers/ldc/tree/master.svg?style=svg )] [ 6 ]
5
- [ ![ Build Status] ( https://semaphoreci.com/api/v1/ldc-developers/ldc/branches/master/shields_badge.svg )] [ 4 ]
6
- [ ![ Build Status] ( https://travis-ci.org/ldc-developers/ldc.png?branch=master )] [ 1 ]
7
- [ ![ Build Status] ( https://ci.appveyor.com/api/projects/status/2cfhvg79782n4nth/branch/master?svg=true )] [ 5 ]
8
- [ ![ Bountysource] ( https://www.bountysource.com/badge/tracker?tracker_id=283332 )] [ 3 ]
4
+ [ ![ Build Status] ( https://circleci.com/gh/ldc-developers/ldc/tree/master.svg?style=svg )] [ 1 ]
5
+ [ ![ Build Status] ( https://semaphoreci.com/api/v1/ldc-developers/ldc/branches/master/shields_badge.svg )] [ 2 ]
6
+ [ ![ Build Status] ( https://travis-ci.org/ldc-developers/ldc.png?branch=master )] [ 3 ]
7
+ [ ![ Build Status] ( https://ci.appveyor.com/api/projects/status/2cfhvg79782n4nth/branch/master?svg=true )] [ 4 ]
8
+ [ ![ Bountysource] ( https://www.bountysource.com/badge/tracker?tracker_id=283332 )] [ 5 ]
9
9
10
- The LDC project aims to provide a portable D programming language
11
- compiler with modern optimization and code generation capabilities.
10
+ The LDC project provides a portable D programming language compiler
11
+ with modern optimization and code generation capabilities.
12
12
13
- The compiler uses the official DMD frontends to support the latest
13
+ The compiler uses the official DMD frontend to support the latest
14
14
version of D2, and relies on the LLVM Core libraries for code
15
15
generation.
16
16
17
17
LDC is fully Open Source; the parts of the code not taken/adapted from
18
18
other projects are BSD-licensed (see the LICENSE file for details).
19
19
20
20
Please consult the D wiki for further information:
21
- http ://wiki.dlang.org/LDC
21
+ https ://wiki.dlang.org/LDC
22
22
23
- D1 is no longer available; see the [ d1 ] ( https://github.com/ldc-developers/ldc/tree/d1 )
24
- Git branch for the last version supporting it.
23
+ D1 is no longer available; see the ` d1 ` Git branch for the last
24
+ version supporting it.
25
25
26
26
27
27
Installation
@@ -34,89 +34,83 @@ Installation
34
34
For several platforms, there are stand-alone binary builds available at the
35
35
[ GitHub release page] ( https://github.com/ldc-developers/ldc/releases ) .
36
36
37
- For bleeding-edge users, we also provide the
38
- [ latest successful Continuous Integration builds] ( https://github.com/ldc-developers/ldc/releases/tag/CI )
39
- with enabled LLVM & LDC assertions.
37
+ For bleeding-edge users, we also provide the [ latest successful
38
+ Continuous Integration builds] ( https://github.com/ldc-developers/ldc/releases/tag/CI )
39
+ with enabled LLVM & LDC assertions (significantly increasing compile times) .
40
40
41
- The [ official D version manager (a.k.a. install script) ] ( https://dlang.org/install.html ) can also
42
- be used to install LDC.
41
+ The [ dlang.org install script] ( https://dlang.org/install.html )
42
+ can also be used to install LDC:
43
43
44
- ```
45
- # Download the install script to '~/dlang/install.sh'
46
- mkdir -p ~/dlang && wget https://dlang.org/install.sh -O ~/dlang/install.sh && chmod 755 ~/dlang/install.sh
44
+ curl -fsS https://dlang.org/install.sh | bash -s ldc
47
45
48
- # Download & extract the latest stable LDC
49
- ~/dlang/install.sh install ldc
50
- ```
46
+ In addition, LDC is available from various package managers:
51
47
52
- In addition, some package managers include recent (but not necessarily the
53
- latest) versions of LDC, so manually installing it might not be necessary.
48
+ | | Command |
49
+ | ------------ | ------------------------------------------- |
50
+ | Arch Linux | ` pacman -S ldc ` |
51
+ | Debian | ` apt install ldc ` |
52
+ | Fedora | ` dnf install ldc ` |
53
+ | Gentoo | ` layman -a ldc ` |
54
+ | Homebrew | ` brew install ldc ` |
55
+ | Ubuntu | ` apt install ldc ` |
56
+ | Snap | ` snap install --classic --channel=edge ldc ` |
54
57
55
- | | Command |
56
- | ------------ | --------------------- |
57
- | Arch Linux | ` pacman -S ldc ` |
58
- | Debian | ` apt install ldc ` |
59
- | Fedora | ` dnf install ldc ` |
60
- | Gentoo | ` layman -a ldc ` |
61
- | Homebrew | ` brew install ldc ` |
62
- | Ubuntu | ` apt install ldc ` |
63
-
64
- Further, LDC can be installed as snap package (possibly outdated):
65
-
66
- $ sudo snap install --classic --channel=edge ldc
58
+ Note that these packages ** might be outdated** as they are not
59
+ currently integrated into the project release process.
67
60
68
61
69
62
#### Windows
70
63
71
64
The latest official releases can be downloaded from the
72
65
[ GitHub release page] ( https://github.com/ldc-developers/ldc/releases ) .
73
66
74
- For bleeding-edge users, we also provide the
75
- [ latest successful Continuous Integration builds] ( https://github.com/ldc-developers/ldc/releases/tag/CI )
76
- with enabled LLVM & LDC assertions.
67
+ For bleeding-edge users, we also provide the [ latest successful
68
+ Continuous Integration builds] ( https://github.com/ldc-developers/ldc/releases/tag/CI )
69
+ with enabled LLVM & LDC assertions (significantly increasing compile times) .
77
70
78
- LDC for Windows relies on the Microsoft linker. So you'll either need
71
+ LDC for Windows relies on the Microsoft linker and runtime libraries,
72
+ which can be obtained by either installing
79
73
[ Visual Studio] ( https://www.visualstudio.com/downloads/ ) 2015 or 2017
80
74
with Visual C++, or the stand-alone
81
75
[ Visual C++ Build Tools] ( http://landinghub.visualstudio.com/visual-cpp-build-tools ) .
82
76
77
+
83
78
### Building from source
84
79
85
80
In-depth material on building and installing LDC and the standard
86
81
libraries is available on the project wiki for
87
- [ Linux and OS X ] ( http://wiki.dlang.org/Building_LDC_from_source ) and
82
+ [ Linux and macOS ] ( http://wiki.dlang.org/Building_LDC_from_source ) and
88
83
[ Windows] ( http://wiki.dlang.org/Building_and_hacking_LDC_on_Windows_using_MSVC ) .
89
84
90
- If you have a working C++ build environment, CMake, and a current LLVM (≥ 3.7)
91
- available, there should be no big surprises.
92
- Building LDC also requires a working D compiler, DMD and LDC are supported.
93
- (LDC 0.17 is the last version that does not need a D compiler,
94
- and for that reason we try to maintain it in the
95
- [ ltsmaster] ( https://github.com/ldc-developers/ldc/tree/ltsmaster ) branch).
96
-
97
- Do not forget to make sure all the submodules (druntime, phobos, dmd-testsuite)
85
+ If you have a working C++/D build environment, CMake, and a current LLVM
86
+ version (≥ 3.7) available, there should be no big surprises. Do not
87
+ forget to make sure all the submodules (druntime, phobos, dmd-testsuite)
98
88
are up to date:
99
89
100
90
$ cd ldc
101
91
$ git submodule update --init
102
92
93
+ (DMD and LDC are supported as host compilers. For bootstrapping
94
+ purposes, LDC 0.17, the last version not to require a D compiler, is
95
+ maintained in the ` ltsmaster ` branch).
96
+
97
+
103
98
Contact
104
99
-------
105
100
106
101
The best way to get in touch with the developers is either via the
107
- digitalmars.D.ldc forum/newsgroup/mailing list
108
- ( http://forum.dlang.org ) or our [ Gitter chat] ( http://gitter.im/ldc-developers/main ) .
102
+ [ digitalmars.D.ldc forum/newsgroup/mailing list] ( https://forum.dlang.org )
103
+ or our [ Gitter chat] ( http://gitter.im/ldc-developers/main ) .
109
104
There is also the #ldc IRC channel on FreeNode.
110
105
111
106
For further documentation, contributor information, etc. please see
112
- the D wiki: http: //wiki.dlang.org/LDC
107
+ [ the D wiki] ( https: //wiki.dlang.org/LDC) .
113
108
114
109
Feedback of any kind is very much appreciated!
115
110
116
111
117
- [ 1 ] : https://travis-ci.org/ ldc-developers/ldc " Travis CI Build Status"
118
- [ 2 ] : https://coveralls.io/r/ ldc-developers/ldc " Test Coverage "
119
- [ 3 ] : https://www.bountysource.com/trackers/283332- ldc?utm_source=283332&utm_medium=shield&utm_campaign=TRACKER_BADGE " Bountysource "
120
- [ 4 ] : https://semaphoreci. com/ldc-developers/ldc " Semaphore CI Build Status "
112
+ [ 1 ] : https://circleci.com/gh/ ldc-developers/ldc/tree/master " Circle CI Build Status"
113
+ [ 2 ] : https://semaphoreci.com/ ldc-developers/ldc " Semaphore CI Build Status "
114
+ [ 3 ] : https://travis-ci.org/ldc-developers/ ldc " Travis CI Build Status "
115
+ [ 4 ] : https://www.bountysource. com/teams/ ldc-developers/issues " Bountysource "
121
116
[ 5 ] : https://ci.appveyor.com/project/kinke/ldc/history " AppVeyor CI Build Status "
122
- [ 6 ] : https://circleci.com/gh/ldc-developers/ldc/tree/master " Circle CI Build Status "
0 commit comments