freenode/#lisp - IRC Chatlog
Search
4:41:49
remby
well I was considering how to do that in at least 3 languages and I couldn't do it so easily
4:43:05
beach
remby: After you start using Common Lisp, there is typically fewer and fewer reasons to use the languages you knew before.
4:44:01
aeth
remby: in SBCL 2.0.11, SBCL controversially reduced its ARRAY-RANK-LIMIT from 65529 to 256.
4:45:44
aeth
Well, you'll probably run out of memory with a 65529D array, but they didn't try to optimize large dimensional arrays before so they didn't really care
4:47:28
aeth
In some implementations it could be e.g. MOST-POSITIVE-FIXNUM, which can be up to 4611686018427387903 on a 64-bit platform if a FIXNUM is represented as 63 bits (62 bits if treated as unsigned)
4:48:56
Bike
https://github.com/sbcl/sbcl/commit/b628f29e3b3651f8a3a83d28f17b9d514e997849 ah, here's the optimization. simpler than the last time i tried to look up the reason for an sbcl change
4:48:59
aeth
The larger it is, the more likely you'll want to use something sparse rather than just directly using array indices
4:49:39
Bike
you're not going to fit a 257 dimensional array with appreciable dimensions into a cache, i don't think
4:51:40
aeth
heh, 57896044618658097711785492504343953926634992332820282019728792003956564819968 isn't an index. So already that's too many.
4:53:18
aeth
This is a very practical array, though. (apply #'aref (make-array (loop :repeat 255 :collect 1) :initial-element 0) (loop :repeat 255 :collect 0)) ;-)
4:55:52
moon-child
even most apl implementations limit the rank of an array at 15. I can't imagine why anybody would want anything higher than maybe 7 or 8
4:56:58
aeth
the lowest one that "works" for me is (make-array (loop :repeat 61 :collect 2) :element-type 'bit :initial-element 0)
4:58:18
aeth
empirically, if sb-index is not increased, then SBCL could get away with using a cap of 63 and using the rest of the bits for something else
4:59:20
aeth
moon-child: then APL doesn't let you do this: (make-array (make-list 20 :initial-element 2) :element-type 'bit :initial-element 0)
5:25:41
ealfonso
is there a way to quickload some packages in a .lisp file before the reader complains about "package X does not exist"?
5:28:50
White_Flame
oh, the return value will be taken as source code, so: #.(not (ql:quickload ...)) or whatever to eat it
10:05:09
luis
White_Flame: no _need_ for a separate package.lisp file I don't think, just a common convention.
10:06:03
White_Flame
I tend to put exports where things are defined. In such a case, a reevaluated defpackage whines about the empty exports not matching (in sbcl)
12:53:52
jmercouris
and of course I could do `(markup:markup ,(user-interface::object-expression q))
12:54:17
jmercouris
however, I want to just be able to do something like (markup:markup (user-interface::object-expression q))
12:55:40
jmercouris
I want to take an object, and have it emit some SEXP by some function and have that be processed by cl-markup