Releases
0.36.0
Language changes
(breaking-change) Reject annotations on ivars defined in base class. (#9502 , thanks @waj )
(breaking-change) Make **
be right associative. (#9684 , thanks @asterite )
Macros
Standard library
(breaking-change) Drop deprecated CRC32
, Adler32
top-level. (#9530 , thanks @bcardiff )
(breaking-change) Drop deprecated Flate
, Gzip
, Zip
, Zlib
top-level. (#9529 , thanks @bcardiff )
(breaking-change) Drop deprecated with_color
top-level method. (#9531 , thanks @bcardiff )
(breaking-change) Make SemanticVersion
parsing more strict. (#9868 , thanks @hugopl )
Respect explicitly provided type vars for Tuple.new
and NamedTuple.new
. (#10047 , thanks @HertzDevil )
Fix OptionParser
to handle sub-commands with hyphen. (#9465 , thanks @erdnaxeli )
Fix OptionParser
to not call handler if value is given to none value handler. (#9603 , thanks @makenowjust )
Make def_equals
compare first by reference. (#9650 , thanks @waj )
Remove unnecessary def ==(other)
fallbacks. (#9571 , thanks @makenowjust )
Fix OptionParser
indentation of option descriptions. (#10183 , thanks @wonderix )
Add #hash
to Log::Metadata
, Path
, SemanticVersion
, Socket::Address
, URI::Params
, and UUID
. (#10119 , thanks @straight-shoota )
Refactor several case
statements with exhaustive case
/in
. (#9656 , thanks @Sija )
Remove Kernel
mentions in docs. (#9549 , thanks @toddsundsted )
Improve docs for Object#dup
. (#10053 , thanks @straight-shoota )
Fix example codes in multiple places. (#9818 , thanks @maiha )
Fix typos, misspelling and styling. (#9636 , #9638 , #9561 , #9786 , #9840 , #9844 , #9854 , #9869 , #10068 , #10123 , #10102 , #10116 , #10229 , #10252 , thanks @kubo , @m-o-e , @mgomes , @philipp-classen , @dukeraphaelng, @camreeves , @docelic , @ilmanzo , @Sija , @pxeger , @oprypin )
Macros
Numeric
(breaking-change) Move Complex#exp
, Complex#log
, etc. to Math.exp
, Math.log
overloads. (#9739 , thanks @cristian-lsdb )
(performance) Use unchecked arithmetics in Int#times
. (#9511 , thanks @waj )
Check for overflow when extending signed integers to unsigned integers. (#10000 , thanks @HertzDevil )
Fix sprintf
for zero left padding a negative number. (#9725 , thanks @asterite )
Fix BigInt#to_64
and BigInt#hash
. (#10121 , thanks @oprypin )
Fix BigDecimal#to_s
for numbers between -1
and 0
. (#9897 , thanks @dukeraphaelng)
Fix Number#step
. (#10130 , #10295 , thanks @straight-shoota , @bcardiff )
Make Complex
unary plus returns self
. (#9719 , thanks @asterite )
Improve Int#lcm
and Int#gcd
. (#9999 , thanks @HertzDevil )
Add Math::TAU
. (#10179 , thanks @j8r )
Add wrapped unary negation to unsigned integer types to allow &- x
expressions. (#9947 , thanks @HertzDevil )
Improve documentation of mathematical functions. (#9994 , thanks @HertzDevil )
Text
(breaking-change) Fix String#index
not working well for broken UTF-8 sequences. (#9713 , thanks @asterite )
(performance) String
: Don't materialize Regex
match[0]
if not needed. (#9615 , thanks @asterite )
Fix String#rindex
default offset for matching empty regex correctly. (#9690 , thanks @makenowjust )
Add various String#delete_at
methods. (#9398 , thanks @asterite )
Raise if passing null
Pointer to String
. (#9653 , thanks @jgaskins )
Add Regex#capture_count
. (#9746 , thanks @Sija )
Add Regex::MatchData#[]
overloading to Range
. (#10076 , thanks @makenowjust )
Fix duplicates in String
documentation. (#9987 , thanks @Nicolab )
Add docs for substitution to Kernel.sprintf
. (#10227 , thanks @straight-shoota )
Collections
(breaking-change) Make Hash#reject!
, Hash#select!
, and Hash#compact!
consistent with Array
and return self
. (#9904 , thanks @caspiano )
(breaking-change) Deprecate Hash#delete_if
in favor of Hash#reject!
, add Dequeue#reject!
and Dequeue#select!
. (#9878 , thanks @caspiano )
(breaking-change) Change Set#delete
to return Bool. (#9590 , thanks @j8r )
(breaking-change) Drop deprecated Enumerable#grep
. (#9711 , thanks @j8r )
(breaking-change) Remove Hash#key_index
. (#10016 , thanks @asterite )
(breaking-change) Deprecate StaticArray#[]=(value)
in favor of StaticArray#fill
. (#10027 , thanks @HertzDevil )
(breaking-change) Rename Set#{sub,super}set?
to {sub,super}set_of?
. (#10187 , thanks @straight-shoota )
(performance) Optimize Array#shift
and Array#unshift
. (#10081 , thanks @asterite )
(performance) Array#rotate
optimization for small arrays. (#8516 , thanks @wontruefree)
Fix Hash#dup
and Hash#clone
to return correct type for subclasses. (#9871 , thanks @vlazar )
Fix Iterator#cons_pair
return type. (#9788 , thanks @asterite )
Fix key type restriction of Hash#merge
block. (#9495 , thanks @makenowjust )
Fix Range#step
. (#10203 , thanks @straight-shoota )
Let Range#step
delegate to begin.step
and allow float based ranges to be stepped. (#10209 , thanks @straight-shoota )
Fix Indexable#join
with IO
. (#10152 , thanks @straight-shoota )
Fix Flatten
for value-type iterators. (#10096 , thanks @f-fr )
Fix Indexable.range_to_index_and_count
to not raise IndexError
. (#10191 , thanks @straight-shoota )
Handle recursive structures in def_clone
, Hash
, Array
, Dequeue
. (#9800 , thanks @asterite )
Add BitArray#dup
. (#9550 , thanks @andremedeiros )
Allow Iterator#zip
to take multiple Iterator
arguments. (#9944 , thanks @HertzDevil )
Add Iterator#with_object(obj, &)
. (#9956 , thanks @HertzDevil )
Always clear unused bits of BitArray
s. (#10008 , thanks @HertzDevil )
Update Enumerable#sum(initial, &)
docs. (#9860 , thanks @jage )
Add Array#unsafe_build
. (#10092 , thanks @straight-shoota )
Add identity methods for #sum
and #product
. (#10151 , thanks @straight-shoota )
Move combinations
, permutations
, etc., from Array
to Indexable
. (#10235 , thanks @wonderix )
Move sampling methods to Enumerable
. (#10129 , thanks @HertzDevil )
Use Set#add
in Set#add
documentation. (#9441 , thanks @hugopl )
Improve Hash#values_at
docs. (#9955 , thanks @j8r )
Serialization
(breaking-change) Drop deprecated JSON.mapping
. (#9527 , thanks @bcardiff )
(breaking-change) Drop deprecated YAML.mapping
. (#9526 , thanks @bcardiff )
Fix flag enum deserialization from Int64
. (#10145 , thanks @straight-shoota )
Add support for selective JSON and YAML serialization. (#9567 , thanks @stakach )
YAML: correctly serialize infinity
and NaN
. (#9780 , thanks @asterite )
YAML: allow using discriminator in contained types. (#9851 , thanks @asterite )
Support more literal types in JSON::Serializable.use_json_discriminator
macro. (#9222 , thanks @voximity )
Support more literal types in YAML::Serializable.use_yaml_discriminator
macro. (#10149 , thanks @straight-shoota )
Add JSON
serialization to big number types. (#9898 , #10054 , thanks @dukeraphaelng, @Sija )
Handle namespaced defaults in JSON::Serializable
and YAML::Serializable
. (#9733 , thanks @jgaskins )
Standardize YAML error location. (#9273 , thanks @straight-shoota )
Update YAML::Field(converter)
argument docs. (#9557 , thanks @dscottboggs )
Use content
instead of value
when inspect XML::Attribute
. (#9592 , thanks @asterite )
Let JSON::PullParser#on_key
yield self and return value. (#10028 , thanks @straight-shoota )
Cleanup YAML
/JSON
Any#dig
methods. (#9415 , thanks @j8r )
Document JSON::PullParser
. (#9983 , thanks @erdnaxeli )
Clarify Serialization Converter requirements and examples. (#10202 , thanks @Daniel-Worrall )
Time
Files
(breaking-change) Make File.size
and FileInfo#size
be Int64
instead of UInt64
. (#10015 , thanks @asterite )
(breaking-change) Fix FileUtils.cp_r
when destination is a directory. (#10180 , thanks @wonderix )
Enable large-file support on i386-linux-gnu. (#9478 , thanks @kubo )
Fix glob not following symdir directories. (#9910 , thanks @straight-shoota )
Windows: allow creating symlinks without admin rights. (#9767 , thanks @oprypin )
Windows: allow touching directories. (#10284 , thanks @straight-shoota )
Fix Dir.glob
when readdir
doesn't report file type. (#9877 , thanks @straight-shoota )
Add Path#stem
. (#10037 , thanks @straight-shoota )
Move File#fsync
, File#flock_exclusive
, File#flock_shared
, and File#flock_unlock
methods to IO::FileDescriptor
. (#9794 , thanks @naqvis )
Call IO#flush
on builder finish methods. (#9321 , thanks @straight-shoota )
Support using Path
in MIME
and File::Error
APIs. (#10034 , thanks @Blacksmoke16 )
Windows: enable FileUtils
specs. (#9902 , thanks @oprypin )
Networking
(breaking-change) Rename HTTP::Params
to URI::Params
. (#10098 , thanks @straight-shoota )
(breaking-change) Rename URI#full_path
to URI#request_target
. (#10099 , thanks @straight-shoota )
(breaking-change) URI::Params#[]=
replaces all values. (#9605 , thanks @asterite )
Fix type of HTTP::Server::Response#closed?
to Bool
. (#9489 , thanks @straight-shoota )
Fix Socket#accept
to obey read_timeout
. (#9538 , thanks @waj )
Fix Socket
to allow datagram over unix sockets. (#9838 , thanks @bcardiff )
Fix HTTP::Headers#==
and HTTP::Headers#hash
. (#10186 , thanks @straight-shoota )
Make HTTP::StaticFileHandler
serve pre-gzipped content. (#9626 , thanks @waj )
Delete Content-Encoding
and Content-Length
headers after decompression in HTTP::Client::Response
. (#5212 , thanks @maiha )
Delay setup of HTTP::CompressHandler
until content is written. (#9625 , thanks @waj )
Allow HTTP::Client
to work with any IO. (#9543 , thanks @waj )
Make HTTP::Server
don't override content-length
if already set. (#9726 , thanks @asterite )
Do not share underlying hash between URI::Param
s. (#9641 , thanks @jgaskins )
Add HTTP::Cookie::SameSite::None
. (#9262 , thanks @j8r )
Add HTTP::Client
logging and basic instrumentation. (#9756 , thanks @bcardiff )
Add HTTP::Request#hostname
+ utils. (#10029 , thanks @straight-shoota )
Add URI#authority
. (#10100 , thanks @straight-shoota )
Add Socket::IPAddress#private?
. (#9517 , thanks @jgillich )
Make Socket::IpAddress
a bit more type-friendly. (#9528 , thanks @asterite )
Make specs pass in non-IPv6 environments. (#9438 , thanks @jhass )
Make specs pending instead of failing in no multi-cast environments. (#9566 , thanks @jhass )
Remove invalid optimization on Encoding
. (#9724 , thanks @asterite )
Drop RemoteAddressType
private alias. (#9777 , thanks @bcardiff )
Add documentation for HTTP::WebSocket
. (#9761 , #9778 , thanks @ibraheemdev , @bcardiff )
Fix HTTP
docs. (#9612 , #9627 , #9717 , thanks @RX14 , @asterite , @3n-k1)
Fix reference to TCP protocol in docs. (#9457 , thanks @dprobinson )
Logging
(breaking-change) Drop deprecated Logger
. (#9525 , thanks @bcardiff )
(performance) Add logging dispatcher to defer entry dispatch from current fiber. (#9432 , thanks @waj )
Take timestamp as an argument in Log::Entry
initializer. (#9570 , thanks @Sija )
Improve docs regarding Log.setup
. (#9497 , #9559 , thanks @caspiano , @jjlorenzo )
Crypto
(security) Fix "force-peer"
verify_mode
setup. (#9668 , thanks @PhilAtWysdom )
(security) Force secure renegotiation on server to prevent Secure Client-Initiated Renegotiation vulnerability attack. (#9815 , thanks @bcardiff )
(breaking-change) Refactor Digest
and introduce Digest::MD5
, Digest::SHA1
, Digest::SHA256
, Digest::SHA512
backed by openssl. (#9864 , thanks @bcardiff )
Fix overflows in MD5 and SHA1. (#9781 , thanks @bcardiff )
Add OpenSSL::SSL::Context#set_modern_ciphers
and related methods to set ciphers and cipher suites in a more portable fashion. (#9814 , #10298 , thanks @bcardiff )
Add OpenSSL::SSL::Context#security_level
. (#9831 , thanks @bcardiff )
OpenSSL::digest
add require for OpenSSL::Error
. (#10173 , thanks @wonderix )
Concurrency
(breaking-change) Hide Channel internal implementation methods. (#9564 , thanks @j8r )
Channel#close
returns true
unless the channel was already closed. (#9443 , thanks @waj )
Support splat expressions inside spawn
macro. (#10234 , thanks @HertzDevil )
Remove incorrect note about negative timeout not triggering. (#10131 , thanks @straight-shoota )
System
Fix Process.find_executable
to check the found path is executable and add Windows support. (#9365 , thanks @oprypin )
Add Process.parse_arguments
and fix CRYSTAL_OPTS
parsing. (#9518 , thanks @makenowjust )
Port to NetBSD. (#9360 , thanks @Niacat )
Add note about raising IO::Error
to Process
methods. (#9894 , thanks @straight-shoota )
Handle errors in User
/Group
from_name?
/from_id?
as not found. (#10182 , thanks @wonderix )
define the SC_PAGESIZE
constant on more platforms. (#9821 , thanks @carlhoerberg )
Runtime
Fix bug with passing many args then a struct in Win64 C lib ABI. (#9520 , thanks @oprypin )
Fix C ABI for AArch64. (#9430 , thanks @jhass )
Disable LLVM Global Isel. (#9401 , #9562 , thanks @jhass , @bcardiff )
Print original exception after failing to raise it. (#9220 , thanks @jhass )
Use Dwarf information on Exception::CallStack.print_frame
and crash stacktraces. (#9792 , #9852 , thanks @bcardiff )
MachO
: Handle missing LC_UUID
. (#9706 , thanks @bcardiff )
Allow WeakRef
to compile with -Dgc_none
. (#9806 , thanks @bcardiff )
Fix example in Crystal.main
docs. (#9736 , thanks @hugopl )
Add a C ABI spec for accepting a large struct - failing on Win32, AArch64. (#9534 , thanks @oprypin )
Don't relativize paths outside of current directory in backtrace. (#10177 , thanks @Sija )
Avoid loading DWARF if env var CRYSTAL_LOAD_DWARF=0
. (#10261 , thanks @bcardiff )
Fix DWARF loading in FreeBSD. (#10259 , thanks @bcardiff )
Print unhandled exceptions from main routine with #inspect_with_backtrace
. (#10086 , thanks @straight-shoota )
Spec
Compiler
(performance) Don't use init check for constants that are declared before read. (#9801 , thanks @asterite )
(performance) Don't use init check for class vars initialized before read. (#9995 , thanks @asterite )
(performance) Don't use init flag for string constants. (#9808 , thanks @asterite )
Run side effects for class var with constant initializer. (#10010 , thanks @asterite )
Fix VaList
and disable va_arg
for AArch64. (#9422 , thanks @jhass )
Fix cache corrupted when compilation is cancelled. (#9558 , thanks @waj )
Consider select
as an openning keyword in macros. (#9624 , thanks @asterite )
Use function attribute frame-pointer
. (#9361 , thanks @kubo39 )
Make missing __crystal_raise_overflow
error more clear. (#9686 , thanks @3n-k1)
Forbid calls with both block arg and block. (#10026 , thanks @HertzDevil )
Add method name to frozen type error. (#10057 , thanks @straight-shoota )
Use file lock to avoid clashes between compilations. (#10050 , thanks @asterite )
Add a couple of missing end locations to some nodes. (#10012 , thanks @asterite )
Don't visit enum member expanded by macro twice. (#10105 , thanks @asterite )
Fix crash when matching arguments against splat restriction after positional parameters. (#10172 , thanks @HertzDevil )
Fix parsing of do end
blocks inside parenthesis. (#10189 , #10207 , thanks @straight-shoota , @Sija )
Fix regex parsing after then in case/when
. (#10274 , thanks @asterite )
Fix error message for non-exhaustive case statements of 3 or more Bool
/Enum
values. (#10194 , thanks @HertzDevil )
Forbid reopening generic types with different type var splats. (#10167 , thanks @HertzDevil )
Apply stricter checks to macro names. (#10069 , thanks @HertzDevil )
Reword error message when including/inheriting generic type without type vars. (#10206 , thanks @HertzDevil )
Print a message pointing to the online playground if compiled without it. (#9622 , thanks @deiv )
Handle typedef type restriction against alias type correctly. (#9490 , thanks @makenowjust )
Initial support LLVM 11.0 with known issue regarding optimizations #10220 . (#9829 , #10293 , thanks @bcardiff )
Add support for --mcpu native
. (#10264 , #10276 , thanks @BlobCodes , @bcardiff )
Fix Process.run
uses in compiler to handle exec failure. (#9893 , #9911 , #9913 , thanks @straight-shoota , @bcardiff , @oprypin )
Fix Command#report_warnings
to gracefully handle missing Compiler#program
. (#9866 , thanks @straight-shoota )
Add Program#host_compiler
. (#9920 , thanks @straight-shoota )
Add Crystal::Path#name_size
implementation. (#9380 , thanks @straight-shoota )
Refactor helper methods in call_error.cr
. (#9376 , thanks @straight-shoota )
Delegate def error location to implementing type. (#10159 , thanks @straight-shoota )
Refactor Crystal::Exception
to Crystal::CodeError
. (#10197 , thanks @straight-shoota )
Refactor check_single_def_error_message
. (#10196 , thanks @straight-shoota )
Code clean-ups. (#9468 , thanks @makenowjust )
Refactors for compiler specs. (#9379 , thanks @straight-shoota )
Windows CI: Fix and enable compiler specs. (#9348 , #9560 , thanks @oprypin )
Language semantics
(breaking-change) Handle union restrictions with free vars properly. (#10267 , thanks @HertzDevil )
(breaking-change) Disallow keywords as block argument name. (#9704 , thanks @asterite )
(breaking-change) Fix a-b -c
incorrectly parsed as a - (b - c)
. (#9652 , #9884 , thanks @asterite , @bcardiff )
(breaking-change) Check abstract def implementations with splats, default values and keyword arguments. (#9585 , thanks @waj )
(breaking-change) Make abstract def return type warning an error. (#9810 , thanks @bcardiff )
(breaking-change) Error when abstract def implementation adds a type restriction. (#9634 , thanks @waj )
(breaking-change) Don't interpret Proc typedefs as aliases. (#10254 , thanks @HertzDevil )
(breaking-change) Remove the special logic of union of pointer and nil
. (#9872 , thanks @asterite )
Check abstract def implementations with double splats. (#9633 , thanks @waj )
Make inherited hook work through generic instances. (#9701 , thanks @asterite )
Attach doc comment to annotation in macro expansion. (#9630 , thanks @makenowjust )
Marks else branch of exhaustive case as unreachable, improving resulting type. (#9659 , thanks @Sija )
Make Pointer(T)#value=
stricter for generic arguments. (#10224 , thanks @asterite )
Extend type filtering of conditional clauses to arbitrary logical connectives. (#10147 , thanks @HertzDevil )
Support NamedTuple instance restrictions in redefinition checks. (#10245 , thanks @HertzDevil )
Respect block arg restriction when given block has a splat parameter. (#10242 , thanks @HertzDevil )
Make overloads without double splat more specialized than overloads with one. (#10185 , thanks @HertzDevil )
Support type splats inside explicit Unions in type restrictions. (#10174 , thanks @HertzDevil )
Fix splats on generic arguments. (#9859 , thanks @asterite )
Correctly compute line number after macro escape. (#9858 , thanks @asterite )
Fix bug for C structs assigned to a type. (#9743 , thanks @matthewmcgarvey )
Promote C variadic args as needed. (#9747 , thanks @asterite )
Fix parsing of def self./
and def self.%
. (#9721 , thanks @asterite )
Fix ASTNode#to_s
for parenthesized expression in block. (#9629 , thanks @makenowjust )
Don't form a closure on typeof(@ivar)
. (#9723 , thanks @asterite )
Add a few missing expanded.transform self
. (#9506 , thanks @asterite )
Treat super
as special only if it doesn't have a receiver (i.e.: allow super
user defined methods). (#10011 , thanks @asterite )
Implement auto-casting in a better way. (#9501 , thanks @asterite )
Try literal type first when autocasting to unions types. (#9610 , thanks @asterite )
Correctly pass named arguments for previous_def
and super
. (#9834 , thanks @asterite )
Turn proc pointer into proc literal in some cases to closure needed variables. (#9824 , thanks @asterite )
Fix proc of self causing multi-dispatch. (#9972 , thanks @asterite )
Fixes and improvements to closured variables. (#9986 , thanks @asterite )
Don't merge proc types but allow assigning them if they are compatible. (#9971 , thanks @asterite )
Reset nilable vars inside block method. (#10091 , thanks @asterite )
Reset free vars before attempting each overload match. (#10271 , thanks @HertzDevil )
Let offsetof
support Tuples
. (#10218 , thanks @hugopl )
Tools
Formatter
Avoid adding a newline after comment before end. (#9722 , thanks @asterite )
Apply string pieces combination even if heredoc has no indent. (#9475 , thanks @makenowjust )
Correctly format named arguments like foo:bar
. (#9740 , thanks @asterite )
Handle comment before do in a separate line. (#9762 , thanks @asterite )
Fix indent for the first comment of select when
/else
. (#10002 , thanks @makenowjust )
Reduce redundant newlines at end of begin ... end
. (#9741 , thanks @makenowjust )
Let formatter normalize crystal language tag for code blocks in doc comments. (#10156 , thanks @straight-shoota )
Fix indentation of trailing comma in call with a block. (#10223 , thanks @makenowjust )
Doc generator
Linkification: refactor, fix edge cases and add specs. (#9817 , thanks @oprypin )
Exclude types from docs who are in nodoc namespaces. (#9819 , thanks @Blacksmoke16 )
Fix link generation for lib type reference. (#9931 , thanks @straight-shoota )
Correctly render underscores in code blocks. (#9822 , thanks @Blacksmoke16 )
Fix some HTML in docs generator. (#9918 , thanks @straight-shoota )
Correctly handle broken source code on syntax highlighting. (#9416 , thanks @makenowjust )
Re-introduce canonical URL for docs generator. (#9917 , thanks @straight-shoota )
Expose "location"
and "args_html"
in doc JSON. (#10122 , #10200 , thanks @oprypin )
Expose "aliased_html"
in doc JSON, make "aliased"
field nullable. (#10117 , thanks @oprypin )
Support linking to section headings in same tab. (#9826 , thanks @Blacksmoke16 )
Do not highlight undef
as a keyword, it's not. (#10216 , thanks @rhysd )
Others
CI improvements and housekeeping. (#9507 , #9513 , #9512 , #9515 , #9514 , #9609 , #9642 , #9758 , #9763 , #9850 , #9906 , #9907 , #9912 , #10078 , #10217 , #10255 , thanks @jhass , @bcardiff , @waj , @oprypin , @j8r , @Sija )
Add timeout to individual specs on multi-threading. (#9865 , thanks @bcardiff )
Initial AArch64 CI. (#9508 , #9582 , thanks @jhass , @waj )
Update distribution-scripts and use LLVM 10 on Linux packages. (#9710 , thanks @bcardiff )
Update distribution-scripts and publish nightly packages to bintray. (#9663 , thanks @bcardiff )
Update distribution-scripts to use Shards v0.13.0. (#10280 , thanks @bcardiff )
Initial Nix development environment. Use Nix for OSX CI instead of homebrew. (#9727 , #9776 , thanks @bcardiff )
Prevent recursive call in bin/crystal
wrapper. (#9505 , thanks @jhass )
Allow overriding CRYSTAL_PATH
in bin/crystal
wrapper . (#9632 , thanks @bcardiff )
Makefile: support changing the current crystal via env var and argument. (#9471 , thanks @bcardiff )
Makefile: improve supported LLVM versions message. (#10221 , #10269 , thanks @rdp , @straight-shoota )
Update CONTRIBUTING.md. (#9448 , #10249 , #10250 , thanks @wontruefree, @sanks64, @straight-shoota )
Refactor RedBlackTree
sample to use an enum instead of symbols. (#10233 , thanks @Sija )
Add security policy. (#9984 , thanks @straight-shoota )
Use name: nightly
in docs-versions.sh for HEAD. (#9915 , thanks @straight-shoota )
Use canonical base url for generating docs. (#10007 , thanks @straight-shoota )
Remove Vagrantfile. (#10033 , thanks @straight-shoota )
Update NOTICE's copyright year to 2021. (#10166 , thanks @matiasgarciaisaia )
You can’t perform that action at this time.