123456789101112131415161718192021 |
- ## Coroutine detection logic
- template coroutinesSupportedPlatform(): bool =
- when defined(sparc) or defined(ELATE) or defined(boehmgc) or defined(gogc) or
- defined(nogc) or defined(gcRegions) or defined(gcMarkAndSweep):
- false
- else:
- true
- when defined(nimCoroutines):
- # Explicit opt-in.
- when not coroutinesSupportedPlatform():
- {.error: "Coroutines are not supported on this architecture and/or garbage collector.".}
- const nimCoroutines* = true
- elif defined(noNimCoroutines):
- # Explicit opt-out.
- const nimCoroutines* = false
- else:
- # Autodetect coroutine support.
- const nimCoroutines* = false
|