Warp 10™ is now going 2.0! Discover the new features of this version.
Warp 10 is now going 2.0 and it packs a lots of new features. Here is an overview of these additions. More details will be given on each of them in future posts. If you can't wait to try it, you can go directly to the download page.
Arithmetic Operations on Geo Time Series
Arithmetic operations can now be applied to numeric Geo Time Series (GTSs). Just put two GTSs, call +, -, * or / and you get back a numeric GTS on the stack. For each matching tick on the initial GTSs, the arithmetic operation is applied on the values and the result is stored in the resulting GTS.
One of the operand can be a number instead of a GTS and is treated as a GTS with that value at every tick. The operator + can also be applied to string GTSs and string operand. In that case, the strings or the string representations are concatenated.
You often need the ticks of GTSs to be aligned to combined them, as for arithmetic operations on GTSs. To do so, your only solution was to bucketize but you can now also use the new FILL framework.
FILL expects a filler function and 2 GTSs on the stack. The filler function is called for each tick present in one GTS but not the other and its result is stored in the GTS whose tick was missing. As for other frameworks, the MACROFILLER is available to create custom filler function.
Plugins and Extensions
To ease the connection to external data sources and extend the range of possibilities of Warp 10, 3 new plugins are shipped with the 2.0 version: UDP, TCP and HTTP plugins. You can spawn UDP, TCP and HTTP servers and run WarpScript macros for each received datagram, text line and request respectively.
Maybe the most powerful addition to this 2.0 version is the shared-memory extension, also known as SHM. You can persist in memory any kind of data and share it between several script runs. This allows blazing fast access to critical data.
Extensions and plugins have been reorganized too. REXEC is now available as integrated extension, which is disabled by default to be consistent with the 1.0 version. In a similar way and to reduce the size of the core Warp 10 jar, language support is now a separated plugin.
The code managing WarpScript has been optimized to boost the performances. As a result, stack and operation-heavy WarpScripts can now run up to 100% faster without any modification.
This performance boost can also be increased by the use of registers. These are faster version of variables, so any script with a lot of STOREs and LOADs will greatly benefit from that addition. The easy way is to use ASREGS on your macros to transform your variables to registers.
With the 2.0, Warp 10 now provides a way to have interpreter interfaces much like Python interpreter interface or the UNIX shell. You can send WarpScript lines of code and visualize the stack for each of these sent lines.
By enabling that feature in the configuration file, you have access to a WebSocket and, optionally, a TCP endpoint. They both accept WarpScript and execute each receive line. Basic implementations of interpreter interfaces are given in the form of Python programs.
The token authentication method can be overridden and customized through a plugin. You can now even more integrate Warp 10 into your existing architecture.
It is now possible to track the last activity of your GTSs, namely updates of values or attributes. By activating this feature in your configuration file, you will be able to fetch GTSs depending on their last activity and access their last activity timestamp.
Ingress, through the update endpoint, now handles attributes. However, you should be really careful with that feature as it can clog up your Directory if lines with different GTSs are mixed and each update their attributes.
There are also minor changes: the Warp 10 project now depends on Apache Thrift 0.11.0 for easier build. To keep the jar size reasonable, the deprecated GeoDirectory has been removed.
Want a Presentation of Warp 10 New Features?
Future of Warp 10 1.x
Warp 10 1.x will still be maintained for approximately 1 year. Bugs will be fixed but no new feature will be added. The exact date of the end of the 1.x version will be announced on this blog at a later date.
Discover the latest versions of Warp 10.
WarpFleet Synchronizer is a Web server which aims to synchronize your Git repositories containing macros against your Warp 10 instance.
We just published the 2.7.0 release of Warp 10. Discover the step and timestep parameters as well as the label priority and new WarpScript functions.