some std wrappers around libc
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
func main[] : I64
|
||||
// https://brainfuck.org/sierpinski.b
|
||||
let src: String = "++++++++[>+>++++<<-]>++>>+<[-[>>+<<-]+>>]>+[-<<<[->[+[-]+>++>>>-<<]<[<]>>++++++[<<+++++>>-]+<<++.[-]<<]>.>+[>>]>+]"
|
||||
let src_len: I64 = c.strlen(src)
|
||||
let src_len: I64 = str.len(src)
|
||||
let i: I64 = 0
|
||||
|
||||
let memory: Ptr = c.calloc(1, 30000)
|
||||
@@ -45,4 +45,4 @@ func main[] : I64
|
||||
|
||||
i = i + 1
|
||||
|
||||
c.free(memory)
|
||||
mem.free(memory)
|
||||
@@ -7,7 +7,7 @@ func main[argc: I64, argv: Ptr] : I64
|
||||
if c.strncmp(url, "http://", 7) != 0
|
||||
dbg.panic("invalid url scheme")
|
||||
|
||||
let url_len: I64 = c.strlen(url)
|
||||
let url_len: I64 = str.len(url)
|
||||
let host_start: I64 = 7
|
||||
let i: I64 = host_start
|
||||
while i < url_len
|
||||
@@ -24,12 +24,12 @@ func main[argc: I64, argv: Ptr] : I64
|
||||
if s < 0
|
||||
dbg.panic("failed to connect")
|
||||
|
||||
let req: String = c.malloc(2048)
|
||||
let req: String = mem.alloc(2048)
|
||||
c.snprintf(req, 2048, "GET %s HTTP/1.0\r\nHost: %s\r\nConnection: close\r\n\r\n", path, host)
|
||||
c.send(s, req, c.strlen(req), 0)
|
||||
c.free(req)
|
||||
c.send(s, req, str.len(req), 0)
|
||||
mem.free(req)
|
||||
|
||||
let header_buf: Ptr = c.malloc(8192)
|
||||
let header_buf: Ptr = mem.alloc(8192)
|
||||
let header_size: I64 = 0
|
||||
let found: Bool = false
|
||||
let end_index: I64 = -1
|
||||
@@ -51,14 +51,14 @@ func main[argc: I64, argv: Ptr] : I64
|
||||
|
||||
if end_index < header_size
|
||||
c.write(1, header_buf + end_index, header_size - end_index)
|
||||
c.free(header_buf)
|
||||
mem.free(header_buf)
|
||||
|
||||
let buffer: Ptr = c.malloc(4096)
|
||||
let buffer: Ptr = mem.alloc(4096)
|
||||
while true
|
||||
let n: I64 = c.read(s, buffer, 4096)
|
||||
if n <= 0
|
||||
break
|
||||
c.write(1, buffer, n)
|
||||
c.free(buffer)
|
||||
mem.free(buffer)
|
||||
|
||||
c.close(s)
|
||||
@@ -6,8 +6,8 @@ func main[] : I64
|
||||
if a * b > out
|
||||
let s: String = str.from_i64(a * b)
|
||||
let s_rev: String = str.reverse(s)
|
||||
if c.strcmp(s, s_rev) == 0
|
||||
if str.equal(s, s_rev)
|
||||
out = a * b
|
||||
c.free(s)
|
||||
c.free(s_rev)
|
||||
mem.free(s)
|
||||
mem.free(s_rev)
|
||||
io.print_i64(out)
|
||||
@@ -2,7 +2,7 @@ func main[] : I64
|
||||
let n: String = "7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450"
|
||||
|
||||
let out: I64 = 0
|
||||
let max: I64 = c.strlen(n) - 13
|
||||
let max: I64 = str.len(n) - 13
|
||||
for i in 0..max
|
||||
let s: I64 = 1
|
||||
let j: I64 = 0
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
func main[] : I64
|
||||
let s: I64 = net.listen(8000)
|
||||
|
||||
let resp: String = c.malloc(60000)
|
||||
let resp: String = mem.alloc(60000)
|
||||
while true
|
||||
let c: I64 = c.accept(s, 0, 0)
|
||||
if c < 0
|
||||
let conn: I64 = c.accept(s, 0, 0)
|
||||
if conn < 0
|
||||
continue
|
||||
|
||||
let n: I64 = c.read(c, resp, 60000)
|
||||
c.send(c, resp, n, 0)
|
||||
c.close(c)
|
||||
let n: I64 = c.read(conn, resp, 60000)
|
||||
c.send(conn, resp, n, 0)
|
||||
c.close(conn)
|
||||
Reference in New Issue
Block a user