freenode/#lisp - IRC Chatlog
Search
19:25:22
aeth
anamorphic: you might want to use the type (simple-array double-float (*)) instead of (vector double-float) in case the latter doesn't make it a simple-array
19:26:12
aeth
if it's simple, that means there's no fill-pointer and it's not adjustable (and maybe a few other things) so it's faster.
19:27:48
aeth
A vector is a 1D array. A simple-vector is a simple T vector. A simple-array is a simple array. There is no specialized simple-vector. There are specialized vectors, apparently, since pfdietz just defined one. This is a flaw in the standard imo
19:28:40
aeth
9 times out of 10 your simple-array is going to be a 1D array (i.e. a vector) but you have to use the more verbose multi-dimensional array syntax to talk about it
19:29:16
aeth
Usually you get around this by defining your own easier-to-type type if your code is filled with it.
19:40:52
aeth
(If simple-vector worked like everything else you could just say (simple-vector double-float) instead of (simple-array double-float (*)) since the size would be an optional argument at the end. But you can't.)
19:47:36
anamorphic
Yeah had noticed that about simple-vector. Is it a historical thing that it doesn't have a type specializer?
19:54:06
White_Flame
but yeah, I've been bitten by that as well in utf-8 and byte buffer conversions. One library uses simple-vector, the other uses simple-array, and they are not interchangeable; you need to copy the data to an object of the other type in order to bridge them
20:08:25
oni-on-ion
https://sirherrbatka.github.io/blog/2018/10/11/cl-data-structure-ranges-are-pretty-cool/
20:27:11
XachX
the 403 in that case really means "no object is here but i don't want to tell you that"
20:27:11
shelvick
Oh? interesting... I was doing something through qlot which has worked before up until maybe an hour ago
20:27:50
XachX
shelvick: https://beta.quicklisp.org/dist/quicklisp/2018-08-31/distinfo.txt is the normal pattern
20:30:54
aeth
If you use a simple-vector for octets then everything's 4x larger in memory (if 64 bit) and the compiler loses any chance at knowing what type it is when AREFing
20:43:10
aeth
(Oh, and the GC has to iterate through the T vector to see if anything's a pointer, doesn't it?)
22:16:51
White_Flame
oh, regarding the above discussion, the binary type mismatch was simple-array of bytes, vs vector of bytes
22:17:24
White_Flame
sb-ext:octets-to-string for example requires a specialized (vector (unsigned-byte 8))
4:50:54
gendl
the cl spec was spoken most recently by Lord Krishna to Arjuna on the battlefield of Kurukshetra. But it was spoken millions of times before that.
5:01:25
gendl
Before it was finally written down for our puny modern brains to be able to grasp, the cl spec was recited in rythmic triṣṭubh meter (which provides a kind of built-in verbal checksum) and carried by this spoken tradition from master to disciple throughout the eons.
6:43:03
Shinmera
ealfonso`: North allows you to implement oauth 1.0a client and server flows. For oauth 2 you're on your own.
6:56:13
beach
This is mid October in Bordeaux, but it is going to be 30°C today. I believe it's a record.
7:07:15
no-defun-allowed
if everything is sufficiently unboxed, i think a lot could be parallelised on a MIMD system.
7:12:11
White_Flame
no-defun-allowed: when it comes to custom lisp processors, assistance with GC, numeric type dispatch for fixnum vs bignum, and direct support for tag bits would be most helpful
7:13:23
beach
I don't think a custom Lisp processor could compete with a good implementation on stock hardware these days.
7:13:50
White_Flame
it would basically be an exercise in reducing the impedance mismatch between lisp low levels and the target asm
7:14:00
beach
Such a processor would have to be as fast as the fastest microprocessors today, and that would cost a fortune to make.
7:15:06
Jachy
For certain workloads you might be able to make a non von-neumann design in an FPGA that does pretty well even with a MHz clock rate...
7:15:13
Shinmera
And I'd argue that solving things efficicently in silicon is harder than in software
7:17:42
shka_
no-defun-allowed: it is not practical for everything else then gigadollar corpo running ultra specific piece of software
7:18:30
no-defun-allowed
also, a lisp-optimised machine might also sidestep issues we have seen in the past but i'm speculating on that