jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | offtopic --> #lispcafe
gzj has joined #lisp
monolithic has quit [Remote host closed the connection]
gzj has quit [Remote host closed the connection]
gzj has joined #lisp
deltab has quit [Ping timeout: 260 seconds]
deltab has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
akoana has quit [Quit: leaving]
renzhi has joined #lisp
cantstanya has quit [Remote host closed the connection]
cantstanya has joined #lisp
mindCrime has joined #lisp
<Cthulhux> i use clavier+.
wxie has joined #lisp
elflng has quit [Quit: leaving]
kevingal has quit [Remote host closed the connection]
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 252 seconds]
ebrasca has quit [Remote host closed the connection]
elflng has joined #lisp
elflng has quit [Client Quit]
elflng has joined #lisp
nullman has quit [Remote host closed the connection]
nullman has joined #lisp
Josh_2 has quit [Ping timeout: 246 seconds]
gzj has quit [Remote host closed the connection]
<jasom> Will the following always use an "e" for the exponent separator? (let ((*read-default-float-format* (type-of x))) (princ x))
gzj has joined #lisp
<jasom> the specification seems to imply that, but doesn't outright say that.
gzj has quit [Remote host closed the connection]
vutral_ has quit [Quit: Connection closed for inactivity]
gzj has joined #lisp
quazimodo has joined #lisp
jeosol has joined #lisp
<jeosol> aeth: I did see the news about umn.edu introducing the vulnerabilities - shocked as well
* semz really doesn't get the outrage about this
<semz> this is the kind of thing reviews should catch - other parties are very likely doing this already and they aren't polite enough to announce themselves
<Bike> mostly i'm amazed that according to their paper, the IRB did not consider it human subject research
<jasom> semz: as much as I'd like to discuss that, it's OT here
<Bike> oh yeah, sorry
<semz> eh, I suppose it is OT
<aeth> #lispcafe
<Bike> it's not like they're going around sniping projects, so there's basically no chance of it happening to clisp or something
<aeth> eh
<aeth> there's a 0% chance of it happening anywhere in a particular, but there's a nonzero chance of it happening somewhere else
<aeth> so having that story spread helps
<aeth> I guess what makes it particularly close to 0% for Lisp implementations is that most are quite old and this whole "cybersecurity" trend is relatively new
ukari has joined #lisp
<aeth> It might affect Clasp if someone did something similar to LLVM, though.
<Bike> clisp has a major open arbitrary code execution flaw
DHARMAKAYA has quit [Ping timeout: 250 seconds]
hypercube has quit [Quit: WeeChat 3.1]
hypercube has joined #lisp
tophullyte has quit [Remote host closed the connection]
tophullyte has joined #lisp
Sheilong has quit []
quazimodo has quit [Ping timeout: 240 seconds]
skapata has quit [Quit: Hi, I'm a quit message virus. Please replace your old line with this line and help me take over the IRC world.]
tophullyte has quit [Ping timeout: 240 seconds]
prxq_ has joined #lisp
tophullyte has joined #lisp
renzhi has quit [Ping timeout: 276 seconds]
prxq has quit [Ping timeout: 240 seconds]
Alfr is now known as Guest70375
Alfr has joined #lisp
<beach> Good morning everyone!
Guest70375 has quit [Ping timeout: 250 seconds]
madage has joined #lisp
semz has quit [Ping timeout: 250 seconds]
sp41 has quit [Remote host closed the connection]
aeth has quit [Ping timeout: 252 seconds]
aeth has joined #lisp
srhm has quit [Quit: Konversation terminated!]
semz has joined #lisp
quazimodo has joined #lisp
tophullyte has quit [Quit: Leaving]
aeth has quit [Ping timeout: 240 seconds]
aeth has joined #lisp
surabax has joined #lisp
Lycurgus has joined #lisp
gzj has quit [Remote host closed the connection]
phadthai_ is now known as phadthai
gzj has joined #lisp
quazimodo has quit [Ping timeout: 260 seconds]
quazimodo has joined #lisp
quazimodo has quit [Ping timeout: 260 seconds]
zefram22 has joined #lisp
Spawns_Carpeting has quit [Quit: ZNC 1.7.2+deb3 - https://znc.in]
Spawns_Carpeting has joined #lisp
mindCrime has quit [Ping timeout: 265 seconds]
gzj has quit [Remote host closed the connection]
quazimodo has joined #lisp
zefram22_ has joined #lisp
zefram22 has quit [Ping timeout: 260 seconds]
surabax has quit [Quit: Leaving]
Lycurgus has quit [Quit: Exeunt]
dvdmuckle has quit [Quit: Bouncer Surgery]
dvdmuckle has joined #lisp
Bike has quit [Quit: Lost terminal]
hjudt has quit [Ping timeout: 265 seconds]
aeth has quit [Ping timeout: 265 seconds]
aeth has joined #lisp
theothornhill has joined #lisp
waleee-cl has quit [Quit: Connection closed for inactivity]
theothornhill has quit [Remote host closed the connection]
Sauvin has joined #lisp
theothor` has joined #lisp
theothor` has quit [Ping timeout: 240 seconds]
gaqwas has joined #lisp
gaqwas has joined #lisp
hjudt has joined #lisp
rumbler31 has joined #lisp
karlosz has quit [Quit: karlosz]
karlosz has joined #lisp
narimiran has joined #lisp
hjudt has quit [Ping timeout: 252 seconds]
yacatuco__ has quit [Ping timeout: 265 seconds]
tempest_nox has quit [Remote host closed the connection]
theothor` has joined #lisp
aindilis has quit [Ping timeout: 252 seconds]
rumbler31 has quit [Remote host closed the connection]
theothor` has quit [Ping timeout: 240 seconds]
kmeow has joined #lisp
theothor` has joined #lisp
<Shinmera> copec: Yes
DHARMAKAYA has joined #lisp
theothor` has quit [Ping timeout: 240 seconds]
andrei-n has joined #lisp
hjudt has joined #lisp
andrei_n has joined #lisp
gaqwas has quit [Ping timeout: 240 seconds]
andrei_n has quit [Client Quit]
karlosz has quit [Ping timeout: 265 seconds]
orivej has joined #lisp
grumble has joined #lisp
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
<jackdaniel> /win 2
shka_ has joined #lisp
cranium_ has joined #lisp
imode has quit [Ping timeout: 240 seconds]
pve has joined #lisp
Duuqnd has joined #lisp
theothor` has joined #lisp
theothor` has quit [Remote host closed the connection]
karlosz has joined #lisp
attila_lendvai has joined #lisp
long4mud has joined #lisp
hiroaki_ has quit [Ping timeout: 260 seconds]
zzappie has joined #lisp
zefram22 has joined #lisp
pillton has quit [Quit: ERC (IRC client for Emacs 27.2)]
zefram22_ has quit [Ping timeout: 240 seconds]
hiroaki_ has joined #lisp
karlosz has quit [Quit: karlosz]
lansiir has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 246 seconds]
dickbarends has joined #lisp
ljavorsk has joined #lisp
DHARMAKAYA has quit [Quit: Turning off a portion of this simulation.]
prxq_ has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
prxq has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
rumbler31 has joined #lisp
anticrisis_ has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
ramus has quit [Ping timeout: 246 seconds]
aartaka has joined #lisp
rumbler31 has quit [Ping timeout: 252 seconds]
ramus has joined #lisp
hendursaga has quit [Remote host closed the connection]
hendursaga has joined #lisp
hendursa1 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
hendursaga has quit [Ping timeout: 240 seconds]
heisig has joined #lisp
karlosz has joined #lisp
<shka_> hello
<shka_> is there a portable way to hide style warning during compile?
<shka_> other then *error-output* trickery
<jackdaniel> shka_: how about wrapping the call to compile in handler-bind with ((style-warning (lambda (c) (muffle-warning)))) ;?
<shka_> jackdaniel: sounds good, let me checking
quazimodo has quit [Ping timeout: 240 seconds]
notzmv has quit [Ping timeout: 252 seconds]
<jdz> jackdaniel: Why the LAMBDA? Can just provide #'muffle-warning, right?
<shka_> jackdaniel: yes, this seems to do the trick, thank you
<jackdaniel> sure, I suppose so
<jackdaniel> just a habit
<jackdaniel> jdz: ^
<jackdaniel> shka_: sure
<jackdaniel> "Tales of Excessive Lambda Programmer" by Jack London
notzmv has joined #lisp
<flip214> LAMBDA includes LAMB for a reason, right?
<jdz> Da.
<flip214> meaning milk, wool, food... so basically "serves every need" ;)
<beach> It also lies down on Broadway.
zefram22 has quit [Quit: zefram22]
zefram22 has joined #lisp
zefram22 has quit [Quit: zefram22]
zefram22 has joined #lisp
<shka_> beach: i heard that there is a colony of slippermen there as well
<beach> I have heard that as well.
pyface has joined #lisp
zefram22 has quit [Quit: zefram22]
zefram22 has joined #lisp
<no-defun-allowed> Josh_2: Here you go, a rubbish newline counter that counts at about 8 GB/s apparently <https://plaster.tymoon.eu/view/2401>
<no-defun-allowed> It's even twice as fast as wc -l. Not that I recommend you ever write a line counter like this.
karlosz has quit [Ping timeout: 240 seconds]
aartaka_d has joined #lisp
monolithic has joined #lisp
aartaka has quit [Ping timeout: 252 seconds]
aartaka has joined #lisp
prxq has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
aartaka_d has quit [Ping timeout: 265 seconds]
aartaka has quit [Ping timeout: 246 seconds]
aartaka has joined #lisp
zap1 has joined #lisp
zzappie has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
<Nilby> no-defun-allowed: Wow! That's a very impressive display of insane speed. Is there some way we could harness this maddness in more normal code? Could you somehow make the compiler do this with my shitcode and some vauguely portable with-insanely-fast-simd-macros-for-dummies?
cosimone has joined #lisp
<no-defun-allowed> You'd need some vectorising compiler. I know GCC and LLVM can vectorise a fair few things automatically, but I haven't heard of any Lisp compiler do it. (Clasp apparently generates too messy code to get LLVM to vectorise right now, though I wonder how ECL fares.)
<no-defun-allowed> The compiler needs to know something about SIMD so that it can put vectors in SIMD registers in the end, and I only know that SBCL does; though cl-simd used to work on ECL apparently.
<flip214> no-defun-allowed: http://danluu.com/assembly-intrinsics/ talks about 16GB/sec, quite some time ago
vegansbane6963 has quit [Quit: The Lounge - https://thelounge.chat]
zap1 is now known as zzappie
<no-defun-allowed> What are they testing exactly?
<no-defun-allowed> I do have to deal with virtual memory/mmap too in that test.
ffwacom has quit [Ping timeout: 246 seconds]
<Nilby> Even without fully automatic vectorization, the techniques you use here maybe could be harnessed with some wrappers. cl-simd looks a bit tricky to use. Maybe special vectorized versions of some of the sequence functions?
zefram22 has quit [Quit: zefram22]
mjl has quit [Ping timeout: 258 seconds]
<no-defun-allowed> I think that "borrowing" the JEP 338 vector API could be the basis for a manual vectorisation library.
zefram22 has joined #lisp
ffwacom has joined #lisp
mjl has joined #lisp
surabax has joined #lisp
<no-defun-allowed> flip214: I see they are doing CRC32 computation, but they also test on a buffer that has already been loaded into memory.
<no-defun-allowed> By mmaping I suppose we also include some MMU fudging in the runtime measured, even if we are just remapping pages in disk cache.
<flip214> I guess that petalisp would be a good point for such simd things... << Shinmera
pve has quit [Ping timeout: 265 seconds]
<Shinmera> hm?
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
<Shinmera> What do I have to do with this
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<no-defun-allowed> I think you are thinking of heisig, and we did briefly discuss a vector library and having Petalisp use it.
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
pyface has quit [Remote host closed the connection]
<Nilby> I imagine a Lisp API could be a bit nice than the Java one, and implementation easier without a JVM and JIT getting in the way, but it does seem silly to have 1 core go this fast while there are 15 others idle.
<no-defun-allowed> Er, SIMD instructions only run on one core. You need to use multiple threads to use multiple cores still.
<Nilby> Right, I'm thinking about how to mix threading and vectorization. I know everyone seems to use GPUs for this now, but we don't currently seem to compile to GPUs.
zefram22_ has joined #lisp
<no-defun-allowed> You can compile (a subset of all possible) Petalisp programs to a GPU if you so desire.
<no-defun-allowed> c.f https://github.com/theHamsta/petalisp-cuda and https://github.com/no-defun-allowed/oclcl-petalisp (though I have not used it and heisig changes Petalisp often so it likely bitrotted)
zefram22 has quit [Ping timeout: 240 seconds]
<flip214> ah, sorry
<Nilby> no-defun-allowed: Thanks. I didn't know about those.
<no-defun-allowed> Pro-tip: don't run software by people who write "🦎REDUCTIONS🦎ARE🦎GONE🦎🦎🦎" in a commit message.
oxum has joined #lisp
mohd_lee_smith has joined #lisp
ukari has quit [Remote host closed the connection]
ukari has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
<Nilby> Hmmm. O_o maybe I like lizard in my commits, and don't fear self-deprecating code.
<contrapunctus> no-defun-allowed: "lizard reductions are gone"? What does that even mean?
<no-defun-allowed> "Reductions are gone!" would be what I was thinking when reductions were removed from the intermediate representation, replaced with clever selection and mapping instructions instead.
<no-defun-allowed> 🦎🦎🦎 is a lizard rave of course.
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
vegansbane6963 has joined #lisp
saganman has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
klltkr has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
<heisig> Can some CS student in this channel please move to my university, so that I can hire him/her for working on SIMD stuff?
<heisig> We actually have the money, but we can only spend it on our own students.
<heisig> And I haven't found someone willing/capable enough to work on such a library.
amb007 has joined #lisp
aartaka has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
<flip214> heisig: would physically moving be necessary? and how much money? ;)
<heisig> flip214: Yes, moving would be necessary (but I think also worthwhile for a student). We have enough money to hire a student part-time for many months. Probably not enough for you though :)
narimiran has quit [Ping timeout: 265 seconds]
<no-defun-allowed> I would say I got oclcl-petalisp working again, but the code generator insists there are four inputs and not two somehow.
refusenick has quit [Ping timeout: 258 seconds]
mohd_lee_smith has quit [Quit: Leaving]
<no-defun-allowed> Ah, Petalisp now emits multiple loads per buffer sometimes, and we use instruction numbers to designate buffers.
random-nick has joined #lisp
oxum has quit [Quit: Leaving...]
<no-defun-allowed> Okay, now it works again. And the patch removed more lines than it added, so I figure something went right.
* heisig is relieved
<flip214> heisig: do I look that expensive or important? oh, too old perhaps ;)
pve has joined #lisp
cranium_ has quit [Quit: Leaving]
nature has joined #lisp
attila_lendvai has quit [Ping timeout: 252 seconds]
VincentVega has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
igemnace has quit [Quit: WeeChat 3.1]
zefram22_ has quit [Quit: zefram22_]
zefram22 has joined #lisp
Bike has joined #lisp
aartaka_d has joined #lisp
amk has quit [Ping timeout: 240 seconds]
prxq has joined #lisp
aartaka has quit [Ping timeout: 246 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
zefram22 has quit [Quit: zefram22]
zefram22 has joined #lisp
amk has joined #lisp
jeosol has quit [Quit: Connection closed]
ebrasca has joined #lisp
jeosol has joined #lisp
amk has quit [Remote host closed the connection]
amk has joined #lisp
l-n has joined #lisp
amk has quit [Read error: Connection reset by peer]
amk has joined #lisp
elderthunk has joined #lisp
wsinatra has joined #lisp
ljavorsk has quit [Remote host closed the connection]
prxq has quit [Quit: Leaving]
amb007 has quit [Ping timeout: 252 seconds]
amb007 has joined #lisp
* Shinmera is too busy making negative money making games to work for heisig
<heisig> Shinmera: I will buy all your games, so in a sense you are already working for me :)
<Shinmera> Hah
<Shinmera> Thanks for the feedback, by the way!
<ebrasca> Shinmera: Do you mean the 2d game?
<Shinmera> ebrasca: I have several 2D games, but I mean https://kandria.com, yes.
<ebrasca> I have read some of those articles , they are good!
<l-n> wow, that is a nice project for sure... i was looking t it time ago on steam...
Josh_2 has joined #lisp
<l-n> at
zefram22 has quit [Ping timeout: 240 seconds]
<Josh_2> hi hi hi
<heisig> Will there be modding support in Kandria? Will I be able to connect via swank?
<Shinmera> ebrasca: Thanks! :)
<Josh_2> Is there a way I can turn a string like "250220" and an number in seconds like 28000 into a local-time timestamp?
<Josh_2> I know I can turn the seconds into a timestamp, just not sure about the date
<Shinmera> heisig: you already can! edit ~/.config/shirakumo/kandria/settings.lisp to have :debugging (:swank T)
<Odin-> That's a very non-standard date format.
orivej has quit [Ping timeout: 246 seconds]
<Shinmera> heisig: Modding support (through a stable and defined API and loader mechanism) is something I would very much like to do, but it's very very low on the list, since it's a lot of effort and unfortunately not at all guaranteed it would attract more players.
<heisig> Shinmera: I understand. Swank is enough modding support for me :)
<Odin-> I think some games specify APIs for internal development, and then expose them as modding options. That's not particularly relevant for tiny teams, though...
<Shinmera> heisig: you can also launch the game with "swank" as argument and it'll just start wank and wait on an infinite loop for you to do whatever.
skapata has joined #lisp
aeth has quit [Ping timeout: 246 seconds]
zaquest has quit [Quit: Leaving]
<Nilby> Just being able to connect to swank is alread 100x better than some game with lua. :)
<heisig> Ooh, nice. And Kandria has a layer for accessing the Steam API. I should try Emacs->Swank->Kandria->Steam to chat with my friends.
<Shinmera> Hah
aeth has joined #lisp
<Shinmera> The SteamWorks api doesn't allow you to send messages to friends, iirc, only bring up the integrated overlay to do that.
<Shinmera> probably for security reasons.
zaquest has joined #lisp
karlosz has joined #lisp
<heisig> "Every program has (at least) two purposes: the one for which it was written and another for which it wasn't." -- Alan Perlis on people using video games as a proxy for sending messages from their text editor.
karlosz has quit [Client Quit]
renzhi has joined #lisp
Sheilong has joined #lisp
narimiran has joined #lisp
l-n has quit [Quit: Connection closed]
cage_ has joined #lisp
VincentVega54 has joined #lisp
VincentVega has quit [Ping timeout: 240 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
Nilby has quit [Ping timeout: 276 seconds]
cranium_ has joined #lisp
necrontab has joined #lisp
luckless_ has joined #lisp
madage has quit [Ping timeout: 240 seconds]
<Josh_2> I managed to make my timestamp
luckless has quit [Ping timeout: 240 seconds]
ljavorsk has joined #lisp
boogsbunny has joined #lisp
docl_ is now known as docl
<copec> Shinmera: Thanks! I was going to attempt to figure that out myself too.
<copec> BTW I do (defmethod org.shirakumo.dns-client::decode-record-payload ((type (eql :NS)) octets start end) (org.shirakumo.dns-client::decode-host octets start 0))
<copec> I can lookup all the payload types and make a list for you
madage has joined #lisp
<Shinmera> A PR would be cool!
boogsbunny has quit [Ping timeout: 240 seconds]
ljavorsk has quit [Ping timeout: 240 seconds]
attila_lendvai has joined #lisp
attila_lendvai has joined #lisp
waleee-cl has joined #lisp
attila_lendvai has quit [Quit: Leaving]
zefram22 has joined #lisp
cranium_ has quit [Quit: Leaving]
Duuqnd has quit [Ping timeout: 240 seconds]
wooden has quit [Ping timeout: 246 seconds]
wooden has joined #lisp
wooden has quit [Changing host]
wooden has joined #lisp
nij has joined #lisp
<nij> [crossed posted on #emacs] Is there a way to set a symbol to a "place"? For example, (setq x (car y))? I don't recall seeing a place being a lisp object.. and if it isn't a lisp object, why don't we make it one?? It seems useful.
<nij> Oh my example is stupidly wrong.. lemme see how to fix.
<beach> Places are not first-class objects in Common Lisp.
<Bike> there is no way to do that, no.
<phoe> nij: a place is second-class in Common Lisp
<nij> phoe: I'm aware of it.. but why :-( ?
<phoe> you can, however, use lambdas to capture it
<Bike> being able to keep efficient references to the interiors of objects makes some aspects of garbage collection much more annoying.
<phoe> or (ql:quickload :cl-locatives)
<nij> Bike: is that a reason for me?
<phoe> nij: yes
<nij> But CL is hackable. If I want to hack it so that it has first-class places, is that possible?
<phoe> CL is *easily* hackable to a point
<Bike> depends. like phoe said, you can do it with closures pretty easily. but that's not enormously efficient.
<phoe> and adding first-class locatives (or rather, re-adding them) is possible
<phoe> but requires you to either hack the GC
long4mud has quit [Read error: Connection reset by peer]
<nij> ohohhh im reading cl-locatives manual
<phoe> ...or, you know, just use lambdas as I said
<nij> How to use lambdas to achieve?
<phoe> (let (x) (list (lambda () x) (lambda (y) (setf x y))))
<phoe> here, I just captured X in a pair of accessors
<phoe> a reader and a writer
<phoe> you can funcall the first to read the value, and you can funcall the second with a new object to write the value
<phoe> that's all, those two lambdas capture the place rather nicely
<phoe> you can even change this to be a single function, (lambda (&optional (y nil yp)) (if yp x (setf x y)))
<phoe> when called with zero args it will return the value, when called with one arg it will set the value
<nij> Is this how cl-locative is implemented?
<phoe> t
<phoe> except it has its custom LOCATIVE structure that wraps the reader and writer lambdas
<nij> hmmm very interesting!
<phoe> stylewarning: cl-locatives on quicklisp-projects seems to have an ancient repo url on bitbucket, do you have any newer one?
Duuqnd has joined #lisp
<nij> Hmm.. but actually what I'm hoping for is to (setq y 3).. and this should change the internal of x.
<phoe> what's y?
<Bike> once you set up these functions you can put them in a structure or whatever, pass that around, and then write a LOCATION place (or something) to do it
<nij> Bike yes
<Bike> like (let ((p (locative (car y)))) (setf (dereference p) 3))
<Bike> this is pretty much how the cl-locatives library works, according to the library
<Bike> if you really want it to be (setf y 3) instead, you could use a symbol macro
heisig has quit [Quit: Leaving]
klltkr has quit [Read error: Connection reset by peer]
klltkr has joined #lisp
kevingal has joined #lisp
<nij> I see. :) Thanks!
<nij> I will read more about locatives.. sound like cool stuff.
<nij> Btw, if I have a macro m, how to I get (list (m a) (m b) (m c)) by (some-mapcar-for-macros m (list a b c))?
<Bike> you don't. macros operate on source code, not values.
varjag has joined #lisp
<Bike> so they can't be applied to elements of a list like a function can.
<Bike> why do you want to do that?
<nij> It would be nicer if I can have a one-liner for the last four lines.
<nij> (Sorry it's elisp.. but I'm also interested in how you do that in CL.)
<nij> Genuinely speaking.
<Bike> if the arguments are fixed like that you can just define another macro
<nij> :-( that'd be longer than 4 lines xD
karlosz has joined #lisp
<Bike> (defmacro dired-action/defoperation (&rest operations) `(progn ,@(loop for op in operations collect `(dired-action/defoperation ,op))))
<nij> I don't know.. I feel like this is something that's used much? Maybe there's a defacto macro for it already?
<Bike> er, should be defmacro dired-action/defoperations
<nij> OH!
<Bike> usually macro syntax is disparate enough that a general operator might not work so well
<Bike> but you could do, uh
<Bike> (defmacro macromap (op &rest args) `(progn ,@(loop for arg in args collect `(,op ,arg))))
<Bike> (macromap dired-action/defoperation cut copy soft-link-abs soft-link-rel)
<nij> I wonder if a mundane lang, like python, can do this so elegantly..
<nij> Lisp is great.
<nij> I like the second idea more. More transparent.
<nij> I'm just surprised that macromap hasn't existed yet.
matthewcroughan has quit [Quit: No Ping reply in 180 seconds.]
<Bike> well, this only works for macros that take exactly one parameter
matthewcroughan has joined #lisp
<nij> In macromap I can also slice args
<nij> so the input can be lists of arbitrarily many parameters.
<Bike> sure
karlosz has quit [Ping timeout: 252 seconds]
<nij> Btw, this is the first macro in my life I've written. It's newbie-ish, but it works right away. Thank you very much for all supports and kindness, #lisp. :) :) :) I'll remember today.
epony has quit [Ping timeout: 240 seconds]
imode has joined #lisp
zefram22 has quit [Ping timeout: 260 seconds]
aeth_ has joined #lisp
vutral_ has joined #lisp
aeth has quit [Disconnected by services]
aeth_ is now known as aeth
theothornhill has joined #lisp
mindCrime has joined #lisp
madage has quit [Ping timeout: 240 seconds]
madage has joined #lisp
saganman has quit [Read error: Connection reset by peer]
rumbler31 has joined #lisp
gaqwas has joined #lisp
DHARMAKAYA has joined #lisp
rumbler31 has quit [Ping timeout: 246 seconds]
jeosol has quit [Quit: Connection closed]
epony has joined #lisp
nij has quit [Remote host closed the connection]
hjudt has quit [Ping timeout: 265 seconds]
karlosz has joined #lisp
kevingal has quit [Remote host closed the connection]
DHARMAKAYA has quit [Ping timeout: 260 seconds]
akoana has joined #lisp
spaethnl has joined #lisp
theothornhill has quit [Ping timeout: 252 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
hjudt has joined #lisp
djuber has quit [Remote host closed the connection]
HiRE has quit [Ping timeout: 250 seconds]
jeosol has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
attila_lendvai has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
zzappie has quit [Ping timeout: 240 seconds]
andrei-n has quit [Read error: Connection reset by peer]
theothornhill has joined #lisp
andrei-n has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
antepod has joined #lisp
amb007 has joined #lisp
kmeow has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
karlosz has quit [Ping timeout: 252 seconds]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
HiRE has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
theothornhill has quit [Remote host closed the connection]
theothornhill has joined #lisp
antepod has quit [Quit: WeeChat 3.1]
vv8 has quit [Quit: EXIT]
Sauvin has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
cosimone` has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
srhm has joined #lisp
dickbarends has quit []
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
cosimone` has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
vutral_ has quit [Quit: Connection closed for inactivity]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
KeyboardWorrier has quit [Read error: Connection reset by peer]
amb007 has quit [Read error: Connection reset by peer]
orivej has joined #lisp
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
shka_ has quit [Ping timeout: 252 seconds]
amb007 has quit [Read error: Connection reset by peer]
kevingal has joined #lisp
amb007 has joined #lisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
nij has joined #lisp
daphnis has joined #lisp
<daphnis> is it possible to call a cl function from elisp via sly?
<nij> yes. iirc.. lemme see which func is that
<daphnis> oh, there seems to be swank::eval-in-emacs
<nij> sly-eval?
<daphnis> i don't have #'sly-eval
contrapunctus has left #lisp ["Disconnected: closed"]
contrapunctus has joined #lisp
<nij> On my side it says it's from sly.el..
<nij> not sure why you don't have that.. @_@
<nij> if you run `M-x sly`.. does the function get loaded?
sp41 has joined #lisp
<daphnis> nij, no, i have sly-eval-defun, -region, -buffer, but not sly-eval
<nij> daphnis - oh you mean commands.
<nij> sly-eval isn't a command, but it's a function
<nij> First, connect your emacs to a sly by `M-x sly`.
<daphnis> nij, ah, sorry
<nij> And then, evaluate this in _EMACS_
<nij> (sly-eval (+ 1 1))
<nij> the sexp (+ 1 1) will be passed into sly, evaluated, and returned (2) to emacs
<daphnis> works. thanks!
Lycurgus has joined #lisp
<daphnis> still, if i do (defun foo () 'bar) at the repl, i can't call that by (sly-eval (foo))
mobius__ has joined #lisp
zzappie has joined #lisp
<theothornhill> daphnis: If you define the function in cl-user, you can call it with "(sly-eval '(cl-user::foo))"
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
mobius__ has quit [Quit: mobius__]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #lisp
CrazyPython has joined #lisp
dieggsy_ has joined #lisp
<nij> And if you have (defvar *x* 123) at the repl, to call it from emacs, you do `(sly-eval 'cl-user::x)`
<nij> Oh.. so actually (sly-eval (+ 1 1)) is confusing! It will call #'+ in the sly-io-package.
Lord_of_Life_ has joined #lisp
<nij> Instead, if you want "normal" (+ 1 1).. you need to call (sly-eval '(cl-user::+ 1 1))
zzappie has quit [Ping timeout: 240 seconds]
Lord_of_Life has quit [Ping timeout: 265 seconds]
<daphnis> thank you. somehow the docstring led me to think (sly-eval (foo) :cl-user)
Lord_of_Life_ is now known as Lord_of_Life
narimiran has quit [Ping timeout: 240 seconds]
<theothornhill> Thankfully I stopped reading the docs after "Evaluate SEXP...". It is indeed confusing, so sometimes laziness helps :P
aindilis has joined #lisp
<nij> It's very confusing indeed!
zzappie has joined #lisp
<_death> nij: (sly-eval (+ 1 1)) will evaluate (+ 1 1) in emacs, and pass 2 to cl and back
<theothornhill> yeah
zzappie has quit [Remote host closed the connection]
zzappie has joined #lisp
dieggsy_ has quit [Quit: ZNC 1.8.2 - https://znc.in]
VincentVega54 has quit [Quit: Connection closed]
karlosz has joined #lisp
dieggsy has joined #lisp
dieggsy has joined #lisp
dieggsy has quit [Changing host]
dieggsy has quit [Changing host]
DHARMAKAYA has joined #lisp
andrei-n has quit [Quit: Leaving]
theothornhill has quit [Remote host closed the connection]
theothornhill has joined #lisp
long4mud has joined #lisp
wsinatra has quit [Quit: WeeChat 3.1]
anticrisis has joined #lisp
CL-ASHOK has joined #lisp
VincentVega has joined #lisp
attila_lendvai has quit [Ping timeout: 260 seconds]
peasynt has joined #lisp
<CL-ASHOK> Quick Qn - how to disable cache in Hunchentoot. Documentation says to use "no-cache" but I have no idea how to
<CL-ASHOK> Currently I'm doing: (defvar *ssg-web-server* (hunchentoot:start
<CL-ASHOK>      (make-instance 'hunchentoot:easy-acceptor
<CL-ASHOK>       :address "127.0.0.1"
<CL-ASHOK>       :port 4242
<CL-ASHOK>       :document-root #p"www_/"
<CL-ASHOK>       :persistent-connections-p t
<CL-ASHOK>       :read-timeout 3.0
<CL-ASHOK>       :write-timeout 3.0
<CL-ASHOK>       :access-log-destination nil
<CL-ASHOK>       :message-log-destination nil)))
<Alfr> CL-ASHOK, use a pastebin.
<_death> CL-ASHOK: hunchentoot:no-cache is a function that you can call in your handler
<nij> _death: Oh indeed.. sorry for that :-(
<CL-ASHOK> Thanks _death . Sorry Alfr, will do so in the future
cage_ has quit [Quit: Leaving]
CL-ASHOK has quit [Quit: Connection closed]
epony has quit [Ping timeout: 240 seconds]
opcode has joined #lisp
<opcode> hey all if I have two lists (a b c d) and (1 2 3 4) and I want to merge them into a plist e.g. (a 1 b 2 c 3 d 4), can i do that with map
<opcode> or perhaps a better question is what's the best way to accomplish that?
<Shinmera> (loop for a in first for b in second collect a collect b)
<opcode> oh. that's much simpler than my loop fuckery. thanks
karlosz has quit [Quit: karlosz]
Codaraxis__ has joined #lisp
daphnis has quit [Ping timeout: 240 seconds]
<_death> or (mapcan #'list list-1 list-2)
Lycurgus has quit [Quit: Exeunt]
<opcode> _death: thanks, I was trying and failing with map and mapcar
<opcode> is there an easy way to remember which does what
<kagevf> makes sense that it let's you disable per handler instead of for the whole server
<_death> use them alot :)
<opcode> :P
zefram22 has joined #lisp
anticrisis_ has joined #lisp
<stylewarning> CAN for conCATenate; but don’t confuse with MAPCON :)))
<nij> ConcAteNate
<stylewarning> also MAPCAN is destructive. Lots of footguns
<stylewarning> Shinmera: would MADVISE be a welcome part of MMAP?
pve has quit [Quit: leaving]
anticrisis has quit [Ping timeout: 268 seconds]
<_death> opcode: in that particular case, you could define a PROPLIS function, which would be a close friend to PAIRLIS
yonkunas has quit [Quit: Connection closed for inactivity]
cosimone` has joined #lisp
cosimone has quit [Read error: Connection reset by peer]
Duuqnd has quit [Quit: Connection closed]
theothornhill has quit [Ping timeout: 260 seconds]
<nij> Some questions about cl-locative.. https://bpa.st/VKBA
<nij> In get-setf-expansion, there's an parameter ENV. From CLHS it seems that I can feed NIL or any other "environment object". But I fail to see other examples of an environmental object. Any quick examples?
<Shinmera> stylewarning: How's platform support for that?
<Shinmera> Seems linux specific.
<Shinmera> You'd have to do legwork and see if there's similar stuff on Win32 and Darwin, in the very least.
<_death> nij: usually this function is called by a macro.. a macro can take an &environment parameter
<_death> nij: the example in CLHS actually shows that
<MichaelRaskin> nij: and this parameter can be passed to macroexpand-1
<MichaelRaskin> (and similar functions)
<_death> nij: ah, guess I missed "other"
<MichaelRaskin> Environment objects are very implementation specific (and not guaranteed to be or not be of any specific type; they are plain lists in some cases)
<MichaelRaskin> … and all the functions for inspecting them have been dropped from the standard
<stylewarning> Shinmera: I figured since it’s “advice” for perf optimization it could just be ignored where unsupported.
<_death> some implementations provide some cltl2 operators that can take it as well
<Shinmera> stylewarning: It'll have to be, but I'd still want you to see if there's similar stuff.
<stylewarning> Of course, that’s reasonable
<nij> Oh I see! So you just (defmacro ... (.. &env...)).
<nij> But how do you "construct" an environment object by hand?
<_death> nij: you don't
<nij> I'm just curious :) possible to construct?
<MichaelRaskin> Well, inside the macro expansion code you will have one!
<_death> there's a cltl2 operator to augment it
<MichaelRaskin> (If a macro is called inside a non-trivial lexical environment, at least)
<nij> How is an env object coded? Is it just a hash table or an alist?
<MichaelRaskin> Differently on different implementations
<_death> it's implementation-specific.. you can try inspecting it in the macro
<MichaelRaskin> Sometimes a list, sometimes an object
cantstanya has quit [Remote host closed the connection]
<nij> Ah.. i see! Thanks.
<no-defun-allowed> stylewarning: I've tried madvise a few times but it didn't seem to make anything faster.
cantstanya has joined #lisp
gigamonkey has joined #lisp
epony has joined #lisp
<gigamonkey> Is Xach going with the Google strategy of eternal beta for Quicklisp or am I looking in the wrong place for the latest hotness?
<gigamonkey> (I'm looking at https://www.quicklisp.org which redirects to https://www.quicklisp.org/beta, fwiw.
<MichaelRaskin> Just look at the version timestamps to convince yourself this _is_ latest
<no-defun-allowed> I think the former.
<gigamonkey> I've only been gone for like a decade or so, dunno why I'd have expected it to be out of beta. ;-)
CL-ASHOK has joined #lisp
cosimone` has quit [Remote host closed the connection]
<edgar-rft> quicklisp should upgrade and become a dominant alpha
zzappie has quit [Ping timeout: 240 seconds]
surabax has quit [Quit: Leaving]
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 28.0.50)]
aartaka_d has quit [Read error: Connection reset by peer]
aartaka has joined #lisp
kevingal has quit [Remote host closed the connection]
nij has quit [Remote host closed the connection]
CL-ASHOK has quit [Quit: Ping timeout (120 seconds)]
zefram22 has quit [Ping timeout: 252 seconds]
gaqwas has quit [Ping timeout: 240 seconds]
klltkr has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
karlosz has joined #lisp
phadthai has quit [Remote host closed the connection]
tempest_nox has joined #lisp
CrazyPython has quit [Remote host closed the connection]
aartaka has quit [Ping timeout: 252 seconds]
nature has quit [Ping timeout: 240 seconds]
edgar-rft has quit [Quit: Leaving]
karlosz has quit [Quit: karlosz]
random-nick has quit [Ping timeout: 252 seconds]
DHARMAKAYA has quit [Quit: Turning off a portion of this simulation.]
X-Scale` has joined #lisp
X-Scale has quit [Ping timeout: 252 seconds]
X-Scale` is now known as X-Scale
nij has joined #lisp
<nij> Hello! Is there a way to fully describe a package in CL? Preferably, I'd like to see almost all information presented when it's defined by defpackage.
<nij> In particular, not only do I hope to see what symbol is inherited, I also hope to see where a symbol is inherited from.
<Bike> i don't think there's an overall function. find-symbol will tell you whether a symbol is inherited; you can loop over a package's symbols looking at that.
mathrick has quit [Ping timeout: 265 seconds]
<Bike> to determine where a symbol is inherited from you would iterate over the package-use-list. any packages that have that symbol as external (and there can be more than one!) will be where that symbol is inherited from
<Bike> if you just mean the symbol's home package, that's easier to get
Nilby has joined #lisp