<AeroNotix>
and people think AI will take over the world
<AeroNotix>
This should've been setf'able instead of taking an optional.
ebrasca has quit [Read error: Connection reset by peer]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
marusich has quit [Quit: Leaving]
Hu0p has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
nEatoBoRRITO is now known as potatonomicon
anewuser has joined #lisp
<pjb>
AeroNotix: file-position it is.
<pjb>
AeroNotix: it's legacy.
<pjb>
You can alway (defun fpos (f) (file-position f)) (defun (setf fpos) (n f) (file-position f n) n) and use fpos instead.
<|3b|>
setf function returning NIL on failure instead of erroring would be a bit odd though
<|3b|>
or returning N
<pjb>
setf functions are specified to return the value set.
<pjb>
So you've got no choice here.
<|3b|>
right, which is why NIL would be odd
* |3b|
initially missed that your version returns N either way
<|3b|>
but silently discarding errors doesn't seem good either, so i'd say it just shouldn't return if it can't validly return the value returned from FILE-POSITION
<pjb>
Exactly, which is probably why file-position is not setf-able.
<pjb>
I've got a serie of accessor to read and write files, but of course, you have to take them with a grain of salt.
<pjb>
(defun (setf fpos) (n f) (or (file-position f n) (error "Cannot set file position")) n)
* |3b|
can't tell from spec if it is allowed to set it to a position other than the one you requested (and then return that different position, though doesn't seem like it)
<pjb>
or cerror.
<pjb>
|3b|: it's not forbidden, but it may just not work.
<|3b|>
no, i mean if you tell it to set to 5, can it set to 4
<pjb>
The only file position that have a good chance of success are those returned by file-position.
<|3b|>
right
<pjb>
or do wrong things, eg on a text file with a multi-byte encoding.
<pjb>
(and there's not only utf-8, there are a lot of such encodings).
<|3b|>
though presumably modification to the file could even invalidate those
fikka has joined #lisp
<pjb>
So, you have (unsigned-byte 8) files, which will probably do what you expect on posix systems, and there are other files for which you need to be more careful.
<|3b|>
so in other words, files are too hard, just store everything in the cloud :)
<pjb>
:-)
fikka has quit [Ping timeout: 245 seconds]
SenasOzys has quit [Remote host closed the connection]
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
fikka has joined #lisp
<AeroNotix>
pjb: thanks for informing me that functions and setf functions are a possibility in Common Lisp
dented42 has joined #lisp
fikka has quit [Ping timeout: 246 seconds]
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
lisper29 has joined #lisp
fikka has joined #lisp
lisper29 has left #lisp [#lisp]
fikka has quit [Ping timeout: 244 seconds]
rumbler31 has joined #lisp
_whitelogger has joined #lisp
ckonstanski has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 246 seconds]
_whitelogger has joined #lisp
fikka has joined #lisp
housel has quit [Ping timeout: 272 seconds]
k-stz has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 245 seconds]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
robotoad has quit [Quit: robotoad]
fikka has joined #lisp
equwal has joined #lisp
robotoad has joined #lisp
azimut has joined #lisp
fikka has quit [Ping timeout: 245 seconds]
<no-defun-allowed>
if spi speed isn't a problem, i might have a go at writing an "extended" lisp for arduino
<no-defun-allowed>
i have two 128kb sram chips, so one will be from-space and the other is to-space
<drmeister>
Is it incorrect to automatically use COMMON-LISP in any package that is created?
<drmeister>
in every package that is created.
<no-defun-allowed>
sbcl doesn't automatically use CL when defining a new package
<|3b|>
if there is no :use clause in defpackage, behavior is unspecified so it is OK, :use () shouldn't use any other package though
<drmeister>
Otherwise &optional, &key, &aux etc can't be used without package prefixes.
<|3b|>
not every package is intended to be used from in-package
<drmeister>
Hmmm, :use () shouldn't use any other package - that's clear - ok.
<no-defun-allowed>
that's cute, this 1969 paper uses m-expressions
fikka has joined #lisp
<|3b|>
"implementation-defined" rather than "unspecified" to be more precise
<|3b|>
and same applies to MAKE-PACKAGE, not just DEFPACKAGE
<no-defun-allowed>
*when the reader reads a symbol it flips a coin and uses that to decide if it should intern a new symbol or use the CL symbol
<equwal>
That sounds like fake news.
antonv has joined #lisp
<antonv>
why is (read-sequence #(1 2) ...) invalid?
fikka has quit [Ping timeout: 252 seconds]
<no-defun-allowed>
equwal: it's a kind of motivation to not rely on UB
<antonv>
<antonv>
; See also:
<antonv>
; Destructive function READ-SEQUENCE called on constant data: #(1 2)
<antonv>
; caught WARNING:
<kristof>
Constants may not be motivated.
<antonv>
; The ANSI Standard, Special Operator QUOTE
<antonv>
; The ANSI Standard, Section 3.2.2.3
<antonv>
<no-defun-allowed>
"what do you mean the variable FOOBAR::&OPTIONAL is never used"
<kristof>
use (vector
<no-defun-allowed>
i think read-sequence changes the insert pointer or something
<kristof>
Right, but the *compiler* might not even store a fill pointer (and I would hope not)
<antonv>
kristof: I can't understand where standard says #(1 2) is a constant value
<no-defun-allowed>
yes, that's called a fill pointer.
<equwal>
Works fine for me.
<equwal>
(read-sequence *x* *standard-input*)
<equwal>
#(#\3 #\4)
<equwal>
>*x*
<equwal>
>34
<|3b|>
antonv: you aren't allowed to modify any object created by the reader while reading the program source
<no-defun-allowed>
^^
<|3b|>
including the #() reader syntax
<no-defun-allowed>
you must create the object through vector in this case
<antonv>
|3b|: where in the docs I can find this constraint?
<no-defun-allowed>
i heard parts of cltl2 weren't implemented, which parts were those?
fikka has joined #lisp
<antonv>
|3b|: the link you sent is about Literal Objects
<antonv>
not about objects created by reader
<equwal>
antov: Try finding out what a literal object is.
<equwal>
antonov
<equwal>
antonv
<|3b|>
right, at the point where you are evaluating (read-sequence #() ...) you are evaluating a list containing the symbol CL:READ-SEQUENCE, the self-evaluating object #(), and whatever objects are in the ...)
<antonv>
equwal: I did
<|3b|>
as opposed to when you evaluate (read-sequence some-vector ...) or (read-sequence (vector ...) ...), in which case the 2nd element of the list is a symbol (which evaluates as a variable), or a list starting with the symbol CL:VECTOR (which evaluates as a function call), in neither case a self-evaluating object
Balooga_ has joined #lisp
<antonv>
|3b|: self-evaluating, I see
<antonv>
so it is a literal...
<antonv>
everything produced by reader is a literal than
<|3b|>
right
<antonv>
ok, it will be (vector ..)
fikka has quit [Ping timeout: 246 seconds]
<antonv>
kristof: the reference to The ANSI Standard, Section 3.2.2.3 doen't really help, IMHO
<|3b|>
consider what would happen if you were using a lisp editor to edit your code, and it stored your source (read-sequence #(1 2 3) ...) as lisp forms instead of a string, then evaluated the form and it changed the #(1 2 3) that was being used to store your code
<|3b|>
and for a more current example, i think sbcl gets confused (or has recently) by macros that modify their input since it changes the forms it stores for debug info (or something like that, been a while)
<antonv>
kristof: adding "3.7.1 Modification of Literal Objects" to the warning message might be helpful
fikka has joined #lisp
dented42 has joined #lisp
<antonv>
thanks all
kristof has quit [Ping timeout: 245 seconds]
fikka has quit [Ping timeout: 245 seconds]
dented42 has quit [Ping timeout: 252 seconds]
<beach>
Good morning everyone!
dented42 has joined #lisp
fikka has joined #lisp
<no-defun-allowed>
afternoon, beach
<no-defun-allowed>
well actually it's still lunchtime
<beach>
"The idea behind establishing this convention was to eliminate noise generated almost every time someone comes in and greets using some form of day-time based greeting, and then channel members on the other side of the globe start pointing out that it's different time of the day for them."
<no-defun-allowed>
b...but it's like five in the morning in france
dented42 has quit [Read error: Connection reset by peer]
<no-defun-allowed>
on a sunday too
dented42 has joined #lisp
jack_rabbit has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
<beach>
no-defun-allowed: [getting back to topic] There is lots of work to be done in all the Common Lisp projects I have listed. Yesterday I made excellent progress on SICL bootstrapping, and I want to continue that work while it is still fresh in my mind.
<no-defun-allowed>
oh, well done
dented42_ has joined #lisp
<beach>
This bootstrapping thing has got to be one of the most complicated tasks I have ever tried.
<no-defun-allowed>
what makes it difficult?
<beach>
The Cleavir compiler framework is straightforward in comparison.
<beach>
no-defun-allowed: A mixture of the fact that nobody has tried this before (as far as I can tell) and (more importantly) that I have 4 different SICL first-class global environments in which the meaning of classes and generic functions may be different.
dented42 has quit [Ping timeout: 252 seconds]
<no-defun-allowed>
i see
fikka has quit [Ping timeout: 245 seconds]
<beach>
In my head, I know how it works (though I sometimes need a little diagram), but I still have no real clue how to document it so that other people can understand.
sabrac has joined #lisp
<no-defun-allowed>
i wonder if there's a really obscure loop expression i can use to do box blur
jack_rabbit has joined #lisp
fikka has joined #lisp
<equwal>
Jesus christ
<no-defun-allowed>
(loop for this-x from (- pixel-x width) to (+ pixel-x width) summing (aref image this-x) into total finally (return (/ total (* 2 width)))
<no-defun-allowed>
is a grayscale, 1 dimensional possibility
<equwal>
Well that simplifies things.
<equwal>
I was slammed with "you can but you shouldn't" when I read that sentence.
<equwal>
Have you seen the object oriented stuff in els2018 with graphics?
<beach>
equwal: What are you referring to and who are you asking?
jlarocco has quit [Ping timeout: 244 seconds]
<no-defun-allowed>
beach: i think equwal was reacting to my "box blur in LOOP" implementation
<no-defun-allowed>
although it's more accurately line blur in one dimension
fikka has quit [Ping timeout: 240 seconds]
<equwal>
I was asking if no-defun-allowed has read an obscure paper about graphics only tangentially related to the original topic.
<beach>
Got it.
<no-defun-allowed>
hmm, no, els topics are way too advanced for me
fikka has joined #lisp
FreeBirdLjj has quit [Ping timeout: 244 seconds]
fikka has quit [Ping timeout: 272 seconds]
<equwal>
Object Oriented Shader Composition using CLOS by Nicholas Hafner. I think it is pretty accessible if you are interested.
regreg has joined #lisp
lavaflow_ has joined #lisp
dented42_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dented42 has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
housel has joined #lisp
caltelt_ has joined #lisp
dented42 has quit [Read error: Connection reset by peer]
dented42 has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
Roy_Fokker has quit [Quit: Leaving]
slyrus1 has quit [Quit: slyrus1]
slyrus1 has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
dale has joined #lisp
nanoz has joined #lisp
lavaflow_ has quit [Ping timeout: 272 seconds]
steiner has quit [Remote host closed the connection]
lavaflow_ has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
_whitelogger has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 252 seconds]
atgreen has quit [Ping timeout: 240 seconds]
nanozz has joined #lisp
nanoz has quit [Ping timeout: 252 seconds]
dented42_ has joined #lisp
dented42 has quit [Ping timeout: 245 seconds]
Pixel_Outlaw is now known as Portly_Outlaw
dented42_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
asarch has quit [Quit: Leaving]
pjb has quit [Ping timeout: 252 seconds]
ober` has joined #lisp
ober` is now known as Ober`
Ober` is now known as ober
_whitelogger has joined #lisp
X-Scale has quit [Ping timeout: 252 seconds]
pyx has joined #lisp
pyx has quit [Client Quit]
jlarocco has joined #lisp
<|3b|>
no-defun-allowed: for separable filters like box, 1d is all you need, and for box you can just keep a running total adding in pixel at leading edge and subtracting out pixel at trailing edge
jack_rabbit has quit [Ping timeout: 252 seconds]
Portly_Outlaw has quit [Quit: Leaving]
nanozz has quit [Ping timeout: 240 seconds]
<drmeister>
Stupid question - is there any reason why quicklisp/setup.lisp can't be compile-file'd ?
Balooga_ has left #lisp [#lisp]
makomo has joined #lisp
dented42 has joined #lisp
<LdBeth>
good evenign
<|3b|>
drmeister: probably harder for it to figure out its containing directory if compiled (.fasl wouldn't get recompiled to change *compile-file-truename* if directory was moved for example)
<drmeister>
Hmm, that might be a bit of trouble for us for a while. Clasp's compiler is slow and will probably remain that way for a while (llvm dominates compilation time 60-90%).
<drmeister>
Thank you.
<|3b|>
no interpreter?
<drmeister>
Yes - we have an interpreter - I could try that.
jack_rabbit has joined #lisp
antonv has quit [Ping timeout: 246 seconds]
arduo has joined #lisp
kooga has quit [Quit: :]
Oladon has quit [Quit: Leaving.]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<beach>
This is a figure I am planning to use in the SICL specification document to illustrate the bootstrapping phases: http://metamodular.com/bootstrapping.pdf
<nydel>
beach: do you keep anything like a weblog or etc that i might add to my list of things i read?
<beach>
I am afraid I don't.
<nydel>
thank you anyway
<beach>
I document as much as I can in the specification document, of course.
<beach>
But the bootstrapping chapter is being worked on now, so it is not consistent.
<phoe>
drmeister: a workaround would be to change setup.lisp and split it into two files - one doing the basic setup (compilable), the other being tiny, non-compilable, and only used to fetch *compile-file-truename* on each load
<phoe>
I think that literally a file containing only (defparameter quicklisp::*ql-path* *compile-file-truename*) would be enough to solve this issue.
<phoe>
But then again, there might be other ones, too - Xach would need to be asked for more insight.
X-Scale has joined #lisp
nanoz has joined #lisp
doubledup has joined #lisp
FreeBirdLjj has joined #lisp
robotoad has quit [Quit: robotoad]
<d4ryus>
is there a system in quicklisp to benchmark/compare runtime speed of cl implementations?
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<beach>
Isn't trivial-benchmark in Quicklisp?
orivej has quit [Ping timeout: 252 seconds]
laqq3 has quit [Ping timeout: 244 seconds]
<d4ryus>
beach: yes
<no-defun-allowed>
|3b|: I've read how to implement box blur as a two-pass O(n) procedure, don't you worry.
<beach>
d4ryus: Oh, but maybe I'm mistaken about what it does. Now that I think about it, I think Shinmera created a system for exactly the purpose you want.
<Shinmera>
beach: trivial-benchmark is for benchmarking user code, it won't automatically compare the performance of implementations across a standardised set of forms for you.
<Shinmera>
my other project, cl-all can help you compare implementation behaviour though, by invoking them for you
<no-defun-allowed>
I should add start and end keywords for ffmpeg to allow it to create high quality Lisp ytp.
<Shinmera>
so maybe a combination of trivial-benchmark and cl-all would be a solution
<no-defun-allowed>
To go full circle, I'll make ytps of baggers first.
<beach>
Shinmera: Got it.
<d4ryus>
Shinmera: cl-bench:bench-run works fine for what iam trying to measure :) but thanks
FreeBirdLjj has quit [Remote host closed the connection]
jack_rabbit has quit [Ping timeout: 252 seconds]
Lycurgus has joined #lisp
pierpal has quit [Remote host closed the connection]
vlatkoB has joined #lisp
jack_rabbit has joined #lisp
ober has quit [Ping timeout: 244 seconds]
nika has joined #lisp
rippa has joined #lisp
froggey has quit [Ping timeout: 252 seconds]
froggey has joined #lisp
FreeBirdLjj has joined #lisp
jlarocco has quit [Ping timeout: 252 seconds]
nanoz has quit [Ping timeout: 252 seconds]
ebrasca has joined #lisp
astalla has joined #lisp
kooga has joined #lisp
kenanb has joined #lisp
pjb has joined #lisp
gpiero has quit [Ping timeout: 252 seconds]
kenanb has left #lisp ["ERC (IRC client for Emacs 26.1)"]
razzy has quit [Ping timeout: 245 seconds]
astalla has quit [Ping timeout: 252 seconds]
orivej has joined #lisp
lavaflow_ has quit [Ping timeout: 272 seconds]
cage_ has joined #lisp
_whitelogger has joined #lisp
FreeBirdLjj has quit [Ping timeout: 272 seconds]
pfdietz has quit [Ping timeout: 245 seconds]
orivej has quit [Ping timeout: 252 seconds]
pfdietz has joined #lisp
<ebrasca>
Does someone know what license have Second-Climacs ?
<no-defun-allowed>
i would guess it's the same as Cluffer but you better check with beach
<phoe>
that's right, there's no LICENSE file in the repo
<phoe>
beach: ^
<no-defun-allowed>
beach: btw the license in second-climacs is missing
Essadon has joined #lisp
orivej has joined #lisp
pfdietz has quit [Ping timeout: 252 seconds]
terpri has quit [Ping timeout: 252 seconds]
terpri has joined #lisp
orivej has quit [Ping timeout: 252 seconds]
_whitelogger has joined #lisp
DataLinkDroid has joined #lisp
razzy has joined #lisp
orivej has joined #lisp
atgreen has joined #lisp
SenasOzys has quit [Remote host closed the connection]
vlatkoB_ has joined #lisp
vlatkoB has quit [Ping timeout: 252 seconds]
astalla has joined #lisp
SaganMan has quit [Read error: Connection reset by peer]
dueyfinster has joined #lisp
lavaflow_ has joined #lisp
lavaflow_ has quit [Ping timeout: 244 seconds]
housel has quit [Read error: Connection reset by peer]
<makomo>
i hope it's clearly visible what i mean but to describe it a little: i want a "body form" within my macro's custom syntax to be indented just like macros' body forms are usually indented
<makomo>
note how in the first picture the body is indented nicely under :lambda, while in the second the body is aligned with the previous form
<makomo>
scymtym: the first picture is an example using ESRAP so maybe you'll know
<makomo>
the nice indentation started working only once i loaded ESRAP (i think, checking now), so i suppose there's a way to do it
pierpal has joined #lisp
<makomo>
:lambda indents nicely without loading ESRAP, but :destructure requires ESRAP to be loaded to indent nicely
nika has quit [Quit: Leaving...]
<makomo>
maybe it has something to do with SB-EXT:WITH-CURRENT-SOURCE-FORM?
dueyfinster has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
<beach>
ebrasca: BSD, but it is not usable at the moment.
<beach>
no-defun-allowed: I'll add it at some point, but there is no great point in doing that until I have something that can be experimented with.
<makomo>
_death: oh boy, if only i looked carefully at the file list -- i was looking at macros.lisp and now interface.lisp...
<makomo>
_death: thanks
_whitelogger has joined #lisp
<scymtym>
makomo: what _death said. SB-EXT:WITH-CURRENT-SOURCE-FORM is for associating macro expansion errors with sub-forms. for example to allow SLIME to highlight a sub-form instead of the whole macro form
shrdlu68 has quit [Read error: Connection reset by peer]
k-stz has joined #lisp
<makomo>
scymtym: ah, that confirms the vague idea i formed by reading the docstring a couple of times. gooling for it doesn't really give much except for messages in #sbcl and sbcl mailing lists posts, both of which are yours :-)
astalla has quit [Ping timeout: 245 seconds]
jack_rabbit has quit [Ping timeout: 252 seconds]
<k-stz>
cffi:load-foreign-library searches for library.so but cant find those with number extensions library.so.<number>, is there some setting that does that? My linux distribution saves only the newest library with number extensions and cant (no symlink "libfreetype.so -> libfreetype.so.6")
dddddd has joined #lisp
<Shinmera>
fix the bindings to specify a version
<jmercouris>
k-stz: why can't you use a symlink?
<jmercouris>
it is pretty standard practice to have a symlink pointing to the latest version of a shared library
jack_rabbit has joined #lisp
<Shinmera>
probably Nix
reverse_light has quit [Remote host closed the connection]
atgreen has quit [Read error: Connection reset by peer]
atgreen_ has joined #lisp
dueyfinster has joined #lisp
<k-stz>
I can symlink no problem, but I'd rather fix it at the source or it won't work on all distributions. And the bindings aren't mine, so you'd say its a bug and I should tell the maintainer?
<Shinmera>
well, some may argue one way or the other.
wiselord has quit [Ping timeout: 260 seconds]
Jesin has quit [Quit: Leaving]
groovy2shoes has joined #lisp
orivej has quit [Ping timeout: 252 seconds]
SaganMan has joined #lisp
orivej has joined #lisp
rumbler31 has joined #lisp
moei has joined #lisp
rumbler31 has quit [Remote host closed the connection]
asarch has joined #lisp
dueyfinster has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
dueyfinster has joined #lisp
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
lavaflow_ has quit [Ping timeout: 252 seconds]
nika has joined #lisp
mkolenda has quit [Remote host closed the connection]
<Colleen>
Unknown command. Possible matches: 8, mop, roll, set, say, get, login, block, award, time,
regreg has quit [Ping timeout: 252 seconds]
laqq3 has joined #lisp
dmiles has joined #lisp
regreg has joined #lisp
<sabrac>
whatever happened to minion?
<beach>
Can't sign in because of the new rules of freenode that you have to be registered.
robotoad has joined #lisp
<oni-on-ion>
aw
<slyrus1>
scymtym: around?
<phoe>
someone needs to tell minion and specbot to register with nickserv
wigust has joined #lisp
jasmith has joined #lisp
jmercouris has joined #lisp
atgreen_ has quit [Ping timeout: 246 seconds]
lavaflow_ has quit [Ping timeout: 244 seconds]
<j`ey>
what's the opposite of ash? Ive tried searching
<beach>
Use a negative number.
<j`ey>
ah
<drmeister>
makomo: Thank you - I encountered those incongruent lambda lists in some code from someone that I trust and I know that it is accepted in sbcl. I couldn't believe that clasp/ecl determined correctly that the lambda lists were correct and that the author and sbcl were incorrect.
<beach>
drmeister: Perfect!
<makomo>
drmeister: i'm glad you've found what you need :-)
Lycurgus has joined #lisp
Lycurgus has quit [Client Quit]
nanoz has quit [Ping timeout: 240 seconds]
zhlyg has joined #lisp
suskeyhose has joined #lisp
kooga has quit [Quit: :]
<drmeister>
s/I couldn't believe that clasp/ecl determined correctly that the lambda lists were correct and that the author and sbcl were incorrect./I couldn't believe that clasp/ecl determined correctly that the lambda lists were INCONGRUENT and that the author and sbcl were incorrect./
lavaflow_ has joined #lisp
<drmeister>
With that I think I've had enough internet today.
orivej has quit [Ping timeout: 252 seconds]
SenasOzys has joined #lisp
dueyfinster has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
<jmercouris>
Indeed, merge pathnames there is totally unnecessary
<jmercouris>
at least for the purposes of a demonstration
<phoe>
j`ey: anyway, that's how I'd indent that code
<j`ey>
phoe: apart from create-if-exists, just looks like the indentation changed?
<jmercouris>
j`ey: I believe you said you were using VIM earlier?
<phoe>
yep
<phoe>
...though, well
<j`ey>
jmercouris: ye
<phoe>
when you're opening the file for input, you likely don't want to supersede it if it exists
<phoe>
or create if it doesn't
<jmercouris>
are there any VIM plugins for proper indentation? I belive steve losh is also a vim usr
<phoe>
I think you'd need :if-does-not-exist :error instead of that
<zhlyg>
jèy: write-sequence could maybe be used instead of the bit-dance and write-byte.
<j`ey>
zhlyg: wouldnt I still need to get the different bytes out of the value into a sequence?
<phoe>
anyway, I'm off to sleep
<phoe>
good night #parens
<jmercouris>
goodnight!
<zhlyg>
j`ey: also :input is more correct than ':input in my best knowledge.
<pjb>
equivalent. But indeed it's customary to write :input.
<jmercouris>
well, ':input will just evaluate to :input, not sure why you would do one over the other
<pjb>
':input would insist on the symbol, not on it's meaning.
<phoe>
they're equivalent but keywords are rarely ever quoted. they evaluate to themselves.
<j`ey>
ok changed to :input
<jmercouris>
is there ever a scenario in which the computation result would be different?
<phoe>
yes, macro processing
<pjb>
jmercouris: a bad compiler could generate better code for ':input than :input. But it would need to be very bad.
<phoe>
where you don't evaluate your input
<jmercouris>
okay, fair enough, I didn't think about macros
<phoe>
jmercouris: in which case one input is :INPUT and the other is (QUOTE :INPUT)
<pjb>
jmercouris: it can never be different (unless the implementation allow for non-conforming setting of the keyword value)
<phoe>
one is a symbol the other is a list
<jmercouris>
Yes.
<pjb>
But of course, this is only when they'er evaluated. If not, then there's a big difference: (quote (:foo ':foo)) #| --> (:foo ':foo) |# doesn't contain two symbols!
<jmercouris>
Indeed, indeed
<j`ey>
is there a way to use aref with a 'flat' indexing on a multidimensional array?
<j`ey>
so I can read/write multidimensional arrays transparently
<pjb>
row-major-aref
<pjb>
j`ey: I would use a displaced vector on the multidimensional array to avoid a copy.
<j`ey>
a what what
<pjb>
(write-sequence (make-array (reduce '* (array-dimensions a)) :displaced-to a) stream)
<zhlyg>
j`ey: scratch my idea of using write-sequence, it won't work because you are building an little-endian integer.
<pjb>
j`ey: a displaced array is an array whose elements are actually stored in another array.
<pjb>
It can be used to change the dimensions, or view a part of the other array.
<phoe>
it's a window through which you look at another array
<pjb>
It's constrained to the row-major order of the slots however.
<j`ey>
pjb: im not exactly sure where youre suggesting I use that
<pjb>
j`ey: write-sequence.
ealfonso has quit [Disconnected by services]
ealfonso` has joined #lisp
ealfonso has joined #lisp
<pjb>
and similarly, read-sequence, once you've read the dimensions and initialized the multidimensional array.
<j`ey>
now im confused. why am I doing all this byte stuff if write-sequence and read-sequence can write out an array?
pierpa has joined #lisp
jack_rabbit has joined #lisp
<pjb>
j`ey: ah, well, this is not an array of bytes, so you still need to convert the elements into sequences of bytes (if you want to write your file portably).
<pjb>
j`ey: so yes, you will have to loop with row-major-aref.
vlatkoB_ has quit [Remote host closed the connection]
<j`ey>
looks like row-major-aref is working, thanks
sbadger has quit [Remote host closed the connection]
shrdlu68 has quit [Ping timeout: 240 seconds]
ealfonso` has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
<j`ey>
loooks like I spoke too soon
ealfonso has quit [Disconnected by services]
ealfonso has joined #lisp
<pjb>
(loop :for i :below (reduce (function *) (array-dimensions a)) :do (write-sequence (element-to-byte-sequence (row-major-aref a i)) stream))
<pjb>
Isn't it dangerous to be a zombie raptor? Don't you risk contamination?
<aeth>
That file's a decent candidate to move into a general utility library.
<aeth>
I'm considering using the name carthage.
<j`ey>
cool, now my program takes only 2.5s to start
rumbler31 has quit [Ping timeout: 252 seconds]
<pjb>
Which was also burnt down like libraries, but wasn't quite a library AFAIK.
<pjb>
:-)
<aeth>
Well, it was the *other* major North African port city
<aeth>
(in ancient times, of course)
<pjb>
Then, there remains all the little monasteries and abbey where copist had libraries of volumes.
<pjb>
Scriptorium
<pjb>
Biblioteca Marciana in Venice -> zombie-raptor/marciana
<pjb>
There were also medieval universities.
<pjb>
Constantinople. Oxford, Padua.
<j`ey>
in the CLHS it shows you can (map 'string..), with characters, is there a simple way to do it but with a list of strings?
<aeth>
Are the strings one character long?
<j`ey>
no
zhlyg has quit [Remote host closed the connection]
<aeth>
Do you want to concatenate the strings together?
<j`ey>
(reduce (lambda (x y) (concatenate 'string x y)) works
<j`ey>
just wondered if I was missing something with map
<aeth>
I think you could probably do it with a mapfoo (probably not map) but it would be functionally equivalent to the reduce, but more verbose.
<aeth>
(and it would return a list of one string in the end)
<aeth>
I wouldn't recommend trying to abuse the mapfoo functions like that, though.
<j`ey>
ok, will stick with reduce
<aeth>
It doesn't look like my version of SBCL has a fast route for string concatenation when the types are known. i.e. this won't speed up your reduce (it will slow it down slightly, to check the types of x and y): (defun concatenate-string (x y) (declare (string x y)) (concatenate 'string x y))
<j`ey>
it's not a hot function
<aeth>
j`ey: The other way to do it is (apply #'concatenate 'string list)
<j`ey>
oh, that's nicer
<aeth>
j`ey: That will turn it into (concatenate 'string a b c d e ...) where "a b c d e ..." are elements of the list. It might be slower or faster. It's limited to call-arguments-limit
<aeth>
And it will only work on lists, not sequences
<j`ey>
my list should always be relatively small
xuxuru has quit [Quit: xuxuru]
<aeth>
well, call-arguments-limit in 64-bit SBCL is 4611686018427387903
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
dmiles has quit [Read error: Connection reset by peer]
Mutex7 has joined #lisp
Jesin has joined #lisp
<pjb>
Xof: write-string may be nice too.
Balooga_ has joined #lisp
dmiles has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
Balooga_ has quit [Quit: Balooga_]
<pfdietz>
It might be nice if SBCL images could make the standard part shareable between different images, like libraries. Or is that the case already?
k-stz has quit [Remote host closed the connection]
Jachy has joined #lisp
robotoad has quit [Ping timeout: 272 seconds]
nirved has quit [Ping timeout: 240 seconds]
Balooga_ has joined #lisp
<slyrus1>
pfdietz: I agree. It might already be a thing, but, without thinking about it too deeply, something like dougk's shrinkwrapped binaries linked against a common libsbcl would be awesome.
robotoad has joined #lisp
<slyrus1>
Then again I'm busy downloading a 17MB string handling R package as some chained dependency so clearly nobody cares about package size anymore...
jack_rabbit has quit [Ping timeout: 252 seconds]
fikka has joined #lisp
<pfdietz>
../../include/clasp/asttooling/astVisitor.h:30:10: fatal error: 'clang/AST/RecursiveASTVisitor.h' file not found
<oni-on-ion>
Colleen: oh!
<Colleen>
Unknown command. Possible matches: 8, roll, clhs, set, say, mop, get, login, block, time,
<oni-on-ion>
awesome, just what i was looking for. about to quicklisp her =P
<pfdietz>
wrong channel :)
<oni-on-ion>
who me? Colleen was mentioned here just earlier, thats where i first heard the name. i searched CL irc bot and got the same name, these reasons are why i say hi to her.
astalla has quit [Ping timeout: 246 seconds]
<pfdietz>
No, me
jack_rabbit has joined #lisp
_whitelogger has joined #lisp
<oni-on-ion>
julia, colleen, ruby .. lady names are easy to remember, and at least partially altruistic =)
Mutex7 has quit [Remote host closed the connection]
<vsync>
bit of a model minority stereotype to assume ladies are altruistic, oni-on-ion
<vsync>
women do tend to score higher in extraversion, agreeableness, and conscientiousness, sure, but I prefer to keep the focus mainly on the individual
<vsync>
but now we're veering away from programming
<LdBeth>
I remember a developer changed his legal name to Cons
<vsync>
only acceptable if name children car and cdr
<vsync>
car and cadr rather
<LdBeth>
So how to pronounce CADDADADR
<pfdietz>
Lifehack: give your children common names so they aren't social outcasts.
<pfdietz>
Dad: are you still upset about your name, Lifehack?
dale has joined #lisp
lemonpepper24 has quit [Read error: Connection reset by peer]
bsund has joined #lisp
terpri has quit [Read error: Connection reset by peer]
<pjb>
LdBeth: caduhdadader
<oni-on-ion>
vsync: i mean for man to treat a lady. software and computers like we call the cars we work on "our baby"
<pjb>
LdBeth: alternatively, you may pronounce it "you're lacking abstraction!".
<oni-on-ion>
vsync: altruism in the form of etiquette and gentlemanlyness.. 9_6
<Shinmera>
Hmm. I wonder why I explicitly remember that just specifying &key was allowed
<pfdietz>
You mean, what purpose does that serve?
<Shinmera>
Might be a fluke based on GFs that dont specify any explicit keys
SenasOzys has quit [Ping timeout: 245 seconds]
<Shinmera>
no
AroPar has joined #lisp
<pfdietz>
Even ignoring GFs, it could make sense to do that with ordinary functions, since you can pass keyword parameters if you include a :allow-other-keys t pair of arguments.
<Shinmera>
We're specifically talking about (defgeneric f (a &key b &allow-other-keys)) (defmethod f (a &key))
kjeldahl has quit [Ping timeout: 276 seconds]
<pfdietz>
k
<no-defun-allowed>
hello everyone
<no-defun-allowed>
wait, you can put values in apply as well as lists?
orivej has joined #lisp
<no-defun-allowed>
wonderful
<Shinmera>
only the last argument is unrolled
lavaflow_ has joined #lisp
<Shinmera>
drmeister: the sbcl-isms in staple should be fixed now. (except for the local nicknames)
<drmeister>
What do you recommend wrt the local nicknames.
<Shinmera>
implementing them in clasp of course
<Shinmera>
they're very useful for large systems
<drmeister>
What's involved in implementing local package nicknames?
<drmeister>
It means when you are in a particular package - that certain additional nicknames are available.
<Shinmera>
adding a local-nickname table to the package object and making intern look there when it searches for symbols
<Shinmera>
based on *package*
Kaisyu has joined #lisp
<pfdietz>
The various standard functions that take packages are arguments may have to be modified, as well as the reader and the printer.
<pfdietz>
as arguments
kjeldahl has joined #lisp
<Shinmera>
right. there's also a protocol to query the system, if you want to be fully compatible with onther implementations
<Shinmera>
but basic support should not be hard (famous last words I know)
rumbler31 has joined #lisp
<pfdietz>
I've been thinking there should also be "standard" local nicknames for a package, and a way to say "use that package's standard local nicknames inside this package". The standard local nicknames could collide, but if they do it's immediately detectable and you just manually specify a different one for one of the colliding packages.
jmercouris has quit [Ping timeout: 252 seconds]
rumbler31 has quit [Ping timeout: 252 seconds]
Essadon has quit [Quit: Qutting]
Lycurgus has joined #lisp
Lycurgus has quit [Client Quit]
Lycurgus has joined #lisp
atgreen_ has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
lavaflow_ has quit [Ping timeout: 272 seconds]
<oni-on-ion>
Shinmera: oh!! alright. it was the first search result and i've come across it before, and seen her here in chan.
<oni-on-ion>
this seems a lot simpler too. great work homie
<oni-on-ion>
going to see what i can muster up with her. =)
<oni-on-ion>
and oh i love eldoc so much mucho.
<Shinmera>
maiden is a lot more complex though
<oni-on-ion>
in framework? could be a good thing. i've got some wierd big ideas for something; ive had a couple game servers that had irc integration for eg.