Skip to content

Commit 919f651

Browse files
committed
Merge branch 'main' into add-bitarray-split
2 parents 02a4db6 + a58b9e1 commit 919f651

61 files changed

Lines changed: 5982 additions & 7893 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ jobs:
2222
strategy:
2323
fail-fast: false
2424
matrix:
25-
erlang_version: ["26.2", "27.0"]
25+
erlang_version: ["27", "28"]
2626
steps:
2727
- uses: actions/checkout@v4
2828
- uses: erlef/setup-beam@v1
2929
with:
3030
otp-version: ${{ matrix.erlang_version }}
31-
gleam-version: "1.6.0"
31+
gleam-version: "1.13.0"
3232
- run: gleam test --target erlang
3333
- run: gleam format --check src test
3434

@@ -43,8 +43,8 @@ jobs:
4343
- uses: actions/checkout@v4
4444
- uses: erlef/setup-beam@v1
4545
with:
46-
otp-version: "27.0"
47-
gleam-version: "1.6.0"
46+
otp-version: "28"
47+
gleam-version: "1.13.0"
4848
- uses: actions/setup-node@v4
4949
with:
5050
node-version: ${{ matrix.node_version }}
@@ -61,8 +61,8 @@ jobs:
6161
- uses: actions/checkout@v4
6262
- uses: erlef/setup-beam@v1
6363
with:
64-
otp-version: "27.0"
65-
gleam-version: "1.6.0"
64+
otp-version: "28"
65+
gleam-version: "1.13.0"
6666
- uses: oven-sh/setup-bun@v2
6767
with:
6868
bun-version: ${{ matrix.bun_version }}
@@ -79,8 +79,8 @@ jobs:
7979
- uses: actions/checkout@v4
8080
- uses: erlef/setup-beam@v1
8181
with:
82-
otp-version: "27.0"
83-
gleam-version: "1.6.0"
82+
otp-version: "28"
83+
gleam-version: "1.13.0"
8484
- uses: denoland/setup-deno@v1
8585
with:
8686
deno-version: ${{ matrix.deno_version }}

CHANGELOG.md

Lines changed: 117 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,122 @@
11
# Changelog
22

3-
## Unreleased
4-
3+
## v0.68.0 - Unreleased
4+
5+
- The dict implementation has been rewritten implementing the CHAMP (Compressed
6+
Hash Array Mapped Prefix-trees) data structure as described by M.J. Steindorfer
7+
and J.J. Vinju in Optimizing Hash-Array Mapped Tries for Fast and Lean
8+
Immutable JVM Collections.
9+
- 50% reduction in code size
10+
- 10-30% faster get and insert operations
11+
- O(log n) equality checks, orders of magnitude faster bulk operations and iteration
12+
- `uri.query_to_string` now correctly handles `+` in query params.
13+
- The deprecated `result.then`, `result.unwrap_both`, `function.tap`,
14+
`int.digits`, and `int.undigits` functions have been removed.
515
- The `bit_array` module gains the `split` and `split_once` functions.
16+
17+
## v0.67.1 - 2025-12-03
18+
19+
- Fixed `int.clamp` and `float.clamp` behaviours when `min_bound` is bigger
20+
than `max_bound`.
21+
22+
## v0.67.0 - 2025-11-24
23+
24+
- The `failure` from the `dynamic/decode` module gains the `expected` label.
25+
- The `dynamic/decode` module now uses the term "placeholder value" rather than
26+
"zero value".
27+
- The `tap` function from the `function` module has been deprecated.
28+
29+
## v0.65.0 - 2025-09-29
30+
31+
- The performance of the `drop_start` function from the `string` module has
32+
been improved.
33+
34+
## v0.64.0 - 2025-09-25
35+
36+
- The `unwrap_both` function of the `result` module has been deprecated.
37+
38+
## v0.63.2 - 2025-09-15
39+
40+
- The performance of the `list.permutations` function has been improved.
41+
42+
## v0.63.1 - 2025-09-12
43+
44+
- The performance of the `string.drop_start` function has been improved.
45+
- `string.slice` now correctly handles zero-length slices.
46+
47+
## v0.63.0 - 2025-09-07
48+
49+
- The performance of the `string.repeat` function has been improved. It now runs
50+
in loglinear time.
51+
- Fixed a bug in the `uri.parse` function where parsing a uri with an empty port
52+
would produce an invalid value.
53+
54+
## v0.62.1 - 2025-08-07
55+
56+
- `string.inspect` now shows Erlang atoms as `atom.create("value")`, to match
57+
the latest version of `gleam_erlang`.
58+
59+
## v0.62.0 - 2025-07-10
60+
61+
- The `digits` and `undigits` functions of the `int` module have been deprecated.
62+
63+
## v0.61.0 - 2025-06-28
64+
65+
- The fallback code for older NodeJS versions in the JavaScript target
66+
implementation of `string.replace` has been removed.
67+
- The `inspect` function in the `string` module will now print lists of ascii
68+
characters in a human readable format, to aid with debugging programs that use
69+
Erlang character lists.
70+
- The deprecated `debug` function in the `io` module has been removed.
71+
- The deprecated `from` function in the `dynamic` module has been removed.
72+
- Fixed a bug in the `sample` function from the `list` module where it would end
73+
up picking the same element twice from a given list.
74+
- Improved formatting of JavaScript errors in `string.inspect`.
75+
- JavaScript circular references can now be printed by `string.inspect`.
76+
- The alias `result.then` was deprecated in favour of using `result.try`
77+
directly.
78+
79+
## v0.60.0 - 2025-05-13
80+
81+
- The deprecated items in the `dynamic` module have been removed.
82+
- The `from` function in the `dynamic` module has been deprecated.
83+
- The `array`, `bit_array`, `bool`, `float`, `int`, `list`, `nil`, `properties`,
84+
and `string` functions have been added to the `dynamic` module.
85+
- The `classify` function in the `dynamic` module now understands more Erlang
86+
types and uses the term "Array" rather than "Tuple" for Erlang tuples and
87+
JavaScript arrays.
88+
- The performance of various functions in the `list` module has been improved.
89+
- Fixed the implementation of `option.values` and `option.all` to be tail
90+
recursive.
91+
92+
## v0.59.0 - 2025-04-07
93+
94+
- The `debug` function in the `io` module has been deprecated in favour of
95+
the `echo` keyword.
96+
- The performance of `string.append`, `string.join`, and `string.concat` have
97+
been improved.
98+
99+
## v0.58.0 - 2025-03-23
100+
101+
- The deprecated `pop` and `pop_map` functions have been removed from the
102+
`list` module.
103+
104+
## v0.57.0 - 2025-03-11
105+
106+
- The minimum supported Gleam version has been increased to 1.9.0.
107+
- The functions in the `bit_array` module now support unaligned bit arrays on
108+
the JavaScript target.
109+
- Fixed a bug where tuples with atoms in the first position could be formatted
110+
incorrectly by `string.inspect`.
111+
112+
## v0.56.0 - 2025-03-09
113+
114+
- The decode API can now index into the first 8 elements of lists.
115+
116+
## v0.55.0 - 2025-02-21
117+
118+
- The performance of `dict.is_empty` has been improved.
119+
- The `flip` function in the `function` module has been deprecated.
6120
- The `uri` module gains the `empty` value, representing an empty URI which
7121
equivalent to `""`.
8122

@@ -47,7 +161,7 @@
47161

48162
## v0.48.0 - 2024-12-17
49163

50-
- Fixed a bug where `string.utf_codepoint` would erronously accept negative input.
164+
- Fixed a bug where `string.utf_codepoint` would erroneously accept negative input.
51165
- The deprecated `string_builder` and `bytes_builder` modules have been removed.
52166

53167
## v0.47.0 - 2024-12-10

README.md

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,11 @@ Add `gleam_stdlib` to your Gleam project.
1414
```sh
1515
gleam add gleam_stdlib
1616
```
17-
18-
## Usage
19-
20-
Import the modules you want to use and write some code!
21-
2217
```gleam
23-
import gleam/string
18+
import gleam/io
2419
25-
pub fn greet(name: String) -> String {
26-
string.concat(["Hello ", name, "!"])
20+
pub fn greet(name: String) -> Nil {
21+
io.println("Hello " <> name <> "!")
2722
}
2823
```
2924

deno.jsonc

Lines changed: 0 additions & 10 deletions
This file was deleted.

deno.lock

Lines changed: 0 additions & 11 deletions
This file was deleted.

gleam.toml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "gleam_stdlib"
2-
version = "0.54.0"
3-
gleam = ">= 0.32.0"
2+
version = "0.67.1"
3+
gleam = ">= 1.13.0"
44
licences = ["Apache-2.0"]
55
description = "A standard library for the Gleam programming language"
66

@@ -11,6 +11,4 @@ links = [
1111
]
1212

1313
[javascript.deno]
14-
allow_read = [
15-
"./",
16-
]
14+
allow_read = ["./"]

0 commit comments

Comments
 (0)