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
kozy has quit [Remote host closed the connection]
kozy has joined #lisp
varjag has joined #lisp
varjag has quit [Ping timeout: 244 seconds]
v0|d has joined #lisp
Fare has quit [Ping timeout: 240 seconds]
emacsomancer has quit [Read error: Connection reset by peer]
razzy has quit [Ping timeout: 256 seconds]
razzy has joined #lisp
Fare has joined #lisp
pierpa has quit [Quit: Page closed]
pierpal has joined #lisp
<v0|d> i programmd this 2day :p https://en.wikipedia.org/wiki/Commodore_CBM-II
<v0|d> can I have my lisp machine compld to basic please :0
<White_Flame> nice, is it your own?
<v0|d> no chance, not rich:(
<v0|d> keyboard was working great though, very small design.
rozenglass has quit [Remote host closed the connection]
<White_Flame> I know there were some very simple Lisps for the C64; with that thing having much more ram it could have been more viable
emacsomancer has joined #lisp
acolarh has joined #lisp
lnostdal has joined #lisp
<v0|d> White_Flame: designing a board w/ more ram is painful w/o 4-6lyrs. Not sure they have the tech back in then.
<v0|d> White_Flame: too many pins on the memory bus and assume it implements snooping.
Oladon has joined #lisp
jasmith has joined #lisp
danielxvu has quit [Remote host closed the connection]
<White_Flame> yeah, 32 ram chips on the mobo when fully populated
<White_Flame> I don't know the details of boad design that affects it, but I'll take your word there
<White_Flame> *board
<v0|d> White_Flame: sry, I wasn't tryng to be right. Her eyou go https://www.youtube.com/watch?v=0YdLZAQSOa4
emacsomancer has quit [Remote host closed the connection]
<White_Flame> if it's about literal bus width, it's only 2 more lines than the C64
<White_Flame> (and I noticed this isn't #lispcafe...)
<v0|d> :)
<no-defun-allowed> i made a lisp for c64 using cc65 but the GC is broken
<no-defun-allowed> just get this running in cc65 and you'll have half a lisp https://raw.githubusercontent.com/8l/openvmtil/master/lib/sl3.c
<v0|d> nice.
<no-defun-allowed> i imagine you could pretend the c64 was a stack machine since there's few registers
<no-defun-allowed> like the CADR almost: one accumulator and a stack
<White_Flame> I made my own 16-bit environment for the purpose: https://acheronvm.github.io/acheronvm/
<pjb> Or you can use page-0 as 256 8-bit registers.
kerrhau has quit [Ping timeout: 256 seconds]
<no-defun-allowed> smart
<White_Flame> most forths put the operand stack in zeropage
allcr has quit [Remote host closed the connection]
smokeink has joined #lisp
black_13 has joined #lisp
<black_13> what is "inlet"
<White_Flame> in what context?
<pjb> Whatever you want. It's not predefined. You can define as you wish.
<White_Flame> it's usually something that will Let something In
<White_Flame> I think it's also a portion on a map that shows another map
<White_Flame> can't think about a Lisp-related version of it
<black_13> i dont where scheme begins and lisp ends
<black_13> (inlet 'a 1 'b 2)
<pjb> black_13: this is the Common Lisp channel; scheme is out of topic.
<black_13> ill see my way out
black_13 has left #lisp [#lisp]
on_ion has quit [Quit: WeeChat 1.9.1]
Oladon has quit [Quit: Leaving.]
potatonomicon has quit [Read error: Connection reset by peer]
kerrhau has joined #lisp
ebrasca has joined #lisp
ebrasca has quit [Remote host closed the connection]
ebrasca has joined #lisp
<LdBeth> morning
<no-defun-allowed> hi LdBeth
robotoad has quit [Quit: robotoad]
mindCrime has joined #lisp
mindCrime__ has quit [Ping timeout: 260 seconds]
jlarocco has quit [Ping timeout: 248 seconds]
robotoad has joined #lisp
lagagain has joined #lisp
dddddd has quit [Remote host closed the connection]
k-hos has joined #lisp
<clhsgang[m]> anyone know how to get POST data from woo?
<beach> Good morning everyone!
<v0|d> beach: morning'
smokeink has quit [Ping timeout: 256 seconds]
<clhsgang[m]> morning beach
Bike has quit [Quit: Lost terminal]
FreeBirdLjj has joined #lisp
hvxgr_ has quit [Ping timeout: 272 seconds]
Fare has quit [Ping timeout: 240 seconds]
impulse has quit [Ping timeout: 256 seconds]
impulse has joined #lisp
mb01 has quit [Ping timeout: 244 seconds]
orivej has quit [Ping timeout: 256 seconds]
impulse has quit [Ping timeout: 240 seconds]
housel has quit [Read error: Connection reset by peer]
impulse has joined #lisp
parjanya has quit [Remote host closed the connection]
Guest5800_ has quit [Quit: Connection closed for inactivity]
_whitelogger has joined #lisp
pjb has joined #lisp
itruslove has quit [Remote host closed the connection]
giraffe has quit [Remote host closed the connection]
pjb has quit [Ping timeout: 256 seconds]
housel has joined #lisp
<zigpaw> morning :)
kenster has quit [Ping timeout: 248 seconds]
pjb has joined #lisp
asarch has quit [Remote host closed the connection]
asarch has joined #lisp
itruslove has joined #lisp
lagagain has quit [Quit: Connection closed for inactivity]
pjb has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
fikka has quit [Read error: Connection reset by peer]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
<beach> Hello zigpaw.
vlatkoB has joined #lisp
narendraj9 has joined #lisp
pjb has joined #lisp
pjb has quit [Remote host closed the connection]
<asarch> One stupid question: Is SB-EXT:SAVE-LISP-AND-DIE the same with Smalltalk about the images?
<beach> I don't know about Smalltalk images, but it saves the entire image into a "core" file that can then be used as an argument to start up SBCL later.
pjb has joined #lisp
<beach> People complain that it creates a big file, but that is a problem only if you are planning to create thousands of small applications, or if you have an embedded system with very little memory.
<asarch> I see
<asarch> Thank you! :-)
<beach> Oh, and there is an option to create an executable file too, so no core file required in that case.
<asarch> I studied the log from the other day (when I did a mess with packages) and I found what went wrong
<zigpaw> they are close enough, there are some limitations you'll see more limiting in SBCL than in Squeak/Pharo, the "one active thread only" will prevent you from having gui app dumped to image, in smalltalk you get that taken care of itself.
<asarch> First of all, I would like to apologize with all of you
<asarch> Since I was desperate to make my example to work, I couldn't read that :clim cannot be used it directly
<asarch> And (use :clim) is actually (:use :clim)
<beach> Yes, and the recommendation is not to :USE it. :)
pjb has quit [Remote host closed the connection]
<zigpaw> on the other hand, when learning sometimes it is good to do the not recommended, just to learn why it is so ;)
<asarch> I found a working example at: /home/asarch/quicklisp/dists/quicklisp/software/mcclim-20180711-git/README.md
gravicappa has joined #lisp
<asarch> Yeah, it's kind of frustrating when you are still learning
<beach> I am afraid we can't access your computer with that path.
<asarch> So, I really sorry guys
pjb has joined #lisp
<asarch> I owe you some beers
<asarch> Look at the same file at your quicklisp dir
<beach> What do you mean by ":clim can not be used [] directly"?
pjb has quit [Ping timeout: 256 seconds]
<beach> Oh, "directly" means "in the REPL". I see.
<asarch> Yeah, sorry. In the REPL
<beach> That's a general rule for pretty much every package.
<beach> But, in addition, it is recommended that you do not :USE packages other than a small number (I only ever :USE the COMMON-LISP package) that you trust not to change.
<beach> Pretty much all I do from the REPL is to have ASDF compile a package, start an application, or run some tests.
<zigpaw> when learning and writting throw-away code in repl, I think it is free-for-all if you know the rules/good-practices you are breaking ;-)
<beach> Sure, but in this case, apparently asarch did not know what rules were not respected.
<beach> And, yes, of course, you can't wait until you know all the rules before you start writing code.
<aeth> I only :USE CL and my own libraries. If I broke something in the latter, I know it's my fault.
angavrilov has joined #lisp
Kundry_Wag has joined #lisp
* asarch takes notes...
<asarch> Anyway. Thank you very very much guys
<asarch> Thank you
<asarch> See you later :-)
asarch has quit [Quit: Leaving]
zfree has joined #lisp
Kundry_Wag has quit [Ping timeout: 272 seconds]
pjb has joined #lisp
igemnace has joined #lisp
pjb has quit [Ping timeout: 256 seconds]
_whitelogger has joined #lisp
pjb has joined #lisp
pjb has quit [Ping timeout: 256 seconds]
grumble has quit [Read error: Connection reset by peer]
<beach> So the Common Lisp HyperSpec explicitly allows for the implementation to define additional options for DEFGENERIC and DEFCLASS. I am wondering how existing implementations take advantage of this liberty and what additional options would benefit SICL.
grumble has joined #lisp
pjb has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
<jackdaniel> beach: ECL has a defclass "sealed" option
pjb has quit [Remote host closed the connection]
<jackdaniel> it allows inlining accesses such class (like for the structure)
<beach> That's an interesting idea.
<beach> Yes, I understand.
pjb has joined #lisp
kajo has quit [Ping timeout: 256 seconds]
narendraj9 has quit [Ping timeout: 244 seconds]
pjb has quit [Ping timeout: 256 seconds]
pierpal has quit [Read error: Connection reset by peer]
siraben has quit [Ping timeout: 248 seconds]
mindCrime has quit [Ping timeout: 256 seconds]
broccolistem has quit [Ping timeout: 265 seconds]
makomo has joined #lisp
Kundry_Wag has joined #lisp
housel has quit [Read error: Connection reset by peer]
Kundry_Wag has quit [Ping timeout: 268 seconds]
igemnace has quit [Remote host closed the connection]
varjag has joined #lisp
igemnace has joined #lisp
Kevslinger has quit [Quit: Connection closed for inactivity]
FreeBirdLjj has quit [Read error: Connection reset by peer]
FreeBirdLjj has joined #lisp
rozenglass has joined #lisp
light2yellow has quit [Quit: light2yellow]
orivej has joined #lisp
nowhereman_ has quit [Remote host closed the connection]
nowhereman_ has joined #lisp
vlatkoB_ has joined #lisp
vlatkoB has quit [Ping timeout: 272 seconds]
pierpal has joined #lisp
random-nick has joined #lisp
robotoad has quit [Quit: robotoad]
random-nick has quit [Ping timeout: 256 seconds]
makomo has quit [Ping timeout: 248 seconds]
makomo has joined #lisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #lisp
Bike has joined #lisp
siraben has joined #lisp
gigetoo has joined #lisp
fikka has joined #lisp
rozenglass has quit [Remote host closed the connection]
nowhereman_ has quit [Remote host closed the connection]
<AeroNotix> "the trick is to understand the basic feature of lisp which is taught in the 2nd part of the 5 minute introduction to lisp."
<AeroNotix> lord, such elitism
nowhereman_ has joined #lisp
<AeroNotix> gotta love IRC
<beach> I always get nervous when I hear the word "elitism".
<beach> Who are you quoting?
<beach> I have been accused of elitism for saying that I think it would be a good idea for professional programmers to have some formal training in programming.
<AeroNotix> pjb
<Shinmera> beach: It's a quote from pjb of last night
<AeroNotix> they're offline right now
<jackdaniel> it could be understood, that formal education would be a formal requirement to be allowed to program professionally, that is a kind of elitism (not necessarily in bad sense, *but* we have many proficient programmers who are self-taught)
<AeroNotix> Perhaps elitism is the wrong choice of word. I just found it unnecessary.
<AeroNotix> pjb obviously misunderstood my question as well.
<no-defun-allowed> Tomorrow I hope to publish cl-decentralise, my journey into decentralised information things.
<AeroNotix> no-defun-allowed: what does it do?
<no-defun-allowed> It's way faster than blockchains, syncing faster than I can watch a screen.
<Shinmera> AeroNotix: pjb is often overbearing, yes.
<AeroNotix> Nevermind, I'll leave it at that.
<no-defun-allowed> It manages a table of blocks and versions which hold data and synchronise them over, aiming to hold the most blocks with the highest version numbers.
<no-defun-allowed> It's glue for writing decentralised programs I guess
<AeroNotix> I can't seem to get the form (funcall `(setf ,foo) value bar) working
<AeroNotix> no-defun-allowed: sounds like another consensus protocol
<Shinmera> AeroNotix: what's the problem?
<AeroNotix> Shinmera: wait, cooking up an example
<AeroNotix> Maybe I'll see the error when I make a small example
igemnace has quit [Quit: WeeChat 2.2]
siraben has quit [Quit: ERC (IRC client for Emacs 26.1)]
<no-defun-allowed> AeroNotix: probably, but I'm not trying to introduce anything new.
<beach> jackdaniel: It seems like in software development we go to far the other direction. High-school drop-outs are considered heroes, and people with formal training are considered "elitist".
<no-defun-allowed> There's no blockchain, smart contracts or any bullshit. It's a bullshit free backbone.
fikka has quit [Ping timeout: 244 seconds]
<AeroNotix> no-defun-allowed: distributed consensus protocols aren't inherently required to be "blockchains"
<no-defun-allowed> That is true, but most people go for them cause they sound nice.
<AeroNotix> beach: I think there's a huge difference in academic programming and industry programming
<no-defun-allowed> I'm only tying the developers to one assumption, that there is a definite "latest" state in their environment.
<AeroNotix> beach: academics think their work is a superset of all of industry work, it's just not the case at all. I find a lot of elitism stems from the belief it is a superset and therefore where all of industry programming is heading and techniques learned in academia MUST eventually be used in industry
<no-defun-allowed> The protocol is symmetrical, so you can have two REPLs connected to each other, with hooks to announce new information too.
nowhereman_ has quit [Ping timeout: 256 seconds]
<AeroNotix> no-defun-allowed: colour me interested
<jackdaniel> beach: as I said, I don't consider "elitism" a bad thing, I'm just saying that the quoted claim is elitist *and* that being "elitism" is not a drawback. also noted, that such status-based elitism may hurt people, who could be perceived as an elite from "skill" perspective. but I'm getting into offtopic, sorry :)
<jackdaniel> s/being "elitism"/elitism/
<beach> jackdaniel: I understand.
<no-defun-allowed> I'll release it tomorrow, I just have to make a synchronous-ish API for clients and do some final testing.
<AeroNotix> no-defun-allowed: What kind of testing having you done on it?
<beach> AeroNotix: I said absolutely nothing about academia.
<no-defun-allowed> The whole thing was 240loc last time I checked, and it hopefully will stay under 400.
<no-defun-allowed> It can synchronise between my laptop and desktop without complaints.
<AeroNotix> beach: no, you didn't. I just brought it up because I find a lot of grating conversations appear at that boundary
<no-defun-allowed> I also have a <20LOC example which uses two hash tables for data and versions.
<AeroNotix> no-defun-allowed: it's starting to sound like a toy
<AeroNotix> but looking foward to seeing it
<no-defun-allowed> There are a few shortcomings, but I don't want to overcomplicate it.
<AeroNotix> no-defun-allowed: I'm a huge fan of using jepsen/knossos for testing distributed consensus
<no-defun-allowed> It's all textual for example, and the line `--EOF--` is reserved to denote end-of-files.
fikka has joined #lisp
<AeroNotix> no-defun-allowed: I don't get how that's relevant
<no-defun-allowed> It only checks the version number is being incremented and you make the logic, blah blah.
<no-defun-allowed> I'm half asleep honestly. That probably wasn't relevant
<AeroNotix> no-defun-allowed: what happens during a net split?
<no-defun-allowed> I'll have to find out.
<AeroNotix> lets say you have a mesh of 4 servers running this protocol. You end up with two partitions. They each keep accepting writes on either side. What is the true version of the write after the partition heals?
<no-defun-allowed> Unless one supersedes the other, nodes will only accept their own.
<AeroNotix> no-defun-allowed: how will it know what supersedes the other?
<no-defun-allowed> I have a line commented "we don't care" in the upload logic. It's literally (t nil).
<AeroNotix> how are you encoding time into the protocol?
<no-defun-allowed> The version number will be > to the others.
<AeroNotix> same question remains
<no-defun-allowed> Any sequence where a later number is > than the other works.
<no-defun-allowed> Unix timestamps fit naturally to the problem but I still prefer revision numbers.
<AeroNotix> if you have a (2)-(2) netsplit with 4 servers. During a split there are an equal number of writes on both sides.
<AeroNotix> time is not absolute on all machines
pjb has joined #lisp
<no-defun-allowed> No, but the versioning number is and that's how the latest version is decided.
<AeroNotix> how is the version number incremented?
<no-defun-allowed> If both sides hold revision #3, neither will listen to the other even if they verify. Someone must come along and write #4 or greater.
<no-defun-allowed> By the end user.
<AeroNotix> so you will lose writes
fikka has quit [Ping timeout: 272 seconds]
<no-defun-allowed> I'm only interested in the final state.
<no-defun-allowed> If you want those, use a linked list of some form and make everything immutable.
<AeroNotix> If both sides hold revision #3, before resolution, what is the read value?
<no-defun-allowed> In that case, we're screwed and there isn't one.
<no-defun-allowed> Alright, goodnight. I have fucking guitar ensemble in the morning. God vce music sucks
<AeroNotix> Good luck. Ping me when cl-distribute is availiable, please.
<no-defun-allowed> Thankyou. I will.
<AeroNotix> right what was i doing
<Shinmera> The setf thing
<Shinmera> Bleh, only need to write some thousand lines of documentation more and I'll finally be rid of this damned library
rozenglass has joined #lisp
<Shinmera> defsetf defines a setf expander
<Shinmera> Why don't you just name your function (setf foo) instead of set-foo
<Shinmera> and drop the defsetf
<Shinmera> also switch the arguments from (x value) to (value x)
<_death> the name of the setf function is (setf foo) not (setf #<function foo>)
<Shinmera> And that too
<AeroNotix> wait, I think I've tried all these combinations as well
<trittweiler> clhs funcall
<Shinmera> Ah balls I forgot funcall doesn't take a function name. -- needs to be (funcall (fdefinition `(setf ,foo)) ..)
<trittweiler> yeah, /function designator/ is either symbol or function object
<Shinmera> Really weird part of the spec
<AeroNotix> Shinmera: that works
<AeroNotix> trittweiler: Shinmera nie
<AeroNotix> nice
<beach> The other one is called "extended function designator"
fikka has joined #lisp
cage_ has joined #lisp
Fare has joined #lisp
fikka has quit [Ping timeout: 268 seconds]
lnostdal has quit [Remote host closed the connection]
night29415 has joined #lisp
random-nick has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
fikka has joined #lisp
orivej has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
ebzzry has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
mhd2018 has joined #lisp
fikka has joined #lisp
FreeBirdLjj has quit [Read error: Connection reset by peer]
tralala has joined #lisp
FreeBirdLjj has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 256 seconds]
lnostdal has joined #lisp
lnostdal has quit [Remote host closed the connection]
fikka has joined #lisp
CrazyMonkey201 has joined #lisp
lnostdal has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
orivej has joined #lisp
Fare has quit [Ping timeout: 260 seconds]
fikka has joined #lisp
pioneer42 has joined #lisp
lnostdal has quit [Quit: https://www.Quanto.ga/]
lnostdal has joined #lisp
MinnowTaur has joined #lisp
CrazyMonkey201 has left #lisp ["Leaving."]
jmercouris has joined #lisp
igemnace has joined #lisp
night29415 has left #lisp ["Leaving"]
fikka has quit [Ping timeout: 256 seconds]
mb01 has joined #lisp
shka_ has joined #lisp
fikka has joined #lisp
mb01 has left #lisp ["ERC (IRC client for Emacs 26.1)"]
FreeBirdLjj has quit [Remote host closed the connection]
jmercouris has quit [Ping timeout: 244 seconds]
fikka has quit [Ping timeout: 272 seconds]
light2yellow has joined #lisp
dddddd has joined #lisp
fikka has joined #lisp
rozenglass has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 244 seconds]
pedh_ has joined #lisp
pedh_ has quit [Client Quit]
FreeBirdLjj has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
FreeBirdLjj has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
Kevslinger has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
tralala has quit [Ping timeout: 244 seconds]
Kundry_Wag has joined #lisp
<beach> Congratulations.
<Shinmera> Still need to write the over-arching documentation in the README
fikka has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 240 seconds]
pedh has joined #lisp
Fare has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 256 seconds]
fikka has joined #lisp
FreeBirdLjj has joined #lisp
Oladon has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
fikka has joined #lisp
FreeBirdLjj has joined #lisp
orivej has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 240 seconds]
jeosol has quit [Ping timeout: 252 seconds]
[X-Scale] has joined #lisp
charh has quit [Ping timeout: 240 seconds]
X-Scale has quit [Ping timeout: 240 seconds]
[X-Scale] is now known as X-Scale
sjl has quit [Quit: WeeChat 2.2-dev]
fikka has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 272 seconds]
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
FreeBirdLjj has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
whartung_ has joined #lisp
fikka has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
whartung has quit [Ping timeout: 260 seconds]
whartung_ is now known as whartung
fikka has quit [Ping timeout: 272 seconds]
<dim> Shinmera: I like the RDD approach (http://tom.preston-werner.com/2010/08/23/readme-driven-development.html), do you know about it?
<Shinmera> I do
<Shinmera> I don't follow it however because my design changes too much during development. Maintaining separate documentation would be too much overhead.
<dim> that's what I like about the README first approach, you don't detail the design, but the end result: how to use what you're building as a user
<dim> unless you're saying it's a lib and the API is the design then that's maybe different
<Shinmera> I do brainstorming first on paper or in my mind to figure out a basic architecture, and then I implement it. Iterate on that a few times until it fits. Then I write documentation on it to shake out the last remaining problems.
<Shinmera> Oh- of course I first try to think about how I'd use the tool/API
<Shinmera> I just don't write it down in a README because again, it might change quite a bit while I face the harsh reality :)
<dim> yeah, so that's what you put in the README right? what problem you're solving and how, as a user, what you're doing make sense
<dim> yeah it needs maintenance, like the code…
nowhereman_ has joined #lisp
<Shinmera> Mh, in my readmes I describe what the library is, how to use it briefly, and if needed what the internal organisation is.
<dim> my main problem with RDD is that I tend to not re-read the README often enough, unfortunately
<dim> I think the README should be a conversation with the potential user, why would they be interested into what you did in the first place?
fikka has joined #lisp
tsandstr has quit [Quit: WeeChat 2.2]
<Shinmera> And it's finally done, whew! https://shinmera.github.io/iclendar/
fikka has quit [Ping timeout: 272 seconds]
cage_ has quit [Quit: Leaving]
Oladon has quit [Quit: Leaving.]
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
krwq has joined #lisp
varjag has quit [Ping timeout: 240 seconds]
<krwq> Hello, has anyone used cl-who? I'm having some issues with the simplest examples: https://pastebin.com/u0Zq1Cm5
Kundry_Wag has joined #lisp
<krwq> I'm open for alternatives if this one has unresolved issues
Kundry_Wag has quit [Remote host closed the connection]
orivej has joined #lisp
<drmeister> Can I get at the bytes for a cffi:foreign-string ?
igemnace has quit [Quit: WeeChat 2.2]
<krwq> drmeister: I think you can just use the pointer with cffi's aref equivalent (forgot the name)
<drmeister> Thank you.
<_death> krwq: you should use (cl-who:esc bar)
fikka has joined #lisp
<krwq> _death: I think this is even more broken: https://pastebin.com/0tskz7wL
<_death> https://edicl.github.io/cl-who/#syntax .. personally I prefer yaclml (<:a :href foo (<:ah bar))
<krwq> _death: thanks, I'll try yaclml
<mood> krwq: Only use (esc bar), not (esc foo)
<mood> The rules for attribute values and tag content are different
<krwq> mood: so how do I escape both?
<krwq> (escape-string in the let?)
<mood> I think so, yes
<_death> usually you don't want to escape attribute values..
<krwq> _death: to ensure they are link and not something like "\"><script>alert(...)</script>\""
<_death> this is a case where validation/sanitization should happen elsewhere
fikka has quit [Ping timeout: 268 seconds]
fikka has joined #lisp
<mood> krwq: There is also spinneret, which has cl-who-like syntax but is, imo, a little more convenient
rippa has joined #lisp
<krwq> thanks guys, the non-escaping attributes seem to have worked correctly, I'll leave cl-who for now as I like that it writes to stream directly, if I have more issues and become too annoyed I'll try yaclml and spinnernet
MinnowTaur has quit [Remote host closed the connection]
<_death> yaclml needs html5 upgrades.. fortunately I've not really dealt with web stuff for years
varjag has joined #lisp
<krwq> _death: I just need that to generate simple e-mail - I've started with just cl-template which works ok but when I added some html this started to look really ugly
<mood> krwq: spinneret can also write to a stream (though always *standard-output*), but cl-who is certainly a fine choice
<krwq> mood: stdout is fine considering it's a non-issue in common lisp :) I don't want to spend too much time on learning it since I've already got it working and already spent like and hour or cl-who
<mood> Actually, no, it prints to a stream called *html*, so you could bind that
<mood> krwq: You'll be fine with cl-who :)
<krwq> it has it's things that it sometimes generates not what i mean but I think I can live with that as long as it is fixable
<krwq> + in most of the cases I'll likely wrap the codegen anyway and can add a simple testcase/assert
<pjb> krwq: simple emails can be generated as pure text, you don't need html.
<krwq> pjb: I wanted to add just <ul><li><a href="foo">bar</a></li>...</ul> - I did text gen first but it started getting ugly and I'm planning to add more complex html later
robotoad has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
orivej has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
phao has joined #lisp
HighMemoryDaemon has joined #lisp
phao has left #lisp ["Leaving"]
<HighMemoryDaemon> I have a pathnames package defined in another file. When I use Slime and try to compile, I get the error "The name "PATHNAMES" does not designate any package." However, when if I compile that load line separately and then compile the file, it works fine. My basic code: https://hastebin.com/duzaxajimi.lisp
<Xach> HighMemoryDaemon: LOAD does not happen at compile time
<Xach> HighMemoryDaemon: but you can make it happen by using eval-when
<Xach> HighMemoryDaemon: better: define a system file and let asdf load things in the right order for hou
<Xach> you, rather
<HighMemoryDaemon> Thanks! I still have to learn ASDF.
<Xach> HighMemoryDaemon: to do simple stuff it's not too tricky
panji has joined #lisp
fikka has joined #lisp
pierpal has quit [Ping timeout: 240 seconds]
<Xach> like, you could have something like myproject.asd containing: (defsystem #:myproject :serial t :components ((:file "pathname") (:file "spam-filter"))) and then use (asdf:load-system "myproject") will compile and load them in order of appearance
fikka has quit [Ping timeout: 240 seconds]
<HighMemoryDaemon> That is pretty easy. Was just checking out this guide: https://common-lisp.net/~mmommer/asdf-howto.shtml
<Xach> that is a little more involved than necessary to get started
<Xach> HighMemoryDaemon: oh, here's something i made to help get started with stuff that requires other libraries: https://www.xach.com/tmp/quickstart.html
loli has quit [Ping timeout: 240 seconds]
<Xach> still a work in progress
fikka has joined #lisp
<HighMemoryDaemon> Oh, wow you're the creator of QuickLisp! That's impressive.
* Xach lives to serve
Oladon has joined #lisp
fikka has quit [Ping timeout: 260 seconds]
<HighMemoryDaemon> Thanks for the help!
HighMemoryDaemon has quit [Remote host closed the connection]
fikka has joined #lisp
captgector has quit [Ping timeout: 240 seconds]
krwq has quit [Remote host closed the connection]
doubledup has quit [Remote host closed the connection]
captgector has joined #lisp
mindCrime has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
igemnace has joined #lisp
fikka has joined #lisp
nowhere_man has joined #lisp
nowhereman_ has quit [Ping timeout: 256 seconds]
fikka has quit [Ping timeout: 244 seconds]
asarch has joined #lisp
jsnell has joined #lisp
Khisanth has quit [Ping timeout: 248 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
loli has joined #lisp
igemnace has quit [Remote host closed the connection]
Khisanth has joined #lisp
vlatkoB_ has quit [Remote host closed the connection]
ramHero has joined #lisp
ramHero has quit [Client Quit]
ramHero has joined #lisp
kerrhau has quit [Quit: ZNC 1.7.1+deb1 - https://znc.in]
fikka has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
gravicappa has quit [Ping timeout: 240 seconds]
dented42 has joined #lisp
Arcaelyx has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
mhd2018 has quit [Quit: Textual IRC Client: www.textualapp.com]
fikka has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
fikka has joined #lisp
Fare has quit [Ping timeout: 240 seconds]
fikka has quit [Ping timeout: 268 seconds]
pierpal has joined #lisp
Arcaelyx has quit [Quit: Textual IRC Client: www.textualapp.com]
MoziM has quit [Ping timeout: 240 seconds]
MoziM has joined #lisp
fikka has joined #lisp
klltkr has joined #lisp
[X-Scale] has joined #lisp
X-Scale has quit [Ping timeout: 268 seconds]
[X-Scale] is now known as X-Scale
fikka has quit [Ping timeout: 260 seconds]
kajo has joined #lisp
Colleen has quit [Remote host closed the connection]
Colleen has joined #lisp
light2yellow has quit [Quit: rebooting]
fikka has joined #lisp
veinofstars has joined #lisp
fikka has quit [Ping timeout: 248 seconds]
jack_rabbit has joined #lisp
<jack_rabbit> Is ECL still maintained?
orivej has joined #lisp
<Shinmera> Yes
* jack_rabbit gives thumbs up
jmercouris has joined #lisp
angavrilov has quit [Remote host closed the connection]
loli has quit [Remote host closed the connection]
loli has joined #lisp
fikka has joined #lisp
Pixel_Outlaw has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
pioneer42 has quit [Quit: Leaving.]
<dim> Xach: BTW there's now https://github.com/slyrus/abcl/tree/master/contrib/asdf-jar (which I'm yet to try), so that might be something for you to have a look at in the context of quicklisp bundles when using ABCL?
SaganMan has quit [Ping timeout: 244 seconds]
fikka has quit [Ping timeout: 248 seconds]
mathrick has quit [Ping timeout: 240 seconds]
shka_ has quit [Ping timeout: 248 seconds]
robotoad_ has joined #lisp
Oladon has quit [Quit: Leaving.]
charh has joined #lisp
robotoad has quit [Ping timeout: 256 seconds]
<no-defun-allowed> Good morning everyone!
mathrick has joined #lisp
fikka has joined #lisp
<klltkr> Morning no-defun-allowed
<mood> The most confusing thing when writing macros must be double backquotes. I just don't have any intuition for them
fikka has quit [Ping timeout: 272 seconds]
<pjb> mood: you don't need them. Just use list append etc.
<AeroNotix> mood: I like to think I'm entering a new "sublevel". It's quite synesthetic
<mood> pjb: I'm writing a macro-defining macro, and using list, append and friends would obscure just how simple what's happening actually is. Except for the fact that double backquotes are even more confusing, so I guess I'll just do that.
<AeroNotix> mood: example?
<pjb> mood: also, use functions.
<pjb> macros are functions like any other, don't forget to use abstractions and factorization.
<mood> AeroNotix: Sure, but when you're two levels deep, how do you get back to the outer level? ,, produces all kinds of weird effects
<mood> I'll make a quick example
fikka has joined #lisp
<jmercouris> is a macro writing macro considered a quine?
<Shinmera> mood: ,@',(when has-thing (list ...))
<mood> Shinmera: That does work, but I don't *understand* it. My brain wants to just write ,,(when has-thing '(print "bar"))
<Shinmera> Well first you need the ,@ in order to splice in a list that won't leave a NIL if your test is false
<Shinmera> Then, since you don't want the code to be evaluated when the inner macro is called, you need the quote
<Shinmera> finally you need another comma to evaluate in the current macro
<Shinmera> Basically since each level of unquoting is going to try to evaluate the thing, you need to stop that from happening by intermittently adding quotes.
<AeroNotix> But pjb is right, probably could turn the inner-macro into a function that returns that form
<AeroNotix> Which may simplify thinking about it
<mood> Shinmera: Thanks, I think that helps
<mood> AeroNotix: I could generate the body of the inner macro using a function, yes. I'll see if that makes things clearer
aphprentice_ has joined #lisp
<equwal> Paul Graham has an interesting take on double quoted macros in On Lisp. He compares them to integrating (something you do in calculus). Essentially the reason it is difficult isn't because of the notation, it is because it is just a really complex problem. Just like integration though, there are tricks you can learn to make it easier. For example, when writing a macro-writing macro, you can write the inner macro separately, then write
<equwal> the outer macro into it. You can then substitute in the code for the inner macro. The analogy is strong: substitution is one method of integration. There are other tricks you learn as you go along.
gurmble has joined #lisp
grumble has quit [Killed (rajaniemi.freenode.net (Nickname regained by services))]
gurmble is now known as grumble
<mood> equwal: I'm not sure I understand what "write the outer macro into it" means
<equwal> See the section on abbrev/abbrevs if you are interested. The book is free online.
Kundry_Wag has joined #lisp
<mood> equwal: Thanks, I'll take a look
<equwal> (defmacro abbrev (short long)
<equwal> (defmacro abbrevs (&rest names)
<equwal> `(,',long ,@args)))
<equwal> `(defmacro ,short (&rest args)
<equwal> `(progn
<equwal> ,@(mapcar #'(lambda (pair)
<equwal> `(abbrev ,@pair))
<equwal> (group names 2))))
<equwal> Code dump.
<Shinmera> ouch, that indentation
<equwal> Yeah it is bad.
<equwal> I must have been writing it with a 1/4 size emacs window.
<equwal> I think he trys to explain once-only too, which is always fun.
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
<mood> Shinmera: It looks quite alright in the logs: https://irclog.tymoon.eu/freenode/%23lisp?around=1534111681#1534111681
Kundry_Wag has quit [Ping timeout: 244 seconds]
<Shinmera> tabs are indistinguishable from evil
varjag has quit [Quit: ERC (IRC client for Emacs 26.1)]
<no-defun-allowed> should i still put #' before my lambda expressions? sbcl doesn't seem to care and it feels old
pierpa has joined #lisp
<Shinmera> No
<no-defun-allowed> good
<mood> no-defun-allowed: There is a macro named LAMBDA that expands to #'(lambda ...), so you don't have to, except in some circumstances
<no-defun-allowed> even better
<Shinmera> mood: Funnily enough #'(lambda ..) also doesn't work in some situations, like the :report of a condition.
<Shinmera> In fact, in which situation do you think you have to add #', because I can't think of one
<Shinmera> You also can't do (#'(lambda ..) ..), but you can do ((lambda ..) ..)
<mood> Hmm, good question. I seem to remember finding something in the past, but I'm drawing a blank
<Shinmera> Anyway, the short is: save yourself the two characters and the visual noise, and just use lambda.
panji has quit [Quit: Leaving.]
Kundry_Wag has joined #lisp
housel has joined #lisp
equwal has quit [Read error: Connection reset by peer]
equwal has joined #lisp
chi91 has joined #lisp
random-nick has quit [Ping timeout: 268 seconds]
<aeth> On the other hand, if you don't put the #' it won't run on Genera iirc.
chi91 has left #lisp ["ERC (IRC client for Emacs 26.1)"]
<aeth> (The strength of this argument asymptotically approaches 0 as t increases.)
Copenhagen_Bram has quit [Ping timeout: 248 seconds]
jmercouris has quit [Ping timeout: 268 seconds]
<v0|d> why no dtors in clos?
Oladon has joined #lisp
<aeth> dtors?
<v0|d> destructor.
Copenhagen_Bram has joined #lisp
<pierpa> what do you want to destroy?
<v0|d> a block before GC.
<pjb> aeth: #+genera (defmacro lambda ((&rest bindings) &body body) `(cl:function (cl:lambda ,bindings ,@body)))
sword` has quit [Remote host closed the connection]
<pierpa> v0|d: doesn't make any sense. Blocks are "destroyed" simply by exiting their scope.
kingcons has joined #lisp
<pierpa> I suspect you mean something else
Kundry_Wag has quit [Remote host closed the connection]
sword` has joined #lisp
<v0|d> :)
Kundry_Wag has joined #lisp
<aeth> pjb: I think it was Genera. I'm not sure because it has been a few years. I think the proper way of doing it, though, is pushing it to *features* iirc.
Kundry_Wag has quit [Ping timeout: 244 seconds]
kenster has joined #lisp
<kenster> my Common lisp/C++ CDN now successfully hosts files :D
<no-defun-allowed> nice
nowhere_man has quit [Ping timeout: 256 seconds]
Kaisyu has joined #lisp
sabrac has joined #lisp
<sabrac> Hello all
nowhere_man has joined #lisp
Kaisyu7 has joined #lisp
Kundry_Wag has joined #lisp
<no-defun-allowed> hi sabrac
MetaYan has quit [Ping timeout: 240 seconds]