jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language<http://cliki.net/> logs:<https://irclog.whitequark.org/lisp,http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.5, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
Josh_2 has quit [Quit: ERC (IRC client for Emacs 25.3.1)]
Kaisyu7 has joined #lisp
lumm has joined #lisp
patlv has joined #lisp
BitPuffin has quit [Remote host closed the connection]
rumbler31 has joined #lisp
kuwze has quit [Ping timeout: 252 seconds]
rumbler31 has quit [Ping timeout: 268 seconds]
Kundry_W_ has joined #lisp
jfrancis_ has joined #lisp
Kundry_W_ has quit [Ping timeout: 244 seconds]
jfrancis_ has quit [Ping timeout: 265 seconds]
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
caltelt has joined #lisp
lumm has quit [Quit: lumm]
MinnowTaur has joined #lisp
vhost- has quit [Quit: WeeChat 2.2-dev]
<aeth> Is it bad for performance to use apply in a situation that pretty much looks like where apply was made for? That is, (apply #'function-taking-in-rest list) vs. (function-taking-in-list list)
Kundry_Wag has quit [Ping timeout: 268 seconds]
<Zhivago> Surely that depends on the implementation. I can imagine that apply will have some list processing overhead where the list is dynamic.
<Zhivago> But you'd be paying for that somewhere along the line, unless you got rid of the dynamic argument lists.
<aeth> The input is incredibly arbitrary.
newbie07 has quit [Ping timeout: 245 seconds]
dddddd has quit [Remote host closed the connection]
<aeth> I'm essentially reimplementing a subset of Lisp except prefixing a stream on front writing the infix representation to the stream. e.g. (defun infix+ (stream &rest numbers) ...) where '(+) becomes "0", '(+ 1) becomes "1", '(+ 1 2) becomes "(1 + 2)", etc.
vhost- has joined #lisp
vhost- has joined #lisp
vhost- has quit [Changing host]
xrash has quit [Ping timeout: 240 seconds]
jfrancis_ has joined #lisp
Pixel_Outlaw has joined #lisp
<aeth> If macros didn't exist I could probably implement the whole thing (when the input is a list) as (apply (gethash (car list) functions) (cdr list))
pierpal has joined #lisp
jfrancis_ has quit [Ping timeout: 260 seconds]
elfmacs has joined #lisp
<aeth> (That wouldn't quite work even without macros because if (:foo 1 2 3) is undefined it would become "foo(1, 2, 3)")
pierpal has quit [Ping timeout: 264 seconds]
patlv has quit [Ping timeout: 240 seconds]
eminhi has joined #lisp
fikka has joined #lisp
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 240 seconds]
jfrancis_ has joined #lisp
Fare has joined #lisp
asarch has joined #lisp
Kundry_W_ has joined #lisp
jfrancis_ has quit [Ping timeout: 265 seconds]
quazimodo has joined #lisp
caltelt_ has joined #lisp
Kundry_W_ has quit [Ping timeout: 264 seconds]
pierpal has joined #lisp
<asarch> Stupid questions:
<asarch> 1) If ' is to (QUOTE ...), what is ` to?
<asarch> 3) What is a "lambda list"?
<asarch> 2) What is a "parameter list"? Is it the list of the arguments of a function, macro, etc?
<asarch> 4) If doing this (let ((x 10)) (format t "~a" x)) would be the same as this ((lambda (x) (format t "~a" x)) 10). Then how would I emulate FLET?
<Bike> ` doesn't have one
<Bike> i don't believe "parameter list" is used in the spec
* asarch takes notes...
<Bike> a "lambda list" specifies how a function ormacro or whatever takes arguments
<Bike> i don't understand the last question
MinnowTaur has quit [Ping timeout: 256 seconds]
<Bike> do you mean that you want to have a function's parameters bind in the function namespace?
<asarch> What question number?
<Bike> four
<Bike> the last one
<Bike> since you asked four.
<asarch> Ah, according with PCL, LET is just a macro that expand to the second form
<asarch> My question was, how is FLET expanded?
<Bike> it's not
<Bike> and let is not a macro
<Bike> i mean, an implementation could make it one, but there's no need to, or to be able to
<Bike> in most implementations let is specially handled
<asarch> D'oh! I see the rest of the paragraph: "in some Lisp dialects--though not Common Lisp--"
<Bike> yeah, in scheme i think it is actually a macro.
spm_ has joined #lisp
<asarch> "Parameter lists are sometimes also called lambda lists because of the historical relationship between Lisp's notion of functions and the lambda calculus."
<asarch> So, the parameter list is actually the list of the arguments for a function/macro/etc, right? And, how is a Lambda list?
light2yellow has quit [Quit: cant handle it anymore]
<Bike> i'm telling you i don't think "parameter list" is an official term.
<Bike> if it's anything it's juts a synonym for "lambda list".
rumbler31 has joined #lisp
<mfiano> a function's parameters are defined by the ordinary lambda list, a type of lambda list
<mfiano> and yes LET is one of 25 epe ial operators. neither a function nor a macro
<mfiano> the standard defines 'parameter'
<mfiano> parameter n. 1. (of a function) a variable in the definition of a function which takes on the value of a corresponding argument (or of a list of corresponding arguments) to that function when it is called, or which in some cases is given a default value because there is no corresponding argument.
<Bike> parameter certainly means something, yes
<mfiano> parameter list doesnt really make sense, because there may be more data than parametric data in a lambda list
vultyre has quit [Quit: Leaving]
patlv has joined #lisp
<spm_> Greets. Perhaps silly question, but any clues on how to get rid of case (or uppercase all symbols) when executing CL-DBI queries? DB appears to convert everything to lowercase, so I can't address the plist elements unless I escape the keys (getf row :|field1|), etc. I looked at the test code for cl-dbi, and see they use the pipe-escapes but that seems ugly...
jfrancis_ has joined #lisp
<asarch> So the book is wrong?
* asarch burns his hard copy of the book
<Bike> it uses a term that's not in the spec
<Bike> and tells you it means a term that is in the spec
<mfiano> in other languages a parameter list is a known term. CL is a standard with very specific vocabulary and function parameter location does a bit more than just define a list if parameters
<mfiano> i suppose the book is being a bit too friendly in cases, but its been a long time since ive read it
patlv has quit [Ping timeout: 256 seconds]
jfrancis_ has quit [Ping timeout: 265 seconds]
optikalmouse has joined #lisp
<spm_> In PCL in that chapter, he's describing how parameters to a function are specified: as a list (of parameters) e.g. a "parameter list". The footnote calls out that these can be referred to as a "lambda-list" for historical reasons, and I believe his doing so is to make the hyperspec docs understandable (as, for instance, the hyperspec for the defun macro shows the argument as lambda-list).
robotoad has quit [Quit: robotoad]
Fare has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
jfrancis_ has joined #lisp
smurfrobot has joined #lisp
vhost- has quit [Ping timeout: 248 seconds]
fikka has quit [Ping timeout: 260 seconds]
Kundry_W_ has joined #lisp
<asarch> How does a lambda list look like?
jfrancis_ has quit [Ping timeout: 265 seconds]
<mfiano> That depends on which kind
robotoad has joined #lisp
Kundry_W_ has quit [Ping timeout: 268 seconds]
brendyn has joined #lisp
karlosz has quit [Quit: karlosz]
jfrancis_ has joined #lisp
Fare has joined #lisp
<aeth> defmethod, defmacro, and defun have different lambda lists. I think destructuring-bind's is the same as defmacro
<mfiano> it is not
<mfiano> that is ehy it is referred to as a destructuring lambda list
<mfiano> why*
jfrancis_ has quit [Ping timeout: 265 seconds]
cmatei has quit [Ping timeout: 248 seconds]
MinnowTaur has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
cmatei has joined #lisp
smurfrobot has quit [Remote host closed the connection]
dtornabene has joined #lisp
pierpa has quit [Quit: Page closed]
Kundry_Wag has quit [Ping timeout: 244 seconds]
karlosz has joined #lisp
karlosz has quit [Client Quit]
graphene has quit [Remote host closed the connection]
karlosz has joined #lisp
graphene has joined #lisp
<asarch> What about in a defun, how would it look like?
mange has quit [Ping timeout: 248 seconds]
<Bike> (x y z) or (x y &rest r) or (&key (z nil) b &allow-other-keys) or any number of other possibilities.
<aeth> "A destructuring lambda list can contain all of the lambda list keywords listed for macro lambda lists except for &environment" and that's why I thought that they were the same
dtornabene has quit [Remote host closed the connection]
<asarch> THANK YOU!!!
<asarch> Thank you very much guys :-)
megalography has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
pierpal has quit [Quit: Poof]
shka1 has joined #lisp
pierpal has joined #lisp
Kundry_Wag has joined #lisp
<aeth> because it doesn't put it on one page: 3.4.1 defun/lambda/flet/labels/handler-case/restart-case/define-method-combination, 3.4.2 defgeneric, 3.4.3 defmethod/defgenric, 3.4.4 defmacro/macrolet/define-compiler-macro/define-setf-expander, 3.4.5. destructuring-bind, 3.4.6. defstruct (constructors), 3.4.7 defsetf, 3.4.8. deftype, 3.4.9. define-modify-macro, and 3.4.10. define-method-combination
fikka has quit [Ping timeout: 244 seconds]
<aeth> Of course, this is just the standard. Libraries can have their own lambda-lists, e.g. specialization-store
anewuser has joined #lisp
edgar has joined #lisp
<asarch> Ok
edgar has quit [Client Quit]
karlosz has quit [Quit: karlosz]
edgar has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
edgar has quit [Client Quit]
edgar has joined #lisp
Pixel_Outlaw has quit [Remote host closed the connection]
edgar has quit [Client Quit]
edgar has joined #lisp
bjorkintosh has joined #lisp
MinnowTaur has quit [Remote host closed the connection]
megalography has joined #lisp
karlosz has joined #lisp
optikalmouse has quit [Quit: Leaving]
sjl_ has quit [Ping timeout: 260 seconds]
sellout-1 has joined #lisp
Kundry_W_ has joined #lisp
sellout- has quit [Ping timeout: 256 seconds]
erratic has quit [Quit: this server has gone to sleep]
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
Kundry_W_ has quit [Ping timeout: 256 seconds]
Kundry_Wag has quit [Ping timeout: 248 seconds]
erratic has joined #lisp
fm4d has quit [Ping timeout: 245 seconds]
eminhi has quit [Ping timeout: 256 seconds]
<LdBeth> Good afternoon
eli_oat has quit [Quit: eli_oat]
eli_oat has joined #lisp
smurfrobot has joined #lisp
AetherWind has joined #lisp
jfrancis_ has joined #lisp
smurfrobot has quit [Ping timeout: 244 seconds]
<asarch> My last stupid question for today: You need to do a small a quick program (maybe to fix a calculation for something), what do you usually use for that? LET, FLET, LET*, lambda, etc?
orivej has joined #lisp
jfranci__ has joined #lisp
Fare has quit [Ping timeout: 256 seconds]
<Bike> those are all different things. i use what i need
<asarch> Ok
<asarch> Why LAMBDA and not just Λ or λ?
<Bike> most keyboards are short on greek.
jfrancis_ has quit [Ping timeout: 260 seconds]
<asarch> I know, but what if the programmer: (funcall (λ (x y) (+x y)) 10 3)?
<Bike> i can't type a lambda without reconfiguring my system a bit
<Bike> that's all
<asarch> Oh :-(
<asarch> Ok, ok
elfmacs has quit [Ping timeout: 256 seconds]
patlv has joined #lisp
cgay_ has quit [Quit: Lost terminal]
vtomole has joined #lisp
cgay_ has joined #lisp
<aeth> It's probably better to turn your lambda into a λ via emacs, locally to your end. It will mess up indentation sometimes, though.
<aeth> It's pretty rare, though. The only common case with common style where the indentation would be aligned improperly would be (lambda (some-long-variable\n
<aeth> (But if you're writing a complicated function as a lambda it should probably be named with flet or defun.)
<aeth> The best thing about it is you can just type "lambda" and emacs will display it, locally to you, as λ
patlv has quit [Ping timeout: 240 seconds]
zfree has joined #lisp
phoe has quit [Ping timeout: 276 seconds]
phoe has joined #lisp
<LdBeth> Well I would just give it a name so I can reference to it later
<asarch> (mapcar #'(lambda (x) (+ x 10))) -> (mapcar #'(λ (x) (+ x 10)))
<LdBeth> CL21 allows one to write (mapcar ^(+ % 10) ...
<aeth> That's a terrible name. What if there's a new standard in 2021?
<aeth> Unlikely, but possible.
fikka has joined #lisp
edgar has quit [Quit: Leaving]
<beach> Good morning everyone!
moei has quit [Read error: Connection reset by peer]
<LdBeth> Good morning beach
moei has joined #lisp
whartung_ has joined #lisp
alter-schjetne has joined #lisp
jfranci__ has quit [Remote host closed the connection]
whartung has quit [Ping timeout: 240 seconds]
whartung_ is now known as whartung
fikka has quit [Ping timeout: 260 seconds]
elfmacs has joined #lisp
schjetne has quit [Ping timeout: 276 seconds]
jfrancis_ has joined #lisp
jfrancis_ has quit [Remote host closed the connection]
igemnace has joined #lisp
Bike has quit [Quit: Lost terminal]
megalography has quit [Ping timeout: 260 seconds]
bjorkint0sh has joined #lisp
bjorkintosh has quit [Remote host closed the connection]
zigpaw has quit [Quit: Ping timeout (120 seconds)]
orivej has quit [Ping timeout: 256 seconds]
zigpaw has joined #lisp
vtomole has quit [Ping timeout: 252 seconds]
orivej has joined #lisp
Kaisyu7 has quit [Quit: ERC (IRC client for Emacs 25.3.2)]
bjorkint0sh has quit [Quit: Leaving]
hphat^ has quit []
orivej has quit [Ping timeout: 260 seconds]
milanj has joined #lisp
JuanDaugherty has joined #lisp
megalography has joined #lisp
Inline has quit [Remote host closed the connection]
Kaisyu7 has joined #lisp
karlosz has quit [Quit: karlosz]
pierpal has quit [Quit: Poof]
jack_rabbit has quit [Ping timeout: 265 seconds]
pierpal has joined #lisp
ofi has joined #lisp
Kundry_Wag has joined #lisp
nickenchuggets has quit [Quit: Leaving]
sauvin has joined #lisp
Kaisyu7 has quit [Quit: ERC (IRC client for Emacs 25.3.2)]
asarch has quit [Quit: Leaving]
Kaisyu7 has joined #lisp
fikka has joined #lisp
smurfrobot has joined #lisp
anewuser has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 256 seconds]
flamebeard has joined #lisp
vlatkoB has joined #lisp
smurfrobot has quit [Remote host closed the connection]
quazimodo has quit [Ping timeout: 240 seconds]
ofi has quit [Remote host closed the connection]
ofi has joined #lisp
SaganMan has quit [Ping timeout: 268 seconds]
Kundry_Wag has quit [Ping timeout: 244 seconds]
elfmacs has quit [Quit: WeeChat 2.2]
fikka has joined #lisp
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
Kundry_Wag has quit [Ping timeout: 256 seconds]
shka1 has quit [Ping timeout: 260 seconds]
graphene has quit [Remote host closed the connection]
jfrancis_ has joined #lisp
graphene has joined #lisp
jfrancis_ has quit [Ping timeout: 256 seconds]
JuanDaugherty has quit [Quit: Exeunt]
varjagg has joined #lisp
wildbartty has quit [Remote host closed the connection]
wildbartty has joined #lisp
caltelt has quit [Ping timeout: 260 seconds]
smurfrobot has joined #lisp
fikka has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
vhost- has joined #lisp
vhost- has joined #lisp
vhost- has quit [Changing host]
smurfrobot has quit [Remote host closed the connection]
varjagg has quit [Quit: ERC (IRC client for Emacs 25.2.1)]
elfmacs has joined #lisp
rozenglass has quit [Remote host closed the connection]
angavrilov has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
sword has quit [Remote host closed the connection]
robotoad has quit [Quit: robotoad]
quazimodo has joined #lisp
jfrancis_ has joined #lisp
jfrancis_ has quit [Ping timeout: 244 seconds]
fikka has joined #lisp
White_Flame has quit [Ping timeout: 244 seconds]
fikka has quit [Ping timeout: 260 seconds]
Arcaelyx has joined #lisp
White_Flame has joined #lisp
aindilis has quit [Read error: Connection reset by peer]
jfrancis_ has joined #lisp
aindilis has joined #lisp
jfranci__ has joined #lisp
jfrancis_ has quit [Ping timeout: 256 seconds]
zaquest has joined #lisp
jfranci__ has quit [Ping timeout: 264 seconds]
<shka> good morning
<beach> Hello shka.
Kundry_Wag has joined #lisp
hhdave_ has joined #lisp
graphene has quit [Read error: Connection reset by peer]
graphene has joined #lisp
vhost- has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
Moosef has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
Kundry_W_ has joined #lisp
Kundry_W_ has quit [Ping timeout: 260 seconds]
Kundry_Wag has quit [Ping timeout: 256 seconds]
playful-owl has joined #lisp
zfree has quit [Quit: zfree]
orivej has joined #lisp
pagnol has joined #lisp
SaganMan has joined #lisp
_cosmonaut_ has joined #lisp
schweers has joined #lisp
fikka has joined #lisp
logicmoo has quit [Ping timeout: 248 seconds]
saki has quit [Ping timeout: 256 seconds]
Arcaelyx_ has joined #lisp
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
FreeBirdLjj has quit [Read error: Connection reset by peer]
FreeBirdLjj has joined #lisp
dmiles has joined #lisp
Arcaelyx has quit [Ping timeout: 276 seconds]
FreeBirdLjj has quit [Ping timeout: 265 seconds]
<pjb> minion: memo for asarch: (defmacro λ ((&rest params) &body body) `(cl:lambda ,params ,@body))
<minion> Remembered. I'll tell asarch when he/she/it next speaks.
<shka> just use emacs prettify :/
saki has joined #lisp
jfrancis_ has joined #lisp
xrash has joined #lisp
jfrancis_ has quit [Ping timeout: 260 seconds]
milanj has quit [Quit: This computer has gone to sleep]
<flip214> aeth: CL20.21
<antoszka> There were quite a few reader macros for shorthand lambda notation.
<antoszka> Some more some less flexible (with regards to argument passing).
<pjb> As reader macro, you can use the lambda-calculus syntax. λx,y.(+ x y)
<pjb> But since you wouldn't want infix notation, it may be too much.
<trittweiler> I always thought sharp-backquote would be a nice choice of taste, like #`(foo ,2 ,1 ,@&rest) == (lambda (x y &rest rest) (apply 'foo y x rest))
eminhi has joined #lisp
<pjb> It's obscure. You have to know it to understand what it does.
<pjb> (lambda ($1 $2 &rest rest) (apply (function foo) $2 $1 rest)) is clearer :-)
<pjb> If the parameters don't need names, perhaps you don't need parameters (to explicit them).
esrarkesh has joined #lisp
<pjb> Instead of (lambda (x y &rest rest) (apply 'foo y x rest))) write (swap-parameters foo)
<pjb> (defun swap-parameter (fun) (lambda (x y &rest rest) (apply fun y x rest)))
al-damiri has joined #lisp
trocado has joined #lisp
Kundry_Wag has joined #lisp
m00natic has joined #lisp
Kundry_W_ has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
elfmacs has quit [Ping timeout: 260 seconds]
smurfrobot has joined #lisp
xrash has quit [Read error: Connection reset by peer]
xrash has joined #lisp
Kundry_W_ has quit [Ping timeout: 256 seconds]
Kundry_Wag has joined #lisp
random-nick has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
Kundry_Wag has joined #lisp
milanj has joined #lisp
<LdBeth> I can’t think out any actual use case about this
Kundry_Wag has quit [Ping timeout: 256 seconds]
<shka> LdBeth: (reduce (swap-parameters #'cons) '(1 2 3 4 5) :initial-value nil)
<shka> for instance
<LdBeth> Then hack on reduce
Kundry_Wag has joined #lisp
brendarn has joined #lisp
Kundry_Wag_ has joined #lisp
brendyn has quit [Ping timeout: 264 seconds]
dmiles has quit [Ping timeout: 248 seconds]
vlatkoB_ has joined #lisp
<xificurC> I'm a bit lost with packages. When I add a package do :depends-on in asdf:defsystem, those packages are automatically available when I do in-package? From hands-on experience it seems to be the case.
<shka> xificurC: you are truely lost
<shka> packages and systems are two separate terms
Kundry_Wag has quit [Ping timeout: 240 seconds]
<shka> package is for reader, systems are something completly different
<xificurC> shka: I get that they are different, I don't get the interplay :) when I do (require 'foo) and foo is a name of a system that describes a single package with the same name
<shka> it is not required for a system to provide package with the same name as the system
<shka> it is just what people do
<xificurC> did I just require the package or the system?
<shka> you can't requirte the package
Moosef has quit [Quit: Connection closed for inactivity]
<LdBeth> (defun seduce (fn list &rest args)
<LdBeth> (do ((lst list (cdr lst)))
<LdBeth> (funcall fn (second lst) (first lst))))
vlatkoB has quit [Ping timeout: 244 seconds]
<shka> i prefer pjb version
BitPuffin has joined #lisp
<shka> xificurC: packages are only for reading
<shka> for nothing else
<shka> so you can't really require it
<xificurC> clhs of require talks about modules.. great, more terms incoming
<shka> you can load a package and that would produce new package, but that's just a namespace
<shka> what system is just way to load files
<shka> so interplay is simple: system says how to load code, code can specify packages, and people can name package just like system
<xificurC> _death: I'll read that, thanks
<shka> and that's pretty much it
<shka> makes sense?
<xificurC> shka: ok, cleared up a bit. Now the question I was aiming at :)
<LdBeth> package is a data structure contains symbols and their bindings
<shka> just symbols
<xificurC> what to do with external, ehm, systems? Those from quicklisp, can I just add them to the :depends-on list and it will magically get downloaded etc when needed?
<shka> yup
<shka> quicklisp can do that for you
<shka> it is basicly a package manager, really
<xificurC> cool. I could have just tried it out but I was hoping to learn something along the way, and look, I did
<LdBeth> Well symbols hold their bindings
<shka> one that is tightly integrated into lisp
<shka> so in python you would run pip from shell, in cl though, quicklisp hooks into system definition and works automaticly
<shka> without a need to go to the shell
<shka> LdBeth: they don't
<shka> they are associated with bindings in enviorements
<shka> but that's it
dmiles has joined #lisp
<xificurC> cool. Are you using any DAG drawing library? I need to draw something and there's actually a lot of choices in quicklisp. Most bind to graphviz in some way, some have close to 0 docs, and then I found psgraph
Ricchi has joined #lisp
<LdBeth> shka: so symbols just hold its print name?
<shka> LdBeth: home package, property list
jmercouris has joined #lisp
smurfrobot has quit [Remote host closed the connection]
<shka> and boundp works on symbols obviously, but saying that symbol stores it's value may lead to inproper conclusions
<shka> LdBeth: let me check what i am using actually
AetherWind has quit [Quit: Leaving]
fikka has joined #lisp
<shka> xificurC: i am using :cl-dot
<shka> LdBeth: wrong highlight, sorry
edgar_ has joined #lisp
edgar_ has quit [Remote host closed the connection]
<trittweiler> xificurC, a package is essentially a hash-table from string to symbol, which is used by the reader to parse identifiers in source files to a unique object (the symbol). In order to make the `x` in "(let ((x 42)) (+ x x))" always refer to the same object. A system is essentially a Lisp object representing an executable plan to build software (i.e. something like a Makefile)
edgar_ has joined #lisp
edgar_ has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 256 seconds]
trocado has quit [Ping timeout: 240 seconds]
quazimodo has quit [Ping timeout: 268 seconds]
Fare has joined #lisp
gravicappa has joined #lisp
quazimodo has joined #lisp
fikka has joined #lisp
Kundry_Wag_ has quit [Ping timeout: 268 seconds]
jfrancis_ has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
<pjb> shka: you cannot load a package.
<pjb> shka: don't confuse terms.
<pjb> in CL, packages are only objects of type PACKAGE.
jfrancis_ has quit [Ping timeout: 256 seconds]
<pjb> They're not a bunch of files that can be loaded.
<pjb> In CL, LOAD only READs and EVALs files. Not anything else.
<shka> well, point is that package is the code, not the way to load the code
<pjb> shka: you can load systems, using asdf:oos or ql:quickload.
<pjb> package is not the code.
<pjb> package is a data structure containing symbols.
<shka> yes, it is a lie
<pjb> packages let you map symbol names to symbols.
<shka> but it reflects truth :P
<pjb> It reflects your ignorance of the CL terminology and data types.
<shka> point is that xificurC is confused, i don't want to confuse him anymore
<shka> and what is critical in his case is that packages work with readers
<shka> not with load, not with defsystem
pagnol has quit [Ping timeout: 268 seconds]
<shka> so yeah, it is a shortcut, but human patience has it's limits
<pjb> When confusion is here it is critical to start writing a dictionary!
<shka> trust me, I KNOW what is the package
<shka> what i also know is that pedantic multipage explanation is not what people want from IRC
<pjb> Or use the glossary that is already written!
<shka> that won't help to build mental model in newbie
<pjb> shka: what's pedantic in writing : "loads a fucking system" instead of "loads a package"?
<pjb> Talking smurf won't help the newbie to build a mental model either1
<pjb> !
drduck has quit [Ping timeout: 265 seconds]
shka has quit [Ping timeout: 248 seconds]
makomo has joined #lisp
<jackdaniel> confusing terminology between systems/packages inhibits building good mental model – these things are often confused and lead to problems
lemoinem has quit [Ping timeout: 240 seconds]
shka has joined #lisp
zfree has joined #lisp
Ukari has quit [Quit: Leaving.]
lemoinem has joined #lisp
fikka has joined #lisp
rumbler31 has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 260 seconds]
pagnol has joined #lisp
Kundry_Wag has joined #lisp
igemnace has quit [Quit: WeeChat 2.2]
Kundry_Wag has quit [Remote host closed the connection]
cmatei has quit [Ping timeout: 260 seconds]
Kundry_Wag has joined #lisp
cmatei has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 260 seconds]
Kundry_Wag has joined #lisp
rumbler31 has joined #lisp
Kundry_W_ has joined #lisp
mindCrime has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
lemoinem has quit [Ping timeout: 244 seconds]
Kundry_W_ has quit [Ping timeout: 244 seconds]
smurfrobot has joined #lisp
mindCrime has quit [Ping timeout: 264 seconds]
makomo has quit [Ping timeout: 256 seconds]
smurfrobot has quit [Ping timeout: 264 seconds]
Bike has joined #lisp
[X-Scale] has joined #lisp
X-Scale has quit [Ping timeout: 244 seconds]
[X-Scale] is now known as X-Scale
makomo has joined #lisp
Kundry_Wag has joined #lisp
lemoinem has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
JuanDaugherty has joined #lisp
jkordani_ has joined #lisp
jfrancis_ has joined #lisp
quazimodo has quit [Ping timeout: 256 seconds]
lemoinem has quit [Ping timeout: 268 seconds]
jkordani has quit [Ping timeout: 245 seconds]
lemoinem has joined #lisp
patlv has joined #lisp
jibanes has quit [Ping timeout: 276 seconds]
quazimodo has joined #lisp
jibanes has joined #lisp
jfrancis_ has quit [Ping timeout: 264 seconds]
lemoinem has quit [Ping timeout: 256 seconds]
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
LiamH has joined #lisp
jkordani has joined #lisp
lemoinem has joined #lisp
jkordani_ has quit [Ping timeout: 248 seconds]
graphene has quit [Remote host closed the connection]
playful-owl has quit [Quit: leaving]
graphene has joined #lisp
Fare has quit [Ping timeout: 240 seconds]
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
mindCrime has joined #lisp
pierpal has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
Kundry_Wag has quit [Ping timeout: 256 seconds]
Kundry_Wag has joined #lisp
phoe has quit [Ping timeout: 260 seconds]
Inline has joined #lisp
phoe has joined #lisp
Denommus has joined #lisp
jfrancis_ has joined #lisp
jfrancis_ has quit [Ping timeout: 260 seconds]
igemnace has joined #lisp
sword has joined #lisp
gabiruh has joined #lisp
sjl_ has joined #lisp
DemolitionMan has joined #lisp
DemolitionMan has quit [Client Quit]
eschatologist has quit [Ping timeout: 244 seconds]
jmercouris has quit [Remote host closed the connection]
angavrilov is now known as angavrilov_
pierpal has joined #lisp
smurfrobot has joined #lisp
mindCrime has quit [Ping timeout: 256 seconds]
knusbaum has quit [Ping timeout: 264 seconds]
klltkr has quit [Remote host closed the connection]
smurfrobot has quit [Ping timeout: 260 seconds]
smurfrobot has joined #lisp
pierpal has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
patlv has quit [Ping timeout: 256 seconds]
ofi has quit [Quit: zzzz]
fikka has quit [Ping timeout: 244 seconds]
gigetoo has quit [Ping timeout: 244 seconds]
JuanDaugherty has quit [Quit: Exeunt]
gigetoo has joined #lisp
pierpal has joined #lisp
light2yellow has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
Fare has joined #lisp
pierpal has quit [Ping timeout: 264 seconds]
ebrasca has quit [Remote host closed the connection]
papachan has quit [Ping timeout: 256 seconds]
FreeBirdLjj has joined #lisp
smurfrobot has quit [Remote host closed the connection]
smurfrobot has joined #lisp
kuwze has joined #lisp
igemnace has quit [Ping timeout: 240 seconds]
lnostdal has quit [Ping timeout: 240 seconds]
hhdave_ has quit [Ping timeout: 256 seconds]
mindCrime has joined #lisp
jfrancis_ has joined #lisp
jfrancis_ has quit [Ping timeout: 268 seconds]
pierpal has joined #lisp
jibanes has quit [Ping timeout: 256 seconds]
_cosmonaut_ has quit [Ping timeout: 256 seconds]
jibanes has joined #lisp
jack_rabbit has joined #lisp
can3p[m] has quit [Quit: removing from IRC because user idle on matrix for 30+ days]
robotoad has joined #lisp
jack_rabbit has quit [Remote host closed the connection]
pierpal has quit [Ping timeout: 264 seconds]
rozenglass has joined #lisp
brendarn is now known as brendyn
pierpal has joined #lisp
makomo has quit [Ping timeout: 260 seconds]
pierpal has quit [Read error: Connection reset by peer]
smurfrobot has quit [Remote host closed the connection]
edgar_ has joined #lisp
edgar_ has quit [Client Quit]
edgar-rft has joined #lisp
edgar-rft has quit [Remote host closed the connection]
edgar-rft has joined #lisp
ikaros28 has quit [Ping timeout: 265 seconds]
Colleen has quit [Remote host closed the connection]
Colleen has joined #lisp
brendyn has quit [Ping timeout: 256 seconds]
zfree has quit [Quit: zfree]
xrash has quit [Ping timeout: 260 seconds]
wheelsucker has joined #lisp
lumm has joined #lisp
flamebeard has quit []
ArthurAGleckler[ has quit [Quit: removing from IRC because user idle on matrix for 30+ days]
fikka has joined #lisp
pierpal has joined #lisp
pagnol has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 240 seconds]
pierpal has quit [Read error: Connection reset by peer]
Kundry_Wag has quit [Remote host closed the connection]
SAL9000[m] has quit [Quit: removing from IRC because user idle on matrix for 30+ days]
papachan has joined #lisp
shka1 has joined #lisp
graphene has quit [Remote host closed the connection]
FreeBirdLjj has quit [Remote host closed the connection]
graphene has joined #lisp
Ven`` has joined #lisp
pierpal has joined #lisp
Kaisyu has quit [Quit: Connection closed for inactivity]
<shka1> hej
<shka1> czy wie ktoś czy plany techniczne programu Apollo są dostępne publicznie?
<shka1> eeee sorry
<shka1> wrong channel
cage_ has joined #lisp
FreeBirdLjj has joined #lisp
ikaros28 has joined #lisp
pierpal has quit [Ping timeout: 248 seconds]
megalography has quit [Ping timeout: 248 seconds]
rippa has joined #lisp
orivej has joined #lisp
karswell has joined #lisp
pierpal has joined #lisp
Kundry_Wag has joined #lisp
megalography has joined #lisp
newbie43 has joined #lisp
fikka has joined #lisp
varjag has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
fikka has quit [Ping timeout: 240 seconds]
cgay_ has quit [Remote host closed the connection]
cgay_ has joined #lisp
pierpal has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
pierpal has quit [Ping timeout: 256 seconds]
makomo has joined #lisp
megalography has quit [Ping timeout: 268 seconds]
patlv has joined #lisp
m00natic has quit [Remote host closed the connection]
EvW has joined #lisp
loginoob has joined #lisp
<loginoob> what are my options after being intermediate with lisp?
<dlowe> writing programs and libraries that solve problems for people.
aindilis has quit [Remote host closed the connection]
<random-nick> how do I check if a stream is closed?
<loginoob> dlowe: what if i cannot think of anything
<dlowe> random-nick: open-stream-p
<dlowe> loginoob: talk to people with problems
<loginoob> ok
<dlowe> specifically people who can't write their own programs
<random-nick> dlowe: thank you, I knew I was missing something obvious
aindilis has joined #lisp
patlv has quit [Remote host closed the connection]
patlv has joined #lisp
vtomole has joined #lisp
cage_ has quit [Ping timeout: 240 seconds]
* jasom doesn't know whether to envy or pity someone who has no problems to solve. It seems both relaxing and boring at the same time.
megalography has joined #lisp
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
cage_ has joined #lisp
smurfrobot has joined #lisp
* loginoob jasom should pity me
<jasom> loginoob: good to know, I won't complain about my problems as much :)
<jasom> loginoob: but more seriously pay attention to times when you are mildy annoyed. Fixing something that mildly annoys you several times per day can be very rewarding.
k4rtik has joined #lisp
k4rtik has joined #lisp
k4rtik has quit [Changing host]
<flip214> loginoob: find some library, and check for automated tests and good documentation. (perhaps in QL download order?)
<flip214> repeat.
* jasom finds it odd how documentation and tests are usually mentioned together, since the documentation is rarely covered by the tests...
Einwq has joined #lisp
<flip214> jasom: if there's bad documentation, the behaviour might be inferred by tests.
<flip214> (or no documentation)
terpri has quit [Ping timeout: 260 seconds]
<shka1> documentation is surprisingly strongly linked to tests
<shka1> on human level
<jasom> I have seen some tools where the output of the examples is generated by actually running them, which ensures that at least the examples are correct.
<shka1> documentation-utils-extensions can do that
<jasom> shka1: because most developers dislike writing both?
<jasom> shka1: so can org mode IIRC
<shka1> jasom: mostly because writing good documentation requires writing tests
<shka1> and writing good tests helps writing good documentation
loginoob has quit [Ping timeout: 240 seconds]
<shka1> for instance, writing exceptional-situation documentation is useless without writing tests for those!
patlv has quit [Ping timeout: 268 seconds]
loginoob has joined #lisp
lnostdal has joined #lisp
fikka has joined #lisp
patlv has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
Amany has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
EvW has quit [Ping timeout: 256 seconds]
pierpal has joined #lisp
loginoob has left #lisp [#lisp]
pagnol has joined #lisp
andomin has joined #lisp
EvW has joined #lisp
<andomin> Hello everyone! I know what i am about to ask is very common question but i am not able to figure it out.
<andomin> I am not able to find a proper answer to why should I learn CL. I have read paul graham's beating the average and other blogs and answers on SE, all of them are too old and now that we have so many new languages that have implemented features from LISP other than macros.
kuwze has quit [Quit: Page closed]
<andomin> Sorry for this stupid question but i really want to know
<flip214> andomin: simple answer: to learn Common Lisp.
<beach> I think you should wait until you figure out a good reason.
<jgkamat> I really enjoy writing CL
<flip214> andomin: and if you already figured out macros as a difference, ain't that enough motivation to dig deeper?
<andomin> It is
<andomin> beach what if i am not able to figure it out myself
<beach> Then you won't ever learn it.
<dlowe> that's what we're here for
<shka1> andomin: for fun?
<shka1> works for me at least
<dlowe> I've never regretted learning a new thing.
<andomin> dlowe so please tell me, my main goal is to be a good programmer.. nothing else
<andomin> shka1 fun is ok but i have limited time in a day
<shka1> hm, i see
<shka1> well, common lisp is excellent language for experimentation
<dlowe> andomin: okay, what evidence would convince you?
<dlowe> (actually, I meant we were here for helping you learn it)
<shka1> so you can use it for building stuff in it that you not exactly figured out
<shka1> but it takes time as well, obviously
<shka1> also, IF you have proper libraries in CL, it is surprisingly practical language for various tasks
pierpal has quit [Ping timeout: 248 seconds]
<shka1> easy to code, easy to debug, easy to deploy
kaun has joined #lisp
<andomin> Will i be a better programmer if after learning lisp I learn some other language? Will i be able to implement my understanding from lisp in another language if i learn another language someday
<shka1> implementation can produce fairly efficient code, which is awesome
<dlowe> andomin: that depends on you
<Bike> man. it ain't that hard to learn a programming language at a moderate level. new programmers tend to stress about about which they learn but it's not like it even takes as much time as a natural language.
<dlowe> andomin: I think you're looking for assurances that don't exist
<dlowe> for anything
<shka1> andomin: in my opinion programmers should learn CL (or some other lisp) mostly because it is just different
<shka1> seriously different
<dlowe> it's not that different anymore :p
<shka1> and knowing how things work here open eyes on new ways of programming
<dlowe> due to new languages importing features
<random-nick> dlowe: I haven't seen a mainstream language with proper metaprogramming yet
<dlowe> random-nick: you've gated contenders by saying "proper"
<shka1> andomin: that's everything i can tell on this topic, hope it helps
pierpal has joined #lisp
<andomin> shka1 thank you for the help :)
<dlowe> andomin: Ask yourself if a good programmer knows lots of things or only a few
<andomin> Lots of things
<dlowe> andomin: Ask yourself if a good programmer can deal with lots of kinds of languages or only a few?
<andomin> I see people learning algorithms and do exercises of implementing them in their chosen language but there are no algorithms book in lisp
<dlowe> Depends on the algorithms
<dlowe> Principles of AI Programming is all in common lisp.
<dlowe> Ask yourself if good programmers only do what is popular
<andomin> No
megalography has quit [Ping timeout: 260 seconds]
patlv has quit [Ping timeout: 240 seconds]
<dlowe> If you're going to know a lot of things, deal with lots of kinds of languages, and not only do what is popular, then I suggest you get started.
cage_ has quit [Quit: Leaving]
gravicappa has quit [Ping timeout: 240 seconds]
<andomin> Ok I'll then. Thank you dlowe for taking time to help me in my stupid question
dtornabene has joined #lisp
k4rtik has quit [Ping timeout: 268 seconds]
pierpal has quit [Ping timeout: 256 seconds]
kaun has left #lisp ["IRC for Sailfish 0.9"]
<dlowe> Paradigms of AI Programming is probably a good fit for what you want
asarch has joined #lisp
pierpal has joined #lisp
random-nick has quit [Ping timeout: 240 seconds]
pierpal has quit [Read error: Connection reset by peer]
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.1)]
sauvin has quit [Read error: Connection reset by peer]
papachan has quit [Ping timeout: 245 seconds]
andomin has quit [Read error: Connection reset by peer]
andomin has joined #lisp
megalography has joined #lisp
fikka has joined #lisp
xrash has joined #lisp
k4rtik has joined #lisp
pierpal has joined #lisp
papachan has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
andomin has quit [Ping timeout: 245 seconds]
schweers has quit [Ping timeout: 276 seconds]
varjag has joined #lisp
megalography has quit [Ping timeout: 256 seconds]
shka1 has quit [Ping timeout: 240 seconds]
brit has joined #lisp
<brit> Hello there. I'm trying to optimize some code that access structures with arrays of type (simple-array (unsigned-byte 8) *) and getting compilation warnings about the upgraded array element type not being known at compile time. How can I fix that to kill the hairy-data-vector-refs? I'm using SBCL.
EvW has quit [Ping timeout: 260 seconds]
<Bike> brit: paste some code?
megalography has joined #lisp
dddddd has joined #lisp
<Bike> not sure with-slots on a struct is a good idea... but whatever.
<brit> The arefs on lines 319 and 320 have the compiler notes attached. The array its referencing is grabbed through with-slots above but declared on the struct as mentioned.
<Bike> i'd put declarations in the function body as well.
<brit> Hmm. Maybe the with-slots is disrupting the type inference?
<Bike> it might be.
<brit> Yeah, okay. I should've thought of that. Good idea! :)
<Bike> if you try macroexpanding it, it will probably result in nt-buffer being replaced with (slot-value ppu 'nt-buffer) or something.
<brit> Sure, I would just assume that slot-value is _faster_ than going through standard acessors.
<brit> Yeah, declaring locally fixed it. Hmm. Guess I need to tweak my mental model a bit.
<Bike> slot-value is probably slower than accessors.
megalography has quit [Ping timeout: 240 seconds]
<Bike> mainly because any accessor is unique to a slot, while slot-value has tolook up the slot, in general.
random-nick has joined #lisp
<Bike> struct accessors can be very fast indeed. maybe just a memory grab.
patlv has joined #lisp
<brit> Okay. Excellent. I've got some things to go patch up. Thank you, Bike!
<Bike> no problem.
raydeejay has quit [Quit: ZNC - http://znc.in]
megalography has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
milanj has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
smurfrobot has quit [Remote host closed the connection]
k4rtik has quit [Ping timeout: 248 seconds]
klltkr has joined #lisp
fikka has joined #lisp
vlatkoB_ has quit [Remote host closed the connection]
patlv has quit [Remote host closed the connection]
patlv has joined #lisp
smurfrobot has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
<klltkr> Yo
patlv has quit [Ping timeout: 260 seconds]
karlosz has joined #lisp
nowhere_man has quit [Ping timeout: 256 seconds]
Einwq has quit [Quit: Leaving]
terpri has joined #lisp
k4rtik has joined #lisp
varjag has quit [Ping timeout: 244 seconds]
Smokitch has joined #lisp
karlosz has quit [Quit: karlosz]
varjag has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
smurfrobot has quit [Remote host closed the connection]
milanj has quit [Quit: This computer has gone to sleep]
josemanuel has joined #lisp
smurfrobot has joined #lisp
EvW1 has joined #lisp
fikka has joined #lisp
nowhere_man has joined #lisp
cgay_ has quit [Remote host closed the connection]
smurfrobot has quit [Ping timeout: 256 seconds]
cgay_ has joined #lisp
DemolitionMan has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
karlosz has joined #lisp
milanj has joined #lisp
karlosz has quit [Client Quit]
orivej has quit [Ping timeout: 244 seconds]
rumbler31 has quit [Remote host closed the connection]
knusbaum has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
Smokitch has quit []
emacsomancer has joined #lisp
jmercouris has joined #lisp
angavrilov_ has quit [Remote host closed the connection]
Jesin has quit [Quit: Leaving]
patlv has joined #lisp
eschatologist has joined #lisp
Jesin has joined #lisp
Bike has quit [Ping timeout: 252 seconds]
newbie04 has joined #lisp
newbie43 has quit [Ping timeout: 245 seconds]
pierpa has joined #lisp
patlv has quit [Ping timeout: 240 seconds]
<jmercouris> klltkr: what is a wayland compositor?
k4rtik has quit [Quit: WeeChat 2.2]
gector has joined #lisp
<klltkr> jmercouris, think of it like a window manager (e.g. stumpwm) but it targets Wayland rather than Xorg (I'm assuming some linux knowledge here)
<klltkr> If you look at the gifs here https://github.com/malcolmstill/ulubis...my compositor is drawing everything you're seeing
graphene has quit [Remote host closed the connection]
mindCrime has quit [Ping timeout: 265 seconds]
graphene has joined #lisp
<klltkr> If you don't use linux it's probably not going to be of interest
<jmercouris> I don't use Linux
<jmercouris> I use FreeBSD
<klltkr> FreeBSD is adding Wayland support I think
jmercouris has quit [Remote host closed the connection]
jmercouris has joined #lisp
kenster has joined #lisp
<kenster> Hey, I have a stupid question. In a macro, how do I turn ((something :int) (another :int)) into ('(something :int) '(another :int)) while also spreading those parameters with ,@ ?
<kenster> I have a macro that calls a macro, and both macros use ,@
eminhi has quit [Quit: leaving]
<kenster> I will paste
LiamH has quit [Quit: Leaving.]
kajo has joined #lisp
<kenster> weird it doesn't highlight correctly
<kenster> I'm trying to pass in ((temporary-location :string) (content-type :string) (tags :pointer) (wantsOwned :int)) into defcfun, but without evaulating "temporary-string" as a function
<kenster> my brain gets confuzzled by the quoting rules when using ,@ on rest parameters into a macro that uses ,@ on rest parameters into another macro
patlv has joined #lisp
jfrancis_ has joined #lisp
josemanuel has quit [Quit: leaving]
Bike has joined #lisp
jmercouris has quit [Remote host closed the connection]
<pierpa> if the backquote notation confuses you then use normal list operations
<kenster> well, I just need to figure out the write level of quoting. I thought something like `(,@((blah :test))) would work
DemolitionMan has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
rumbler31 has joined #lisp
wigust has joined #lisp
<pierpa> but why? unless there's an obfuscated CL context I haven't heard about, there's no prize for the most obscure piece of CL one can come around with.
wigust- has quit [Ping timeout: 260 seconds]
jfrancis_ has quit [Ping timeout: 260 seconds]
rumbler31 has quit [Ping timeout: 244 seconds]
<kenster> I guess you're right pierpa, though I thought my case was at least somewhat common
<pierpa> hmmm
Denommus has quit [Remote host closed the connection]
wheelsucker has quit [Remote host closed the connection]
BitPuffin has quit [Remote host closed the connection]
Jesin has quit [Quit: Leaving]
random-nick has quit [Read error: Connection reset by peer]
jfrancis_ has joined #lisp
brit is now known as brit_away
jfrancis_ has quit [Ping timeout: 265 seconds]
slyrus_ has quit [Ping timeout: 244 seconds]
fikka has joined #lisp
brit_away has quit [Ping timeout: 240 seconds]
equwal has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
patlv has quit [Ping timeout: 240 seconds]
varjag has quit [Read error: Connection reset by peer]
slyrus_ has joined #lisp
patlv has joined #lisp
patlv has quit [Ping timeout: 240 seconds]
pestyOverlord has joined #lisp
<stylewarning> I'm lacking on a bit of CLOS hygiene. In the construction of an instance of a class, where's the proper place to check that an initarg is supplied, and when can I assume the slot as been bound?
<stylewarning> All in an :AFTER method of initialize-instance?
karlosz has joined #lisp
<stylewarning> Is initialize-instance the right place to set other slots of that instance based on a computation of supplied initargs/bound slots too?
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
<stylewarning> For the first question, PCL suggests using :initform (error ..)
pagnol has quit [Ping timeout: 256 seconds]
newbie68 has joined #lisp
newbie04 has quit [Ping timeout: 245 seconds]
rumbler31 has joined #lisp
<stylewarning> For the second question, PCL reminds us that the primary method of initialize-instance on standard-objects will take care of slots being bound, so I can assume it will be in the :after.
<stylewarning> For the third question, PCL says the :after method of initialize-instance is the right place.
karlosz has quit [Quit: karlosz]
rumbler31 has quit [Ping timeout: 244 seconds]
mathrick has quit [Ping timeout: 260 seconds]
subroot has joined #lisp
<Bike> the slots are bound in shared-initialize's primary method
mathrick has joined #lisp
<Bike> so yes, initialize instance :after
<makomo> kenster: do you want to do that within defcmethod?
robotoad has quit [Quit: robotoad]
lumm has quit [Ping timeout: 256 seconds]
<makomo> kenster: from my experience, ',@ is usually not a good idea because you end up with (quote x1 x2 ... xn) which is invalid since QUOTE only takes a single argument
graphene has quit [Remote host closed the connection]
<kenster> makomo: I'm trying to pass the types into defcfun while retaining the &body of my macro which gets shoved into a defmethod
<makomo> if the list happens to have 1 element, i.e. n = 1, then it works
<kenster> (defcmethod file-upload-info "new" new :pointer nil
<kenster> '((temporary-location :string) (content-type :string) (tags :pointer) (wantsOwned :int)))
<kenster> if I could get rid of that quote...
kajo has quit [Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.]
graphene has joined #lisp
kajo has joined #lisp
<makomo> hm well, defcmethod is a macro so you can
<kenster> that's what I'm very confused about
<makomo> why are you doing ',@ in defcmethod when calling cffi-defun though?
<kenster> it keeps giving me that "invalid function" call stuff
<kenster> well because I need to apply the defcfun arguments as &rest arguments
<Bike> ((blah :test)) is definitely an invalid function call
<kenster> defcfun takes an arbitrary amount of (t :type) type lists
fikka has joined #lisp
<kenster> so I want the ((blah :test)) to be remain quoted even after both ,@s
<makomo> kenster: oh i see. well just get rid of the ' then
<kenster> where?
<makomo> then ',@(when ...)
<makomo> the*
<makomo> why do you have to quote it if cffi-defun is itself a macro
<makomo> just splice it in using ,@ and leave it be
<makomo> looking at the expansion after that fix, i get the expected result
<makomo> in emacs, with the point on the beginning paren of the defcmethod call, C-c C-m to macroexpand
<kenster> for some reason it doesn't expand for me I have no idea why
<kenster> but anyway I still get the error
<kenster> invalid function call
graphene has quit [Remote host closed the connection]
<kenster> I think it's because I have the macros defined in a separate file, for some reason it doesn't expand all the way? or I don't know, slime is just confused
<makomo> kenster: hm i'm not sure, i never had a problem
<makomo> this is what i get
fikka has quit [Ping timeout: 264 seconds]
<makomo> this is with the fix
graphene has joined #lisp
<makomo> and this is before, https://plaster.tymoon.eu/view/861#861, note the (quote x1 ... xn) error
<pjb> kenster: `(,@((blah :test))) cannot work in Common Lisp, unless you redefine the reader macro for #\(. ((something)) is never a Common Lisp form, if you assume the standard reader macro for #\(!
karlosz has joined #lisp
<kenster> hmmm this is weird, I removed the ` from the when as you said, and I still get the same error
<makomo> the apostrophe, not the backquote, but i guess that's what you meant
<makomo> keep analyzing further, what is defcfun ?
<kenster> it is what I meant, yeah
<makomo> this is what your defcfun call looks like, https://plaster.tymoon.eu/view/862#862
<makomo> after macroexpanding cffi-defun
<kenster> hmm
<kenster> that makes me think that my asdf is caching my old file or something
<pjb> kenster: macros are lisp functions like any other lisp functions.
<makomo> i don't know if that's correct, i haven't used cffi a lot
<pjb> kenster: so think about functions, abstractions and so on.
<kenster> :P
<pjb> kenster: for example: (defun get-rid-of-quote (form) (if (and (listp form) (eq 'quote (first form))) (second form) form)) (get-rid-of-quote ' (quote ((temporary-location :string) (content-type :string) (tags :pointer) (wantsOwned :int)))) #| --> ((temporary-location :string) (content-type :string) (tags :pointer) (wantsowned :int)) |#
<kenster> (defcfun "sprintf" :int
<kenster> (str :pointer)
<kenster> (control :string)
Jesin has joined #lisp
<kenster> )
<kenster> example
<pjb> kenster: but note that since the point of macro is to get their arguments unevaluated, there's no point in quoting arguments to macros!!!
<kenster> without the variable arguments
<pjb> kenster: so you should not have this quote in the first place!
<kenster> I'm starting to understand that pjb
NotSpooky has joined #lisp
<pjb> Don't write: (my-macro '((temporary-location :string) (content-type :string) (tags :pointer) (wantsOwned :int))), write: (my-macro ((temporary-location :string) (content-type :string) (tags :pointer) (wantsOwned :int)))
<makomo> kenster: should be good then. what pjb said is what we fixed basically, no need to quote that thing since it's being passed into another macro
<kenster> there's something wrong with my environment then
<kenster> I'm using slime-load-system to load it, is that wrong?
<kenster> I'm livestreaming right now so maybe you can see my setup
<makomo> kenster: your (defmethod ...) thing looks weird though
<makomo> kenster: i just use quicklisp
<kenster> idk if you have the bandwidth but I'm' here https://youtu.be/Jz7M9zIEQjk
<makomo> nice terminal, loved running emacsclient in it lol
<aeth> If you're writing advanced macros, use destructuring-bind everywhere where you had to put &rest or something like that. It helps.
<aeth> There's usually a very simple syntax that you need to enforce.
<pjb> kenster: macro can use macros in two different ways: a macro can use another macro in its body, so that the other macro is expanded when the first macro is compiled, and the expansion of the other macro is evaluated when the first macro is expanded. Or the firs macro can use the other macro in its expansion, ie. its result, and therefore the other macro will be expanded when the expansion of the first macro is compiled.
<pjb> In the first case, the arguments to the other macro cannot be the values bound to the parameters of the first macro, since those values are not known yet.
papachan has quit [Quit: WeeChat 2.2]
<pjb> In the later case, you can of course splice the parameters of the first macro into the calls to the other macro in the expansion.
<kenster> were you watching for the last few minutes makomo
<makomo> kenster: it wasn't live on yt i think, i just opened the twitch stream
<kenster> oh
<makomo> oh btw, that defmethod looks wrong to me
karlosz has quit [Quit: karlosz]
<kenster> pjb: that makes sense
<makomo> shouldn't the if be run when constructing the list?
<asarch> How would I turn on the option to show the closing parenthesis in Emacs?
<minion> asarch, memo from pjb: (defmacro λ ((&rest params) &body body) `(cl:lambda ,params ,@body))
<makomo> i.e. ,(if ...)?
<makomo> body is known within the macro, so you can test it right away
<makomo> the variable BODY, that is
<makomo> and now, another backquote within the if!
<pjb> there are a lot of options.
<makomo> ,(if body `(...) `(...))
<makomo> you want that to be within the expansion right?
<makomo> the let and the apply
<makomo> right, so that should work then
<makomo> you should be able to just use quicklisp to load the system, no?
<makomo> add the directory with the ASDF file to quicklisp's "local projects"
caltelt has joined #lisp
Kundry_Wag has quit [Remote host closed the connection]
<makomo> so then ql:register-local-projects and ql:quickload
<makomo> oh i see, so you've got it set up, ok
<makomo> hmm, i'm not completely sure if it recompiles, i guess?
<makomo> ah i see, so one of the macros itself is wrong
<asarch> Thank you pjb!
<asarch> Thank you very much :-)
<makomo> kenster: can you expand bit by bit until you hit the error
<makomo> you can expand within the window that shows up
<makomo> hmm, i'm not sure why it's giving you that error, defcfun should be a macro
<makomo> it shoudln't be trying to evaluate it
<makomo> go into the window on the right and try to macroexpand-1 that
Kundry_Wag has joined #lisp
<makomo> hmm lol, maybe it really isn't a macro within your current image
<makomo> try reloading the whole lisp maybe?
caltelt has quit [Remote host closed the connection]
<makomo> and where is defcmethod, in what file? how does your asdf file look again? is it being loaded before this faulty file?
<makomo> can you open cffi-utils?
<makomo> LOL
broccolistem has joined #lisp
caltelt has joined #lisp
<makomo> you aren't importing cffi-utils i think?
<makomo> well, "using"*
<makomo> the filebucket package isn't using cffi-utils though, it shouldn't be able to see the macro then, unless you explicitly qualify it with cffi-utils:defcfun
patlv has joined #lisp
<makomo> try USEing cffi-utils within DEFPACKAGE for filebucket maybe
megalography has quit [Ping timeout: 240 seconds]
<makomo> yeah, i don't get why it's not treating it as a macro
caltelt has quit [Ping timeout: 264 seconds]
<makomo> yeah, i always use quicklisp's quickload
xrash has quit [Ping timeout: 240 seconds]
<makomo> also, look at Quickproject, you can get it from Quicklisp as wlel
<makomo> well*
<makomo> quickproject:make-project to make a project skeleton
<esrarkesh> is usocket what everyone uses when they do socket programming with cl?
<makomo> kenster: i don't think so, quicklisp should work fine.
<pjb> sometimes.
<makomo> kenster: can you manually try and eval DEFCFUN's macro definition?
<pjb> (macroexpand-1 '(defcfun …))
<pjb> (pprint (macroexpand-1 '(defcfun …))) ; when it's long.
<makomo> kenster: oh wait no, defcmethod i guess
<makomo> kenster: slime-eval-defun from anywhere within the top-level form
rozenglass has quit [Remote host closed the connection]
<makomo> kenster: , e f in spacemacs
<makomo> can you try and see if you get autocompletion from within the slime repl if you do "cffi-utils:defme..."?
<makomo> you typed "cff" instead of "cffi" :D
<makomo> kenster: yeah, i guess it might be using just a text-based autocompletion. whatever. try running the (defcmethod ...) thing from the repl now
<makomo> >undefined function DEFCMETHOD
<makomo> lol, what the
<makomo> the FILE-UPLOAD-INFO variable is unbound because it's trying to evaluate it, it's the same problem i think
<makomo> it's treating DEFCMETHOD as a function for some reason
<makomo> kenster: maybe try moving the macros at the top of filebucket.lisp just to see if it'll work?
<makomo> oh LOL, did you export it?
<makomo> you exported the symbols, right? :DDD
<makomo> in your defpackage, after (:use ...) add (:export #:defcmethod)
patlv has quit [Ping timeout: 264 seconds]
megalography has joined #lisp
<makomo> kenster: slime-restart-inferior-lisp