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]
fikka has quit [Ping timeout: 272 seconds]
kozy has joined #lisp
sauvin has joined #lisp
quipa has joined #lisp
buffergn0me has joined #lisp
quipa has quit [Quit: Leaving]
Oladon has joined #lisp
zxcvz has quit [Ping timeout: 240 seconds]
robotoad has quit [Quit: robotoad]
mooshmoosh has quit [Ping timeout: 240 seconds]
mooshmoosh has joined #lisp
quazimodo has joined #lisp
robotoad has joined #lisp
trocado has joined #lisp
eoli2580 has joined #lisp
eoli2580 has left #lisp [#lisp]
eoli2580 has joined #lisp
Fare has joined #lisp
quazimodo has quit [Ping timeout: 240 seconds]
<dim> Demosthenex: do it the other way around, store data in a normalized relational design and build JSON as a query output
<dim> easier, faster, much less storage needs, all round better approach
<dim> Demosthenex: have a read of https://tapoueh.org/blog/2017/09/on-json-and-sql/ to see how to normalize JSON documents in a relational database
quazimodo has joined #lisp
bbokser has joined #lisp
trocado has quit [Read error: Connection reset by peer]
bbokser has quit [Ping timeout: 244 seconds]
eoli2580 has quit [Quit: Leaving]
bbokser has joined #lisp
nalik891 has quit [Read error: Connection reset by peer]
nalik89 has joined #lisp
nalik89 has quit [Read error: Connection reset by peer]
ebrasca has joined #lisp
buffergn0me has quit [Ping timeout: 276 seconds]
Fare has quit [Ping timeout: 240 seconds]
parjanya has joined #lisp
bbokser has quit [Ping timeout: 240 seconds]
graphene has quit [Remote host closed the connection]
milanj has quit [Quit: This computer has gone to sleep]
graphene has joined #lisp
scymtym has quit [Ping timeout: 272 seconds]
stardiviner has joined #lisp
ebrasca has quit [Read error: Connection reset by peer]
stardiviner has quit [Remote host closed the connection]
mooshmoosh has quit [Ping timeout: 256 seconds]
mooshmoosh has joined #lisp
housel has quit [Read error: Connection reset by peer]
svillemot has quit [Ping timeout: 268 seconds]
svillemot has joined #lisp
<LdBeth> Morning everyone
pierpa has quit [Quit: Page closed]
Fare has joined #lisp
xristos has quit [Quit: ZNC - http://znc.in]
pierpal has joined #lisp
<no-defun-allowed> hi LdBeth
Fare has quit [Ping timeout: 244 seconds]
buffergn0me has joined #lisp
_whitelogger has joined #lisp
Copenhagen_Bram has quit [Ping timeout: 240 seconds]
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
Copenhagen_Bram has joined #lisp
Oladon has quit [Quit: Leaving.]
csgator has joined #lisp
ebrasca has joined #lisp
dddddd has quit [Remote host closed the connection]
captgector has quit [Ping timeout: 244 seconds]
captgector has joined #lisp
Oladon has joined #lisp
<beach> Good morning everyone!
<csgator> hi all, I am a young programmer and I want to learn lisp as a hobby project because I read about it in paul graham's book hackers and painters. The way he describes lisp it seems to be the holy grail of languages , what do you guys think does learning lisp make you a better programmer ?
<beach> Of course.
<beach> This is a channel dedicated to Common Lisp, so many of us are convinced about that.
<csgator> haha fair point. I just want to know as an outsider why you guys think lisp is so good ?
<beach> Because it has many more and better features than most languages.
<beach> Like the best object system around, for instance.
<beach> And homoiconicity makes it possible to write sane syntactic extensions.
<no-defun-allowed> morning beach
<beach> Hey no-defun-allowed.
housel has joined #lisp
<no-defun-allowed> learning lisp made my datefriend think about other languages weird, and they told me they couldn't stand C++ after. it likely will make you hate every other language on the planet but hey go for it.
fikka has joined #lisp
<beach> csgator: The condition system is also quite good. Much better than the exception feature of languages like Java.
<no-defun-allowed> the OOP system is also better than java
<csgator> so noob question here : let's say I want to build a REST API can I do it in lisp ? does it have enough libraries to do anything one would require in a normal application building ? what I am trying to ask maybe is can I use it to build stuff ? I am convinced that programming languages are increasingly becoming more lisp like
<beach> Oh, sure, if you compare to a language without automatic memory management, Common Lisp looks even better. But most sane languages these days have that.
<no-defun-allowed> the runtime is better than java
<beach> csgator: Not my domain of expertise, but I am pretty sure there are libraries for that. Other languages won't become Common Lisp until they also look like it, and then they might as well *be* Common Lisp.
<no-defun-allowed> not sure about REST specifically but there's more than one web framework
<csgator> so what do you guys use lisp for ? just trying to gather info on where it is being used :)
<beach> csgator: It is trues that for *almost* every feature of Common Lisp, you will find some language that has it. But you won't find a language other than Common Lisp that combines all those features.
<no-defun-allowed> i use hunchentoot but caveman2 is also an option (if you can mind the god awful Python @tagging things)
steiner has quit [Ping timeout: 276 seconds]
<beach> csgator: Here is a nice quotation from Kent Pitman: https://www.wisdomandwonder.com/link/1018/please-dont-assume-lisp-is
<csgator> beach : that is exactly the point paul graham mentions in his book which made me wonder, why is the software world going backward and if so why even bother with a fancy new language every year, we could just use lisp for everything
fikka has quit [Ping timeout: 260 seconds]
<beach> csgator: Because there are strong psychological forces at work. People are not rational and they are willing to waste arbitrary amounts of time not to learn Common Lisp.
<beach> csgator: There is an entire domain now called "behavioral economics" that will explain such behavior.
<beach> In the meantime, here is a short essay on the subject: http://metamodular.com/Essays/psychology.html
gitfaf has joined #lisp
<no-defun-allowed> still they don't quite get why we avoid SETF and friends when possible in lisps but they know a lot of CL and scheme
Pixel_Outlaw has joined #lisp
<beach> csgator: And when I say "strong", it's a serious understatement.
<no-defun-allowed> i said it's easier to analyse since SETF can set whatever but they say understanding functional code is hard already
<csgator> beach: got your point, thanks. I am going to spend the next few weeks learning lisp just for the fun of it and also because many smart people I know have suggested learning lisp. I'll be using this channel to get help when stuck
quazimodo has quit [Ping timeout: 240 seconds]
<beach> csgator: Great! There is also #clschool for more basic questions.
<csgator> that essay is so true
<beach> Thanks!
steiner has joined #lisp
gitfaf has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 260 seconds]
gitfaf has joined #lisp
Pixel_Outlaw has quit [Quit: Leaving]
FreeBirdLjj has joined #lisp
asarch has quit [Remote host closed the connection]
asarch has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
jack_rabbit has joined #lisp
FreeBirdLjj has joined #lisp
captgector has quit [Remote host closed the connection]
captgector has joined #lisp
gitfaf has quit []
gitfaf has joined #lisp
gitfaf has quit [Client Quit]
pjb has quit [Remote host closed the connection]
pjb has joined #lisp
pjb has quit [Read error: Connection reset by peer]
pjb has joined #lisp
nowhereman_ has joined #lisp
dented42 has joined #lisp
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 256 seconds]
<Shinmera> csgator: Just to get you started, the typical recommendation nowadays is https://portacle.github.io for the IDE and http://www.gigamonkeys.com/book/ for the introductory text.
<Shinmera> csgator: As for REST APIs, of course you can do that with Lisp. There's plenty of websites and services, both hobby and professional, running Lisp on the web.
<csgator> Shinmera : Thanks!
csgator has quit [Ping timeout: 252 seconds]
pjb has quit [Remote host closed the connection]
pjb has joined #lisp
buffergn0me has quit [Ping timeout: 265 seconds]
Oddity has quit [Ping timeout: 276 seconds]
Oddity has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
doubledup has joined #lisp
doubledup has quit [Max SendQ exceeded]
doubledup has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
zxcvz has joined #lisp
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
rozenglass has joined #lisp
Oladon has quit [Quit: Leaving.]
charh has quit [Ping timeout: 272 seconds]
asarch has quit [Quit: Leaving]
rippa has joined #lisp
FreeBirdLjj has joined #lisp
zfree has joined #lisp
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
emacsomancer has quit [Ping timeout: 240 seconds]
zfree has quit [Quit: zfree]
shka_ has joined #lisp
rogersm has joined #lisp
zfree has joined #lisp
zfree has quit [Client Quit]
bars0 has joined #lisp
kerrhau has quit [Ping timeout: 244 seconds]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
pjb has quit [Remote host closed the connection]
pjb has joined #lisp
fikka has joined #lisp
wiselord has quit [Ping timeout: 240 seconds]
graphene has quit [Remote host closed the connection]
graphene has joined #lisp
pjb has quit [Remote host closed the connection]
Fare has joined #lisp
pjb has joined #lisp
fikka has quit [Ping timeout: 244 seconds]
graphene has quit [Remote host closed the connection]
t3hyoshi has joined #lisp
graphene has joined #lisp
azimut has joined #lisp
azimut_ has quit [Ping timeout: 240 seconds]
cage_ has joined #lisp
pjb has quit [Ping timeout: 256 seconds]
quazimodo has joined #lisp
quazimodo has quit [Ping timeout: 244 seconds]
quazimodo has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
rozenglass has quit [Read error: Connection reset by peer]
FreeBirdLjj has joined #lisp
rumbler31 has joined #lisp
rumbler31 has quit [Ping timeout: 268 seconds]
robotoad has quit [Quit: robotoad]
rozenglass has joined #lisp
void_pointer has joined #lisp
robotoad has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
random-nickname has joined #lisp
varjagg has joined #lisp
<void_pointer> Out of SBCL, CCL, and ECL; which implementation is generally the strictest with requiring code to conform to the ANSI spec?
random-nickname is now known as random-nick
rogersm has quit [Read error: Connection reset by peer]
rogersm has joined #lisp
<no-defun-allowed> SBCL likes complaining about it if you don't comply.
dddddd has joined #lisp
FreeBirdLjj has joined #lisp
<Shinmera> void_pointer: What do you hope to determine with that information?
<jackdaniel> I think that both CLISP and SBCL have a "strict ansi mode", but you'd have to verify that
<Shinmera> Even if your code conforms to the ANSI spec doesn't mean it'll be portable for instance
<Shinmera> Unless you eschew all parts that are defined as implementation dependant (pathnames, etc)
<jackdaniel> it is a one tailed test, which may bring to your attention parts of code which could be improved (not always of course)
<void_pointer> Well, my code won't be completely portable, but it tells me a bit of where to focus my testing activities since that would be where I would run into more of my ameteurish mistakes in writing valid common lisp code (things like assigning an incorrectly typed value to a slot)
<void_pointer> The pathname issue is one of the big items, sadly
<void_pointer> That and the implementation has to have FFI
<Shinmera> SBCL is very anal about some details of CL, so probably your best bet for that
<void_pointer> I've caught quite a few mistakes by making (safety 3) in all my code, but I suspect I have a lot more just basic mistakes in writing common lisp, let alone all the bugs from just misuing things, misdone algorithms, and other sorts of bugs that of course would not be caught by such means
<void_pointer> Shinmera: that is good to know about SBCL
<void_pointer> it is the sort of thing I am looking for
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 260 seconds]
<void_pointer> Thank you Shinmera and jackdaniel
<void_pointer> jackdaniel: just checked. Clisp does have such mode it looks like. SBCL doesn't appear to in the current version, though
<void_pointer> sadly, I can't do testing in clisp due to issue with CFFI (same goes for abcl)
<Shinmera> Clisp's mode is not really about checking your code as far as I understand, but rather about the implementation being ANSI compliant rather than doing its own (historical) divergences
igemnace has quit [Remote host closed the connection]
kajo has quit [Ping timeout: 276 seconds]
<void_pointer> okay
<void_pointer> I'm still rather new to common lisp. Only been doing it seriously since December or January (the little bit I did back in 2012 or 2013 doesn't really count)
<void_pointer> and I came to it from scheme
<LdBeth> void_pointer: do you intends to use CL on specific problems or as a general programming language?
<void_pointer> Currently working on a project in one domain but hope to use CL for more general stuff later. But have ended up having to do more general stuff than originally planned hacking one of my project's dependencies as well as quicklisp itself
<void_pointer> I will admit that CL isn't the ideal choice for the domain due to not having the widest range of library choices, but that is something I am OK with (have to spend more time writing various missing pieces or working around a choice that while possibly good isn't quite a perfect fit)
<Shinmera> Tell me about it
<beach> void_pointer: What's the domain? (You may have mentioned it, but if so I missed it).
<void_pointer> game programming
<LdBeth> GG
<beach> You may want to chat with the people in #lispgames.
<void_pointer> I do from time to time
<beach> OK.
<void_pointer> though mostly, my questions so far are not game programming specific for the most part (only had the one question with respect to SDL2 that one time)
random-nick has quit [Ping timeout: 240 seconds]
gpiero_ is now known as gpiero
<beach> Good, that increases the number of people who might be able to answer the questions.
<LdBeth> how's the computer players' logic usually implemented? My specific interests is on how to make decisions in a typical game like "go fish". No needs to be detailed but plz give a general idea.
<Shinmera> LdBeth: PAIP has a chapter on writing game AI
<no-defun-allowed> Goodnight everybody!
<no-defun-allowed> There's minimax for two player games.
<void_pointer> yes, though one has to be careful for some games or you can easily make in invincible AI
<void_pointer> and for others, one has to think of a reasonable depth and use some heuristics like with chess
<no-defun-allowed> If the amount of moves into some amount of time is relatively small (can fit into memory), minimax should work.
<no-defun-allowed> Go is one game which is not relatively small. Go boards are big.
<void_pointer> and for a weak AI, one can make one that just randomly chooses one of the available moves
<void_pointer> Go requires tricks
<beach> no-defun-allowed: "number" of moves. Number of things, amount of stuff.
<jackdaniel> sjl had a very good presentation at ELS about heuristics used in games for AI (it was based on monte carlo I think)
<void_pointer> I don't know them. My guess is that they probably reduce the parameter space considerably by primarily focusing only on tiles bordering a piece already
<no-defun-allowed> Off to bed I go now.
<no-defun-allowed> beach: it's 9:45pm and my melatonin pills should be working now. My English gets increasingly horrid as t increases.
<beach> no-defun-allowed: Sleep well.
shka_ has quit [Ping timeout: 240 seconds]
<LdBeth> be off
<no-defun-allowed> Thankyou.
<LdBeth> Will back later
<LdBeth> #'no-defun-allowed: good night
<no-defun-allowed> Nighty night, LdBeth and beach.
<no-defun-allowed> May all your lists be proper.
cage_ has quit [Ping timeout: 244 seconds]
rogersm has quit [Read error: Connection reset by peer]
rogersm has joined #lisp
nanoz has joined #lisp
random-nick has joined #lisp
Kundry_Wag has joined #lisp
<void_pointer> Oh, interesting thing that people might be interested in. I modified my version of quicklisp to actually check the md5sums of the package tarballs it downloads and well, if there is anyone between me and the quicklisp server that is diverting tarball requests, they are at least bothering to tamper them in a way that preserves both the filesize and the md5sum despite the latter not being checked yet.
rumbler31 has joined #lisp
nowhereman_ has quit [Ping timeout: 240 seconds]
<void_pointer> Unfortunately, I realize that my modifications are really ugly and I haven't been able to get a SHA1 check in there yet
Kundry_Wag has quit [Ping timeout: 240 seconds]
<Shinmera> Xach is working on pgp signing and verification, if I remember correctly
rumbler31 has quit [Ping timeout: 272 seconds]
<void_pointer> I remember hearing about that. Fundamentally for base level, the PGP signing and verification primarily has to be done for the client and dist updates as long as the dists themselves has sufficient hash information to verify the integrity of the downloads
smokeink has joined #lisp
<void_pointer> Right now, the dists have file size, md5sum, and sha1 sum of the contents (it isn't the sha1sum of the tgz or the uncompressed tar but something else)
<void_pointer> which, if checked, would be safe enough for now. Making a file with a desired sha1sum isn't yet known to be doable, but it isn't that far away. md5sum is trivial. But all three combined is a bit harder than any one of them individually
nowhereman_ has joined #lisp
<Shinmera> sha1 was been broken last year, if I remember correctly
<Shinmera> *-been
<void_pointer> that was only a partial break
<void_pointer> it is possible to generate two files with the same sha1 when one can modify both files as one sees fit
<Shinmera> Anyway, just gotta wait for Xach to roll out the QL goodie
<void_pointer> which is a lot easier than generating a file with a specific sha1 value
<Shinmera> s
<void_pointer> I do look forward to it
<void_pointer> right now, I just go through quicklisp-projects and find the original source for each package I want and git clone (or download if they use something else) into local-packages
<void_pointer> if the dists added sha3 of the tgz file, it would be pretty set (especially since there is some CL sha3 code with few dependencies out there)
<Shinmera> cloning into local packages is not a very smart ideas since the projects might depend on specific versions between each other.
<Shinmera> christ I'm typoing a lot today
<jackdaniel> must be melatonine
<jackdaniel> s/ine/in/
<void_pointer> that sometimes happens
<void_pointer> haven't run into that too much yet (it will get really ugly as soon as I need something that incidentally needs one xml package)
<void_pointer> another alternative is just to just take the http links that quicklisp would download and then use wget or curl to download the https version
<void_pointer> did that with a few
<Shinmera> Another alternative is to stop worrying
Josh_2 has joined #lisp
<void_pointer> yeah, that is one possibility
<void_pointer> other reason I download the source code is to make it easier to tinker and be able to unwind changes if I screw up or submit PRs
<void_pointer> I definitely worry too much on it, though
atgreen__ has joined #lisp
cage_ has joined #lisp
igemnace has joined #lisp
atgreen__ is now known as atgreen
groovy2shoes has joined #lisp
<Demosthenex> dim: nice article, thanks for the link!
<Demosthenex> jackdaniel: you see that POC code to make a webserver return one script for a browser, and a malicious one for curl?
<Demosthenex> based only on the timing data, not user agent ;]
<jackdaniel> Demosthenex: interesting (no, I haven't seen it)
<Demosthenex> apparently the pipe to bash causes blocking and timing that is readable by the remote
<jackdaniel> I like the demo :-)
<Demosthenex> heh, yep
<Demosthenex> oh, you had that cl-charms mcclim writeup. nice! i'm looking forward to your mcclim charms backend ;]
<jackdaniel> right now I'm stuck on patterns (and consequency in framebuffer renderer)
<jackdaniel> thanks
<jackdaniel> I want to write it, because it will expose many weird corner-cases
<jackdaniel> wrt displays with different units
<jackdaniel> (1] terminal "pixels" are not rectangular, 2] they are very big)
smokeink has quit [Remote host closed the connection]
smokeink has joined #lisp
smokeink has quit [Remote host closed the connection]
<Demosthenex> true
<Demosthenex> i've been looking for a TUI library for simple things... i recall using turbovision ages ago and can't seem to find anything like it
<Demosthenex> but something you said in that article about "making 1/10th of clim in text" rings true...
<jackdaniel> it was a pun at greenspoon's tenth rule :-)
<jackdaniel> " Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp. "
<Demosthenex> that's true, but it also highlights the different between having curses level control (ala charms), vs a real UI library with event loops, widgets, and screen controls.
<Demosthenex> i find it uniquely weird that something as simple as an AS/400 style full screen form should have zero open libraries nowadays
<jackdaniel> from other fun useless things I want to do is adding libcaca extension to that charming-clim backend
orivej has joined #lisp
<jackdaniel> so one could "render" pictures and other patterns to some extent
<jackdaniel> but not sure if I'll find enough time for such toy
random-nick has quit [Read error: Connection reset by peer]
random-nick has joined #lisp
<void_pointer> Has anyone written a lisp implementation in Fortran yet?
<void_pointer> Referring back to the greenspun mention
nowhereman_ has quit [Ping timeout: 276 seconds]
quazimodo has quit [Ping timeout: 276 seconds]
atgreen has quit [Ping timeout: 272 seconds]
Kundry_Wag has joined #lisp
<LdBeth> of cause there should be one
Josh_2 has quit [Ping timeout: 260 seconds]
<void_pointer> if for no other reason that to implement the second oldest language family in the oldest
Kundry_Wag has quit [Ping timeout: 272 seconds]
<LdBeth> Early ALGOL's are on top of FORTRAN
<void_pointer> Should be fairly easy to implement lisp 1.5 in fortran 95 or newer with no limitations other than available RAM. Fortran 77 would, if completely conformant, have a fixed at compile time limit on the number of conses
gpiero has quit [Ping timeout: 240 seconds]
gpiero has joined #lisp
<beach> void_pointer: Yes, in fact, the first Lisp system I used was an implementation of Interlisp in Fortran.
fikka has joined #lisp
Oladon has joined #lisp
<void_pointer> oh, cool
slyrus1 has joined #lisp
Inline has quit [Read error: Connection reset by peer]
Inline has joined #lisp
Bike has joined #lisp
Inline has quit [Read error: Connection reset by peer]
Inline has joined #lisp
shka_ has joined #lisp
Inline has quit [Read error: Connection reset by peer]
Inline has joined #lisp
renzhi has quit [Ping timeout: 265 seconds]
ebrasca has quit [Ping timeout: 244 seconds]
ebrasca has joined #lisp
fikka has quit [Ping timeout: 276 seconds]
fikka has joined #lisp
fikka has quit [Ping timeout: 272 seconds]
undulate has joined #lisp
renzhi has joined #lisp
jmercouris has joined #lisp
SaganMan is now known as blackadder
Fare has quit [Ping timeout: 244 seconds]
nanozz has joined #lisp
nanoz has quit [Ping timeout: 276 seconds]
pedh has quit [Quit: Connection closed for inactivity]
Kundry_Wag has joined #lisp
Kundry_Wag has quit [Ping timeout: 268 seconds]
jmercouris has quit [Remote host closed the connection]
fikka has joined #lisp
asarch has joined #lisp
jack_rabbit has quit [Ping timeout: 272 seconds]
pjb has joined #lisp
robotoad has quit [Ping timeout: 244 seconds]
fikka has quit [Ping timeout: 244 seconds]
jack_rabbit has joined #lisp
zxcvz has quit [Quit: zxcvz]
zxcvz has joined #lisp
sjl has joined #lisp
TMA has quit [*.net *.split]
phadthai has quit [*.net *.split]
rvirding has quit [*.net *.split]
jgkamat has quit [*.net *.split]
krator44 has quit [*.net *.split]
jackdaniel has quit [*.net *.split]
tokenrove has quit [*.net *.split]
pok has quit [*.net *.split]
sellout has quit [*.net *.split]
Nikotiini has quit [*.net *.split]
micro has quit [*.net *.split]
phadthai has joined #lisp
jgkamat has joined #lisp
rvirding has joined #lisp
Nikotiini has joined #lisp
Fare has joined #lisp
varjagg has quit [Ping timeout: 240 seconds]
krator44 has joined #lisp
steiner has quit [Remote host closed the connection]
steiner has joined #lisp
steiner has quit [Remote host closed the connection]
Ricchi has quit [Ping timeout: 260 seconds]
steiner has joined #lisp
nanozz is now known as nanoz
jackdaniel has joined #lisp
igemnace has quit [Ping timeout: 240 seconds]
fikka has joined #lisp
micro has joined #lisp
trocado has joined #lisp
nanoz has quit [Quit: Leaving]
<trocado> hi! i think my quicklisp configuration is broken... anything other than quickloading a specific dist gives an error.
<trocado> for example: (ql:update-dist "alexandria") -> There is no applicable method for the generic function
<trocado> (NIL).
<trocado> when called with arguments
<trocado> #<STANDARD-GENERIC-FUNCTION QL-DIST:AVAILABLE-UPDATE (1)>
<trocado> any ideas on how to fix this?
robotoad has joined #lisp
housel has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
fikka has quit [Ping timeout: 265 seconds]
<trocado> same error on system-apropos-list, but list-local-projects works
<pjb> Yep. Fetch it again and re-install it.
brkr has joined #lisp
<trocado> ok, do I need to clean something before?
Kundry_Wag has quit [Ping timeout: 255 seconds]
<pjb> I would just move away ~/quicklisp
<pjb> before, you may collect the list of installed packages, if you want to re-install them.
<trocado> when I try to reinstall it says "Quicklisp has already been installed."
<trocado> ok
trocado has quit [Remote host closed the connection]
patlv has joined #lisp
emacsomancer has joined #lisp
buffergn0me has joined #lisp
sjl has quit [Quit: WeeChat 2.2-dev]
patlv has quit [Remote host closed the connection]
fikka has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
rozenglass has quit [Ping timeout: 256 seconds]
<asarch> Do you know a good ORM for PostgreSQL in Common Lisp?
edgar-rft has quit [Remote host closed the connection]
Pixel_Outlaw has joined #lisp
cage_ has quit [Quit: Leaving]
FreeBirdLjj has quit [Ping timeout: 260 seconds]
aindilis has quit [Read error: Connection reset by peer]
<Shinmera> Some say "good" and "ORM" are mutually exclusive
aindilis has joined #lisp
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
kerrhau has joined #lisp
<pjb> I agree. Mutually exclusive.
X-Scale has quit [Ping timeout: 276 seconds]
<Fare> asarch, I worked on QUAKE, though the backend was Oracle.
<Fare> the code is available as free software, slowly bitrotting.
<Fare> It's only as good as an ORM could be, but it did see industrial use.
fikka has quit [Ping timeout: 240 seconds]
Fade has quit [Remote host closed the connection]
Pixel_Outlaw has quit [Quit: Leaving]
buffergn0me has quit [Ping timeout: 276 seconds]
sabrac has quit [Ping timeout: 244 seconds]
X-Scale has joined #lisp
manumanumanu has joined #lisp
<manumanumanu> Anyone here familiar with the iter macro? I want to get the fibonacci numbers getting it, but all I am getting is powers of two :)
<manumanumanu> which is because I don't know how to work around it's let*-style variable bindings
<pjb> (loop :repeat 10 for a := 1 :then b :and b := 1 :then (+ a b) :do (prin1 a) (princ " ")) #| 1 1 2 3 5 8 13 21 34 55 --> nil |#
<pjb> (loop :repeat 10 for a := 1 :then b :for b := 1 :then (+ a b) :do (prin1 a) (princ " ")) #| 1 1 2 4 8 16 32 64 128 256 --> nil |#
<manumanumanu> exactly, but using the iterate macro :)
<manumanumanu> I know how to do it using loop
<manumanumanu> I am just curious to see how they compare, and I got stuck implementing my first test
<pjb> I never used iter. I would have to download and read the doc to help you…
random-nick has quit [Read error: Connection reset by peer]
<pjb> manumanumanu: have you it already downloaded?
<manumanumanu> of course
<pjb> manumanumanu: have you located its documentation?
<manumanumanu> they suggest working around the non-parallel bindings using iter's support for "previous x"
<pjb> Seems like a good advice.
<Bike> so yes, previous.
<manumanumanu> (for (repeat 10) (for a previous b initially 0) (for b initially 1 then (+ a b)) (collect b)) still produces 0 1 2 4 8 16 ...
rogersm has quit [Quit: rogersm]
<manumanumanu> but replace for with iter*
fikka has joined #lisp
<pjb> (iter (repeat 10) (for a previous b initially 0) (for a_-1 previous a) (for b initially 1 then (+ a_-1 b)) (collect b)) #| --> (1 1 2 3 5 8 13 21 34 55) |#
<manumanumanu> wow. that sucks.
<manumanumanu> hanks
<pjb> First time I write ITER, perhaps there's a better way.
<manumanumanu> thanks
<asarch> Oh
<asarch> "Good" in the sense of SQLAlchemy and not just "an ORM" in the sense of SQLObject (both for Python)
<asarch> But changing the question: any ORM for PostgreSQL in Common Lisp?
<manumanumanu> pjb: I am implementing something similar myself, but I'll probably go with something more let and let* styled. Like for and for*
<manumanumanu> thanks again
fikka has quit [Ping timeout: 244 seconds]
zxcvz has quit [Quit: zxcvz]
zxcvz has joined #lisp
Fare has quit [Ping timeout: 244 seconds]
<dim> asarch: please don't use ORMs, really
<dim> asarch: also Postmodern offers some high-level APIs to talk to PostgreSQL, that might be all you need here really
random-nick has joined #lisp
charh has joined #lisp
ckonstanski has joined #lisp
doubledup has quit [Quit: Leaving]
dolohov has joined #lisp
<Shinmera> manumanumanu: Like https://shinmera.github.io/for ?
dale has joined #lisp
Copenhagen_Bram has quit [Ping timeout: 272 seconds]
shka_ has quit [Ping timeout: 276 seconds]
Copenhagen_Bram has joined #lisp
<asarch> Thank you dim, thank you very much
<asarch> That's a very different perspective from Perl/Python where they use a lot of ORMs
undulate has quit [Quit: WeeChat 2.1]
<Shinmera> asarch: It's called the object-relational impedance mismatch.
<asarch> ?
* asarch takes notes...
<Shinmera> There's lots of literature out there describing why ORMs are a bad idea.
<asarch> Really?!
<asarch> Wow!
<asarch> They (people at Perl/Python) are wrong then
<PuercoPop> asarch: Not really, SQLAlchemy provides an SQL Expression API for a reason
<aeth> asarch: I'm sorry in advance if you're the person I said this to last time this subject came up, but...
<aeth> asarch: The Common Lisp solution is usually a linguistic solution.
<aeth> So people in CL normally want something like s-expressioned SQL so they can just treat SQL like a DSL
<PuercoPop> minion: memo for Fare: I can't find any reference to the QUAKE ORM you mentioned. Do you happen to have a link?
<minion> Remembered. I'll tell Fare when he/she/it next speaks.
<asarch> What is "DSL"?
dolohov has quit [Quit: WeeChat 2.2]
<aeth> Essentially, you want to build a language that solves your problem exactly, such as loop or format or cl-ppcre.
pjb has quit [Quit: ERC (IRC client for Emacs 25.1.1)]
pjb has joined #lisp
<aeth> If your language uses s-expressions it's very easy to integrate into CL. (Those examples don't.)
kajo has joined #lisp
dolohov has joined #lisp
light2yellow has quit [Quit: light2yellow]
<asarch> Oh :-(
<asarch> Well, from the point of view of them (Perl/Python people), ORMs are for abstract SQL operations on queries and since (as the On Lisp book says) you can actually create your own programming language with Lisp, I thought this "step" was "natural"
<aeth> If you can express an SQL query as an s-expression (which is then translated to a string), you can process it in Lisp. Even if this is done entirely at compile time (and at runtime you only have the SQL string), you can still do things with it in macros that generate that macro.
fikka has joined #lisp
<asarch> (select :from "users" :where :equal-p ("user" "~a") :and :less-p ("ages" 40))
<asarch> Roughly...
<aeth> Even if you have a CL ORM at some point it's probably just going to be working on SQL-as-s-expressions. (And you could build one on top of such a system.)
<asarch> I know, I know. It's a bad idea... :-(
<aeth> Looks like postmodern uses something similar, but they use :select
fikka has quit [Ping timeout: 268 seconds]
<aeth> Probably because even the select is a form within something and isn't itself a macro/function
<aeth> It's not flat like your line, though, which makes sense. You'd want something like (:and (:= ...) (:< ...))
<asarch> Yeah, yeah. My code is a fake :-P
Copenhagen_Bram has quit [Ping timeout: 272 seconds]
pierpa has joined #lisp
Copenhagen_Bram has joined #lisp
kajo has quit [Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.]
aeth has quit [Ping timeout: 268 seconds]
jasmith has joined #lisp
nowhereman_ has joined #lisp
aeth has joined #lisp
kajo has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
fikka has joined #lisp
kerrhau has quit [Read error: Connection reset by peer]
Oladon has quit [Quit: Leaving.]
desku has joined #lisp
dmh has joined #lisp
desku has quit [Quit: Leaving]
Oladon has joined #lisp
housel has joined #lisp
Fare has joined #lisp
dented42 has joined #lisp
mooshmoosh has quit [Ping timeout: 240 seconds]
mooshmoosh has joined #lisp
graphene has quit [Remote host closed the connection]
Kundry_Wag has joined #lisp
graphene has joined #lisp
Kundry_Wag has quit [Ping timeout: 244 seconds]
emacsomancer has quit [Quit: #hindu]
rumbler31 has joined #lisp
rumbler31 has quit [Remote host closed the connection]
random-nick has quit [Ping timeout: 244 seconds]
dented42 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
quazimodo has joined #lisp
graphene has quit [Remote host closed the connection]
fikka has quit [Ping timeout: 240 seconds]
Kundry_Wag has joined #lisp
fikka has joined #lisp
fikka has quit [Ping timeout: 240 seconds]
void_pointer has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
fikka has joined #lisp
nckx has quit [Quit: Updating my GNU GuixSD server — gnu.org/s/guix]
nckx has joined #lisp
meepdeew has quit [Remote host closed the connection]
emaczen has quit [Quit: ERC (IRC client for Emacs 26.1)]
Copenhagen_Bram has quit [Ping timeout: 240 seconds]
slyrus1 has quit [Ping timeout: 240 seconds]
emacsomancer has joined #lisp
Copenhagen_Bram has joined #lisp
Oddity has quit [Ping timeout: 256 seconds]
rumbler31 has joined #lisp
emacsomancer has quit [Quit: WeeChat 2.2]
rumbler31 has quit [Remote host closed the connection]
Arcaelyx has joined #lisp
Oddity has joined #lisp
Kaisyu has joined #lisp
nebunez has joined #lisp
marvin2 has joined #lisp