taiju has quit [Remote host closed the connection]
taiju has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
LoopMacro has quit [Ping timeout: 252 seconds]
pjb has quit [Ping timeout: 240 seconds]
cranium has quit [Ping timeout: 250 seconds]
tyson2 has quit [Remote host closed the connection]
pjb has joined #commonlisp
jstoddard has quit [Quit: Time to go home.]
VincentVega has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 256 seconds]
Oladon has quit [Quit: Leaving.]
tyson2 has joined #commonlisp
cjb has quit [Read error: Connection reset by peer]
<akater[m]>
opalvaults2: I have a draft of cl spec exported to Info, and I do use it. There's a conversion tool, forked multiple times https://gitlab.com/akater/dpans2texi If you happen to use Gentoo, you can easily build and install info files using a package from my ebuild repository. Otherwise, conversion is not so straightforward.
jeffrey has joined #commonlisp
Catie has quit [Quit: Going home]
anticomputer_ has joined #commonlisp
<edgar-rft>
GCL (Gnu Common Lisp) has an info version of dpans3 in their sources.
<edgar-rft>
you don't need to use GCL, you only need to grab the info files :-)
<pjb>
and no more C compiling than say ecl or clisp…
<rotateq>
hihi, i was curious and let it install now
<rotateq>
yes i would have bet so
<pjb>
The all contain about 50% C code and 50% lisp code anyways.
<edgar-rft>
AFAIK GCL never was fully finished, it was developed to have a CL implementation good enough to run Maxima (Computer Algebra System) on Winows.
<edgar-rft>
*Windows
waleee has quit [Ping timeout: 252 seconds]
opalvaults2 has quit [Remote host closed the connection]
rotateq has quit [Ping timeout: 268 seconds]
qhong_ has left #commonlisp [ERC (IRC client for Emacs 28.0.50)]
paule32_ has joined #commonlisp
paule32 has quit [Ping timeout: 265 seconds]
Jing has quit [Remote host closed the connection]
Jing has joined #commonlisp
<Spawns_Carpeting>
What is the syntax in the (:use) part of defpackage?
<Spawns_Carpeting>
I see some people do :use :cl, :common-lisp, #:common-lisp, "COMMON-LISP" and many more
<Spawns_Carpeting>
are those all the same?
<mfiano>
Any string designator will do
<mfiano>
The name is the only important part
<mfiano>
clhs string designator
<Spawns_Carpeting>
are :cl and :common-lisp the same?
<mfiano>
:cl is the global nickname of the :common-lisp package
<Spawns_Carpeting>
also these use definitions will never download from the net right? I am just worried bc I don't want to type the name wrong and download from a typo squatter
lisp123 has joined #commonlisp
<Spawns_Carpeting>
i would need to use quickload to have code from the net from my understanding, just checking
<mfiano>
packages have nothing to do with code
<mfiano>
only symbols
<Spawns_Carpeting>
so requring this package later on still wont download anything?
<mfiano>
You are conflating packages and systems
<Spawns_Carpeting>
oh i see, yeah I am still very new to common lisp and lisp in general
<mfiano>
packages are not packages in other languages. they are just containers of symbol objects (namespaces)
<hayley>
It is unlikely you'd get typo-squatted, as Xach manually clears systems on Quicklisp (to my knowledge).
<Spawns_Carpeting>
that is actually really nice to know hayley
aeth has quit [Ping timeout: 256 seconds]
lisp123 has quit [Ping timeout: 240 seconds]
easye has quit [Ping timeout: 268 seconds]
aeth has joined #commonlisp
epolanski has quit [Quit: Connection closed for inactivity]
<Guest74>
I think that 'clears" only involves making sure it builds.
paule32 has joined #commonlisp
paule32_ has quit [Ping timeout: 252 seconds]
<Spawns_Carpeting>
well :use shouldn't download anything anyways in any circumstance from what I gather so it should not matter
<Spawns_Carpeting>
i can always run my stuff in a bwrap namespace with network cut off to make sure but that gets annoying to do sometimes.
<Spawns_Carpeting>
I have another question, can we not create functions with the same name in a package unrelated to a package that has the same named function?
<Spawns_Carpeting>
I have a function named replace for example, and I get an error trying to build the project
<Guest74>
that's because you have already imported a function named replace in that package.
<mfiano>
That's because you have (:use :cl) and you didn't :shadow :replace
<mfiano>
You cannot import a function
Jing has quit [Remote host closed the connection]
<Guest74>
you can import a symbol, which in this case names a function replace.
Jing has joined #commonlisp
<Guest74>
it could have been worded better.
taiju has quit [Ping timeout: 252 seconds]
<Spawns_Carpeting>
how can I use concatenate to join a list of chars into a string? I tried using apply without any luck
<hayley>
(coerce <the list> 'string) might work better.
<Spawns_Carpeting>
how would the concatenate version work anyways? it is possible right?
<Spawns_Carpeting>
i just want to see what im doing wrong
<hayley>
I suspect there's a way to do it with CONCATENATE, but there'd be no point.
<mfiano>
I like to be explicit, rather than using #'coerce, and sometimes I don't process the elements identically like this.
<beach>
Good morning everyone!
igemnace has joined #commonlisp
Guest74 has quit [Quit: Connection closed]
Guest74 has joined #commonlisp
<ori>
what's the best way to get a decent development environment going for a vim person on macos?
<ori>
i currently have portacle installed. wondering if I should try to set it up to use vim keybindings or if i should look for a comparable environment built on top of vim
semz has quit [Ping timeout: 250 seconds]
jeffrey has quit [Quit: Client quit]
karlosz has joined #commonlisp
Bike has quit [Quit: sleep]
<beach>
I always thought that the person who created `vi' did a great disservice to the community, since Emacs already existed. But in fact, `vi' was created before Emacs according to the dates that I found.
semz has joined #commonlisp
<beach>
It is strange, though. The point of Emacs is not the key bindings, but the fact that it is largely written in Lisp, thereby allowing lots of interesting subsystems. So why is there not (or is there?) a subsystem for Emacs that gives it the look-and-feel of vim? And if there is, why not use it instead to get the best of both worlds?
pdietz has quit [Ping timeout: 256 seconds]
<fe[nl]ix>
beach: there are at least a couple of packages that emulate vim to some degree of success
<fe[nl]ix>
but most vim users start it afresh on each file
<fe[nl]ix>
and some complain about the startup time of Emacs
<fe[nl]ix>
there's also the fact that vim plugins don't work in Emacs
<fe[nl]ix>
so a lot of code that enhances the Vim experience won't work
Spawns_Carpeting has quit [Quit: WeeChat 3.3]
<mfiano>
Many great Common Lisp hackers use vim.
<mfiano>
Steve Losh (sjl) is one of them.
<phantomics>
beach: the problem with alternate keybindings and control schemes for either Vim or Emacs is that it's a huge uphill battle to get people to switch to them, even if they're much better than the originals
karlosz has quit [Quit: karlosz]
<phantomics>
It was known when Emacs was first implemented that the b f n p direction system was really clunky, but it was done to ease adoption for the 10(!) users who were accustomed to the system in use at MIT previously
mfiano has quit [Quit: Lost terminal]
<phantomics>
My work in keyboard interface design for Lisp systems has involved moving toward a concept based on navigational metaphors for different actions
mfiano has joined #commonlisp
<beach>
fe[nl]ix: I see.
<phantomics>
For example, in the standard mode, hjkl move the cursor as in Vim. You can go into a copy/paste mode where → copies selected content to the clipboard/kill ring, ← pastes from the clipboard to the cursor point, and ↑↓ change the selected item in the clipboard
<beach>
phantomics: What is the "b f n p direction system"?
<phantomics>
C-f goes forward, C-b goes back etc.
<beach>
Why is it more "clunky" than any other direction system?
<beach>
phantomics: hjkl seems to depend on a particular keyboard layout.
<phantomics>
The keys are far apart, you can't easily press them in succession compared to hjkl or arrow keys
<beach>
And the arrow keys are far away from the home position.
<phantomics>
In an alternate layout, you could remap the directions to use the same key positions in Dvorak, Colemak etc.
lisp123wind0wz has joined #commonlisp
<lisp123wind0wz>
ori: Are you still there?
<lisp123w>
For MacOS, best set up I found was emacsformacosx.com, together with your lisp implementation of choice
<beach>
phantomics: What source do you have for the information that it was "known ... that the b f n p direction system was really clunky"?
lisp123wind0wz has left #commonlisp [#commonlisp]
<phantomics>
I think I recall reading something from RMS about it
lisp123w has quit [Quit: ERC (IRC client for Emacs 26.3)]
lisp123w has joined #commonlisp
<lisp123w>
Then Evil Mode + Paredit + some bindings. Use paredit in insert mode, and use VI(M) bindings in normal mode
<lisp123w>
That way you have the extensibility of Emacs, with the more useful keybindings of VI(M)
Posterdati has quit [Read error: Connection reset by peer]
<lisp123w>
beach: The eye opener moment for me was thinking of touch typing -> Since most of VIM keys are single keystroke, it becomes similar to touch typing fast, whereas with Emacs, having to press control a lot slows things down considerably
<lisp123w>
For very minor movements, Emacs is better since you dont need to switch between Insert & Normal modes, so the best solution is to use both
Guest74 has quit [Quit: Connection closed]
<ori>
lisp123w: cool, thanks — i'll check it out
karlosz has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
Jing has quit [Remote host closed the connection]
Jing has joined #commonlisp
<beach>
phantomics: One of my first complaints when I observe my students using Emacs, is that they overuse commands to move by character an line. They are slow and/or "error prone" (missing the target), not because they are "clunky" to invoke, but by the unit of motion.
<beach>
Most often, it is better to use one of the commands for words (M-f, M-b, M-t in Emacs) or expression (C-M-f, C-M-b, C-M-t, C-M-a, C-m-e, etc.) or even a simple one like M-m. So perhaps the people who desire commands for simple consecutive motions by character don't have access to, or they under-use more appropriate commands?
<beach>
lisp123w: Yes, I see.
lisp123 has joined #commonlisp
<phantomics>
beach: I often do that as well, but those commands also have the problem of b, f etc. not being ergonomic. If it was M-h, M-l etc. to move from word to word that would be easier to remember
<phantomics>
And when I built a Web keyboard interface I took advantage of the keyboard abstraction providing keyup and keydown events to use letter keys as modifiers, so that way you can have many more modifiers than Ctrl, Meta, Super etc.
lisp123 has quit [Ping timeout: 260 seconds]
blihp has quit [Quit: Leaving]
gaqwas has joined #commonlisp
shka has joined #commonlisp
Jing has quit [Read error: Connection reset by peer]
notzmv has quit [Ping timeout: 250 seconds]
Jing has joined #commonlisp
remexre has quit [Remote host closed the connection]
Cymew has joined #commonlisp
frodef has quit [Ping timeout: 240 seconds]
remexre has joined #commonlisp
frodef has joined #commonlisp
makomo has quit [Ping timeout: 250 seconds]
rain3 has joined #commonlisp
rain3 has quit [Ping timeout: 268 seconds]
attila_lendvai has joined #commonlisp
luis has quit [Ping timeout: 256 seconds]
luis has joined #commonlisp
pve has joined #commonlisp
cranium has joined #commonlisp
treflip has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
pranavats has joined #commonlisp
heisig has joined #commonlisp
lisp123 has joined #commonlisp
ghard has quit [Ping timeout: 250 seconds]
waleee has joined #commonlisp
lisp123 has quit [Ping timeout: 268 seconds]
cosimone has joined #commonlisp
edgar-rft has quit [Quit: Leaving]
Algernon69 has joined #commonlisp
Algernon91 has joined #commonlisp
Algernon69 has quit [Ping timeout: 240 seconds]
gaqwas has quit [Ping timeout: 240 seconds]
heisig has quit [Quit: Leaving]
s-liao has quit [Quit: Client closed]
easye has joined #commonlisp
rain3 has joined #commonlisp
rain3 has quit [Remote host closed the connection]
rain3 has joined #commonlisp
notzmv has joined #commonlisp
rain3 has quit [Ping timeout: 240 seconds]
cosimone` has joined #commonlisp
karlosz has quit [Quit: karlosz]
cosimone has quit [Ping timeout: 256 seconds]
aartaka has joined #commonlisp
kakuhen has quit [Read error: Connection reset by peer]
peterhil__ has joined #commonlisp
hobo_ has joined #commonlisp
derelict has joined #commonlisp
ultera- has joined #commonlisp
greyrat has joined #commonlisp
snits_ has joined #commonlisp
selwynning has joined #commonlisp
kakuhen has joined #commonlisp
utis_ has joined #commonlisp
Demosthe1ex has joined #commonlisp
jackdani1l has joined #commonlisp
ryanbw1 has joined #commonlisp
shka has quit [*.net *.split]
taiju has quit [*.net *.split]
peterhil_ has quit [*.net *.split]
djuber has quit [*.net *.split]
hobo has quit [*.net *.split]
srji has quit [*.net *.split]
jeosol has quit [*.net *.split]
utis has quit [*.net *.split]
gabc has quit [*.net *.split]
okflo has quit [*.net *.split]
Demosthenex has quit [*.net *.split]
greyrat_ has quit [*.net *.split]
selwyn has quit [*.net *.split]
jackdaniel has quit [*.net *.split]
ultera has quit [*.net *.split]
ryanbw has quit [*.net *.split]
snits has quit [*.net *.split]
tetrahedron has quit [*.net *.split]
ultera- is now known as ultera
Demosthe1ex is now known as Demosthenex
taiju has joined #commonlisp
djuber has joined #commonlisp
jeosol has joined #commonlisp
gabc has joined #commonlisp
okflo has joined #commonlisp
srji has joined #commonlisp
Colt has quit [Remote host closed the connection]
Colt has joined #commonlisp
shka has joined #commonlisp
rogersm has joined #commonlisp
lisp123 has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 240 seconds]
Lord_of_Life_ has joined #commonlisp
lisp123 has quit [Ping timeout: 250 seconds]
s-liao has joined #commonlisp
Lord_of_Life_ is now known as Lord_of_Life
VincentVega has joined #commonlisp
voltron has joined #commonlisp
igemnace has quit [Remote host closed the connection]
voltron has quit [Read error: Connection reset by peer]
voltron has joined #commonlisp
VincentV` has joined #commonlisp
VincentVega has quit [Ping timeout: 256 seconds]
jackdani1l is now known as jackdaniel
jackdaniel has quit [Changing host]
jackdaniel has joined #commonlisp
edgar-rft has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
aartaka has quit [Ping timeout: 268 seconds]
anticomputer_ has quit [Remote host closed the connection]
anticomputer has joined #commonlisp
s-liao has joined #commonlisp
aartaka has joined #commonlisp
treflip has quit [Remote host closed the connection]
treflip has joined #commonlisp
rotateq has joined #commonlisp
paul0 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
attila_lendvai has quit [Ping timeout: 268 seconds]
lisp123 has quit [Ping timeout: 250 seconds]
anticomputer_ has joined #commonlisp
anticomputer has quit [Ping timeout: 276 seconds]
VincentV` has quit [Ping timeout: 250 seconds]
rain3 has joined #commonlisp
voltron has quit [Ping timeout: 250 seconds]
pranavats has left #commonlisp [Error from remote client]
random-nick has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
cranium has quit [Quit: Leaving]
Posterdati has joined #commonlisp
Posterdati has quit [Remote host closed the connection]
cage has joined #commonlisp
lisp123 has joined #commonlisp
s-liao has joined #commonlisp
tyson2 has joined #commonlisp
lisp123 has quit [Ping timeout: 265 seconds]
pranavats has joined #commonlisp
Guest74 has joined #commonlisp
edgar-rft has quit [Quit: Leaving]
igemnace has joined #commonlisp
Bike has joined #commonlisp
edgar-rft has joined #commonlisp
xantoz has joined #commonlisp
pdietz has joined #commonlisp
s-liao has quit [Quit: Client closed]
waleee has quit [Ping timeout: 268 seconds]
lisp123 has joined #commonlisp
Cymew has quit [Ping timeout: 240 seconds]
lisp123 has quit [Remote host closed the connection]
amb007 has quit [Ping timeout: 260 seconds]
amb007 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
sjl has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
edgar-rft has quit [Quit: Leaving]
_73 has joined #commonlisp
<_73>
How can I splice a list into a macro call? For example I have a macro `(defmacro foo (&rest args) ...)` which works fine when called like `(foo "bar" "baz")` by I would like to be able to call it with a predefined list like `(foo (list "bar" "baz"))`.
<jackdaniel>
(eval `(foo ,@your-list)) if you really must, but macros should be expanded i.e from other macros
<jackdaniel>
because the list you have is not known at compile time
<jdz>
_73: You maybe do not want the ARGS to be &REST args.
<jdz>
If the list is a single parameter.
<_73>
yes the list is a single parameter. I now see that my idea is flawed.
Catie has joined #commonlisp
<_73>
oh of course the list is not known at compile. I understand now.
tyson2 has joined #commonlisp
pdietz has quit [Quit: Client closed]
cosimone` has quit [Ping timeout: 250 seconds]
cosimone has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
<Guest74>
jackdaniel what if you have the list stored in a symbol known at compile time? Macro within a macro?
<jackdaniel>
when the list is know at compile time then you could do (macrolet ((guest-74 () `(foo ,@your-list)) (guest-74))
Posterdati has joined #commonlisp
VincentVega has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
peterhil_ has joined #commonlisp
peterhil__ has quit [Remote host closed the connection]
Algernon666 has joined #commonlisp
peterhil_ has quit [Remote host closed the connection]
peterhil_ has joined #commonlisp
Algernon91 has quit [Ping timeout: 250 seconds]
Oladon has joined #commonlisp
<mfiano>
(list "bar" "baz") is a list of 3 elements when the macro sees it. You could handle this at macro expansion time.
<Guest74>
hm, and I guess I use quote, that'll probably be a problem on some implementations. guess i'll figure it out when I actually figure out what I want the macro call to look like.
pranavats has joined #commonlisp
treflip has quit [Quit: good night ✨]
Guest74 has quit [Quit: Connection closed]
treflip has joined #commonlisp
ryanbw1 is now known as ryanbw
makomo has joined #commonlisp
Cymew has joined #commonlisp
edgar-rft has joined #commonlisp
treflip has quit [Quit: good night ✨]
Oladon has quit [Quit: Leaving.]
<pjb>
_73: if the list is not known at compilation time, then you don't want a macro, but a function.
VincentV` has quit [Remote host closed the connection]
attila_lendvai has quit [Ping timeout: 256 seconds]
shka has quit [Ping timeout: 260 seconds]
selwynning is now known as selwyn
nature has quit [Ping timeout: 252 seconds]
aartaka has quit [Ping timeout: 265 seconds]
karlosz has quit [Quit: karlosz]
varjag has quit [Ping timeout: 250 seconds]
aartaka has joined #commonlisp
karlosz has joined #commonlisp
aartaka has quit [Ping timeout: 252 seconds]
djuber has quit [Ping timeout: 256 seconds]
gaqwas has quit [Ping timeout: 245 seconds]
notzmv has quit [Ping timeout: 250 seconds]
Algernon91 has quit [Read error: Network is unreachable]
Spawns_Carpeting has joined #commonlisp
<dbotton>
I have a series of functions that are defsetf functions - I want to be able to use funcall to to select which one to use from a string such as - (setf (funcall "color" control) "yellow") this doesn't work is there a syntax that would?
<Catie>
If I'm not mistaken you can (funcall #'(setf thing) new-value place)
<Catie>
Or rather (funcall #'(setf place) new-value thing), I think my original terminology is different from what I'm trying to express
<Catie>
Okay how about (funcall #'(setf car) 3 (list 'a 'b 'c)) works the way I want it to. That's a good and concrete sentence
<hayley>
I would have a table of strings to functions, which would avoid the SETF machinery.
<dbotton>
not an option here
<White_Flame>
or maybe map it to defmethods
<Nilby>
There's also setf methods e.g. (defmethod (setf foo) (...) which can even be used (eql x) specialization.
<dbotton>
these are methods
<_death>
dbotton: (funcall (fdefinition (list 'setf (get-symbol control "color"))) "yellow")
Jing has quit [Remote host closed the connection]
tyson2 has joined #commonlisp
Jing has joined #commonlisp
<dbotton>
get-symbol is undefined
<_death>
although if you really mean defsetf, it won't work because defsetf only defines a setf expander
<dbotton>
I used defsetf
<_death>
dbotton: it's up to you to implement get-symbol, say by using cond or a hash-table or find-symbol, depending on where the string comes from and what it may be
<_death>
dbotton: so work with the update functions you pass to it.. the expander is useful at expansion time not runtime (you can of course eval, but...)
<_death>
it's also possible that you don't actually need defsetf and can just defun a setf function.. then the funcall form I gave will work
s-liao has joined #commonlisp
<mfiano>
I'm fairly new to CFFI (and C for that matter). Could anyone share some best practices for working with multiple shared libraries in the same project/package?
<mfiano>
I read the manual but it doesn't say very much in this regard. Like can I "use-foreign-library" with multiple libraries? Should I always use the :library flag to defcfun, etc...