Skip to content

Commit eaea654

Browse files
committed
v1.0.0-rc2
1 parent d5c19c7 commit eaea654

File tree

5 files changed

+40
-48
lines changed

5 files changed

+40
-48
lines changed

CHANGELOG.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# Changelog
22

3-
## v1.0.0-rc2 - Unreleased
3+
## v1.0.0-rc2 - 2025-06-12
44

5-
- The `gleam/erlang/node` function gains the `name` function.
5+
- The `send_abnormal_exit` function in the `gleam/erlang` module now takes the
6+
reason as a string.
7+
- The `gleam/erlang/node` module gains the `name` function.
68
- `process.receive` will now panic if given a non-named subject that is not
79
owned by the current process.
810

gleam.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "gleam_erlang"
22

3-
version = "1.0.0-rc1"
3+
version = "1.0.0"
44
licences = ["Apache-2.0"]
55
description = "Types and functions for programs running on Erlang!"
66

src/gleam/erlang/process.gleam

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -808,8 +808,8 @@ pub fn send_exit(to pid: Pid) -> Nil {
808808
///
809809
/// [1]: http://erlang.org/doc/man/erlang.html#exit-2
810810
///
811-
pub fn send_abnormal_exit(pid: Pid, reason: anything) -> Nil {
812-
erlang_send_exit(pid, dynamic.from(reason))
811+
pub fn send_abnormal_exit(pid: Pid, reason: String) -> Nil {
812+
erlang_send_exit(pid, reason)
813813
Nil
814814
}
815815

test/gleam/erlang/charlist_test.gleam

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import gleam/dynamic
22
import gleam/erlang/charlist
33

44
pub fn to_string_test() {
5-
let assert "Hello, from erlang!" =
6-
"Hello, from erlang!"
5+
assert "Hello, from erlang!"
6+
== "Hello, from erlang!"
77
|> charlist.from_string()
88
|> charlist.to_string()
99
}
@@ -13,23 +13,17 @@ fn lists_duplicate(n n: Int, elem elem: Int) -> charlist.Charlist
1313

1414
pub fn from_char_list_test() {
1515
// Test conversion from a char list generated by Erlang
16-
let assert "ééé" =
17-
lists_duplicate(3, 0xE9)
16+
assert "ééé"
17+
== lists_duplicate(3, 0xE9)
1818
|> charlist.to_string()
1919
}
2020

2121
pub fn empty_string_test() {
22-
let assert "" =
23-
[]
24-
|> dynamic.from
22+
assert ""
23+
== []
24+
|> dynamic.list
2525
|> unsafe_coerce
2626
|> charlist.to_string
27-
28-
let assert [] =
29-
""
30-
|> charlist.from_string()
31-
|> dynamic.from
32-
|> unsafe_coerce
3327
}
3428

3529
@external(erlang, "gleam_erlang_ffi", "identity")

test/gleam/erlang/process_test.gleam

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import gleam/int
88
import gleam/list
99
import gleam/option.{Some}
1010
import gleam/set
11-
import gleeunit/should
1211

1312
@external(erlang, "gleam_erlang_ffi", "identity")
1413
fn unsafe_coerce(a: dynamic.Dynamic) -> anything
@@ -84,8 +83,8 @@ pub fn receive_other_test() {
8483
process.spawn(fn() { process.send(subject, process.new_subject()) })
8584
let assert Ok(subject) = process.receive(subject, 20)
8685

87-
assert_panic(fn() { process.receive(subject, 0) })
88-
|> should.equal("Cannot receive with a subject owned by another process")
86+
assert assert_panic(fn() { process.receive(subject, 0) })
87+
== "Cannot receive with a subject owned by another process"
8988
}
9089

9190
pub fn receive_forever_test() {
@@ -153,20 +152,19 @@ pub fn selector_test() {
153152
}
154153

155154
pub fn monitor_normal_exit_test() {
156-
monitor_process_exit(fn() { Nil })
157-
|> should.equal(process.Normal)
155+
assert monitor_process_exit(fn() { Nil }) == process.Normal
158156
}
159157

160158
pub fn monitor_killed_test() {
161-
monitor_process_exit(fn() { process.kill(process.self()) })
162-
|> should.equal(process.Killed)
159+
assert monitor_process_exit(fn() { process.kill(process.self()) })
160+
== process.Killed
163161
}
164162

165163
pub fn monitor_abnormal_exit_test() {
166-
monitor_process_exit(fn() {
167-
process.send_abnormal_exit(process.self(), "reason")
168-
})
169-
|> should.equal(process.Abnormal(dynamic.from("reason")))
164+
assert monitor_process_exit(fn() {
165+
process.send_abnormal_exit(process.self(), "reason")
166+
})
167+
== process.Abnormal(dynamic.string("reason"))
170168
}
171169

172170
/// Spawns a child, monitors exits, runs `terminating_with` in the child,
@@ -563,20 +561,19 @@ pub fn merge_selector_test() {
563561
}
564562

565563
pub fn select_trapped_exits_kill_test() {
566-
select_trapped_exits(fn() { process.kill(process.self()) })
567-
|> should.equal(process.Killed)
564+
assert select_trapped_exits(fn() { process.kill(process.self()) })
565+
== process.Killed
568566
}
569567

570568
pub fn select_trapped_exits_abnormal_test() {
571-
select_trapped_exits(fn() {
572-
process.send_abnormal_exit(process.self(), "reason")
573-
})
574-
|> should.equal(process.Abnormal(dynamic.from("reason")))
569+
assert select_trapped_exits(fn() {
570+
process.send_abnormal_exit(process.self(), "reason")
571+
})
572+
== process.Abnormal(dynamic.string("reason"))
575573
}
576574

577575
pub fn select_trapped_exits_normal_test() {
578-
select_trapped_exits(fn() { Nil })
579-
|> should.equal(process.Normal)
576+
assert select_trapped_exits(fn() { Nil }) == process.Normal
580577
}
581578

582579
/// Traps exits, starts a linked child, runs `terminating_with` in the child,
@@ -606,8 +603,11 @@ pub fn flush_messages_test() {
606603
let assert Error(Nil) = process.receive(subject, 0)
607604
}
608605

606+
@external(erlang, "gleam_erlang_ffi", "identity")
607+
fn atom_to_dynamic(atom: atom.Atom) -> dynamic.Dynamic
608+
609609
pub fn register_name_taken_test() {
610-
let taken_name = unsafe_coerce(dynamic.from(atom.create("code_server")))
610+
let taken_name = unsafe_coerce(atom_to_dynamic(atom.create("code_server")))
611611
let assert Ok(a) = process.named(taken_name)
612612
let assert Error(Nil) = process.register(process.self(), taken_name)
613613
let assert Ok(b) = process.named(taken_name)
@@ -641,18 +641,14 @@ pub fn deselect_test() {
641641
let selector1 = selector0 |> process.select(subject1)
642642
let selector2 = selector1 |> process.select(subject2)
643643

644-
selector2
645-
|> process.deselect(subject2)
646-
|> should.equal(selector1)
644+
assert process.deselect(selector2, subject2) == selector1
647645

648-
selector1
649-
|> process.deselect(subject1)
650-
|> should.equal(selector0)
646+
assert process.deselect(selector1, subject1) == selector0
651647

652-
selector2
653-
|> process.deselect(subject1)
654-
|> process.deselect(subject2)
655-
|> should.equal(selector0)
648+
assert selector2
649+
|> process.deselect(subject1)
650+
|> process.deselect(subject2)
651+
== selector0
656652
}
657653

658654
pub fn name_test() {

0 commit comments

Comments
 (0)