Major topics discussed during BeerConf September 2020 edition
- Walter implemented
__totype(string)
(dlang/dmd#11797) Points raised in objection to the feature are:
- It can't work in CTFE, as they are not polymorphic
- It's inferior to the capabilities type functions
(General conversation about science fiction books, genres, and authors)
- All rejoice for -preview=in!
- Mathias raised a problem where -preview=in is not compatible with non-preview=in code, and so there needs to be a way to propagate the compiler flag in dub (see topic 11).
- Type functions -- how do they work. What are the limitations
- Cannot generate types inside type functions
- Do not want to do any code generation while executing a type function
-
SIMD and alignment - I wasn't paying too much attention, but I think this was about how the compiler doesn't align SIMD static arrays automatically.
-
Issues with compilation times:
- importing std.uni, and using -unittest adds 500ms of compile time. UNACCEPTABLE!!!!
- A recent change in the compiler magically fixed an issue that Atila was doing. Stefan says -- it changed the order of default template parameter analysis.
-
Type functions are like cutting sentences out of paper -- they cannot change shape
-
Issues with compilation of templates:
- First, we need a compiler situation that will actually work, link and run as expected
- Then we need to figure out what we can do to improve the performance
-
(spoken) Languages which pronounce H are barbaric. (Yay French!)
-
Tooling is great in Go, why not in D?
- Go provides access to the compiler internals
- But IDEs and other things will come when someone feels the need to make it.
- Beer thread! Where are the worst beers created? We have some contenders:
- Ethan: Finland
- Steve: America has some pretty bad beer
- Mathias: South Korean beers are only mixers
-
Is there a way to propagate compiler command line options to subprojects (DUB) ?
-
Reification, what's that all about? https://gist.github.com/andralex/6212ebf2b38c59c96cf66d0009336318
adr's addition to reification
// only gonna work on type lists though!
template NoDuplicates(T...) {
import std.meta;
string getIndexesCode() {
size_t[string] things;
foreach(idx, t; T)
things[t.mangleof] = idx;
string code;
foreach(k, v; things) {
if(code.length) code ~= ", ";
code ~= "T[" ~ cast(char) (v + '0') ~ "]";
}
return "AliasSeq!(" ~ code ~ ")";
}
alias NoDuplicates = mixin(getIndexesCode());
}
static assert(NoDuplicates!(int, int, string).length == 2);
static assert(is(NoDuplicates!(int, int, string)[0] == int));
static assert(is(NoDuplicates!(int, int, string)[1] == string));
- What is everyone's view of the things that you hate about D, and the things that you like about D?
- Why do people who are contributors leave the community?
- What can people to to determine who is an appropriate reviewer for a PR?
- D used in drag racing -- IT'S HAPPENING. Very interesting stuff from Dylan Graham.
Missed @adr's stuff, pretty cool!