On Monday, 7 June 2021 at 09:29:08 UTC, tastyminerals wrote:
I getting
```
import/core/sync/mutex.d(87,36): Error: `pthread_mutexattr_init` cannot be interpreted at compile time, because it has no available source code
```
compile time error. One of those D exceptions which doesn't say where it happened in your code so you need to comment out the lines that might cause it one by one :D

I found that this was caused by the "FileLogger" which I create at the top of the file. But why?

You can't initialize classes at module scope. You can declare them, but then they must be initialized in a function or a module constructor. Normally for a type `MyClass` in module `foo`, you'd see an error like this:

```D
Error: variable `foo.MyClass` is a thread-local class and cannot have a static initializer. Use `static this()` to initialize instead.
```

I guess CTFE runs before the check that catches this, though, and the `FileLogger` constructor ultimately triggers the error your seeing.

Reply via email to