Skip to content

Commit 9087d4a

Browse files
committed
Rename and fix tests
1 parent 553daef commit 9087d4a

File tree

6 files changed

+51
-45
lines changed

6 files changed

+51
-45
lines changed

effekt/jvm/src/test/scala/effekt/ChezSchemeTests.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ abstract class ChezSchemeTests extends EffektTests {
3737
examplesDir / "benchmarks" / "input_output" / "small_files.effekt",
3838
examplesDir / "benchmarks" / "input_output" / "interleave_promises.effekt",
3939
examplesDir / "benchmarks" / "input_output" / "financial_format.effekt",
40+
examplesDir / "benchmarks" / "input_output" / "server_client.effekt",
4041

4142
// unsafe continuations are not yet supported in our Chez backend
4243
examplesDir / "pos" / "unsafe_cont.effekt",

effekt/jvm/src/test/scala/effekt/JavaScriptTests.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ class JavaScriptTests extends EffektTests {
3737
override def ignored: Set[File] = super.ignored ++ Set(
3838
// unsafe cont
3939
examplesDir / "pos" / "propagators.effekt",
40+
// tcp server and client
41+
examplesDir / "benchmarks" / "input_output" / "server_client.effekt",
4042
)
4143
}
4244

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
110
1+
55

examples/benchmarks/input_output/server_client.effekt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
1+
import examples/benchmarks/runner
2+
13
import io
24
import io/error
35
import io/network
4-
import io/time
56
import bytearray
67

7-
def main() = {
8+
def run(n: Int) = {
89
with on[IOError].panic
9-
val listener = listen("127.0.0.1", 8080);
10+
11+
val listener = bind("127.0.0.1", 8080);
1012
spawn(box {
1113
with on[IOError].panic
12-
accept(listener, box { connection =>
14+
listen(listener, box { connection =>
1315
with on[IOError].panic
1416
val message = "hello world"
1517
var buffer = bytearray::fromString(message)
1618
write(connection, buffer, 0, buffer.size())
1719
close(connection)
1820
})});
1921

20-
val results = array::build(10) { i =>
22+
val results = array::build(n) { i =>
2123
promise(box {
2224
with on[IOError].result
23-
wait(1000)
2425
val connection = connect("127.0.0.1", 8080)
2526
var buffer = bytearray::allocate(4096)
2627
val number = read(connection, buffer, 0, 4096)
@@ -36,5 +37,7 @@ def main() = {
3637

3738
shutdown(listener)
3839

39-
println(total)
40+
return total
4041
}
42+
43+
def main() = benchmark(5){run}

libraries/common/io/network.effekt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ def close(handle: Connection): Unit / Exception[IOError] = {
2424
/// A tcp listener. Should not be inspected.
2525
type Listener = Int
2626

27-
def listen(host: String, port: Int): Listener / Exception[IOError] =
28-
internal::checkResult(internal::listen(host, port))
27+
def bind(host: String, port: Int): Listener / Exception[IOError] =
28+
internal::checkResult(internal::bind(host, port))
2929

30-
def accept(listener: Listener, handler: Connection => Unit at {io, async, global}): Unit / Exception[IOError] = {
31-
internal::checkResult(internal::accept(listener, handler)); ()
30+
def listen(listener: Listener, handler: Connection => Unit at {io, async, global}): Unit / Exception[IOError] = {
31+
internal::checkResult(internal::listen(listener, handler)); ()
3232
}
3333

3434
def shutdown(listener: Listener): Unit / Exception[IOError] = {
@@ -42,8 +42,8 @@ namespace internal {
4242
declare void @c_tcp_read(%Int, %Pos, %Int, %Int, %Stack)
4343
declare void @c_tcp_write(%Int, %Pos, %Int, %Int, %Stack)
4444
declare void @c_tcp_close(%Int, %Stack)
45-
declare void @c_tcp_listen(%Pos, %Int, %Int, %Stack)
46-
declare void @c_tcp_accept(%Int, %Pos, %Stack)
45+
declare void @c_tcp_bind(%Pos, %Int, %Int, %Stack)
46+
declare void @c_tcp_listen(%Int, %Pos, %Stack)
4747
declare void @c_tcp_shutdown(%Int, %Stack)
4848
"""
4949

@@ -73,15 +73,15 @@ namespace internal {
7373
ret void
7474
"""
7575

76-
extern async def listen(host: String, port: Int): Int =
76+
extern async def bind(host: String, port: Int): Int =
7777
llvm """
78-
call void @c_tcp_listen(%Pos ${host}, %Int ${port}, %Stack %stack)
78+
call void @c_tcp_bind(%Pos ${host}, %Int ${port}, %Stack %stack)
7979
ret void
8080
"""
8181

82-
extern async def accept(listener: Int, handler: Int => Unit at {io, async, global}): Int =
82+
extern async def listen(listener: Int, handler: Int => Unit at {io, async, global}): Int =
8383
llvm """
84-
call void @c_tcp_accept(%Int ${listener}, %Pos ${handler}, %Stack %stack)
84+
call void @c_tcp_listen(%Int ${listener}, %Pos ${handler}, %Stack %stack)
8585
ret void
8686
"""
8787

libraries/llvm/io.c

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ void c_tcp_close(Int handle, Stack stack) {
317317
uv_close(uv_handle, c_tcp_close_cb);
318318
}
319319

320-
void c_tcp_listen(String host, Int port, Stack stack) {
320+
void c_tcp_bind(String host, Int port, Stack stack) {
321321
// TODO make non-async
322322
char* host_str = c_bytearray_into_nullterminated_string(host);
323323
erasePositive(host);
@@ -355,16 +355,16 @@ void c_tcp_listen(String host, Int port, Stack stack) {
355355
typedef struct {
356356
Stack stack;
357357
struct Pos handler;
358-
} tcp_accept_closure_t;
358+
} tcp_listen_closure_t;
359359

360-
void c_tcp_accept_cb(uv_stream_t* server, int status) {
361-
tcp_accept_closure_t* accept_closure = (tcp_accept_closure_t*)server->data;
360+
void c_tcp_listen_cb(uv_stream_t* server, int status) {
361+
tcp_listen_closure_t* listen_closure = (tcp_listen_closure_t*)server->data;
362362

363363
if (status < 0) {
364364
// TODO resume last
365-
erasePositive(accept_closure->handler);
366-
resume_Int(accept_closure->stack, status);
367-
free(accept_closure);
365+
erasePositive(listen_closure->handler);
366+
resume_Int(listen_closure->stack, status);
367+
free(listen_closure);
368368
server->data = NULL;
369369
return;
370370
}
@@ -375,9 +375,9 @@ void c_tcp_accept_cb(uv_stream_t* server, int status) {
375375
if (result < 0) {
376376
// TODO resume last
377377
free(client);
378-
erasePositive(accept_closure->handler);
379-
resume_Int(accept_closure->stack, result);
380-
free(accept_closure);
378+
erasePositive(listen_closure->handler);
379+
resume_Int(listen_closure->stack, result);
380+
free(listen_closure);
381381
server->data = NULL;
382382
return;
383383
}
@@ -386,28 +386,28 @@ void c_tcp_accept_cb(uv_stream_t* server, int status) {
386386
if (result < 0) {
387387
// TODO resume last
388388
uv_close((uv_handle_t*)client, (uv_close_cb)free);
389-
erasePositive(accept_closure->handler);
390-
resume_Int(accept_closure->stack, result);
391-
free(accept_closure);
389+
erasePositive(listen_closure->handler);
390+
resume_Int(listen_closure->stack, result);
391+
free(listen_closure);
392392
server->data = NULL;
393393
return;
394394
}
395395

396-
sharePositive(accept_closure->handler);
397-
run_Int(accept_closure->handler, (int64_t)client);
396+
sharePositive(listen_closure->handler);
397+
run_Int(listen_closure->handler, (int64_t)client);
398398
}
399399

400-
void c_tcp_accept(Int listener, struct Pos handler, Stack stack) {
400+
void c_tcp_listen(Int listener, struct Pos handler, Stack stack) {
401401
uv_stream_t* server = (uv_stream_t*)listener;
402402

403-
tcp_accept_closure_t* accept_closure = malloc(sizeof(tcp_accept_closure_t));
404-
accept_closure->stack = stack;
405-
accept_closure->handler = handler;
406-
server->data = accept_closure;
403+
tcp_listen_closure_t* listen_closure = malloc(sizeof(tcp_listen_closure_t));
404+
listen_closure->stack = stack;
405+
listen_closure->handler = handler;
406+
server->data = listen_closure;
407407

408-
int result = uv_listen(server, SOMAXCONN, c_tcp_accept_cb);
408+
int result = uv_listen(server, SOMAXCONN, c_tcp_listen_cb);
409409
if (result < 0) {
410-
free(accept_closure);
410+
free(listen_closure);
411411
erasePositive(handler);
412412
resume_Int(stack, result);
413413
return;
@@ -417,13 +417,13 @@ void c_tcp_accept(Int listener, struct Pos handler, Stack stack) {
417417
void c_tcp_shutdown(Int handle, Stack stack) {
418418
uv_handle_t* uv_handle = (uv_handle_t*)handle;
419419

420-
tcp_accept_closure_t* accept_closure = (tcp_accept_closure_t*)uv_handle->data;
421-
if (accept_closure) {
420+
tcp_listen_closure_t* listen_closure = (tcp_listen_closure_t*)uv_handle->data;
421+
if (listen_closure) {
422422
// TODO what to resume with
423423
// TODO resume last
424-
resume_Int(accept_closure->stack, 0);
425-
erasePositive(accept_closure->handler);
426-
free(accept_closure);
424+
resume_Int(listen_closure->stack, 0);
425+
erasePositive(listen_closure->handler);
426+
free(listen_closure);
427427
}
428428

429429
uv_handle->data = stack;

0 commit comments

Comments
 (0)