freenode/#lisp - IRC Chatlog
Search
22:24:25
lonjil
lotuseater: yes, and CHECK-TYPE should work in a lot of cases. This is all very implementation-specific though, so I can't give much general advice.
22:28:01
lonjil
Runtime. It will check a type and if it doesn't match it will error. This means that anything after the CHECK-TYPE, must have that type. So it isn't like when you do (declare (type ..)), where you promise that a variable will have a value of a certain type, which is technically speaking undefined behaviour if you violate the promise. In practice most CL compilers will insert type checks unless you do (safety 0), though.
22:44:07
nij
Hello! I'm using sbcl and quicklisp, and have successfully loaded a package called `cl-permutation`.
22:44:57
nij
But the package has a long name.. is there anyway that I can get rid of that need, and type instead
22:49:07
no-defun-allowed
You probably shouldn't use IN-PACKAGE, lest you define some function or variable and clobber CL-PERMUTATION somehow.
22:51:02
lotuseater
yes of course you're right no-defun-allowed :) but in the REPL for experimenting it would be enough for first
22:55:54
Alfr
nij, there's also package-local-nicknames (in some implementations), if you only want a shorter name for it.
22:57:25
White_Flame
nij: if you're in CL-USER and doing things interactively, (use-package :cl-permutation) and that will make all the exported symbols from that visible in your current package.
22:58:14
White_Flame
if you're writing code "for real" in files, then yeah you want your own defpackage which can import, use, or local-nickname the package as a proper dependency
22:59:04
White_Flame
modern style really does promote using the package:symbol naming to avoid collisions, and the nicknames allow making it very short, say (perm:foo ...) if you want
22:59:45
White_Flame
but :use (which would allow you to just simply call (foo ...) from that used package) is still common
1:55:07
sukaeto
re: the "switching from vim to Emacs" - I switched to Emacs ~5 years ago after using vim for ~15 years. I just started with vanilla Emacs, installed evil, evil-org, and evil-collections. That was enough to get started, IME
1:57:21
sukaeto
I also feel as though Doom's attempts to make configuring Emacs easier rather make it more difficult
1:59:10
moon-child
it seems to me that doom was an attempt to construct a traditional IDE using emacs as a base. Emacs is no less capable of being an ide than anything else, but it somewhat misses the point of emacs; and if you're not going to spend the time to make emacs what you want, then there's not much point in such a tool
2:02:03
astronavt
the main thing i never liked about emacs is how the underlying functions were somewhat "hard coded", whereas in vim the convention is to have an "operator" that operates on a chunk of text and a subsequent "motion" that selects the text to be operated on
2:04:14
astronavt
as for lisp support specifically, ive recently started using Vlime and its pretty decent
2:05:02
astronavt
the vim plugin side of things is pretty conventional vim, and it comes with its own bundled swank server which i think is nice
2:17:56
astronavt
is it considered bad form to post my lisp question on stackoverflow in this channel?
2:18:11
astronavt
not sure how much overlap there is between "people who read the [lisp] tag on SO and people who read #lisp on freenode"
2:29:14
save-lisp-or-die
Are there any guix users here who might shed some light on why cffi can't find lisdl2 via (ql:quickload :sdl2) ? In other distros cffi looks in a sane spot, but that spot doesn't seem to be sane by guix's standards.
2:33:34
lotuseater
I look with fuzzy-find where the .so files are and push the path to cffi:*foreign-library-directories"
2:36:20
save-lisp-or-die
yeah I tried to cd into /gnu/store/...../profile/lib/ and running sbcl from that directory (cffi looks in the directory where sbcl is started), but that didn't seem to work either. It could have picked the wrong guix profile though. I'll keep at it. Your advice is more or less what I thought I'd have to resort to, but I wondered if there was some
2:37:38
lotuseater
edit your .sbclrc with (pushnew #p"/gnu/store/rest/of/your/path" cffi:*foreign-library-directories*)
2:39:11
save-lisp-or-die
I'll give it a shot. I have a feeling that the guix profile I'm using has to match the guix profile where the shared libraries are. I might have to write a script to update the .sbclrc whenever I change profiles.
3:00:43
sukaeto
astronavt: that's the thing about evil-mode - it brings vi (the language - what you described as operators and motions) to Emacs
9:14:38
hhdave
Hi phoe. I just saw your message from yesterday evening (I was afk). I guess posting the job ad page on the lisp reddit would be a good idea, do you think?
9:17:22
easye
A one-time, respectful post linking to your "recruitment pipeline" would be perfectly ok.
9:18:44
easye
There used to be a "Common Lisp jobs blog" sort of thing, but I don't think that has been active over the last couple years.
9:20:05
frodef
(defmaro m1 (v1) `(marolet ((m2 (v2) `(form v1 ,v2))))) How do I get v2 into my form?
9:20:42
easye
When you post to Reddit, invariably you will get a couple of the Twitter Lisperati to tweet the link.
9:24:27
easye
You might get a little slagging about aspects of the post and your company. For instance, Ravenpack's recent job offering was criticized for not posting a salary range.
9:25:01
easye
But have a thick skin, and let it ride. Those of us looking for Common Lisp jobs will appreciate it.
9:26:47
no-defun-allowed
On a bad day, I call ,', the "The Bird" operator, because nested quasiquotation is that tedious.
9:28:51
frodef
no-defun-allowed: thanks! I thought I'd tried that, but I guess my brain just bottomed out.
9:44:25
beach
Like I told the #sicl participants, if I were smarter than I am, I would have been able to simplify bootstrapping from the start, but I am what I am, so it is taking me several iterations. But I think it (i.e. the essence of what I need to do for bootstrapping to be understandable) finally makes sense to me.
10:07:43
flip214
luis: please provide some feedback. I'm adding JSON support to swank (instead of S-expressions).
10:08:53
flip214
First I send an S-expr to switch to JSON; but while that changes a slot in *emacs-connection*, the read loop (in another thread) already restarts DECODE-MESSAGE, so passing the "current" slot of *E-C* in doesn't work.
10:09:30
flip214
I can work around that by doing autodetection in READ-MESSAGE - #\( vs. #\[ use the right function.
10:17:35
flip214
Or I could define the decoder slot to be a list of decoders that's tried from the end... then I could append the json decoder, and the already-passed in list would become extended in READ-MESSAGE as well
10:22:34
Posterdati
phoe: I did a looping task tha occasionally could exit from loop and thus get executed
10:23:08
phoe
I don't know if lparallel provides an API for this kind of introspection; AFAIK usually you'd do that by trying to receive-result
10:24:00
Posterdati
phoe: if the task is still executing, does receive-result blocks the waiting task?