chore(deps): update dependency crystal-lang/crystal to v1.22.0 #421
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/crystal-lang-crystal-1.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
1.20.3→1.22.0Release Notes
crystal-lang/crystal
v1.22.0Compare Source
Breaking changes
stdlib
Process.fork(#17367, thanks @straight-shoota)Features
lang
StringLiteral#bytesize(#17176, thanks @straight-shoota)NumberLiteral#chr(#17169, thanks @straight-shoota)CharLiteralinRangeLiteral#each(#17170, thanks @straight-shoota)stdlib
prelude(#17349, thanks @straight-shoota)OpenSSL::Cipher#gcm_tagand#gcm_tag=for AEAD ciphers (#17096, thanks @paulocoghi)IO::Memory#writable?(#17167, thanks @spuun)Enum's list of subclasses (#17425, thanks @HertzDevil)HTTP::Context#remote_address,#local_address(#17196, thanks @straight-shoota)HTTP::WebSocketHandler(#17235, thanks @hahwul)HTTP::Client::RequestsupportContent-Encoding: x-gzip(#17263, thanks @straight-shoota)HTTP::Headers#merge(#17326, thanks @jgaskins)IO::Memoryin HTTP body withContent-Lengthheader (#17388, thanks @straight-shoota)GC.syscall(&)(#17150, thanks @ysbaddaden)Thread#waitandThread#wakemethods (#17226, #17243, #17247, #17380, #17419, thanks @ysbaddaden)Crystal::LRUCache(#17284, thanks @ysbaddaden)GC.max_heap_size=(#17346, thanks @straight-shoota).debug_linesection (#17455, thanks @ysbaddaden)BytesinCrystal::System.printf(%s)(#17463, thanks @ysbaddaden)DW_FORM_addrx<n>andDW_FORM_strx<n>from DWARF 5 (#17445, thanks @ysbaddaden)Fiber::ExecutionContext::Parallel#scale_upto manually scale parallel contexts (#17438, thanks @ysbaddaden)XML::Node#line_number(#17179, thanks @n-rodriguez)Process::Status#description(#17087, thanks @straight-shoota)File::Info#inspect(#17375, thanks @straight-shoota)File.exists?(follow_symlinks: true)(#17307, #17600, thanks @straight-shoota, @ysbaddaden)File::Info.readable?,.writable?,.executable?follow_symlinks: false(#17391, thanks @straight-shoota)Char::Reader.new(Bytes)(#17428, thanks @straight-shoota)Time::Span#to_nanosecondsetc. (#17190, thanks @straight-shoota)compiler
ensureafter anExceptionHandler(#17426, #17460, thanks @Sija)Crystal::ALL_FLAGSandUSER_FLAGS(#17392, #17621, thanks @straight-shoota)method_missingcall location metadata (#17465, thanks @nobodywasishere)tools
Bugfixes
stdlib
BitArray#[](Int, Int)(#17205, thanks @HertzDevil)Range#stepraise on zero step size (#17225, thanks @straight-shoota)Range#sizeoverflow on max integer value (#17266, thanks @mvanhorn)Sync::RWLock#try_write_lock?skips type protection (#17472, thanks @ysbaddaden)IO::Memoryto itself (#17241, thanks @ysbaddaden)__crystal_type_id_to_class_name_map(#17502, thanks @HertzDevil)LLVM#gepand#inbounds_gepsignatures with multiple indices (#17538, thanks @HertzDevil)Transfer-Encodingheader (#17140, thanks @straight-shoota)HTTP::Client::Responsewith invalidContent-Encoding(#17262, thanks @straight-shoota)HTTP::Request.from_ioparsing empty header name (#17254, thanks @straight-shoota)HTTP::Request#body=return value (#17257, thanks @straight-shoota)Content-Encoding: deflate(#17261, thanks @straight-shoota)Request#hostname(#17258, thanks @straight-shoota)HTTP::Request#form_params?to ignore invalid content-type (#17256, thanks @straight-shoota)HTTP.parse_headers_and_bodyto not raise withwithout_zlib(#17272, thanks @straight-shoota)HTTP::Request#method(#17255, thanks @straight-shoota)HTTP::Request#version(#17304, #17374, thanks @straight-shoota, @Sija)HTTP::Request#content_length=return value (#17273, thanks @straight-shoota)HTTP::Request#resource(#17310, thanks @straight-shoota)Socket#sendfilewhencount > file.size(#17286, thanks @straight-shoota)File#sendfileshould not move#pos(#17293, thanks @straight-shoota)OpenSSL::SSL::Socket::Client.newfor OpenSSL 4.0 (#17321, thanks @HertzDevil)HTTP::VALID_TOKEN_CHAR_MAPfor Crystal < 1.16 (#17333, thanks @straight-shoota)HTTP::Headersname (#17317, thanks @straight-shoota)HTTP::ClientonIO::Errorduring request (#17318, thanks @jgaskins)HTTP::Request#content_lengthand type asInt64(#17312, thanks @straight-shoota)HTTP::Request#content_lengthin sync with#body(#17389, thanks @straight-shoota)WebSocketbuffer corruption with interleaved control frame (#17553, thanks @straight-shoota)WebSocket::Protocol#receiveto validate masked/unmasked state (#17562, #17603, thanks @straight-shoota)WebSocketreject mixed opcode continuation (#17552, thanks @straight-shoota)BigRational#<=>with an infiniteFloat(#17223, thanks @youdie006)Int#humanize_bytesto useKiBin IEC format (#17234, thanks @kojix2)ThreadPool#main_thread_loop(#17194, thanks @ysbaddaden)-static-pie(#17316, thanks @ysbaddaden)cpu_count > UInt8::MAX(#17437, thanks @willhbr)execvevargs (#17184, thanks @sdogruyol)Process.newto close pipes on error (#17297, thanks @straight-shoota)IO::FileDescriptor#exit_on_broken_pipe(#17335, thanks @straight-shoota)Process.find_executable(#17409, thanks @mvanhorn)FileUtils.mv(Enumerable)swallowing errors (#17407, thanks @LaskaIDK)File::ErrorinProcess.find_executable(#17542, thanks @jochenseeber)String#gsubwhenRegexpattern matches empty string and advances (#17204, thanks @HertzDevil)URI#resolvefor path without/(#17213, thanks @straight-shoota)String#titleize(#17206, thanks @HertzDevil)String#each_line(remove_empty: true)with many empty lines (#17242, thanks @straight-shoota)Char::Reader#pos=to raise on negative position (#17382, thanks @straight-shoota)Char::Reader#current_char_widthto be zero at end (#17405, thanks @straight-shoota)String#compare(case_insensitive: true)to order invalid byte sequences (#17314, thanks @straight-shoota)Char::Reader.newto raise on an invalid position (#17416, thanks @youdie006)PCRE2#jit_compileto accept nomemory error for implicit fallback (#17559, thanks @straight-shoota)Time::Location.load?for Android (#17249, thanks @HertzDevil)compiler
ReferenceStorage(#17397, thanks @HertzDevil)Float32followed by integer (#17572, thanks @HertzDevil)OP_SLASHafter block (#17159, thanks @straight-shoota)ExceptionHandler#locationin an assignment (#17365, thanks @Sija)selfin private top-level method (#17149, thanks @nobodywasishere)instance_sizeofandinstance_alignofonVoidorNoReturn(#17453, thanks @HertzDevil)tools
Chores
lang
stdlib
LLVM::Type#sizeand#alignment(#17494, #17533, thanks @HertzDevil)HTTP::Request#local_addressand#remote_address(#17260, thanks @straight-shoota)compiler
Compiler#fork_codegen(#16417, thanks @straight-shoota)other
Performance
stdlib
HTTP.header_name(#14503, thanks @jgaskins)String#byte_index(Int)(#17303, thanks @HertzDevil)String#gsub(String)and#scan(String)(#17305, thanks @HertzDevil)Refactor
stdlib
Enum.parse?withStringLiteral#bytesize(#17193, thanks @straight-shoota)Socket::IPAddressinterface index conversion (#17250, thanks @HertzDevil)RequestProcessor#processto receive a single IO (#17461, thanks @straight-shoota)UInt128in Dragonbox (#16262, thanks @HertzDevil)IntMINandMAXconstants as hex numbers (#17352, thanks @straight-shoota)Runnables#lazy_grab?to skip the mutex on quick dequeue (#17151, thanks @ysbaddaden)Exception::CallStack.decode_backtrace_frame(#17282, thanks @ysbaddaden)Char::Reader#next_charand ivar initialization (#17383, thanks @straight-shoota)Time.zeroto create new instance instead of returningZERO(#17216, thanks @straight-shoota)Time::Span::ZEROwith.zero(#17217, thanks @straight-shoota)Time::Span#to_secondsetc. (#17259, thanks @straight-shoota)compiler
Program#define_crystal_constants(#17268, thanks @straight-shoota)Crystal::LLVMBuilderHelper#llvm_sizeand friends (#17452, thanks @HertzDevil)RangeLiteral#each(#17195, thanks @straight-shoota)#interpret_to_range(#17227, thanks @straight-shoota)other
Documentation
stdlib
Hash#put(#17459, thanks @spuun)Channelbuffered channel close and drain semantics (#17423, thanks @renich)Int(#17238, thanks @swsch)GCmethods (#17451, thanks @ysbaddaden)#to_pretty_jsoninJSONdocumentation (#17131, thanks @LaskaIDK)Spec::Expectations#bedocs (#17556, thanks @SatvikMishra08)Dir.mkdirand.mkdir_p(#17240, thanks @LaskaIDK)compiler
other
Specs
stdlib
HTTP::Requestspec (#17166, thanks @straight-shoota)HTTP::Request(#17218, thanks @straight-shoota)Socket#sendfile(#17292, thanks @straight-shoota)getaddrinfowithAF_UNSPECfailing withEAI_ADDRFAMILYon FreeBSD (#17358, thanks @ysbaddaden)Big*types compaing against float infinity (#17224, thanks @straight-shoota)sleepspec with libevent (#17232, thanks @straight-shoota)process-utilsfor testing process execution (#17047, thanks @straight-shoota)%PROCESSOR_ARCHITECTURE%when runningProcessspecs on MSVC (#17362, thanks @HertzDevil)FileUtils.ln_sfreplacing a dangling symlink (#17289, thanks @SAY-5)Char::Reader(#17354, thanks @straight-shoota)String#splitseparator (#17338, thanks @wangyusheng1985)compiler
new_programspec helper to concat program flags (#17356, thanks @straight-shoota)FIXMEs for array literal parsing (#17347, thanks @straight-shoota)Infrastructure
buildandmanpagestargets (#17142, thanks @straight-shoota)alltarget from help (alias forcrystal) (#17157, thanks @straight-shoota)devenv.lock(#17147, #17210, #17245, #17253, #17290, #17330, #17379, #17415, #17181, #17143, thanks @crysbot)rumdl.tomlconfiguration (#17171, thanks @straight-shoota)crystalversion inshard.yml(#17351, thanks @straight-shoota)bin/crystal: Avoid symlinks inCRYSTAL_PATH(#17355, thanks @straight-shoota)update-changelog.shfor patch releases (#17479, thanks @straight-shoota)release/1.21@1.21.1intomaster(#17526, thanks @straight-shoota)windows-11-vs2026-arm(#17267, thanks @straight-shoota)forward-compatibilityto last 8 releases (#17332, thanks @straight-shoota)backportworkflow (#17340, thanks @straight-shoota)uses:in GHA workflows to self-repository syntax (#17513, thanks @straight-shoota)macos-14runner on GitHub CI (#17532, thanks @HertzDevil)v1.21.1Compare Source
Bugfixes
stdlib
Channel#tap(&)to reinstate original behaviour (#17296, thanks @straight-shoota)HTTP::Request::Processorresuming connection on unconsumed request (#17434, thanks @straight-shoota)Socket#connecton Unix (#17436, thanks @ysbaddaden)HTTP::Server::RequestProcessorto consume request body before upgrade (#17466, thanks @straight-shoota)XML::Node#namespacefor node types without namespace (#17435, thanks @straight-shoota)YAML::Any#hashwith self-referencing containers (#17477, thanks @straight-shoota)Infrastructure
v1.21.0Compare Source
Breaking changes
stdlib
PCRE(#16924, thanks @straight-shoota)Features
lang
%Wpercent string array literals with interpolation (#16919, thanks @straight-shoota)TypeNode#all_methodsthat includes the type's ancestor's methods (#16902, thanks @Blacksmoke16)stdlib
Channel(T)anIterator(T)(#16916, thanks @jgaskins)Socket#sendfile(andCrystal::EventLoop::Socket#sendfile) (#16665, #17133, thanks @ysbaddaden, @straight-shoota)HTTP::WebSocket#receiveas a synchronous call (#16689, thanks @jgaskins)Crystal::EventLoop::FileDescriptor#pread(#17068, thanks @ysbaddaden)without_mainflag (#17074, thanks @kojix2)rootproperties inJSON::Field(#17016, thanks @tcoatswo)URI::Params::Field(ignore:),ignore_serialize,ignore_deserialize(#17029, thanks @trypsynth)#should,#should_notexpectations (#17020, thanks @straight-shoota)Path#kind(#16917, thanks @Sija)Process.capture,.runand.new(#16975, thanks @straight-shoota)Process::Status.[]constructor (#17003, thanks @straight-shoota)String#present?(#16930, thanks @Sija)UUID.v6and.v8generators (#17010, thanks @trypsynth)compiler
ASTNode#inspect(#16699, thanks @straight-shoota)MacroVarwith empty expressions:%var{}(#16772, thanks @straight-shoota)when Bar, Baz(#17072, thanks @straight-shoota)tools
Bugfixes
stdlib
Process.execon Windows and explicitly spawn subprocess (#17049, thanks @straight-shoota)Iterator#compact_mapwithEmptyIterator(#16928, thanks @straight-shoota)Iterator#compact_mapwith non-nilable compactor proc (#16927, thanks @straight-shoota)Sync::MUfast paths (#17063, thanks @stevegeek)HTTP::Request.form_params?to recognizeContent-Typeandcharset(#16934, #16971, thanks @swsch, @straight-shoota)HTTP::Clientto retry for connection recovery only (#16981, thanks @straight-shoota)Fiber::ExecutionContext::Monitorcompat with old Crystal releases (#17007, thanks @ysbaddaden)EventLoop::IoUring#openmusn't setO_NONBLOCKwhen blocking (#17035, thanks @ysbaddaden)Sync::MU(#17070, thanks @ysbaddaden)fdlock#try_close?must release ref after yielding to the block (#17089, thanks @ysbaddaden)Fiber::ExecutionContext.current?(#17092, thanks @ysbaddaden)XML::Node#each_namespace(#17038, thanks @ysbaddaden)IO::Encoder#writewhen operating on long strings (#16797, thanks @jgaskins)compiler
crystal spec -p(#17062, thanks @straight-shoota)typealiases as the same type (#16961, thanks @stakach)upcast_distinctforPointertoPointer(#16962, thanks @stakach)MacroVarsyntax in literal (#16779, thanks @straight-shoota)ExpressionandExceptionHandler(#16852, thanks @straight-shoota)&(...),&[...],&{...}in assignment (#16960, thanks @stakach)/and//immediately afterself,nil,true,false(#16942, thanks @stakach)out(#16870, thanks @straight-shoota)lookup_matches_in_typeto reject partial matches (#16867, thanks @straight-shoota)sizeof,offsetofas generic type argument in inferred ivar type (#16811, thanks @kojix2)nil_if_read?across while cond filters (#16963, thanks @stakach)common_descendentfor two generic class types (#10831) (#16999, thanks @stakach)tools
thenwith trailing comment (#16878, thanks @straight-shoota)ifwith trailing comments (#16880, thanks @straight-shoota)Chores
stdlib
Colorize.on_tty_only!(#16859, thanks @straight-shoota)spawn(same_thread:)(#17097, thanks @ysbaddaden)writableinIO::Memory.new(#16858, #16883, thanks @straight-shoota)Process::Statusconstructor (#16997, thanks @straight-shoota)Performance
stdlib
Hash.zip(#17054, thanks @carlhoerberg)Refactor
stdlib
CompilerErrorinstead ofabort(#16995, thanks @straight-shoota)Process#waiton Windows (#17099, thanks @ysbaddaden)HTTP::Client#exec(&)(#16969, thanks @straight-shoota)IO::EventedintoCrystal::EventLoop::Wasi(#17030, thanks @ysbaddaden)IO::EventedandCrystal::ThreadLocalValue(#17032, thanks @ysbaddaden)#overlapped_connectand#overlapped_acceptintoEventLoop::IOCP(#17090, thanks @ysbaddaden)Dir::Globberto a struct with instance methods (#16899, thanks @straight-shoota)Processconstructor to receiveCrystal::System::Process(#16933, thanks @straight-shoota)compiler
Process.capture(#17012, #17122, thanks @straight-shoota, @ysbaddaden)optsizeandminsizefun attributes for the-Osand-Ozoptimization modes (#16983, thanks @ysbaddaden)Union#parens(#16744, #16908, thanks @straight-shoota)Lexer#next_macro_token[follow-up #16771] (#16776, thanks @straight-shoota)delimited_pair(advance)(#17023, thanks @straight-shoota)tools
format_binaryparameteralternative(#16912, thanks @straight-shoota)other
Documentation
stdlib
::delegate(#16854, thanks @straight-shoota)String#to_unsafe(#16869, thanks @mvanhorn)Stringis not inheritable (#17000, thanks @LaskaIDK)other
writablein documentation (#16848, thanks @straight-shoota)Specs
stdlib
run_gitspec helper to useProcess.capture_result?(#17079, thanks @straight-shoota)Iterator.empty(#17014, thanks @straight-shoota)close_connectionandclient_forfor HTTP client specs (#16968, thanks @straight-shoota)compiler
compiler-clitest suite (#17033, thanks @straight-shoota)lldb-checkexpectations in debug tests for compatibility with modern LLDB (#16860, thanks @straight-shoota)other
not_nil!in spec suite (#16865, thanks @straight-shoota)not_nil!withshould_not(be_nil)in spec suite (#16906, thanks @straight-shoota)Infrastructure
release/1.19@1.19.2intomaster(#16905, thanks @straight-shoota)release/1.20@1.20.1intomaster(#16900, thanks @straight-shoota)devenv.lock(#16819, #16935, #17006, #17075, #17084, thanks @github-actions, @crysbot)CRYSTAL_BOOTSTRAP_VERSIONinbin/ci(#16966, thanks @straight-shoota)installtarget into subcomponents (#16980, thanks @straight-shoota)release-updatescript (#16977, thanks @straight-shoota)installtarget (#16991, thanks @straight-shoota)shfmt(#17015, thanks @straight-shoota)mbakeformatter forMakefile(#17024, thanks @straight-shoota)git-hooksfollowsnixpkgs(#17064, thanks @straight-shoota)markdownlintwithrumdl(#17069, thanks @straight-shoota).markdownlint.yamlwithrumdl.toml(#17078, thanks @straight-shoota)-Devloop=io_uringflag in Linux CI (#16843, thanks @straight-shoota)backportjob (#16864, thanks @straight-shoota)deploy_api_docsjob (#16863, thanks @straight-shoota)update-devenvworkflow to trigger CI (#16938, thanks @straight-shoota)aarch64workflow (#16965, thanks @straight-shoota)macos-15runners tomacos-26(#17022, thanks @straight-shoota)Lintworkflow (#17066, thanks @straight-shoota)Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate CLI.
2bdfac5fd0to0bcf7644d8Update dependency crystal-lang/crystal to v1.21.0to Update dependency crystal-lang/crystal to v1.21.10bcf7644d8to246feec72dUpdate dependency crystal-lang/crystal to v1.21.1to chore(deps): update dependency crystal-lang/crystal to v1.21.1chore(deps): update dependency crystal-lang/crystal to v1.21.1to chore(deps): update dependency crystal-lang/crystal to v1.22.0246feec72dto2ae44132beView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.