freenode/#clasp - IRC Chatlog
Search
2:56:17
drmeister
I lost backtraces in jupyter lab in the new docker image because I used the quicklisp version and not our local-project implementation ... rectifying...
4:36:02
drmeister
You commented out inline.lisp and you could build cclasp - but asdf had a problem.
4:37:46
Bike
i don't really have a concept for what the problem could be. it's pretty rare to be able to build the whole of clasp and then hit a problem just with asdf
4:40:31
drmeister
It's happened to me several times. I have often built clasp and then failed when building or running one of those. Not for the reason you are seeing.
4:42:49
drmeister
I'm worried that it is the inlining criterion. This inlines local functions - could it be a recursive labels function?
11:18:29
kpoeck
Drmeister: I would like to fix interpret_token_or_throw_reader_error to allow all possible float-types in _STARreadDefaultFloatFormatSTAR
11:23:12
kpoeck
Am now compiling under the assumption that I can read both a DoubleFloat and a Long with strtod
11:24:18
drmeister
No DoubleFloat and LongFloat are the same. I've toyed with the idea of using the GMP infinite precision float for long-float.
11:24:55
kpoeck
Still puzzled with SingleFloat is read with strod, since clasp_make_single_float is defined to accept a float and is passed a double
11:25:46
drmeister
ShortFloat and SingleFloat are also confused - SingleFloat is a tagged C 'float'. I think (but I may have forgotten) ShortFloat is still managed by the GC.
11:29:45
drmeister
Yes. SingleFloat values are not stored on the heap at all - they are coded into the tagged pointer itself. Like fixnum or character.
11:30:15
drmeister
They are shifted a few bits, have tag written into the lower three bits and that's how they are represented.
11:31:38
drmeister
They could be aliased to SingleFloat's... Are there any other ideas of what to do with them?
11:32:18
drmeister
What about LongFloat - I'd like to implement them with GMP arbitrary precision floats.
11:33:55
kpoeck
In ccl, for number crunching I used short-floats instead of single-float, since they would not cons
11:33:58
drmeister
kpoeck: Right - I did that with that in mind - I didn't tidy up ShortFloat and LongFloat because I didn't know what to do with them at the time. So I just left them.
11:36:21
drmeister
Cleavir has a way of doing a lot of math without boxing/unboxing operations that I am looking forward to using.
11:39:32
kpoeck
So I just extend interpret_token_or_throw_reader_error for short-float and long-float (testing right now)
11:40:31
kpoeck
On a different matter, could you perhaps test whether issue #531 also crashes your clasp?
11:42:43
heisig
drmeister: Currently, with the whole machine learning hype, 16bit half-floats have become fashionable again. So that could be a use case for ShortFloat_O.
11:50:58
kpoeck
Meanwhile running ansi-tests with the extended interpret_token_or_throw_reader_error
12:14:56
drmeister
heisig: What do you think about arbitrary precision float's - would it be a good idea to expose them as long-float?
12:35:12
heisig
Bike: This is wikipedia on 16bit floats: https://en.wikipedia.org/wiki/Bfloat16_floating-point_format
12:36:17
Shinmera
"The bfloat16 format is utilized in upcoming Intel AI processors, such as Nervana NNP-L1000, Xeon processors, and Intel FPGAs,[1][2][3] Google Cloud TPUs,[4][5][6] and Tensorflow.[6][7]"
12:36:58
heisig
drmeister: Arbitrary precision long-floats sound like a great idea. I know applications where this would be extremely useful.
12:38:33
drmeister
Ok then. short-float will be 16bit floats - I'll need to tweak the tagging scheme. long-float's will be arbitrary precision floats
12:43:21
drmeister
That is correct - single-floats do not cons - they are stored in tagged pointers.
12:46:32
drmeister
I was going to use them as pointers into aligned C++ memory - but that never panned out. Actually, I'll wait until Martin comes on board - he may have some use for another kind of tagged immediate.
12:47:15
stassats`
i think the only thing clasp will benefit from with 16 bit floats is reduced storage
12:48:09
stassats`
otherwise you'll need clasp to run on these TPUs or support SIMD or wherever these floats are used
12:48:40
drmeister
Well, there is interoperability with C++ machine learning libraries if we need to pass 16bit floats back and forth. Interoperability - as you mentioned above.