Release Notes
New
-
RE2 flavor added
-
Intersection of character sets added, using the new
&operator:[Thai] & [Nd] # equivalent to the regex [\p{Thai}&&\p{Nd}]Note that subtraction can be achieved by negating the character set to be subtracted:
[Thai] & ![Nd] # equivalent to the regex [\p{Thai}--\p{Nd}] -
Match Script Extensions, using the
scx:orscript_extensions:prefix:[scx:Syriac]Other Unicode properties also get optional prefixes:
# old # new # alternative [Latin] [sc:Latin] [script:Latin] [InGreek] [blk:Greek] [block:Greek] [Letter] [gc:Letter] [general_category:Letter]Note that for the
Inprefix of Unicode blocks is omitted when theblk:orblock:prefix is used. Unicode blocks withIninstead ofblk:will be deprecated. -
pomsky testsubcommand added to compile and test all*.pomskyfiles in a directory. This command ignores files matched by a.ignoreor.gitignorefile. For help, runpomsky test --help. -
Unit tests can now be run with the Rust
regexcrate. To use it, specify--flavor=rustor--engine=rust. -
Diagnostic to detect infinite recursion. If a recursive expression can never terminate, an error is shown.
Changes
-
lazyandunicodemode is no longer inherited when expanding variables.This changes the meaning of expressions such as this:
let variable = 'test'*; enable lazy; variableBefore Pomsky 0.12, the repetition was lazy, but now it isn't.
The
enableordisablestatement has to appear before the repetition syntactically, it doesn't matter where the variable is used. The old behavior was too unintuitive and easy to mess up, so we fixed it. -
Optimize single-character alternatives, and merge adjacent or overlapping ranges.
For example,
'a' | ['bc'] | ['f'-'i']is optimized to[a-cf-i].The order of character ranges in a set is no longer preserved. Currently, they are sorted in ascending order; for example,
['x' 'X' 'A'-'F' 'a'-'f']becomes[A-FXa-fx]. -
No longer warn about lookbehind in JavaScript. Lookbehind is now widely supported.
-
Update Unicode support data for properties added in Unicode 15.x
Fixes
-
Allow supported Unicode binary properties in Java (previously, binary properties in Java were unsupported)
-
Link PCRE2 statically (previously it was linked dynamically, which doesn't work if PCRE2 isn't installed on the target system)
-
Allow Unicode blocks in Ruby, but not PCRE
-
Output
[r]as\r, not as\n(this was a bug introduced by normalizing verbatim line endings in strings).
Install pomsky-bin 0.12.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/pomsky-lang/pomsky/releases/download/v0.12.0/pomsky-bin-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/pomsky-lang/pomsky/releases/download/v0.12.0/pomsky-bin-installer.ps1 | iex"Install prebuilt binaries into your npm project
npm install @pomsky-lang/[email protected]Download pomsky-bin 0.12.0
| File | Platform | Checksum |
|---|---|---|
| pomsky-bin-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| pomsky-bin-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| pomsky-bin-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| pomsky-bin-x86_64-pc-windows-msvc.msi | x64 Windows | checksum |
| pomsky-bin-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| pomsky-bin-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| pomsky-bin-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |