Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions effekt/jvm/src/test/scala/effekt/StdlibTests.scala
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,5 @@ class StdlibLLVMTests extends StdlibTests {
override def ignored: Set[File] = Set(
// String comparison using `<`, `<=`, `>`, `>=` is not implemented yet on LLVM
examplesDir / "stdlib" / "string" / "compare.effekt",

// Wrong codegen for negative types, see #801
examplesDir / "stdlib" / "json.effekt",
examplesDir / "stdlib" / "buffer.effekt",
)
}
4 changes: 2 additions & 2 deletions libraries/common/buffer.effekt
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,15 @@ def arrayBuffer[T](initialCapacity: Int): Buffer[T] at global = {
def full?() = capacity() <= 0
def empty?() = size() <= 0
def read() = {
if (buffer.empty?) None()
if (size() <= 0) None()
else {
val result: T = contents.unsafeGet(head.get)
head.set(mod(head.get + 1, initialCapacity))
Some(result)
}
}
def write(el: T) = {
if (buffer.full?) <> // raise(BufferOverflow())
if (capacity() <= 0) <> // raise(BufferOverflow())

contents.unsafeSet(tail.get, el)
tail.set(mod(tail.get + 1, initialCapacity))
Expand Down
19 changes: 11 additions & 8 deletions libraries/common/json.effekt
Original file line number Diff line number Diff line change
Expand Up @@ -327,15 +327,18 @@ namespace test {
def k = new JsonObjectBuilder {
def field(k){v} = { println(k); ignore{v} }
}
def d = new JsonBuilder {
def number(n) = println(n)
def bool(b) = ()
def null() = println("NULL")
def string(s) = ()
def list(){e} = handleJsonBuilder{d}{e}
def dict(){e} = handleJsonObjectBuilder{k}{e}
def jsonBuilder[R] {e: => R / JsonBuilder}: R = {
def d = new JsonBuilder {
def number(n) = println(n)
def bool(b) = ()
def null() = println("NULL")
def string(s) = ()
def list(){e} = jsonBuilder{e}
def dict(){e} = handleJsonObjectBuilder{k}{e}
}
handleJsonBuilder{d}{e}
}
handleJsonBuilder{d}{ decodeJson() }
jsonBuilder { decodeJson() }
}

println("")
Expand Down