Difference between revisions of "DRuntime development"
(Init) |
(add common build targets) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
If you need help you can ask questions on <code>#d</code> IRC channel on freenode.org ([https://kiwiirc.com/client/irc.freenode.net/d web interface]) or on [http://forum.dlang.org/ our forum]. | If you need help you can ask questions on <code>#d</code> IRC channel on freenode.org ([https://kiwiirc.com/client/irc.freenode.net/d web interface]) or on [http://forum.dlang.org/ our forum]. | ||
− | + | == Common build target === | |
+ | === Build everything === | ||
− | == Run all tests == | + | <syntaxhighlight lang=bash> |
+ | make -f posix.mak -j4 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Build with debug symbols === | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | make -f posix.mak -j4 BUILD=debug | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Build only as a shared library === | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | make -f posix.mak dll -j4 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Build only as a static library === | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | make -f posix.mak lib -j4 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Testing == | ||
+ | |||
+ | This section explains commonly commands which are commonly used to test the low level runtime library for the D programming language. | ||
+ | |||
+ | === Run all tests === | ||
+ | |||
+ | The entire druntime testsuite can be run with the <tt>unittest</tt> target: | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
Line 11: | Line 40: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == Run an individual test == | + | === Run an individual test === |
− | Sometimes it can be helpful to rerun only a single test which tests the module or feature one is working on: | + | Sometimes it can be helpful to rerun only a single test which tests the module or feature one is working on. |
+ | For example: | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
Line 19: | Line 49: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | There are also unittest which have a different behavior when built in <tt>debug</tt>. |
+ | To test this, you can set the <tt>BUILD</tt> mode: | ||
+ | |||
+ | <syntaxhighlight lang=bash> | ||
+ | make -f posix.mak test/exceptions/.run BUILD=debug | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | When you execute the <tt>unittest</tt> target, <tt>unittest-debug</tt> and <tt>unittest-release</tt> are tested. | ||
+ | |||
+ | == Benchmarking == | ||
If you are making a bigger change or want to improve the performance of a specific function in druntime, you should run the included benchmark script: | If you are making a bigger change or want to improve the performance of a specific function in druntime, you should run the included benchmark script: | ||
Line 26: | Line 65: | ||
rdmd benchmark/runbench.d | rdmd benchmark/runbench.d | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | [[Category:Contribution Guidelines]] |
Latest revision as of 15:35, 7 May 2018
Welcome to the D community and thanks for your interest in contributing!
If you need help you can ask questions on #d
IRC channel on freenode.org (web interface) or on our forum.
Contents
Common build target =
Build everything
make -f posix.mak -j4
Build with debug symbols
make -f posix.mak -j4 BUILD=debug
make -f posix.mak dll -j4
Build only as a static library
make -f posix.mak lib -j4
Testing
This section explains commonly commands which are commonly used to test the low level runtime library for the D programming language.
Run all tests
The entire druntime testsuite can be run with the unittest target:
make -f posix.mak unittest -j4
Run an individual test
Sometimes it can be helpful to rerun only a single test which tests the module or feature one is working on. For example:
make -f posix.mak test/coverage/.run
There are also unittest which have a different behavior when built in debug. To test this, you can set the BUILD mode:
make -f posix.mak test/exceptions/.run BUILD=debug
When you execute the unittest target, unittest-debug and unittest-release are tested.
Benchmarking
If you are making a bigger change or want to improve the performance of a specific function in druntime, you should run the included benchmark script:
rdmd benchmark/runbench.d