Sometimes, what you really need is a mutable, boxed integer.
While updating jcanephora, I
discovered that I needed to update jpra
to use the new jtensors
types. Whilst doing this, I discovered that the new simplified
implementation of the ByteBuffer based storage tensors that
I'd implemented were too simple: The jpra package made use
of the cursor-like API that the old jtensors-bytebuffered
package provided. I'd not provided anything analogous to this
in the new API, so I had to do some rewriting. In the process,
I discovered that the code that jpra generated was using an
AtomicLong value to store the current byte offset value. The
reason it used an AtomicLong value was simply because there was
no mutable, boxed long value in the Java standard library. To
remedy this, I've created a trivial mutable numbers package
upon which the com.io7m.jtensors.storage.bytebuffered and
com.io7m.jpra.runtime.java modules now depend. I should have done
this years ago but didn't, for whatever reason.
https://github.com/io7m/jmutnum
It may be the least interesting software package I've ever written.