Refactored the interface of the io package

This commit is contained in:
2025-04-07 18:02:36 +02:00
parent 08ea91f46c
commit a9d783c675
12 changed files with 29 additions and 35 deletions

View File

@ -8,6 +8,6 @@ main() {
buffer[2] = 'l' buffer[2] = 'l'
buffer[3] = 'l' buffer[3] = 'l'
buffer[4] = 'o' buffer[4] = 'o'
io.out(buffer) io.write(buffer)
mem.free(buffer) mem.free(buffer)
} }

View File

@ -19,6 +19,6 @@ collatz(x int) {
return return
} }
io.out(" ") io.write(" ")
} }
} }

View File

@ -10,9 +10,9 @@ fizzbuzz(n int) {
loop { loop {
switch { switch {
x % 15 == 0 { io.out("FizzBuzz") } x % 15 == 0 { io.write("FizzBuzz") }
x % 5 == 0 { io.out("Buzz") } x % 5 == 0 { io.write("Buzz") }
x % 3 == 0 { io.out("Fizz") } x % 3 == 0 { io.write("Fizz") }
_ { fmt.decimal(x) } _ { fmt.decimal(x) }
} }
@ -22,6 +22,6 @@ fizzbuzz(n int) {
return return
} }
io.out(" ") io.write(" ")
} }
} }

View File

@ -1,5 +1,5 @@
import io import io
main() { main() {
io.out("Hello\n") io.write("Hello\n")
} }

View File

@ -1,5 +1,5 @@
import io
import mem import mem
import sys
Point { Point {
x int x int
@ -29,6 +29,6 @@ print(p *Point) {
out[5] = ' ' out[5] = ' '
out[6] = '0' + p.y out[6] = '0' + p.y
out[7] = '\n' out[7] = '\n'
sys.write(1, out, 8) io.write(out)
mem.free(out) mem.free(out)
} }

View File

@ -12,7 +12,7 @@ main() {
if isPrime(i) { if isPrime(i) {
if i != 2 { if i != 2 {
io.out(" ") io.write(" ")
} }
fmt.decimal(i) fmt.decimal(i)

View File

@ -6,30 +6,30 @@ main() {
socket := sys.socket(2, 1, 0) socket := sys.socket(2, 1, 0)
if socket < 0 { if socket < 0 {
io.error("socket error\n") io.write("socket error\n")
sys.exit(1) sys.exit(1)
} }
if net.bind(socket, 8080) != 0 { if net.bind(socket, 8080) != 0 {
io.error("bind error\n") io.write("bind error\n")
sys.exit(1) sys.exit(1)
} }
if sys.listen(socket, 128) != 0 { if sys.listen(socket, 128) != 0 {
io.error("listen error\n") io.write("listen error\n")
sys.exit(1) sys.exit(1)
} }
io.out("listening...\n") io.write("listening...\n")
loop { loop {
conn := sys.accept(socket, 0, 0) conn := sys.accept(socket, 0, 0)
if conn >= 0 { if conn >= 0 {
io.write(conn, "HTTP/1.0 200 OK\r\nContent-Length: 6\r\n\r\nHello\n") io.writeTo(conn, "HTTP/1.0 200 OK\r\nContent-Length: 6\r\n\r\nHello\n")
sys.close(conn) sys.close(conn)
} else { } else {
io.error("accept error\n") io.write("accept error\n")
} }
} }
} }

View File

@ -7,7 +7,7 @@ main() {
command := mem.alloc(length) command := mem.alloc(length)
loop { loop {
io.out("λ ") io.write("λ ")
n := io.in(command) n := io.in(command)
if n <= 0 { if n <= 0 {

View File

@ -10,6 +10,6 @@ main() {
} }
work() { work() {
io.out("[ ] start\n") io.write("[ ] start\n")
io.out("[x] end\n") io.write("[x] end\n")
} }

View File

@ -1,17 +1,3 @@
import sys
in(buffer []byte) -> int {
return sys.read(std.in, buffer, len(buffer))
}
out(buffer []byte) -> int {
return sys.write(std.out, buffer, len(buffer))
}
error(buffer []byte) -> int {
return sys.write(std.err, buffer, len(buffer))
}
const { const {
std { std {
in 0 in 0

View File

@ -1,5 +1,9 @@
import sys import sys
read(fd int, buffer []byte) -> int { read(buffer []byte) -> int {
return sys.read(std.in, buffer, len(buffer))
}
readFrom(fd int, buffer []byte) -> int {
return sys.read(fd, buffer, len(buffer)) return sys.read(fd, buffer, len(buffer))
} }

View File

@ -1,5 +1,9 @@
import sys import sys
write(fd int, buffer []byte) -> int { write(buffer []byte) -> int {
return sys.write(std.out, buffer, len(buffer))
}
writeTo(fd int, buffer []byte) -> int {
return sys.write(fd, buffer, len(buffer)) return sys.write(fd, buffer, len(buffer))
} }