Login
Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2026-07-07
04:19
Update `devenv.lock` Leaf check-in: 27c49be3a3 user: 41898282+github-actions[bot]@users.noreply.github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, infra/update-devenv
2026-07-03
09:30
Update previous Crystal release 1.20.3 Leaf check-in: 9830f1db62 user: julien@portalier.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, infra/release-update
09:12
Merge branch 'release/1.20' Leaf check-in: c1aafe1cc2 user: julien@portalier.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
2026-07-02
16:17
Add changelog for 1.20.3 (#17110) Leaf check-in: 96e5a037da user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, release/1.20, 1.20.3
15:23
[CI] Upgrade library dependencies for Windows CI (#17025)

Some of these upgrades are a prerequisite for supporting Visual Studio 2026 with CMake > 3.5 (#17017).

Dropping legacy libpcre entirely because there is probably no support for modern CMake. It doesn't seem to be used anywhere in the Windows workflow, so this is a good cleanup anyway. check-in: 6735bf10d8 user: julien@portalier.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, release/1.20

13:30
Fix: add alias vs anchor ratio check to YAML::PullParser (#17109)

Prevents excessive expansion of aliases. check-in: cac321391b user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, release/1.20

13:28
YAML::PullParser: memoize anchor name (#17108) check-in: d3f02debb4 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, release/1.20
13:24
Fix: add max_nesting to YAML::PullParser (#17107)

Prevents stack overflows when parsing a deeply nested YAML file. check-in: 17ef7a78f5 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, release/1.20

2026-06-30
13:29
Fix: :execution_context flag after merge of #17099 [fixup #17100] (#17104) check-in: 148c01017f user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
09:03
Release: Execution Contexts (#17100)

Enables execution contexts by default by replacing the :execution_context flag with an ugly check for not :without_mt and not :preview_mt or :execution_context in the runtime, where feature detection such as checking if Fiber::ExecutionContext exits isn't always reliable (due to load order and macro expansions).

Replaces :preview_mt flag for thread safety in stdlib with new :without_mt flag. The preview_mt mode is still supported by the legacy Crystal::Scheduler, but has been deprecated.

Replaces some :execution_context flags with :without_mt, namely the memory barriers in the ARM and AArch64 fiber context switch assembly and the fiber stack pool.

The interpreter can't start threads, yet, so the :without_mt flag is always set. check-in: 987c2eb3ee user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-29
16:19
Refactor: `Process#wait` on Windows (#17099)

JobObject is quite complex and the completion event isn't guaranteed to be delivered. Instead we can use RegisterWaitForSingleObject to execute a callback in an IO thread to post the IOCP completion event. check-in: 88a7dab9c0 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

13:14
Refactor: simplify read console (windows) (#17098)

With execution contexts, we can leverage Fiber.syscall to detach the blocking fiber during ReadConsoleW (if it blocks for too long).

Without MT (and with preview MT), we can directly pass the result through the request object. check-in: 551a1f7a48 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-26
11:24
Deprecate `spawn(same_thread:)` (#17097)

This parameter is only useful for `-Dpreview_mt`. Execution contexts require a different approach (concurrent context). check-in: db504818e9 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-25
08:49
Fix `IO::Encoder#write` when operating on long strings (#16797)

This PR fixes encoding operations on long strings by ignoring `Errno::E2BIG` errors.

FWIW, this will need additional testing to ensure that strings with non-ASCII characters still work, but the test included with this PR fails without this patch and passes with it. check-in: a16ef75756 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

08:49
Fix short block setter call end location (#17039) check-in: c05a6d2e53 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
07:15
Fix: Fiber::ExecutionContext.current? (#17092) check-in: 2617e7e9ec user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
2026-06-23
15:31
Update changelog for 1.21.0 Leaf check-in: b7b8574b28 user: straightshoota@gmail.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, changelog/1.21.0
15:31
Remove trailing newline in `update-changlog.sh` check-in: cf11bb3c70 user: straightshoota@gmail.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, changelog/1.21.0
15:30
Improve `generate-changelog.cr` printing missing topics check-in: 2446d4303f user: straightshoota@gmail.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, changelog/1.21.0
13:44
Update `devenv.lock` (#17084)

Co-authored-by: straight-shoota <466378+straight-shoota@users.noreply.github.com> Co-authored-by: Johannes Müller <straightshoota@gmail.com> check-in: 0640c68a61 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

07:05
Fix: `fdlock#try_close?` must release ref after yielding to the block (#17089)

Otherwise we risk a double enqueue. This was made visible by the io_uring evloop where shutdown now yields the calling fiber, while other event loops block. check-in: d0e1760ee2 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

07:05
Consolidate `#overlapped_connect` and `#overlapped_accept` into `EventLoop::IOCP` (#17090)

Moves the `#overlapped_connect` and `#overlapped_accept` methods from `System::Socket` into `EventLoop::IOCP` as its the sole caller of these methods, so the interations are now system/socket -> evloop/iocp -> system/iocp with less back and forth.

Co-authored-by: Sijawusz Pur Rahnama <sija@sija.pl> check-in: 10fd3a31ab user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

07:04
rumdl: Fix MD077: Continuation line over-indented (#17085) check-in: 663ecdc4c0 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
2026-06-22
07:37
Add `without_main` flag (#17074)

When `-Dwithout_main` is set, Crystal does not generate the default C `main` function or the platform-specific main entry point.

This is useful for shared libraries and embedded use cases that provide their own C ABI entry points. check-in: 458172655f user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

07:36
Refactor `run_git` spec helper to use `Process.capture_result?` (#17079)

Using the new process API from #16773

Co-authored-by: Julien Portalier <julien@portalier.com> check-in: ad7ef6eb5a user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-20
05:48
Split branches on `when Bar, Baz` (#17072)

Makes `when Foo, Bar; x` equivalent to `when Foo; x; when Bar; x;` with separate code branches and separated type restrictions, instead forming a union (`Foo | Bar`). Explicit `when Union(Foo, Bar)` enables the old behaviour. This should be fully backwards compatible. check-in: 581ce4dae3 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-19
08:51
Replace `.markdownlint.yaml` with `rumdl.toml` (#17078)

This is a follow-up to #17069, migrating to the native format of rumdl. The configuration does not change.

This enables rumdl to pick up the exclude configuration (it reads `.markdownlint.yml` but not `.markdownlintignore`). check-in: b8c182b68b user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

08:49
Update GH Actions (#17076) check-in: 9f72b98dac user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
2026-06-18
10:08
Revert "Fix: cross-compile crashes when combined with emit llvm-bc or obj (#17060)" (#17080)

This reverts commit f38c6d949faaab055cf9bf2ee176b7acaac2d91c.

It causes some yet unidentified codegen failure: #17077 check-in: be79585969 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-17
16:30
Update `devenv.lock` (#17075)

Co-authored-by: straight-shoota <466378+straight-shoota@users.noreply.github.com> check-in: 605452887b user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-15
08:48
Fix: underperforming unlock conditions in `Sync::MU` (#17070)

As outlined in https://github.com/crystal-lang/crystal/pull/17063#issuecomment-4685448325 by @stevegeek: the quick-path (between the uncontended fast-path and the slow-path) for unlocking was using an *and* when it should have been using an *or* in the conditions (just like in the slow-path).

Running benchmarks, it seems to have a slight impact in some cases (far more threads than CPU cores + enough contention), but given that the slow path has the correct conditions, the impact is low.

Co-authored-by: Stephen Ierodiaconou <stevegeek@gmail.com> check-in: 354161672b user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-14
19:49
Remedy short-flag conflict for `crystal spec -p` (#17062)

The shorthand flag `-p` for `crystal spec -- --profile` is in conflict with the shorthand flag `-p` for `crystal spec --progress`.

This patch removes the short flag from `crystal spec --help` and suggests passing runner options after `--`. That solution still is not ideal, but keeps existing commands working compared to removing `-p` from the spec runner entirely. check-in: d13a1de0b2 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

10:25
Disable transport read-ahead for kTLS sockets (#17053)

Disable read-ahead on the transport when the context enables kTLS, so OpenSSL sees every byte and kTLS-RX engages cleanly.

Since kTLS bypasses the transport, records are read straight from the kernel, we need to ensure there's no data that can get "stuck" in buffers as we switch from userspace to kernel.

Fixes #16881

Co-authored-by: Julien Portalier <julien@portalier.com> check-in: 7c2e692ebe user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

10:25
Add `Crystal::EventLoop::FileDescriptor#pread` (#17068)

The operation was already using overlapped on Windows/IOCP but outside the event loop. The operation can also run async on Linux/io_uring.

The polling event loops now consider that `pread` can return `EAGAIN` in an edge case: disk files are always ready, and a fifo/pipe isn't seekable, but a character device can.

Also enables `pread` on WASI. check-in: 1c6e8693ac user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

10:24
Replace `markdownlint` with `rumdl` (#17069)

[rumdl](https://rumdl.dev/) is a Markdown linter similar to [markdownlint](https://github.com/igorshubovych/markdownlint-cli) but with some significant improvements. It is compatible with markdownlint, supporting the same rules and configuration as before. It's a drop-in replacement with more performance (Rust vs Javascript). And it brings a bunch of additional rules and features, such as per-file-ignores. See https://rumdl.dev/markdownlint-comparison/ for a full comparison.

We already applied the same change in https://github.com/crystal-lang/crystal-website/pull/1082 check-in: 2d9cf2ba3f user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-12
22:01
Fix: cross-compile crashes when combined with emit llvm-bc or obj (#17060)

When cross compiling, the compiler used to emit before the actual codegen and bypassed the cache to directly emit the object file to the current folder.

We now call the regular codegen path (sequential one because only one compilation unit), then emit files to the current folder. We still always emit the object file to be consistent with the current behavior and with the `build` command that always generates an executable. check-in: 35345a0d66 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

17:42
Fix: Crystal 1.0.0 is confused by file private types (#17067) check-in: 88ecffc37f user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
09:59
[CI] Upgrade nixpkgs 26.05 in `Lint` workflow (#17066) check-in: 0182e8ca97 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
09:02
infra: devenv input for `git-hooks` follows `nixpkgs` (#17064) check-in: 517590d511 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
08:13
Fix swapped atomic orderings in `Sync::MU` fast paths (#17063) check-in: bf5ed22e7b user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
2026-06-11
09:17
Preallocate correct size for hash in `Hash.zip` (#17054) check-in: b74f56b22f user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
09:16
Avoid `Process.exec` on Windows and explicitly spawn subprocess (#17049)

`Process.exec` doesn't work as expected on Windows, so we explicitly spawn a subprocess and return its status.

We should eventually replace this with a portable stdlib method (see https://github.com/crystal-lang/crystal/issues/14422). check-in: 60046c29ec user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-10
07:25
Update `devenv.lock` (#17057)

Co-authored-by: straight-shoota <466378+straight-shoota@users.noreply.github.com> check-in: 867c444f7d user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-09
16:15
Add `compiler-cli` test suite (#17033)

This adds integration specs for the compiler's command line interface.

`external_command_spec.cr` was already such a spec, but part of the primitives suite for the lack of a better place. check-in: 852a33a83c user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-06
08:10
Add `URI::Params::Field(ignore:)`, `ignore_serialize`, `ignore_deserialize` (#17029)

Mirrors the same options available on `JSON::Field` and `YAML::Field`. check-in: fedec420e4 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

08:08
Align long-only options in OptionParser help (#16914)

Co-authored-by: Johannes Müller <straightshoota@gmail.com> check-in: 6924f83be2 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

2026-06-05
12:18
Drop unused `IO::Evented` and `Crystal::ThreadLocalValue` (#17032) check-in: d0d73fc354 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
2026-06-04
18:29
Update `devenv.lock` (#17040)

Co-authored-by: straight-shoota <466378+straight-shoota@users.noreply.github.com> check-in: ca6a1b6f7a user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master

12:54
Update GH Actions (#17042) check-in: 3a69afa89f user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master
12:14
[CI] Upgrade windows runners to VS 2026 (#17043) check-in: 4e72407c42 user: noreply@github.com tags: tcl-tk, trunk, feature/tar, release/0.16, feature/jm-time-formats-simplified, opt/io-buffered-each-byte, release/1.1, feature/enforce-hash-key-types, release/1.3, compiler/ident, feat/tool-dependencies-clean, release/1.10, release/1.9, ci/feat/docs-generator-iframe, ci/infra/make-man, master