We have just released CSML v1.9.0! Although this release mostly comes with internal improvements, there are a number of new features that we would like to highlight here.
In this release we have entirely redesigned the language parser, which comes with massive performance improvements (up to x100 parsing speed in very large files). The syntax remains the same, but CSML developers working on large chatbots will definitely love it!
New String and Array methods
We have added a few useful helpers to the String and Array types:
String.trim_end()will help with removing whitespace at the beginning or end of any string
Array.init(n)generates a new array of length
Array.append(items)adds an array of items at the end of an array
Array.reverse()reverses an array
You can read more about String and Array methods on the CSML docs.
New timezones support
The Time() helper function can now also convert time between UTC and various timezones!
do UTC = Time() do paris = UTC.to_timezone("Europe/Paris")
New ARM / Mac M1 builds
ARM-based architectures are trending, and we made the necessary improvements to natively support those! All our builds are now compatible with ARM machines, even with Docker. If you are using one of our pre-built binaries (available on the Github release page), make sure to select the right version for your architecture!
For those running CSML on their own machine rather than on CSML Studio, you may be interested in the new
log verb that allows you (in conjunction with the
CSML_LOG_LEVEL environment variable) to print debug data to the logging output file of your setup.
The new syntax goes as follows:
log [level] "message"
levels are trace, debug, info, warn, error. By default,
CSML_LOG_LEVEL is set on
error level, but you can also disable it by setting it to an empty string like so
(This feature is not available to CSML Studio users, as the server logs are not publicly accessible)