digitalmars.D.bugs - [Issue 23421] New: File.rawRead is system on Windows
- d-bugmail puremagic.com (42/42) Oct 16 2022 https://issues.dlang.org/show_bug.cgi?id=23421
https://issues.dlang.org/show_bug.cgi?id=23421 Issue ID: 23421 Summary: File.rawRead is system on Windows Product: D Version: D2 Hardware: All OS: Windows Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nobody puremagic.com Reporter: snarwin+bugzilla gmail.com The following program compiles on Linux, but not on Windows: --- import std.stdio; void main() safe { } private ubyte readByte(File file) safe in(file.isOpen) { ubyte[1] buffer; return file.rawRead(buffer)[0]; } --- The error message is: -- Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64. safetest ~master: building configuration "application"... Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64. safetest ~master: building configuration "application"... source\app.d(12,24): Error: ` safe` function `app.readByte` cannot call ` system` function `std.stdio.File.rawRead!ubyte.rawRead` C:\D\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(1138,9): `std.stdio.File.rawRead!ubyte.rawRead` is declared here C:\D\dmd2\windows\bin\dmd.exe failed with exit code 1. --- The cause is likely several calls to extern(C) functions in a version (Windows) block: https://github.com/dlang/phobos/blob/v2.100.2/std/stdio.d#L1145-L1159 --
Oct 16 2022