mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-21 10:41:59 +03:00
c725b11c89
On Unix-like operating systems stdio.h is usually line-buffered. As putStr uses fputs(3) from stdio.h internally, output will be written to standard out after a newline character is written to the buffer. Since the prompt does not contain a newline, it will only be written to standard output after the user presses return. I encountered this issue on Alpine Linux which uses musl libc (instead of glibc). However, I believe this issue is likely also reproducible with glibc. This commit fixes this issue by flushing standard output after writing the prompt to it. Surprisingly, `src/Idris/IDEMode/REPL.idr` already does this correctly, `src/Idris/REPL.idr` does not though.
37 lines
793 B
Plaintext
37 lines
793 B
Plaintext
1/1: Building TypeCase (TypeCase.idr)
|
|
Main> "Nat"
|
|
"List of Nat"
|
|
"List of Something else"
|
|
"List of Something else"
|
|
"List of Bool"
|
|
"Int"
|
|
"Something else"
|
|
"List of Type"
|
|
"List of Int"
|
|
43
|
|
42
|
|
Main> Main.strangeId is total
|
|
Main> Main.strangeId': strangeId' _
|
|
Main> Bye for now!
|
|
1/1: Building TypeCase2 (TypeCase2.idr)
|
|
Error: While processing left hand side of strangeId. Can't match on Nat (Erased argument).
|
|
|
|
TypeCase2.idr:5:14--5:17
|
|
1 | data Bar = MkBar
|
|
2 | data Baz = MkBaz
|
|
3 |
|
|
4 | strangeId : a -> a
|
|
5 | strangeId {a=Nat} x = x+1
|
|
^^^
|
|
|
|
Error: While processing left hand side of foo. Can't match on Nat (Erased argument).
|
|
|
|
TypeCase2.idr:9:5--9:8
|
|
5 | strangeId {a=Nat} x = x+1
|
|
6 | strangeId x = x
|
|
7 |
|
|
8 | foo : (0 x : Type) -> String
|
|
9 | foo Nat = "Nat"
|
|
^^^
|
|
|