Skip to content

Instantly share code, notes, and snippets.

@lizmat
Created October 28, 2023 12:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lizmat/70218a5008e078d95a121ea1ac5bcd5e to your computer and use it in GitHub Desktop.
Save lizmat/70218a5008e078d95a121ea1ac5bcd5e to your computer and use it in GitHub Desktop.
Rakudo additions since 6.d
2018.12
- Endian enum
- reading/writinf native values:
https://docs.raku.org/type/Blob#Methods_on_blob8_only_(6.d,_2018.12_and_later)
- Kernel.endian
- Blob.readint/writeint
- IO::Socket::Async.native-decsriptor
- native-array.Real
- last / LAST in whenever blocks
2019.03
- CURFS/CURI.candidates
- Blob.read-(u)bits/write-(u)bits
- $?DISTRIBUTION
- Signatur.new (HLL interface)
- Parameter.new (HLL interface)
- QuantHashes parameterizable
- my %h is Set[Int]
- use dynamic scope
2019.07
- Telemetry.snap(:checkpoint)
- create CURFS from IO::Path
- EVAL(:check) for -c semantics
- Kernel.free-memory/total-memory
- CachedIterator role
2019.11
- LEXICAL:: pseudo stash
- SETTING:: pseudo stash
- UNIT:: pseudo stash
- GB2312 / GB18030 encodings
2020.01
- DateTime with pico-second precision
- hyper/batch default to number of cores for :degree
- List.index|indices|contains warns
- Str.Version
- Supply.repeated/encode/decode/first/collate/comb/split/lines
- Supply.head(*-3) same semantics as List.head
- "is built" on Attributes
- RAKUDO_POD_DECL_BLOCK_USER_FORMAT env var
- $*RAKU
- Str.comb(/foo/, :match)
- log2 / Numeric.log2
- $.foo: 42 as synonym for self.foo: 42
- RAKU_EXCEPTIONS_HANDLER env variable
2020.02
- user defined chaining ops work
- Parameter.prefix/suffix
- SetHash.set/unset
- BagHash.add/remove
- Str.contains(/foo/)
- :i/:m support for index/indices/starts-with/ends-with/contains/substr-eq
- IterationBuffer.Seq
- Compiler.backend
- Match.replace-with
- Cool.subst(foo) (without replacement string)
- Junction.iterator
2020.05
- Cool.contains(/foo/)
- RAKULIB/RAKUDOLIB env vars
- RAKU_TEST_DIE_ON_FAIL/RAKU_TEST_TIMES env vars
- Str.index/rindix(List of needles)
- Str.Date/DateTime coercers
- Date.yyyy-mm-dd($separator)
- Date.dd-mm-yyyy/mm-dd-yyyy
- IterationBuffer.Slip
- is implementation-detail trait
- ^... and ^...^ infixes
- Date.last-date-in-month/first-date-in-month
- Metamodel::ParametricRoleGroupHOW.parents
2020.06
- "-" as single CLI arg checks for connection to terminal
- Proc.spawn/Proc::Async.new(:win-verbatim-args)
- IO::Handle.do-not-close-automatically
- IO::Path::Parts class
- printf accepts Junction as value
- Supply.rotate
- Capture.EXISTS-POS
- RAKU_REPL_OUTPUT_METHOD env var
- Str.lines(:!chomp)
2020.07
- (==) ≡ ≢ infixes added
- Supply.tail(*|Inf)
- IO::Path dedicated .succ / .pred logic
- --rakudo-home CLI option
2020.08
- Metamodel::Primitives methods added:
set_parameterizer, parameterize_type, type_parameterized,
type_parameters and type_parameter_at
2020.09
- Allomorph class
- cmp for Code comparing Code.name
2020.10
- %*SUB-MAIN-OPTS<bundling>
- 6.e multi-level hash slicing
2020.11
- new coercion semantics
- .COERCE-INTO / .COERCE-FROM
- nested coercions allowed
- 6.e prefix:<||> on postcircumfixes
- IO::Path.symlink(:relative)
- binding of hash/array slices
- is test-assertion trait
2020.12
- Iterator.is-deterministic
- %*SUB-MAIN-OPTS<coerce-allomorphs-to>
- IO::Path.spurt() a la "touch"
- Supply.batch: :emit-on-empty and :emit-once-on-empty args
- Supply.batch: :emit-timed
- Routine.is-DEPRACATED
2021.02
- Dateish.earlier/later multiple time-units
- Seq.slice
- QuantHash.Map
- Proc.new(:arg0)
2021.03
- Lock.wait(&predicate)
2021.04
- Enumeration.keys/values/kv/pairs/antipairs/invert
- Cool.uniname
- IO::Path.user/group
- DateTime.day-fraction/modified-julian-date/julian-date
- Cool.uniparse
2021.05
- ∊ and ∍ as aliases for ∈ and ∋
2021.06
- Support generics with consumption and inheritance in roles
- done "foo"
- .pick(**)
- repl as a sub
- Buf.Blob / Blob.Buf coercers
2021.07
- 6.e next value / last value
- E<> supports all HTML entities
- Ctrl-C does not immediately exit REPL
- ⩶ and ⩵ as Unicode synonyms for === and ==
2021.08
- rendering of nested blocks in Pod::To::Text
2021.09
- safe-snapper module
- DateTime / Instant subtraction
- DateTime.Numeric
2021.10
- new dispatch
- Cool.Version
2021.12
- Routine.is-wrapped
- RAKUDO_PRECOMPILATION_PROGRESS env var
- IterationBuffer.new(iterable)
- IterationBuffer.unshift/prepend
2022.02
- RAKUDO_OPT env var
- sub rotor
- $*RAT-UPGRADE-CLASS / Rat upgrade behaviour
- Cool.Order
- roundrobin(:slip)
- Any.are
- Junction.ACCEPTS(Bool)
2022.03
- Label.file/line
- Date/DateTime day argument Callable (* = last day in month)
2022.04
- REPL access to previous values
- INSIDE_EMACS env var
- IO::Path.dir-with-entries
- will complain trait
2022.06
- DateTime.posix(:real)
- Exception/Cool.Failure coercer
2022.07
- IO::Path.inode/dev/devtype
- sub versions of head / skip / tail
- 6.e: add "snip"
2022.12
- %*SUB-MAIN-OPTS<allow-no>
- %*SUB-MAIN-OPTS<numeric-suffix-as-value>
- 6.e: .skip(produce,skip,produce,skip, etc)
- 6.e: nano
- IO::Path.created
- 6.e: Any.snitch added
- 6.e: // as prefix op
- Dateish.days-in-year
- 6.e: Str.comb rotor-like (aka fast N-grams)
- IO::Path.chown / chown()
2023.02
- .rakutest as test-file extension
- Date/DateTime.Numeric
- classify/categorize(*) for identity
- $*EXIT / $*EXCEPTION
- Complex.sign
- Unicode class
- 6.e: log/sqrt create Complex on negative values
- use experimental :rakuast
2023.05
- Int.Str(:subscript/:superscript)
2023.06
- Uni.encode
- IO::Socket::Async.connect-path/listen-path
- 6.e: Format / Formatter classes
- 6.e: .fmt(Format) candidates
2023.08
- Promise.andthen/orelse
- RAKUDO_NO_PRECOMPILATION env var
- .min/.max(:k :v :kv :p)
- .minpairs/.maxpairs(&by)
- .min/.max(&by)
- List.sort(:k) for indices only
- WHERE WHICH WHO as subs
- HOW/VAR/WHAT/WHO as Mu methods
2023.09
- Operator class
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment