From 5d09a05c5eaaf12a6df6e8c779bed0fd3c467bf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20M=C3=BCller?= Date: Fri, 13 Dec 2024 18:34:45 +0100 Subject: [PATCH 1/7] Add changelog for 1.15.0 --- CHANGELOG.md | 349 ++++++++++++++++++++++++++++++++++++++++++ shard.yml | 2 +- src/SOURCE_DATE_EPOCH | 1 + src/VERSION | 2 +- 4 files changed, 352 insertions(+), 2 deletions(-) create mode 100644 src/SOURCE_DATE_EPOCH diff --git a/CHANGELOG.md b/CHANGELOG.md index 76272bb1679b..452c53e1a213 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,354 @@ # Changelog +## [1.15.0] (2025-01-09) + +[1.15.0]: https://github.com/crystal-lang/crystal/releases/1.15.0 + +### Features + +#### stdlib + +- *(collection)* Add `Iterator(T).empty` ([#15039], thanks @spuun) +- *(collection)* Add `Enumerable#find_value` ([#14893], thanks @jgaskins) +- *(concurrency)* Implement the ARM64 Windows context switch ([#15155], thanks @HertzDevil) +- *(concurrency)* Add optional `name` parameter forward to `WaitGroup#spawn` ([#15189], thanks @spuun) +- *(crypto)* Enable bindings for functions in LibreSSL ([#15177], thanks @straight-shoota) +- *(log)* Add `Log` overloads for logging exceptions without giving a block ([#15257], thanks @lachlan) +- *(networking)* Better handle explicit chunked encoding responses ([#15092], thanks @Blacksmoke16) +- *(networking)* Support OpenSSL on MSYS2 ([#15111], thanks @HertzDevil) +- *(networking)* Add `Socket::Address.from` without `addrlen` ([#15060], thanks @mamantoha) +- *(networking)* Add stringification for `HTTP::Cookie` ([#15240], thanks @straight-shoota) +- *(networking)* Add stringification for `HTTP::Cookies` ([#15246], thanks @straight-shoota) +- *(runtime)* Support call stacks for MinGW-w64 builds ([#15117], thanks @HertzDevil) +- *(runtime)* Support MSYS2's CLANGARM64 environment on ARM64 Windows ([#15159], thanks @HertzDevil) +- *(system)* Add `Process::Status#exit_code?` ([#15247], thanks @straight-shoota) +- *(system)* Add `Process::Status#abnormal_exit?` ([#15266], thanks @straight-shoota) +- *(text)* Add `Regex::CompileOptions::MULTILINE_ONLY` ([#14870], thanks @ralsina) +- *(text)* Add type restrictions to Levenshtein ([#15168], thanks @beta-ziliani) +- *(text)* Add `unit_separator` to `Int#humanize` and `#humanize_bytes` ([#15176], thanks @CTC97) +- *(text)* Add `String#byte_index(Regex)` ([#15248], thanks @Zeljko-Predjeskovic) + +[#15039]: https://github.com/crystal-lang/crystal/pull/15039 +[#14893]: https://github.com/crystal-lang/crystal/pull/14893 +[#15155]: https://github.com/crystal-lang/crystal/pull/15155 +[#15189]: https://github.com/crystal-lang/crystal/pull/15189 +[#15177]: https://github.com/crystal-lang/crystal/pull/15177 +[#15257]: https://github.com/crystal-lang/crystal/pull/15257 +[#15092]: https://github.com/crystal-lang/crystal/pull/15092 +[#15111]: https://github.com/crystal-lang/crystal/pull/15111 +[#15060]: https://github.com/crystal-lang/crystal/pull/15060 +[#15240]: https://github.com/crystal-lang/crystal/pull/15240 +[#15246]: https://github.com/crystal-lang/crystal/pull/15246 +[#15117]: https://github.com/crystal-lang/crystal/pull/15117 +[#15159]: https://github.com/crystal-lang/crystal/pull/15159 +[#15247]: https://github.com/crystal-lang/crystal/pull/15247 +[#15266]: https://github.com/crystal-lang/crystal/pull/15266 +[#14870]: https://github.com/crystal-lang/crystal/pull/14870 +[#15168]: https://github.com/crystal-lang/crystal/pull/15168 +[#15176]: https://github.com/crystal-lang/crystal/pull/15176 +[#15248]: https://github.com/crystal-lang/crystal/pull/15248 + +#### compiler + +- Basic MinGW-w64 cross-compilation support ([#15070], [#15219], thanks @HertzDevil, @BlobCodes) +- *(cli)* Support building from a MinGW-w64-based compiler ([#15077], thanks @HertzDevil) +- *(codegen)* Add indirect branch tracking ([#15122], thanks @ysbaddaden) +- *(interpreter)* Support "long format" DLL import libraries ([#15119], thanks @HertzDevil) +- *(interpreter)* Add `cc`'s search paths to Unix dynamic library loader ([#15127], thanks @HertzDevil) +- *(interpreter)* Basic MinGW-w64-based interpreter support ([#15140], thanks @HertzDevil) +- *(parser)* Allow constants to start with non-ascii uppercase and titlecase ([#15148], thanks @nanobowers) + +[#15070]: https://github.com/crystal-lang/crystal/pull/15070 +[#15219]: https://github.com/crystal-lang/crystal/pull/15219 +[#15077]: https://github.com/crystal-lang/crystal/pull/15077 +[#15122]: https://github.com/crystal-lang/crystal/pull/15122 +[#15119]: https://github.com/crystal-lang/crystal/pull/15119 +[#15127]: https://github.com/crystal-lang/crystal/pull/15127 +[#15140]: https://github.com/crystal-lang/crystal/pull/15140 +[#15148]: https://github.com/crystal-lang/crystal/pull/15148 + +#### tools + +- *(formatter)* Enable pending formatter features ([#14718], thanks @Blacksmoke16) +- *(unreachable)* Implement `codecov` format for `unreachable` tool ([#15059], thanks @Blacksmoke16) + +[#14718]: https://github.com/crystal-lang/crystal/pull/14718 +[#15059]: https://github.com/crystal-lang/crystal/pull/15059 + +### Bugfixes + +#### lang + +- *(macros)* Add location information to more MacroIf related nodes ([#15100], thanks @Blacksmoke16) + +[#15100]: https://github.com/crystal-lang/crystal/pull/15100 + +#### stdlib + +- LibC bindings and std specs on NetBSD 10 ([#15115], thanks @ysbaddaden) +- *(files)* Treat `WinError::ERROR_DIRECTORY` as an error for non-existent files ([#15114], thanks @HertzDevil) +- *(files)* Replace handle atomically in `IO::FileDescriptor#close` on Windows ([#15165], thanks @HertzDevil) +- *(llvm)* Fix `find-llvm-config` to ignore `LLVM_CONFIG`'s escape sequences ([#15076], thanks @HertzDevil) +- *(log)* **[regression]** Fix `Log` to emit with `exception` even if block outputs `nil` ([#15253], thanks @lachlan) +- *(networking)* **[regression]** Fix `UNIXSocket#receive` ([#15107], thanks @straight-shoota) +- *(numeric)* Fix `Complex#/` edge cases ([#15086], thanks @HertzDevil) +- *(numeric)* Fix `Number#humanize` printing of `(-)Infinity` and `NaN` ([#15090], thanks @lachlan) +- *(runtime)* Fix Deadlock with parallel stop-world/fork calls in MT ([#15096], thanks @ysbaddaden) +- *(runtime)* **[regression]** Protect constant initializers with mutex on Windows ([#15134], thanks @HertzDevil) +- *(runtime)* use `uninitialized LibC::SigsetT` ([#15144], thanks @straight-shoota) +- *(runtime)* Fix static linking when using MinGW-w64 ([#15167], thanks @HertzDevil) +- *(system)* Raise on abnormal exit in `Procss::Status#exit_code` ([#15241], thanks @straight-shoota) +- *(text)* Fix libiconv build on Windows ([#15095], thanks @HertzDevil) +- *(text)* Change `sprintf "%c"` to support only `Char` and `Int::Primitive` ([#15142], thanks @nanobowers) +- *(time)* Fix proper error handling for early end in `HTTP_DATE` parser ([#15232], thanks @straight-shoota) + +[#15115]: https://github.com/crystal-lang/crystal/pull/15115 +[#15114]: https://github.com/crystal-lang/crystal/pull/15114 +[#15165]: https://github.com/crystal-lang/crystal/pull/15165 +[#15076]: https://github.com/crystal-lang/crystal/pull/15076 +[#15253]: https://github.com/crystal-lang/crystal/pull/15253 +[#15107]: https://github.com/crystal-lang/crystal/pull/15107 +[#15086]: https://github.com/crystal-lang/crystal/pull/15086 +[#15090]: https://github.com/crystal-lang/crystal/pull/15090 +[#15096]: https://github.com/crystal-lang/crystal/pull/15096 +[#15134]: https://github.com/crystal-lang/crystal/pull/15134 +[#15144]: https://github.com/crystal-lang/crystal/pull/15144 +[#15167]: https://github.com/crystal-lang/crystal/pull/15167 +[#15241]: https://github.com/crystal-lang/crystal/pull/15241 +[#15095]: https://github.com/crystal-lang/crystal/pull/15095 +[#15142]: https://github.com/crystal-lang/crystal/pull/15142 +[#15232]: https://github.com/crystal-lang/crystal/pull/15232 + +#### compiler + +- OpenBSD: fix integration and broken specs ([#15118], thanks @ysbaddaden) +- *(interpreter)* setup signal handlers in interpreted code ([#14766], [#15178], thanks @ysbaddaden, @straight-shoota) +- *(parser)* Fix `SyntaxHighlighter` delimiter state ([#15104], thanks @straight-shoota) +- *(parser)* Disallow weird assignments ([#14815], thanks @FnControlOption) + +[#15118]: https://github.com/crystal-lang/crystal/pull/15118 +[#14766]: https://github.com/crystal-lang/crystal/pull/14766 +[#15178]: https://github.com/crystal-lang/crystal/pull/15178 +[#15104]: https://github.com/crystal-lang/crystal/pull/15104 +[#14815]: https://github.com/crystal-lang/crystal/pull/14815 + +#### tools + +- Improve man and shell completion for tools ([#15082], thanks @Blacksmoke16) +- *(implementations)* Fix `tool implementations` to handle gracefully a def with missing location ([#15273], thanks @straight-shoota) + +[#15082]: https://github.com/crystal-lang/crystal/pull/15082 +[#15273]: https://github.com/crystal-lang/crystal/pull/15273 + +### Chores + +#### stdlib + +- Fix various typos ([#15080], thanks @kojix2) +- *(runtime)* Make `Enum` an abstract struct ([#15274], thanks @straight-shoota) +- *(system)* Redefine `Process::Status#normal_exit?` on Windows ([#15255], [#15267], thanks @straight-shoota) + +[#15080]: https://github.com/crystal-lang/crystal/pull/15080 +[#15274]: https://github.com/crystal-lang/crystal/pull/15274 +[#15255]: https://github.com/crystal-lang/crystal/pull/15255 +[#15267]: https://github.com/crystal-lang/crystal/pull/15267 + +#### compiler + +- *(codegen)* Link i128 constants internally if possible ([#15217], thanks @BlobCodes) +- *(parser)* Add location to `RegexLiteral` ([#15235], thanks @straight-shoota) + +[#15217]: https://github.com/crystal-lang/crystal/pull/15217 +[#15235]: https://github.com/crystal-lang/crystal/pull/15235 + +### Performance + +#### stdlib + +- *(collection)* Optimize `Slice#<=>` and `#==` with reference check ([#15234], thanks @straight-shoota) +- *(concurrency)* Do not over-commit fiber stacks on Windows ([#15037], thanks @HertzDevil) +- *(text)* Pre-compute `String` size after `#chomp()` if possible ([#15153], thanks @HertzDevil) +- *(text)* Optimize `String#rchop?()` ([#15175], thanks @HertzDevil) +- *(text)* Optimize `String#==` taking character size into account ([#15233], thanks @straight-shoota) + +[#15234]: https://github.com/crystal-lang/crystal/pull/15234 +[#15037]: https://github.com/crystal-lang/crystal/pull/15037 +[#15153]: https://github.com/crystal-lang/crystal/pull/15153 +[#15175]: https://github.com/crystal-lang/crystal/pull/15175 +[#15233]: https://github.com/crystal-lang/crystal/pull/15233 + +#### compiler + +- *(semantic)* Inline `ASTNode` bindings dependencies and observers ([#15098], thanks @ggiraldez) + +[#15098]: https://github.com/crystal-lang/crystal/pull/15098 + +### Refactor + +#### stdlib + +- Use Win32 heap functions with `-Dgc_none` ([#15173], thanks @HertzDevil) +- *(collection)* Refactor `Enumerable#map` to delegate to `#map_with_index` ([#15210], thanks @straight-shoota) +- *(runtime)* Refactor uses of `LibC.dladdr` inside `Exception::CallStack` ([#15108], thanks @HertzDevil) +- *(runtime)* Crystal::EventLoop namespace ([#15226], thanks @ysbaddaden) +- *(runtime)* Change `libevent` event loop to wait forever when blocking ([#15243], thanks @ysbaddaden) +- *(runtime)* Refactor the IOCP event loop (timers, ...) ([#15238], thanks @ysbaddaden) +- *(serialization)* Use per-thread libxml2 global state on all platforms ([#15121], thanks @HertzDevil) +- *(system)* Assume `getrandom` on Linux ([#15040], thanks @ysbaddaden) +- *(system)* Refactor Lifetime Event Loop ([#14996], [#15205], [#15206], [#15215], thanks @ysbaddaden) +- *(system)* Refactor use of `Process::Status#exit_code` to `#exit_code?` ([#15254], thanks @straight-shoota) + +[#15173]: https://github.com/crystal-lang/crystal/pull/15173 +[#15210]: https://github.com/crystal-lang/crystal/pull/15210 +[#15108]: https://github.com/crystal-lang/crystal/pull/15108 +[#15226]: https://github.com/crystal-lang/crystal/pull/15226 +[#15243]: https://github.com/crystal-lang/crystal/pull/15243 +[#15238]: https://github.com/crystal-lang/crystal/pull/15238 +[#15121]: https://github.com/crystal-lang/crystal/pull/15121 +[#15040]: https://github.com/crystal-lang/crystal/pull/15040 +[#14996]: https://github.com/crystal-lang/crystal/pull/14996 +[#15205]: https://github.com/crystal-lang/crystal/pull/15205 +[#15206]: https://github.com/crystal-lang/crystal/pull/15206 +[#15215]: https://github.com/crystal-lang/crystal/pull/15215 +[#15254]: https://github.com/crystal-lang/crystal/pull/15254 + +#### compiler + +- *(semantic)* Replace uses of `AliasType#types?` by `Type#lookup_name` ([#15068], thanks @straight-shoota) + +[#15068]: https://github.com/crystal-lang/crystal/pull/15068 + +### Documentation + +#### stdlib + +- Add docs for lib bindings with supported library versions ([#14900], [#15198], thanks @straight-shoota) +- *(concurrency)* Make `Fiber.timeout` and `.cancel_timeout` nodoc ([#15184], thanks @straight-shoota) +- *(concurrency)* Update example code for `::spawn` with `WaitGroup` ([#15191], thanks @BigBoyBarney) +- *(numeric)* Clarify behavior of `strict` for `String`-to-number conversions ([#15199], thanks @HertzDevil) +- *(runtime)* Make `Box` constructor and `object` getter nodoc ([#15136], thanks @straight-shoota) +- *(runtime)* Fix `EventLoop` docs for `Socket` `read`, `write` ([#15194], thanks @straight-shoota) +- *(system)* Add example for `Dir.glob` ([#15171], thanks @BigBoyBarney) +- *(system)* Adjust definition of `ExitReason::Aborted` ([#15256], thanks @straight-shoota) +- *(text)* Improve docs for `String#rindex!` ([#15132], thanks @BigBoyBarney) +- *(text)* Add note about locale-dependent system error messages ([#15196], thanks @HertzDevil) + +[#14900]: https://github.com/crystal-lang/crystal/pull/14900 +[#15198]: https://github.com/crystal-lang/crystal/pull/15198 +[#15184]: https://github.com/crystal-lang/crystal/pull/15184 +[#15191]: https://github.com/crystal-lang/crystal/pull/15191 +[#15199]: https://github.com/crystal-lang/crystal/pull/15199 +[#15136]: https://github.com/crystal-lang/crystal/pull/15136 +[#15194]: https://github.com/crystal-lang/crystal/pull/15194 +[#15171]: https://github.com/crystal-lang/crystal/pull/15171 +[#15256]: https://github.com/crystal-lang/crystal/pull/15256 +[#15132]: https://github.com/crystal-lang/crystal/pull/15132 +[#15196]: https://github.com/crystal-lang/crystal/pull/15196 + +### Specs + +#### stdlib + +- Fix failing specs on FreeBSD ([#15093], thanks @ysbaddaden) +- Disable specs that break on MinGW-w64 ([#15116], thanks @HertzDevil) +- *(networking)* DragonFlyBSD: std specs fixes + pending ([#15152], thanks @ysbaddaden) +- *(networking)* Close some dangling sockets in specs ([#15163], thanks @HertzDevil) +- *(networking)* Update specs to run with IPv6 support disabled ([#15046], thanks @Blacksmoke16) +- *(networking)* Add specs for invalid special characters in `Cookie` ([#15244], thanks @straight-shoota) +- *(system)* Improve `System::User` specs on Windows ([#15156], thanks @HertzDevil) +- *(system)* Make `cmd.exe` drop `%PROCESSOR_ARCHITECTURE%` in `Process` specs ([#15158], thanks @HertzDevil) +- *(system)* Add specs for signal exit ([#15229], thanks @straight-shoota) + +[#15093]: https://github.com/crystal-lang/crystal/pull/15093 +[#15116]: https://github.com/crystal-lang/crystal/pull/15116 +[#15152]: https://github.com/crystal-lang/crystal/pull/15152 +[#15163]: https://github.com/crystal-lang/crystal/pull/15163 +[#15046]: https://github.com/crystal-lang/crystal/pull/15046 +[#15244]: https://github.com/crystal-lang/crystal/pull/15244 +[#15156]: https://github.com/crystal-lang/crystal/pull/15156 +[#15158]: https://github.com/crystal-lang/crystal/pull/15158 +[#15229]: https://github.com/crystal-lang/crystal/pull/15229 + +#### compiler + +- *(cli)* Remove the entire compiler code base from `external_command_spec` ([#15208], thanks @straight-shoota) +- *(interpreter)* **[regression]** Fix `Crystal::Loader.default_search_paths` spec for macOS ([#15135], thanks @HertzDevil) + +[#15208]: https://github.com/crystal-lang/crystal/pull/15208 +[#15135]: https://github.com/crystal-lang/crystal/pull/15135 + +#### tools + +- Use empty prelude for compiler tools specs ([#15272], thanks @straight-shoota) +- *(docs-generator)* Allow skipping compiler tool specs that require Git ([#15125], thanks @HertzDevil) + +[#15272]: https://github.com/crystal-lang/crystal/pull/15272 +[#15125]: https://github.com/crystal-lang/crystal/pull/15125 + +### Infrastructure + +- Update previous Crystal release 1.14.0 ([#15071], thanks @straight-shoota) +- Fix remove trailing whitespace from CRYSTAL definition ([#15131], thanks @straight-shoota) +- Make utilities posix compatible ([#15139], thanks @nanobowers) +- Update `shell.nix` to `nixpkgs-24.05` and LLVM 18 ([#14651], thanks @straight-shoota) +- Makefile: Allow custom extensions for exports and spec flags ([#15099], thanks @straight-shoota) +- Merge changelog entries for fixups with main PR ([#15207], thanks @straight-shoota) +- Update link to good first issues ([#15250], thanks @BigBoyBarney) +- Make `bin/crystal` work on MSYS2 ([#15094], thanks @HertzDevil) +- Make `Makefile` work on MSYS2 ([#15102], thanks @HertzDevil) +- Support `.exe` file extension in `Makefile` on MSYS2 ([#15123], thanks @HertzDevil) +- Support dereferencing symlinks in `make install` ([#15138], thanks @HertzDevil) +- *(ci)* Extract `deploy_api_docs` job into its own Workflow ([#15022], thanks @straight-shoota) +- *(ci)* Remove pin for ancient nix version ([#15150], thanks @straight-shoota) +- *(ci)* Migrate renovate config ([#15151], thanks @renovate) +- *(ci)* Update XCode 15.3.0 in circleci ([#15164], thanks @straight-shoota) +- *(ci)* Update GH Actions ([#15052], thanks @renovate) +- *(ci)* Update msys2/setup-msys2 action to v2.26.0 ([#15265], thanks @renovate) +- *(ci)* **[security]** Restrict GitHub token permissions of CI workflows ([#15087], thanks @HertzDevil) +- *(ci)* Do not link against `DbgHelp` for MinGW-w64 CI build ([#15160], thanks @HertzDevil) +- *(ci)* Use MSYS2's upstream LLVM version on MinGW-w64 CI ([#15197], thanks @HertzDevil) +- *(ci)* Add CI workflow for cross-compiling Crystal on MSYS2 ([#15110], thanks @HertzDevil) +- *(ci)* Add MinGW-w64 CI workflow for stdlib and compiler specs ([#15124], thanks @HertzDevil) +- *(ci)* Make MinGW-w64 build artifact a full installation ([#15204], thanks @HertzDevil) +- *(ci)* Use official Apt respositories for LLVM CI ([#15103], thanks @HertzDevil) +- *(ci)* Drop LLVM Apt installer script on WebAssembly CI ([#15109], thanks @HertzDevil) +- *(ci)* Run interpreter specs on Windows CI ([#15141], thanks @HertzDevil) + +[#15071]: https://github.com/crystal-lang/crystal/pull/15071 +[#15131]: https://github.com/crystal-lang/crystal/pull/15131 +[#15139]: https://github.com/crystal-lang/crystal/pull/15139 +[#14651]: https://github.com/crystal-lang/crystal/pull/14651 +[#15099]: https://github.com/crystal-lang/crystal/pull/15099 +[#15207]: https://github.com/crystal-lang/crystal/pull/15207 +[#15250]: https://github.com/crystal-lang/crystal/pull/15250 +[#15094]: https://github.com/crystal-lang/crystal/pull/15094 +[#15102]: https://github.com/crystal-lang/crystal/pull/15102 +[#15123]: https://github.com/crystal-lang/crystal/pull/15123 +[#15138]: https://github.com/crystal-lang/crystal/pull/15138 +[#15022]: https://github.com/crystal-lang/crystal/pull/15022 +[#15150]: https://github.com/crystal-lang/crystal/pull/15150 +[#15151]: https://github.com/crystal-lang/crystal/pull/15151 +[#15164]: https://github.com/crystal-lang/crystal/pull/15164 +[#15052]: https://github.com/crystal-lang/crystal/pull/15052 +[#15265]: https://github.com/crystal-lang/crystal/pull/15265 +[#15087]: https://github.com/crystal-lang/crystal/pull/15087 +[#15160]: https://github.com/crystal-lang/crystal/pull/15160 +[#15197]: https://github.com/crystal-lang/crystal/pull/15197 +[#15110]: https://github.com/crystal-lang/crystal/pull/15110 +[#15124]: https://github.com/crystal-lang/crystal/pull/15124 +[#15204]: https://github.com/crystal-lang/crystal/pull/15204 +[#15103]: https://github.com/crystal-lang/crystal/pull/15103 +[#15109]: https://github.com/crystal-lang/crystal/pull/15109 +[#15141]: https://github.com/crystal-lang/crystal/pull/15141 + +### other + +#### compiler + +- *(codegen)* Emit position dependent code for embedded targets ([#15174], thanks @RX14) + +[#15174]: https://github.com/crystal-lang/crystal/pull/15174 + ## [1.14.0] (2024-10-09) [1.14.0]: https://github.com/crystal-lang/crystal/releases/1.14.0 diff --git a/shard.yml b/shard.yml index 4ddf0dcfb0df..f0aef072ed4d 100644 --- a/shard.yml +++ b/shard.yml @@ -1,5 +1,5 @@ name: crystal -version: 1.15.0-dev +version: 1.15.0 authors: - Crystal Core Team diff --git a/src/SOURCE_DATE_EPOCH b/src/SOURCE_DATE_EPOCH new file mode 100644 index 000000000000..6fcaded9e558 --- /dev/null +++ b/src/SOURCE_DATE_EPOCH @@ -0,0 +1 @@ +1736380800 diff --git a/src/VERSION b/src/VERSION index 9a4866bbcede..141f2e805beb 100644 --- a/src/VERSION +++ b/src/VERSION @@ -1 +1 @@ -1.15.0-dev +1.15.0 From 14e4358e7e97f8031b6ac4c4a01ec503d5a2c22e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20M=C3=BCller?= Date: Mon, 16 Dec 2024 13:53:15 +0100 Subject: [PATCH 2/7] Update changelog for 1.15.0 --- CHANGELOG.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 452c53e1a213..1b471d633086 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - *(concurrency)* Add optional `name` parameter forward to `WaitGroup#spawn` ([#15189], thanks @spuun) - *(crypto)* Enable bindings for functions in LibreSSL ([#15177], thanks @straight-shoota) - *(log)* Add `Log` overloads for logging exceptions without giving a block ([#15257], thanks @lachlan) +- *(networking)* Add `HTTP::Cookie#expire` ([#14819], thanks @a-alhusaini) - *(networking)* Better handle explicit chunked encoding responses ([#15092], thanks @Blacksmoke16) - *(networking)* Support OpenSSL on MSYS2 ([#15111], thanks @HertzDevil) - *(networking)* Add `Socket::Address.from` without `addrlen` ([#15060], thanks @mamantoha) @@ -34,6 +35,7 @@ [#15189]: https://github.com/crystal-lang/crystal/pull/15189 [#15177]: https://github.com/crystal-lang/crystal/pull/15177 [#15257]: https://github.com/crystal-lang/crystal/pull/15257 +[#14819]: https://github.com/crystal-lang/crystal/pull/14819 [#15092]: https://github.com/crystal-lang/crystal/pull/15092 [#15111]: https://github.com/crystal-lang/crystal/pull/15111 [#15060]: https://github.com/crystal-lang/crystal/pull/15060 @@ -56,6 +58,7 @@ - *(interpreter)* Support "long format" DLL import libraries ([#15119], thanks @HertzDevil) - *(interpreter)* Add `cc`'s search paths to Unix dynamic library loader ([#15127], thanks @HertzDevil) - *(interpreter)* Basic MinGW-w64-based interpreter support ([#15140], thanks @HertzDevil) +- *(parser)* ECR syntax error raises exception that includes line/column information ([#15222], thanks @nobodywasishere) - *(parser)* Allow constants to start with non-ascii uppercase and titlecase ([#15148], thanks @nanobowers) [#15070]: https://github.com/crystal-lang/crystal/pull/15070 @@ -65,6 +68,7 @@ [#15119]: https://github.com/crystal-lang/crystal/pull/15119 [#15127]: https://github.com/crystal-lang/crystal/pull/15127 [#15140]: https://github.com/crystal-lang/crystal/pull/15140 +[#15222]: https://github.com/crystal-lang/crystal/pull/15222 [#15148]: https://github.com/crystal-lang/crystal/pull/15148 #### tools @@ -97,6 +101,7 @@ - *(runtime)* **[regression]** Protect constant initializers with mutex on Windows ([#15134], thanks @HertzDevil) - *(runtime)* use `uninitialized LibC::SigsetT` ([#15144], thanks @straight-shoota) - *(runtime)* Fix static linking when using MinGW-w64 ([#15167], thanks @HertzDevil) +- *(system)* Fix `Process::Status` for unknown signals ([#15280], thanks @straight-shoota) - *(system)* Raise on abnormal exit in `Procss::Status#exit_code` ([#15241], thanks @straight-shoota) - *(text)* Fix libiconv build on Windows ([#15095], thanks @HertzDevil) - *(text)* Change `sprintf "%c"` to support only `Char` and `Int::Primitive` ([#15142], thanks @nanobowers) @@ -114,6 +119,7 @@ [#15134]: https://github.com/crystal-lang/crystal/pull/15134 [#15144]: https://github.com/crystal-lang/crystal/pull/15144 [#15167]: https://github.com/crystal-lang/crystal/pull/15167 +[#15280]: https://github.com/crystal-lang/crystal/pull/15280 [#15241]: https://github.com/crystal-lang/crystal/pull/15241 [#15095]: https://github.com/crystal-lang/crystal/pull/15095 [#15142]: https://github.com/crystal-lang/crystal/pull/15142 @@ -140,6 +146,12 @@ [#15082]: https://github.com/crystal-lang/crystal/pull/15082 [#15273]: https://github.com/crystal-lang/crystal/pull/15273 +#### other + +- register GC callbacks inside GC.init ([#15278], thanks @ysbaddaden) + +[#15278]: https://github.com/crystal-lang/crystal/pull/15278 + ### Chores #### stdlib @@ -218,6 +230,12 @@ [#15068]: https://github.com/crystal-lang/crystal/pull/15068 +#### other + +- Drop `Crystal::FiberChannel` ([#15245], thanks @ysbaddaden) + +[#15245]: https://github.com/crystal-lang/crystal/pull/15245 + ### Documentation #### stdlib @@ -287,6 +305,7 @@ ### Infrastructure +- Changelog for 1.15.0 ([#15277], thanks @straight-shoota) - Update previous Crystal release 1.14.0 ([#15071], thanks @straight-shoota) - Fix remove trailing whitespace from CRYSTAL definition ([#15131], thanks @straight-shoota) - Make utilities posix compatible ([#15139], thanks @nanobowers) @@ -314,6 +333,7 @@ - *(ci)* Drop LLVM Apt installer script on WebAssembly CI ([#15109], thanks @HertzDevil) - *(ci)* Run interpreter specs on Windows CI ([#15141], thanks @HertzDevil) +[#15277]: https://github.com/crystal-lang/crystal/pull/15277 [#15071]: https://github.com/crystal-lang/crystal/pull/15071 [#15131]: https://github.com/crystal-lang/crystal/pull/15131 [#15139]: https://github.com/crystal-lang/crystal/pull/15139 From d9526034fd2faab8e9863ba17fcb6379a82d090e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20M=C3=BCller?= Date: Mon, 16 Dec 2024 13:54:55 +0100 Subject: [PATCH 3/7] Update changelog for 1.15.0 --- CHANGELOG.md | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b471d633086..4c2d2969efb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -101,6 +101,7 @@ - *(runtime)* **[regression]** Protect constant initializers with mutex on Windows ([#15134], thanks @HertzDevil) - *(runtime)* use `uninitialized LibC::SigsetT` ([#15144], thanks @straight-shoota) - *(runtime)* Fix static linking when using MinGW-w64 ([#15167], thanks @HertzDevil) +- *(runtime)* register GC callbacks inside `GC.init` ([#15278], thanks @ysbaddaden) - *(system)* Fix `Process::Status` for unknown signals ([#15280], thanks @straight-shoota) - *(system)* Raise on abnormal exit in `Procss::Status#exit_code` ([#15241], thanks @straight-shoota) - *(text)* Fix libiconv build on Windows ([#15095], thanks @HertzDevil) @@ -119,6 +120,7 @@ [#15134]: https://github.com/crystal-lang/crystal/pull/15134 [#15144]: https://github.com/crystal-lang/crystal/pull/15144 [#15167]: https://github.com/crystal-lang/crystal/pull/15167 +[#15278]: https://github.com/crystal-lang/crystal/pull/15278 [#15280]: https://github.com/crystal-lang/crystal/pull/15280 [#15241]: https://github.com/crystal-lang/crystal/pull/15241 [#15095]: https://github.com/crystal-lang/crystal/pull/15095 @@ -146,12 +148,6 @@ [#15082]: https://github.com/crystal-lang/crystal/pull/15082 [#15273]: https://github.com/crystal-lang/crystal/pull/15273 -#### other - -- register GC callbacks inside GC.init ([#15278], thanks @ysbaddaden) - -[#15278]: https://github.com/crystal-lang/crystal/pull/15278 - ### Chores #### stdlib @@ -201,6 +197,7 @@ - Use Win32 heap functions with `-Dgc_none` ([#15173], thanks @HertzDevil) - *(collection)* Refactor `Enumerable#map` to delegate to `#map_with_index` ([#15210], thanks @straight-shoota) +- *(concurrency)* Drop `Crystal::FiberChannel` ([#15245], thanks @ysbaddaden) - *(runtime)* Refactor uses of `LibC.dladdr` inside `Exception::CallStack` ([#15108], thanks @HertzDevil) - *(runtime)* Crystal::EventLoop namespace ([#15226], thanks @ysbaddaden) - *(runtime)* Change `libevent` event loop to wait forever when blocking ([#15243], thanks @ysbaddaden) @@ -212,6 +209,7 @@ [#15173]: https://github.com/crystal-lang/crystal/pull/15173 [#15210]: https://github.com/crystal-lang/crystal/pull/15210 +[#15245]: https://github.com/crystal-lang/crystal/pull/15245 [#15108]: https://github.com/crystal-lang/crystal/pull/15108 [#15226]: https://github.com/crystal-lang/crystal/pull/15226 [#15243]: https://github.com/crystal-lang/crystal/pull/15243 @@ -230,12 +228,6 @@ [#15068]: https://github.com/crystal-lang/crystal/pull/15068 -#### other - -- Drop `Crystal::FiberChannel` ([#15245], thanks @ysbaddaden) - -[#15245]: https://github.com/crystal-lang/crystal/pull/15245 - ### Documentation #### stdlib From 2988de830f7dabf6bc0eea5bd6317f6c4ee90ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20M=C3=BCller?= Date: Wed, 8 Jan 2025 12:45:59 +0100 Subject: [PATCH 4/7] Update changelog for 1.15.0 --- CHANGELOG.md | 85 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 66 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c2d2969efb2..96375fd4d60c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,24 @@ [1.15.0]: https://github.com/crystal-lang/crystal/releases/1.15.0 +### Breaking changes + +#### lang + +- Allow constants to start with non-ascii uppercase and titlecase ([#15148], thanks @nanobowers) + +[#15148]: https://github.com/crystal-lang/crystal/pull/15148 + ### Features +#### lang + +- *(macros)* Crystal `Not` operators do not need parens ([#15292], thanks @Blacksmoke16) +- *(macros)* Add `MacroIf#is_unless?` AST node method ([#15304], thanks @Blacksmoke16) + +[#15292]: https://github.com/crystal-lang/crystal/pull/15292 +[#15304]: https://github.com/crystal-lang/crystal/pull/15304 + #### stdlib - *(collection)* Add `Iterator(T).empty` ([#15039], thanks @spuun) @@ -14,20 +30,29 @@ - *(concurrency)* Add optional `name` parameter forward to `WaitGroup#spawn` ([#15189], thanks @spuun) - *(crypto)* Enable bindings for functions in LibreSSL ([#15177], thanks @straight-shoota) - *(log)* Add `Log` overloads for logging exceptions without giving a block ([#15257], thanks @lachlan) -- *(networking)* Add `HTTP::Cookie#expire` ([#14819], thanks @a-alhusaini) - *(networking)* Better handle explicit chunked encoding responses ([#15092], thanks @Blacksmoke16) - *(networking)* Support OpenSSL on MSYS2 ([#15111], thanks @HertzDevil) - *(networking)* Add `Socket::Address.from` without `addrlen` ([#15060], thanks @mamantoha) - *(networking)* Add stringification for `HTTP::Cookie` ([#15240], thanks @straight-shoota) - *(networking)* Add stringification for `HTTP::Cookies` ([#15246], thanks @straight-shoota) +- *(networking)* Add `HTTP::Cookie#expire` ([#14819], thanks @a-alhusaini) +- *(numeric)* Implement `fast_float` for `String#to_f` ([#15195], thanks @HertzDevil) - *(runtime)* Support call stacks for MinGW-w64 builds ([#15117], thanks @HertzDevil) - *(runtime)* Support MSYS2's CLANGARM64 environment on ARM64 Windows ([#15159], thanks @HertzDevil) +- *(runtime)* Crystal::Tracing improvements ([#15297], thanks @ysbaddaden) +- *(runtime)* Add `Thread#internal_name=` ([#15298], thanks @ysbaddaden) +- *(runtime)* Add `Thread::LinkedList#each` to safely iterate lists ([#15300], thanks @ysbaddaden) - *(system)* Add `Process::Status#exit_code?` ([#15247], thanks @straight-shoota) - *(system)* Add `Process::Status#abnormal_exit?` ([#15266], thanks @straight-shoota) +- *(system)* Improve `Process::Status#to_s` for abnormal exits on Windows ([#15283], thanks @straight-shoota) +- *(system)* Add `Process::Status#exit_signal?` ([#15284], thanks @straight-shoota) +- *(system)* Change `Process::Status#to_s` to hex format on Windows ([#15285], thanks @straight-shoota) +- *(system)* Add `Process::Status#system_exit_status` ([#15296], thanks @straight-shoota) - *(text)* Add `Regex::CompileOptions::MULTILINE_ONLY` ([#14870], thanks @ralsina) - *(text)* Add type restrictions to Levenshtein ([#15168], thanks @beta-ziliani) - *(text)* Add `unit_separator` to `Int#humanize` and `#humanize_bytes` ([#15176], thanks @CTC97) - *(text)* Add `String#byte_index(Regex)` ([#15248], thanks @Zeljko-Predjeskovic) +- *(text)* Add `Colorize::Object#ansi_escape` ([#15113], thanks @devnote-dev) [#15039]: https://github.com/crystal-lang/crystal/pull/15039 [#14893]: https://github.com/crystal-lang/crystal/pull/14893 @@ -35,41 +60,50 @@ [#15189]: https://github.com/crystal-lang/crystal/pull/15189 [#15177]: https://github.com/crystal-lang/crystal/pull/15177 [#15257]: https://github.com/crystal-lang/crystal/pull/15257 -[#14819]: https://github.com/crystal-lang/crystal/pull/14819 [#15092]: https://github.com/crystal-lang/crystal/pull/15092 [#15111]: https://github.com/crystal-lang/crystal/pull/15111 [#15060]: https://github.com/crystal-lang/crystal/pull/15060 [#15240]: https://github.com/crystal-lang/crystal/pull/15240 [#15246]: https://github.com/crystal-lang/crystal/pull/15246 +[#14819]: https://github.com/crystal-lang/crystal/pull/14819 +[#15195]: https://github.com/crystal-lang/crystal/pull/15195 [#15117]: https://github.com/crystal-lang/crystal/pull/15117 [#15159]: https://github.com/crystal-lang/crystal/pull/15159 +[#15297]: https://github.com/crystal-lang/crystal/pull/15297 +[#15298]: https://github.com/crystal-lang/crystal/pull/15298 +[#15300]: https://github.com/crystal-lang/crystal/pull/15300 [#15247]: https://github.com/crystal-lang/crystal/pull/15247 [#15266]: https://github.com/crystal-lang/crystal/pull/15266 +[#15283]: https://github.com/crystal-lang/crystal/pull/15283 +[#15284]: https://github.com/crystal-lang/crystal/pull/15284 +[#15285]: https://github.com/crystal-lang/crystal/pull/15285 +[#15296]: https://github.com/crystal-lang/crystal/pull/15296 [#14870]: https://github.com/crystal-lang/crystal/pull/14870 [#15168]: https://github.com/crystal-lang/crystal/pull/15168 [#15176]: https://github.com/crystal-lang/crystal/pull/15176 [#15248]: https://github.com/crystal-lang/crystal/pull/15248 +[#15113]: https://github.com/crystal-lang/crystal/pull/15113 #### compiler - Basic MinGW-w64 cross-compilation support ([#15070], [#15219], thanks @HertzDevil, @BlobCodes) - *(cli)* Support building from a MinGW-w64-based compiler ([#15077], thanks @HertzDevil) - *(codegen)* Add indirect branch tracking ([#15122], thanks @ysbaddaden) +- *(codegen)* Emit position dependent code for embedded targets ([#15174], thanks @RX14) - *(interpreter)* Support "long format" DLL import libraries ([#15119], thanks @HertzDevil) - *(interpreter)* Add `cc`'s search paths to Unix dynamic library loader ([#15127], thanks @HertzDevil) - *(interpreter)* Basic MinGW-w64-based interpreter support ([#15140], thanks @HertzDevil) -- *(parser)* ECR syntax error raises exception that includes line/column information ([#15222], thanks @nobodywasishere) -- *(parser)* Allow constants to start with non-ascii uppercase and titlecase ([#15148], thanks @nanobowers) +- *(parser)* Add `ECR::Lexer::SyntaxException` with location info ([#15222], thanks @nobodywasishere) [#15070]: https://github.com/crystal-lang/crystal/pull/15070 [#15219]: https://github.com/crystal-lang/crystal/pull/15219 [#15077]: https://github.com/crystal-lang/crystal/pull/15077 [#15122]: https://github.com/crystal-lang/crystal/pull/15122 +[#15174]: https://github.com/crystal-lang/crystal/pull/15174 [#15119]: https://github.com/crystal-lang/crystal/pull/15119 [#15127]: https://github.com/crystal-lang/crystal/pull/15127 [#15140]: https://github.com/crystal-lang/crystal/pull/15140 [#15222]: https://github.com/crystal-lang/crystal/pull/15222 -[#15148]: https://github.com/crystal-lang/crystal/pull/15148 #### tools @@ -94,6 +128,7 @@ - *(files)* Replace handle atomically in `IO::FileDescriptor#close` on Windows ([#15165], thanks @HertzDevil) - *(llvm)* Fix `find-llvm-config` to ignore `LLVM_CONFIG`'s escape sequences ([#15076], thanks @HertzDevil) - *(log)* **[regression]** Fix `Log` to emit with `exception` even if block outputs `nil` ([#15253], thanks @lachlan) +- *(macros)* Avoid identifier naming collision in `getter`, `setter`, and `property` macros ([#15239], thanks @jgaskins) - *(networking)* **[regression]** Fix `UNIXSocket#receive` ([#15107], thanks @straight-shoota) - *(numeric)* Fix `Complex#/` edge cases ([#15086], thanks @HertzDevil) - *(numeric)* Fix `Number#humanize` printing of `(-)Infinity` and `NaN` ([#15090], thanks @lachlan) @@ -102,8 +137,11 @@ - *(runtime)* use `uninitialized LibC::SigsetT` ([#15144], thanks @straight-shoota) - *(runtime)* Fix static linking when using MinGW-w64 ([#15167], thanks @HertzDevil) - *(runtime)* register GC callbacks inside `GC.init` ([#15278], thanks @ysbaddaden) -- *(system)* Fix `Process::Status` for unknown signals ([#15280], thanks @straight-shoota) +- *(runtime)* Cleanup nodes in `Thread::LinkedList(T)#delete` ([#15295], thanks @ysbaddaden) +- *(runtime)* Make `Crystal::EventLoop#remove(io)` a class method ([#15282], thanks @ysbaddaden) - *(system)* Raise on abnormal exit in `Procss::Status#exit_code` ([#15241], thanks @straight-shoota) +- *(system)* Fix `Process::Status` for unknown signals ([#15280], thanks @straight-shoota) +- *(system)* Fix error handling for `LibC.clock_gettime(CLOCK_MONOTONIC)` calls ([#15309], thanks @compumike) - *(text)* Fix libiconv build on Windows ([#15095], thanks @HertzDevil) - *(text)* Change `sprintf "%c"` to support only `Char` and `Int::Primitive` ([#15142], thanks @nanobowers) - *(time)* Fix proper error handling for early end in `HTTP_DATE` parser ([#15232], thanks @straight-shoota) @@ -113,6 +151,7 @@ [#15165]: https://github.com/crystal-lang/crystal/pull/15165 [#15076]: https://github.com/crystal-lang/crystal/pull/15076 [#15253]: https://github.com/crystal-lang/crystal/pull/15253 +[#15239]: https://github.com/crystal-lang/crystal/pull/15239 [#15107]: https://github.com/crystal-lang/crystal/pull/15107 [#15086]: https://github.com/crystal-lang/crystal/pull/15086 [#15090]: https://github.com/crystal-lang/crystal/pull/15090 @@ -121,8 +160,11 @@ [#15144]: https://github.com/crystal-lang/crystal/pull/15144 [#15167]: https://github.com/crystal-lang/crystal/pull/15167 [#15278]: https://github.com/crystal-lang/crystal/pull/15278 -[#15280]: https://github.com/crystal-lang/crystal/pull/15280 +[#15295]: https://github.com/crystal-lang/crystal/pull/15295 +[#15282]: https://github.com/crystal-lang/crystal/pull/15282 [#15241]: https://github.com/crystal-lang/crystal/pull/15241 +[#15280]: https://github.com/crystal-lang/crystal/pull/15280 +[#15309]: https://github.com/crystal-lang/crystal/pull/15309 [#15095]: https://github.com/crystal-lang/crystal/pull/15095 [#15142]: https://github.com/crystal-lang/crystal/pull/15142 [#15232]: https://github.com/crystal-lang/crystal/pull/15232 @@ -143,9 +185,11 @@ #### tools - Improve man and shell completion for tools ([#15082], thanks @Blacksmoke16) +- *(docs-generator)* Fix first doc comment inside macro yield ([#15050], thanks @RX14) - *(implementations)* Fix `tool implementations` to handle gracefully a def with missing location ([#15273], thanks @straight-shoota) [#15082]: https://github.com/crystal-lang/crystal/pull/15082 +[#15050]: https://github.com/crystal-lang/crystal/pull/15050 [#15273]: https://github.com/crystal-lang/crystal/pull/15273 ### Chores @@ -154,12 +198,16 @@ - Fix various typos ([#15080], thanks @kojix2) - *(runtime)* Make `Enum` an abstract struct ([#15274], thanks @straight-shoota) +- *(system)* **[deprecation]** Deprecate `Process::Status#exit_status` ([#8647], thanks @jwoertink) - *(system)* Redefine `Process::Status#normal_exit?` on Windows ([#15255], [#15267], thanks @straight-shoota) +- *(system)* **[breaking]** Redefine `Process::Status#signal_exit?` ([#15289], thanks @straight-shoota) [#15080]: https://github.com/crystal-lang/crystal/pull/15080 [#15274]: https://github.com/crystal-lang/crystal/pull/15274 +[#8647]: https://github.com/crystal-lang/crystal/pull/8647 [#15255]: https://github.com/crystal-lang/crystal/pull/15255 [#15267]: https://github.com/crystal-lang/crystal/pull/15267 +[#15289]: https://github.com/crystal-lang/crystal/pull/15289 #### compiler @@ -199,13 +247,15 @@ - *(collection)* Refactor `Enumerable#map` to delegate to `#map_with_index` ([#15210], thanks @straight-shoota) - *(concurrency)* Drop `Crystal::FiberChannel` ([#15245], thanks @ysbaddaden) - *(runtime)* Refactor uses of `LibC.dladdr` inside `Exception::CallStack` ([#15108], thanks @HertzDevil) -- *(runtime)* Crystal::EventLoop namespace ([#15226], thanks @ysbaddaden) +- *(runtime)* Introduce `Crystal::EventLoop` namespace ([#15226], thanks @ysbaddaden) - *(runtime)* Change `libevent` event loop to wait forever when blocking ([#15243], thanks @ysbaddaden) - *(runtime)* Refactor the IOCP event loop (timers, ...) ([#15238], thanks @ysbaddaden) +- *(runtime)* Explicit exit from main ([#15299], thanks @ysbaddaden) - *(serialization)* Use per-thread libxml2 global state on all platforms ([#15121], thanks @HertzDevil) - *(system)* Assume `getrandom` on Linux ([#15040], thanks @ysbaddaden) -- *(system)* Refactor Lifetime Event Loop ([#14996], [#15205], [#15206], [#15215], thanks @ysbaddaden) +- *(system)* Refactor Lifetime Event Loop ([#14996], [#15205], [#15206], [#15215], [#15301], thanks @ysbaddaden) - *(system)* Refactor use of `Process::Status#exit_code` to `#exit_code?` ([#15254], thanks @straight-shoota) +- *(system)* Refactor simplify `Process::Status#exit_reason` on Unix ([#15288], thanks @straight-shoota) [#15173]: https://github.com/crystal-lang/crystal/pull/15173 [#15210]: https://github.com/crystal-lang/crystal/pull/15210 @@ -214,13 +264,16 @@ [#15226]: https://github.com/crystal-lang/crystal/pull/15226 [#15243]: https://github.com/crystal-lang/crystal/pull/15243 [#15238]: https://github.com/crystal-lang/crystal/pull/15238 +[#15299]: https://github.com/crystal-lang/crystal/pull/15299 [#15121]: https://github.com/crystal-lang/crystal/pull/15121 [#15040]: https://github.com/crystal-lang/crystal/pull/15040 [#14996]: https://github.com/crystal-lang/crystal/pull/14996 [#15205]: https://github.com/crystal-lang/crystal/pull/15205 [#15206]: https://github.com/crystal-lang/crystal/pull/15206 [#15215]: https://github.com/crystal-lang/crystal/pull/15215 +[#15301]: https://github.com/crystal-lang/crystal/pull/15301 [#15254]: https://github.com/crystal-lang/crystal/pull/15254 +[#15288]: https://github.com/crystal-lang/crystal/pull/15288 #### compiler @@ -305,6 +358,7 @@ - Makefile: Allow custom extensions for exports and spec flags ([#15099], thanks @straight-shoota) - Merge changelog entries for fixups with main PR ([#15207], thanks @straight-shoota) - Update link to good first issues ([#15250], thanks @BigBoyBarney) +- Update distribution-scripts ([#15291], thanks @straight-shoota) - Make `bin/crystal` work on MSYS2 ([#15094], thanks @HertzDevil) - Make `Makefile` work on MSYS2 ([#15102], thanks @HertzDevil) - Support `.exe` file extension in `Makefile` on MSYS2 ([#15123], thanks @HertzDevil) @@ -312,9 +366,9 @@ - *(ci)* Extract `deploy_api_docs` job into its own Workflow ([#15022], thanks @straight-shoota) - *(ci)* Remove pin for ancient nix version ([#15150], thanks @straight-shoota) - *(ci)* Migrate renovate config ([#15151], thanks @renovate) -- *(ci)* Update XCode 15.3.0 in circleci ([#15164], thanks @straight-shoota) - *(ci)* Update GH Actions ([#15052], thanks @renovate) - *(ci)* Update msys2/setup-msys2 action to v2.26.0 ([#15265], thanks @renovate) +- *(ci)* Update shards 0.19.0 ([#15290], thanks @straight-shoota) - *(ci)* **[security]** Restrict GitHub token permissions of CI workflows ([#15087], thanks @HertzDevil) - *(ci)* Do not link against `DbgHelp` for MinGW-w64 CI build ([#15160], thanks @HertzDevil) - *(ci)* Use MSYS2's upstream LLVM version on MinGW-w64 CI ([#15197], thanks @HertzDevil) @@ -333,6 +387,7 @@ [#15099]: https://github.com/crystal-lang/crystal/pull/15099 [#15207]: https://github.com/crystal-lang/crystal/pull/15207 [#15250]: https://github.com/crystal-lang/crystal/pull/15250 +[#15291]: https://github.com/crystal-lang/crystal/pull/15291 [#15094]: https://github.com/crystal-lang/crystal/pull/15094 [#15102]: https://github.com/crystal-lang/crystal/pull/15102 [#15123]: https://github.com/crystal-lang/crystal/pull/15123 @@ -340,9 +395,9 @@ [#15022]: https://github.com/crystal-lang/crystal/pull/15022 [#15150]: https://github.com/crystal-lang/crystal/pull/15150 [#15151]: https://github.com/crystal-lang/crystal/pull/15151 -[#15164]: https://github.com/crystal-lang/crystal/pull/15164 [#15052]: https://github.com/crystal-lang/crystal/pull/15052 [#15265]: https://github.com/crystal-lang/crystal/pull/15265 +[#15290]: https://github.com/crystal-lang/crystal/pull/15290 [#15087]: https://github.com/crystal-lang/crystal/pull/15087 [#15160]: https://github.com/crystal-lang/crystal/pull/15160 [#15197]: https://github.com/crystal-lang/crystal/pull/15197 @@ -353,14 +408,6 @@ [#15109]: https://github.com/crystal-lang/crystal/pull/15109 [#15141]: https://github.com/crystal-lang/crystal/pull/15141 -### other - -#### compiler - -- *(codegen)* Emit position dependent code for embedded targets ([#15174], thanks @RX14) - -[#15174]: https://github.com/crystal-lang/crystal/pull/15174 - ## [1.14.0] (2024-10-09) [1.14.0]: https://github.com/crystal-lang/crystal/releases/1.14.0 From 9ca04c6b162c2a9e642f597a37b7d8266df8e8be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20M=C3=BCller?= Date: Thu, 9 Jan 2025 12:07:15 +0100 Subject: [PATCH 5/7] Update changelog for 1.15.0 --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2a90376bd02..eadc4de5a05d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ #### lang -- *(macros)* Crystal `Not` operators do not need parens ([#15292], thanks @Blacksmoke16) +- *(macros)* Crystal `Not` operators do not need parens for stringification ([#15292], thanks @Blacksmoke16) - *(macros)* Add `MacroIf#is_unless?` AST node method ([#15304], thanks @Blacksmoke16) [#15292]: https://github.com/crystal-lang/crystal/pull/15292 @@ -39,7 +39,7 @@ - *(numeric)* Implement `fast_float` for `String#to_f` ([#15195], thanks @HertzDevil) - *(runtime)* Support call stacks for MinGW-w64 builds ([#15117], thanks @HertzDevil) - *(runtime)* Support MSYS2's CLANGARM64 environment on ARM64 Windows ([#15159], thanks @HertzDevil) -- *(runtime)* Crystal::Tracing improvements ([#15297], thanks @ysbaddaden) +- *(runtime)* Improve `Crystal::Tracing` ([#15297], thanks @ysbaddaden) - *(runtime)* Add `Thread#internal_name=` ([#15298], thanks @ysbaddaden) - *(runtime)* Add `Thread::LinkedList#each` to safely iterate lists ([#15300], thanks @ysbaddaden) - *(system)* Add `Process::Status#exit_code?` ([#15247], thanks @straight-shoota) @@ -359,6 +359,8 @@ - Merge changelog entries for fixups with main PR ([#15207], thanks @straight-shoota) - Update link to good first issues ([#15250], thanks @BigBoyBarney) - Update distribution-scripts ([#15291], thanks @straight-shoota) +- Bump NOTICE copyright year ([#15318], thanks @straight-shoota) +- Merge `release/1.14`@1.14.1 ([#15329], thanks @straight-shoota) - Make `bin/crystal` work on MSYS2 ([#15094], thanks @HertzDevil) - Make `Makefile` work on MSYS2 ([#15102], thanks @HertzDevil) - Support `.exe` file extension in `Makefile` on MSYS2 ([#15123], thanks @HertzDevil) @@ -388,6 +390,8 @@ [#15207]: https://github.com/crystal-lang/crystal/pull/15207 [#15250]: https://github.com/crystal-lang/crystal/pull/15250 [#15291]: https://github.com/crystal-lang/crystal/pull/15291 +[#15318]: https://github.com/crystal-lang/crystal/pull/15318 +[#15329]: https://github.com/crystal-lang/crystal/pull/15329 [#15094]: https://github.com/crystal-lang/crystal/pull/15094 [#15102]: https://github.com/crystal-lang/crystal/pull/15102 [#15123]: https://github.com/crystal-lang/crystal/pull/15123 From 51c26f13fc43b85479e103683bf4561316912a21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20M=C3=BCller?= Date: Thu, 9 Jan 2025 14:27:55 +0100 Subject: [PATCH 6/7] Update changelog for 1.15.0 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index eadc4de5a05d..55d87ab81e14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -351,6 +351,7 @@ ### Infrastructure - Changelog for 1.15.0 ([#15277], thanks @straight-shoota) +- Update distribution-scripts ([#15332], thanks @straight-shoota) - Update previous Crystal release 1.14.0 ([#15071], thanks @straight-shoota) - Fix remove trailing whitespace from CRYSTAL definition ([#15131], thanks @straight-shoota) - Make utilities posix compatible ([#15139], thanks @nanobowers) @@ -382,6 +383,7 @@ - *(ci)* Run interpreter specs on Windows CI ([#15141], thanks @HertzDevil) [#15277]: https://github.com/crystal-lang/crystal/pull/15277 +[#15332]: https://github.com/crystal-lang/crystal/pull/15332 [#15071]: https://github.com/crystal-lang/crystal/pull/15071 [#15131]: https://github.com/crystal-lang/crystal/pull/15131 [#15139]: https://github.com/crystal-lang/crystal/pull/15139 From ec6998379fff10feeded731783c7a115468f2d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20M=C3=BCller?= Date: Thu, 9 Jan 2025 19:43:39 +0100 Subject: [PATCH 7/7] Update changelog for 1.15.0 --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 55d87ab81e14..a3d0c60fce07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -351,7 +351,6 @@ ### Infrastructure - Changelog for 1.15.0 ([#15277], thanks @straight-shoota) -- Update distribution-scripts ([#15332], thanks @straight-shoota) - Update previous Crystal release 1.14.0 ([#15071], thanks @straight-shoota) - Fix remove trailing whitespace from CRYSTAL definition ([#15131], thanks @straight-shoota) - Make utilities posix compatible ([#15139], thanks @nanobowers) @@ -362,6 +361,7 @@ - Update distribution-scripts ([#15291], thanks @straight-shoota) - Bump NOTICE copyright year ([#15318], thanks @straight-shoota) - Merge `release/1.14`@1.14.1 ([#15329], thanks @straight-shoota) +- Update distribution-scripts ([#15332], thanks @straight-shoota) - Make `bin/crystal` work on MSYS2 ([#15094], thanks @HertzDevil) - Make `Makefile` work on MSYS2 ([#15102], thanks @HertzDevil) - Support `.exe` file extension in `Makefile` on MSYS2 ([#15123], thanks @HertzDevil) @@ -383,7 +383,6 @@ - *(ci)* Run interpreter specs on Windows CI ([#15141], thanks @HertzDevil) [#15277]: https://github.com/crystal-lang/crystal/pull/15277 -[#15332]: https://github.com/crystal-lang/crystal/pull/15332 [#15071]: https://github.com/crystal-lang/crystal/pull/15071 [#15131]: https://github.com/crystal-lang/crystal/pull/15131 [#15139]: https://github.com/crystal-lang/crystal/pull/15139 @@ -394,6 +393,7 @@ [#15291]: https://github.com/crystal-lang/crystal/pull/15291 [#15318]: https://github.com/crystal-lang/crystal/pull/15318 [#15329]: https://github.com/crystal-lang/crystal/pull/15329 +[#15332]: https://github.com/crystal-lang/crystal/pull/15332 [#15094]: https://github.com/crystal-lang/crystal/pull/15094 [#15102]: https://github.com/crystal-lang/crystal/pull/15102 [#15123]: https://github.com/crystal-lang/crystal/pull/15123