freenode/#lisp - IRC Chatlog
Search
5:15:20
adlai
ACTION enters halt state at https://github.com/rpav/ScriptL/blob/master/examples/example.lisp#L13
5:39:58
thmprover
I need to learn all the sordid details of CLOS's implementation (specifically its defgeneric and defmethod dispatching system), what's a good reference for that?
5:40:42
no-defun-allowed
I haven't read it, admittedly, but that's the CLOS implementation book to my knowledge.
5:42:15
thmprover
I'm trying to implement a constraint propagator system based on a paper by Gerald Sussman, and he uses a hackneyed generics system in Scheme which I think CLOS can handle...whatever-the-heck he's trying to do...better
5:43:50
no-defun-allowed
Oh, wait, if you want to know about method dispatch, then you might want CLHS 7.6.6 more.
5:43:52
specbot
Method Selection and Combination: http://www.lispworks.com/reference/HyperSpec/Body/07_ff.htm
5:52:48
adlai
thmprover: don't read AMOP unless you are trying to change the way the object system works
5:54:09
adlai
if you try writing equivalent lisp code to the scheme in the paper, you'll probably find that the CLHS includes all the functionality you need
5:54:50
thmprover
That's a relief! ...not that AMOP is not worth reading, but I would prefer to defer it...
5:54:57
no-defun-allowed
I had read "CLOS's implementation", which is somewhat different to, say "method dispatch specification".
5:55:43
adlai
read AMOP when you can focus on reading AMOP, rather than reading it for some quick hack
5:58:53
adlai
you're welcome! no-defun-allowed also gave you good link, for the detailed description of the standard combination
6:01:57
thmprover
I've bookmarked both, I'll read them both tomorrow after work. Thanks for the references, adlai and no-defun-allowed, but it is late, and I need sleep. I'll catch y'all tomorrow.
7:37:22
no-defun-allowed
jmercouris: Silly question, why did you name the Next browser to Nyxt? Better searchability?
8:01:42
adlai
contrapunctus: gift means gift in english, and gift in german. shell scripts have functions, so naming an executable in PATH "funcall" is just asking for desk head, palm face, and full amygdalar agonization
8:03:28
adlai
this gifts a whole new meaning to "i'll buy you a beer" "no, i pay for my own drinks" "please, a gift from the conference sponsor"
8:04:08
pve
contrapunctus: If you're on SBCL then you could have a look at https://github.com/pve1/shell-utility
8:07:55
contrapunctus
pve: thanks. I stared at the example for a few moments before I realized that I'm looking at keywords, not namespace prefixes hidden by nameless-mode. Spent too long in Emacs Lisp land π
10:15:25
luis
fe[nl]ix: I'll have to search for my bordeaux-threads stuff, but it's probably not very different from Shinmera/atomics. What did you have in mind?
10:21:02
Shinmera
Unfortunately the divergence between implementation capabilities in this regard is fairly big.
10:21:22
Shinmera
Atomics takes the minimal approach of just documenting the divergences and leaving it up to the user to decide what to do about it.
10:21:41
Shinmera
So I suppose a more high-level library that gives consistent results in cases such as atomic-incf would be useful.
10:22:30
Shinmera
Someone seems to have started work on something akin to that: https://github.com/muyinliu/cl-atomic
11:48:38
contrapunctus
Trying to install Quicklisp. Ran the first three commands on https://www.quicklisp.org/beta/ (the two curls and the gpg), but the last one says "gpg: Signature made Thu Jan 29 02:43:26 2015 IST gpg: using RSA key 307965AB028B5FF7 gpg: Can't check signature: No public key"
11:59:03
contrapunctus
Oh boy...`(quicklisp-quickstart:install)` says "Quicklisp has already been installed.", but something like `(ql:quickload "scriptl")` says "Package QL does not exist." π
11:59:34
lonjil
ck__: hello. I saw that you implemented the Ryuu algorithm last year. Do you have the code somewhere and could I use it for the SICL printer?
12:02:53
adlai
contrapunctus: it is not safe to proceed, all tarballs are unsigned. at least the code that downloads them isn't!
12:05:25
contrapunctus
Le sigh, another roadblock. (ql:quickload "scriptl") proceeds, but now I get what looks like a C++ compilation error. http://ix.io/2peS/text
12:05:41
adlai
you asked "What gives?", after pasting gpg output instead of reading what gpg told you. This says to me that you should not give a fuck about the gpg output, even if you understand English, although maybe I'm just a pessimist.
12:11:43
contrapunctus
adlai: I'm sorry, I don't understand the first thing about GPG. Granted, I do wish I had searched for that one, because retrospectively the results turned out to be something I could have worked from.
12:14:06
adlai
if you end up using quicklisp's bundles for distributing your application's libraries, then you might find it worthwhile to learn more about GPG, depending on what your application is and who uses it.
13:04:25
jmercouris
is there no way to get a more helpful debugger than this: http://dpaste.com/1G5RB6N ?
13:09:36
jmercouris
I wasted already 30 minutes trying to figure out what could be possibly causing this
13:57:46
phoe
Reflections on the Future History of Arming Bears - https://www.youtube.com/watch?v=WgYyujNP85g
14:02:37
adlai
thank you for making the recorded talks available, phoe, for those who couldn't arrive on time at the terminal :)
14:17:25
matzy_
so asdf is kinda confusing me right now. i have asdf version 3.3.1 (so the latest) which, according to what I'm reading online should automatically look in the ~/common-lisp folder, so does that mean I should symlink all my projects to that folder?
14:19:46
jmercouris
make a file located at ~/.config/common-lisp/source-registry.conf.d/user-lisp.conf
14:20:03
jmercouris
in this file put a statement like (:tree "/path/to/some/dir"), and then ASDF will look recusrively in that directory
14:23:47
matzy_
maybe phoe's approach, because then because you don't have to do any additional config
14:24:33
matzy_
just make sure the quicklisp/local-projects folder exists on the container and asdf should load from there, right?
14:41:18
SpaceIgor2075
Hello! What is the conventional way to organise a CL project? How do I organize files and stuff
14:44:18
phoe
if yes, (ql:quickload :quickproject) (quickproject:make-project #p"~/quicklisp/local-projects/my-new-awesome-project/")
15:19:03
adlai
SpaceIgor2075: also, think of the children, specifically, the ones who read code sequentially, and start distrusting their own minds when you use functions that you define further towards the end of the file
15:23:55
matzy_
my question is though, what if you want a lisp api with a different language as the front-end (in this case, typescript/react)
15:25:58
matzy_
back to symlinks? it sucks because that's such a modern and elegant solution, what you put above
15:41:02
phoe
if you have a monorepo with Lisp and JS mixed in, then ASDF/Quicklisp will only care about Lisp files - or, to be precise, about .asd files found in the directory tree
15:41:24
phoe
so you can have ~/quicklisp/local-projects/foo/server/ that has Lisp code and ~/quicklisp/local-projects/foo/client/ that has JS or whatever
15:41:39
phoe
Quicklisp and ASDF will only are about the former and it will only find and load the former
15:44:55
adlai
matzy_ also just vanished, moments after getting highlighted. "IRC", sigh the old folks, "just goes to show you never can help."
16:01:20
matzy_
sorry i got disconnected somehow, i have a full stack with a typescript/react front-end being managed by npm and a hunchentoot server back-end (with easy-routes for route handling and jonathan for json handling)
16:03:22
matzy_
*a full stack web app. but anyway here's a link to the repo if anyone has time to take a look at the api/a general strategy of how i would get this to work with asdf or quicklisp, that would be awesome
16:04:07
matzy_
though i guess i can just let quicklisp compile and run (server starts in main.lisp), and then run the react side with npm
16:06:02
phoe
no idea; playing with git repos is a fairly fluid thing, lots of organizations do multiple smaller repositories and lots of organizations go for massive monorepos that contain everything
16:06:40
matzy_
no worries, i'm kinda in the same boat. one other question, do you have to start sbcl from the directory you want asdf to make?
16:09:21
phoe
if you have your init file set up properly, then Quicklisp is already loaded when you run SBCL
16:09:41
matzy_
how you were telling my i could replace asdf:load-system or asdf:make with quicklisp
16:10:45
phoe
ASDF is the tool for loading and managing Lisp systems; Quicklisp is a tool that auto-downloads Lisp stuff from the internet and makes it available for ASDF to download
16:13:49
phoe
https://common-lisp.net/project/asdf/asdf.html says that asdf:make "does The Right Thingβ’ with your system"
16:14:25
phoe
software like https://github.com/Shinmera/deploy hooks into this in order to dump self-contained Lisp binaries
16:18:19
matzy_
and (ql:quickload) and (asdf:load-system) just make (if not there) or load an already-existing system for that sbcl session
16:18:30
phoe
if you want to see a trivial project, you can take a look at https://github.com/phoe-trash/furcadia-post-splitter/ - this has Deploy configured with Travis in order to produce nightly binaries on each commit
16:25:53
phoe
this is like https://github.com/Shinmera/deploy - it also has :defsystem-depends-on (:deploy)
16:27:06
matzy_
and then what do each of these values actually represent: :build-operation "qt-program-op" :build-pathname "raptor-splitter" :entry-point "furcadia-post-splitter:main"
16:27:55
phoe
:build-pathname tells ASDF to dump all the generated files in directory "raptor-splitter" relative to the repo
16:28:15
phoe
so that would be like ~/quicklisp/local-projects/furcadia-post-splitter/raptor-splitter/*
16:28:41
fe[nl]ix
Shinmera: cl-atomics is more similar to what I want, but that's already what I've started to do for B-T
16:30:18
phoe
https://github.com/Shinmera/qtools/blob/1f464a9c1314bbce451b2a15e189f9bc23f78361/deploy.lisp#L81
16:32:03
matzy_
so would you move my full-stack app into two repos, or will it not matter when i have it running on two separate docker containers
16:33:05
phoe
and you have a clear separation between frontend that runs on npm or whatever and backend which runs on hunchentoot or whatever.
16:40:45
matzy_
yeah i guess that does make more sense. it just looks more organized as a single repo, though maybe i'm still stuck in the "one-repo-perproject" mindset
16:43:22
phoe
if the total repo size is megabytes, then cloning everything on both instances won't matter in practice