@@ -4,6 +4,68 @@ sidebar_position: 13
44
55This page contains the changelogs from all [ releases of Pluto] ( https://github.com/PlutoLang/Pluto/releases ) .
66
7+ ## 0.12.0
8+ - Added postfix ++ operator
9+ - Added \*\* as an integer exponentiation operator (this previously was a deprecated alias for ^)
10+ - Added ` protected ` class fields
11+ - Added ` $object ` syntax for table creation
12+ - Added ` $include `
13+ - Added ` $haltcompiler `
14+ - Trailing commas are now allowed for arguments, parameters, and destructuring
15+ - String interpolation now implicitly calls ` tostring ` on each interpolation value
16+ - Deprecated the optional 'global' keyword
17+ - Deprecated reassignment of for loop control variables in preparation for Lua 5.5
18+ - Removed the deprecated ` <constexpr> ` attribute
19+
20+ Type System:
21+ - Added ` any ` and ` nil ` type hints
22+ - Added type hinting for multiple return values
23+ - Added complex type hinting for tables to specify fields
24+ - Type hints for ` function ` type can now also specify the parameters and returns
25+ - Added ` $type ` syntax for named types (this replaces the constexpr call ` $type(x) ` )
26+ - Added ` $declare ` to set the type of a global
27+ - Added ` $getproptype ` to query the parser's idea of a variable's type
28+
29+ Standard Library:
30+ - Global & Base
31+ - ` dumpvar ` 's output now includes metatable ` __name ` where applicable
32+ - Bigint
33+ - Added bigint.abs, bigint.gcd, bigint.isprobableprime, bigint.export, bigint.import
34+ - Added __ unm metamethod to bigints
35+ - Bigint operations now accept plain Lua ints as operands
36+ - Crypto
37+ - Added curve25519 to crypto.generatekeypair
38+ - Added crypto.hmac, crypto.fnv1a32, crypto.x25519, crypto.derive
39+ - Added RSA OAEP modes to crypto.encrypt & crypto.decrypt (rsa-sha1, rsa-sha256, rsa-sha384, rsa-sha512)
40+ - Added optional offset parameter to crypto.decompress
41+ - Removed previously-deprecated crypto.hexstream
42+ - FFI
43+ - Added ffi.callback
44+ - IO
45+ - Added io.unique, io.symlink
46+ - Removed previously-deprecated io.copyto
47+ - JSON
48+ - Added MessagePack support to json.encode and json.decode
49+ - Math
50+ - Added math.trunc, math.cbrt, math.hypot
51+ - Added ` math.inf ` as an alias for ` math.huge `
52+ - OS
53+ - Added os.dnsresolve
54+ - Socket
55+ - Added alpn option to socket.starttls
56+ - Added early_data option to client-side socket.starttls
57+ - String
58+ - Added string.span
59+ - Removed previously-deprecated string.find_first_of, string.find_first_not_of, string.find_last_of, string.find_last_not_of, string.lfind
60+ - Table
61+ - Added table.create
62+ - Added table.clone
63+ - UTF8
64+ - utf8.offset now also returns the final position of the codepoint
65+
66+ For Integrators:
67+ - Pulled ` luaL_openselectedlibs ` from Lua 5.5 so you can now define which Lua and Pluto libraries to load globally + preloaded via bitflags. ` luaL_openlibs ` is now a macro using this function to the same effect as before.
68+
769## 0.11.3
870Fixed some regressions from 0.11.2:
971- io.isfile and io.isdir erroring on non-existent paths
0 commit comments