We just published the 2.6.0 release of Warp 10. Discover the Macro Value encoder and all the details in this post.
On Wednesday, May the 27th of 2020, nearly two months after the release of the 2.5.0, we published the 2.6.0 release of Warp 10. A lot of new features and functions as well as some optimizations and few bug fixes come with this new release.
Discover the latest version of Warp 10. |
Upgrading to 2.6.0
With the 2.6.0 release, we modified the bash script to start Warp 10 as well as the WarpConfig class it calls to get some configuration values. If you have already a pre-2.6.0 instance running, use this procedure to migrate to 2.6.0.
Bug Fixes
- Fetching data with boundaries larger than
max.encoder.size
now returns the expected result. - The same goes with non-0 boundaries in conjunction with
count=0
orend=Long.MAX_VALUE
. - Fetching without timespan and a Metaset now works as expected.
New Features
An incredible new feature of this new release 2.6.0 is the addition of Macro Value Encoder. It simply allows you to send a macro name and a value to the /update
endpoint of your Warp 10 instance, which will apply the macro to the value and store the result. In practice, you can use it to transform or encode your values in a specific way, for instance using Protocol Buffers or Arrow. More on that in an upcoming blog post.
You can now configure the Accelerator to use default strategies for reads, writes and deletes. In the in-memory configuration file, you can set accelerator.default.read
, .write
and .delete
to cache
or nocache
and persist
or nopersist
. You can, for instance, read by default in the cache only unless a call to ACCEL.PERSIST
is done before.
Store and Directory can be accessible in the UDP and TCP plugins scripts, like it is in the HTTP plugin scripts. If you want them to be accessible, don't forget to set egress.clients.expose = true
in your configuration file.
Since 2.1.0, it is possible to override the configuration defined in the configuration files by environment variables and system properties. This can now be disabled by the configuration keys warp10.noenv
and warp10.nosys
. Likewise, when expanding variables, failures can be ignored with warp10.ignorefailedexpands
.
New Docker image
As we noticed Warp 10 use on ARM devices is increasing, we now provide a multi-arch Docker image supporting AMD64, ARM64 and ARMv7.
You can now deploy Warp 10 even quicker than before for your embedded devices or your DIY projects on Raspberry Pi for instance.
New and Updated Functions
We have added a new set of functions to support Elliptic-Curve Cryptography: ECGEN
, ECPRIVATE
, ECPUBLIC
, ECSIGN
and ECVERIFY
.
If you need to compress lists of longs, you can now use the ->VARINT
and VARINT->
functions. They make use of the varint encoding which can greatly reduce the number of bytes needed to represent such lists.
Most Math functions now work on lists. Unary functions can be applied to each element of the list: ABS
, COS
, COSH
, ACOS
, SIN
, SINH
, ASIN
, TAN
, TANH
, ATAN
, SIGNUM
, FLOOR
, CEIL
, RINT
, ULP
, NEXTUP
, NEXTDOWN
, SQRT
, CBRT
, EXP
, EXPM1
, LOG
, LOG10
, LOG1P
, TORADIANS
, TODEGREES
, INCREMENTEXACT
, DECREMENTEXACT
, NEGATEEXACT
and TOINTEXACT
.
Binary functions can be applied to each element of a list and a single value: MAX
, MIN
, COPYSIGN
, HYPOT
, IEEEREMAINDER
, NEXTAFTER
, ATAN2
, FLOORDIV
, FLOORMOD
, ADDEXACT
, SUBTRACTEXACT
and MULTPLYEXACT
. Associative functions can also be applied to a single list: MAX
, MIN
, ADDEXACT
, SUBTRACTEXACT
and MULTIPLYEXACT
.
Four new conversion functions allow you to manipulate geocells and GeoShapes: ->GEOCELL
, GEOCELL->
, ->GEOSHAPE
and GEOSHAPE->
.
For wrapping multi-value GTSs, you can now use WRAPMV!
which is the uncompressed version of WRAPMV
in the same way [!
is the uncompressed version of [
in the GTS input format.
You can now apply ASREGS
directly to a macro, which is equivalent to DUP VARS ASREGS
.
To get the size of a PGraphics or PImage object, you can use the new Psize
function.
Similarly, UNLIST
works on Lists and UNMAP
works on Maps, we added UNSET
which works on Sets.
Performance Improvements
Warp 10 now boots faster than before, thanks to an optimization where the JVM is only launched once to read the configuration files before running Warp 10.
List creation in WarpScript is now faster and less memory hungry by avoiding a needless copy.
The parsing of hexadecimal data on /update
should be faster thanks to the use of charAt
instead of toCharArray
.
Stay close, we'll soon write a post about the Macro value encoder.
Warp 10 2.6.0
Read more
Thinking in WarpScript - Functional & Data Flow
Fetch the first data point in Warp 10
12 tips to apply sliding window algorithms like an expert
WarpScript™ Doctor