Skip to content

Commit 9496a3a

Browse files
committed
Add more about new features
1 parent 56c2c99 commit 9496a3a

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

src/main/resources/docs/Changelog

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,23 @@ it shouldn't be, the value will be "pulled up" and not cause any errors. For ins
5252
mode. Eventually, this will cause a warning in non-strict mode, but additional work is needed before that can be \
5353
implemented. In both modes, when statements are used, properly, this may increase runtime performance, because it \
5454
skips the automatic sconcat feature, which is required for small aliases, but is inefficient in all other cases.
55+
* First class proc referneces are added. Assuming a proc named _test is defined, <code>proc _test</code> will return \
56+
a reference to it, which can be stored in a variable, or otherwise passed around as an argument.
57+
* Closures, iclosures, and proc references now extend the new Callable interface.
58+
* All callables can be executed with parenthetical notation, no matter how they are stored. Previously this \
59+
only worked with top level variables, such as <code>@c()</code> but now it works with any other format, including \
60+
direct returns from other functions and array references, for instance, assuming func returns a Callable, \
61+
<code>func()()</code> will execute it.
62+
* Tab completion is now enhanced for aliases defined with the @command syntax, if they also provide type information \
63+
in @param tags. For instance, if the alias is </code>/test $enum</code> and <code>@param $enum WorldEnvironment</code> \
64+
is provided, then the $enum value will automatically provide autocomplete with the values from the WorldEnvironment enum.
65+
* Support for variadic arguments is added. Callables may now be defined with a variadic type in the last parameter,
66+
which will match all overflow parameters, for instance <code>proc _test(string... @values)</code> can now be called \
67+
such as <code>_test('a', 'b', 'c')</code>, and @values will be an array of strings <code>array('a', 'b', 'c')</code> \
68+
within the proc.
69+
* Additional methods of handling dynamic includes and static analysis have been added. Forward proc declarations, \
70+
@{DynamicProc} annotations, and additional file options. See the page on [[Procedures]] for more details.
71+
* Annotations have been added. For now, only @{DynamicProc} exists, though this will be expanded on in the future.
5572
* As always, hundreds of additional performance fixes and bug fixes and other minor things.
5673

5774
Very early support for LLVM is being introduced. This is not generally usable for basically anything yet, but you

0 commit comments

Comments
 (0)