The standard library of the D programming language
Find a file
Geod24 1e73cb8ca7 std.traits: Add support for 'in' storage class
For a long time, the 'in' storage class was only a second class citizen,
merely an alias for 'const', which is a type constructor.
While it was also documented for a long time as being 'scope',
this was removed when 'scope' actually started to have an effect
(when DIP1000 started to be implemented).
Currently, a switch (-preview=in) allows to get back this 'scope'.

However, the 'in' storage class does not really exists,
it gets lowered to 'const [scope]' at an early stage by the compiler,
which means that we expose what is essentially an implementation
detail to the user.

There is a PR in DMD (dlang/dmd#11474) that aims to give 'in' an actual
identity, instead of it being lowered to 'const [scope]'.
The underlying motivation is to allow for extending 'in''s functionality,
giving it the ability to pass by 'ref' when necessary, and accept rvalues.

However, regardless of the second goal, having proper support for 'in'
would lead to less confusing messages, better code generation,
and less confusion w.r.t. the behavior of `std.traits.ParameterStorageClass`.
2020-08-01 19:39:20 +09:00
.circleci Merge pull request #7261 from atilaneves/circleci-numjobs 2019-11-01 17:45:26 +01:00
changelog purge changelog 2020-05-11 19:28:25 +02:00
etc/c Update header of sqlite3 to 3.30.1 2019-10-20 15:43:11 +02:00
std std.traits: Add support for 'in' storage class 2020-08-01 19:39:20 +09:00
test Remove separate @betterC tests 2018-09-20 18:37:39 +02:00
.codecov.yml Use informational:true for CodeCov 2018-02-04 17:23:57 +01:00
.dscanner.ini Fix Issue 20869 - move is overly trusting of opPostMove 2020-05-29 13:35:07 +02:00
.editorconfig Fix line endings in .editorconfig 2018-09-16 12:19:04 -07:00
.gitignore Add initial dub.sdl with stdx-allocator and stdx-checkedint 2018-06-22 16:56:20 +02:00
azure-pipelines.yml fix azure pipeline: building with LDC now needs DMD as a host compiler for tools, too 2020-03-03 09:24:20 +01:00
CODEOWNERS CODEOWNERS: Add whitespace after # comments due to GitHub bug 2017-07-16 01:30:04 +02:00
CONTRIBUTING.md update issue link to issues.dlang.org 2016-05-17 09:40:29 +03:00
dub.sdl Expose a copy of std.conv with the DUB package of stdx.allocator 2018-06-26 06:17:36 +02:00
index.d Issue 19055 - [404 Not Found] std.digest.digest 2018-07-17 12:48:42 +02:00
Jenkinsfile use ci repo as shared jenkins library 2017-10-06 16:04:07 +02:00
LICENSE_1_0.txt Changed Phobos to use the Boost license. Currently, all public domain modules and all licensed modules by Walter, Andrei, Bartosz, and Don have been changed to use this license (excepting std.c, for the moment). Ideally, all Phobos modules will eventually be distributed under this license, which means obtaining permission from a few more authors, deleting, or rewriting some modules. 2009-09-16 18:19:51 +00:00
posix.mak Update style checker whitelist 2020-05-05 14:37:47 +08:00
project.ddoc add PROJECT=phobos ddoc macro 2014-01-10 19:16:53 +01:00
README.md Remove no longer available issue stats and add a Buildkite badge 2019-01-04 18:02:28 +01:00
unittest.d Remove deprecated symbols from std.digest.digest 2020-04-09 11:35:23 +02:00
win32.mak Update make files 2020-05-05 13:07:10 +08:00
win64.mak Update make files 2020-05-05 13:07:10 +08:00

D Logo Phobos Standard Library

GitHub tag Bugzilla Issues CircleCi Buildkite Code coverage license

Phobos is the standard library that comes with the D Programming Language Compiler.

Download

Phobos is packaged together with the compiler. You should download the whole precompiled package.

To build everything yourself, there is a description in the wiki.

Phobos is distributed under Boost Software Licence. See the licence file.

I Want to Contribute

Great! See the CONTRIBUTING.md file.