<pjb>
liambrown[m]1: quicklisp keeps mutating state. So, no, not a good idea to make it system-wide.
<pjb>
liambrown[m]1: what would be a good idea would be to make an immutable quicklisp, or a system-wide quicklisp service.
<pjb>
liambrown[m]1: also, consider that on a system, you may have systems depending on different versions of a same system, but quicklisp doesn't deal with versions.
mindCrime has quit [Ping timeout: 246 seconds]
<grewal>
Or you can throw caution to the wind, chmod -R 777 that directory and pray that nothing bad happens
<liambrown[m]1>
pjb: So it's not the precise analog of NPM or PIP? That makes sense. I wonder what it would take to tweak it so that there could be a single install for all users.
<liambrown[m]1>
Then again, on a shared system that may not even be wanted; I'm bringing my JS habits to Lisp, which could be limiting.
<pjb>
liambrown[m]1: you could download and compile all the systems in the distribution, for all the CL implementation available to the users, and make that read-only to all users.
<grewal>
One problem is that you use the same command for loading and installing.
anamorphic has quit [Quit: anamorphic]
nowhere_man has quit [Ping timeout: 258 seconds]
lucasb has quit [Quit: Connection closed for inactivity]
<aeth>
or you could just do the messy don't-do-this hackish route and chmod 777 all of it
<aeth>
wow
<aeth>
I didn't think someone would make the same suggestion so I wrote that while reading the backlog, but grewal already said that, my bad
<aeth>
liambrown[m]1: For one, you'd want to have it use HTTPS
<aeth>
Absolutely the #1 feature you'd need first.
orivej has quit [Ping timeout: 255 seconds]
ebrasca has joined #lisp
Oladon has joined #lisp
<liambrown[m]1>
That's right, it's pulling everything via HTTP, isn't it.
caltelt has quit [Remote host closed the connection]
<luis>
_ark_: surely you need to launch something on port 80 as well
quazimodo has joined #lisp
clothespin has joined #lisp
mooch has joined #lisp
quazimodo has quit [Ping timeout: 250 seconds]
<mooch>
hey, is anybody in here interested in developing emulators as well? i'm working on a project that i think you might be interested imn
<mooch>
*in
libre-man has joined #lisp
zmt01 has quit [Quit: Leaving]
X-Scale has joined #lisp
<PuercoPop>
Has anyone succeeded in loading OP5 in SBCL or migrate its build system to ASDF?
libertyprime has joined #lisp
dpg has quit [Remote host closed the connection]
kilimanjaro_ is now known as kilimanjaro
beach has joined #lisp
libertyprime has quit [Ping timeout: 246 seconds]
libertyprime has joined #lisp
<aeth>
mooch: If no one here answers, maybe someone in #lispgames would
libertyprime has quit [Ping timeout: 244 seconds]
zmt00 has joined #lisp
libertyprime has joined #lisp
libertyprime has quit [Ping timeout: 246 seconds]
idlus_ has quit [Ping timeout: 256 seconds]
libertyprime has joined #lisp
<mooch>
aeth, ah thanks!
libertyprime has quit [Ping timeout: 245 seconds]
idlus_ has joined #lisp
cosimone has quit [Quit: WeeChat 2.3]
<beach>
Good morning everyone!
<mooch>
good morning!
<mooch>
beach, would you be interested in helping with an emulation project of mine? i basically want to write emulation cores for a bunch of different components and make emulators based around them, in common lisp of course
<asarch>
How exactly do you get an executable binary file? I mean, I would like a binary for the (gtk-demo:main) function from the cl-cffi-gtk-demo-demo package
<asarch>
So, I evaluate (ql:quickload :cl-cffi-gtk-demo-demo package) and then (gtk-demo:main) and finally (sb-ext:save-lisp-and-die "tigger" :executable t)?
<beach>
mooch: I am sorry, but I am way too busy with other stuff. Plus, you really put me off when you told us that you disagree with basic principles of software engineering. There is no way I could collaborate with someone who writes that kind of code.
<asarch>
If yes, however, why the binary doesn't have permissions?: ksh: ./tigger: Permission denied
<mooch>
:c
<asarch>
In spite of it actually has them: -rwxr-xr-x 1 asarch 1000 76300824 May 2 22:04 tigger
Oladon has quit [Quit: Leaving.]
keep_learning_M has quit [Quit: Leaving]
keep_learning_M has joined #lisp
keep_learning_M has quit [Client Quit]
keep_learning_M has joined #lisp
<aeth>
beach: What are the basic principles of software engineering according to you? Do you have a blog or article somewhere?
<mooch>
aeth, the one he was referring to was encapsulation, which i honestly find pointless
<mooch>
i make everything public in my c++ code :/
<aeth>
mooch: Encapsulation is like CS 101 (or 102), that's going to be tricky to argue against.
<mooch>
i mean, i've never gone to college so lol
<mooch>
i'm self-taught
<mooch>
and i honestly don't see the point. if someone could explain it to me, then maybe it'd make sense
<aeth>
Well... There are many approaches. Here's one. Excluding debugging, you have to (within reason) anticipate every change that can be made if you want robust software. The more you expose, the more checks you have to add in.
<LdBeth>
PuercoPop: do you mean OPS5
<aeth>
Privacy can be, to some degree, a convention, though. For instance, in CL, if you start messing with unexported symbols that's kind of on you if the software breaks.
<mooch>
aeth, i mean, i only write emulators, so in my cpu cores, for example, i don't need to make anything private because the cpu core should already handle all edge cases
<LdBeth>
The programs don’t have to know they’re on emulator
<LdBeth>
That’s the point of encapsulation
<PuercoPop>
LdBeth: yeah!
<aeth>
mooch: sounds like your style probably has a few giant functions that does a bunch of de facto encapsulation
<LdBeth>
PuercoPop: then I don’t think you have to change it to make it work
<mooch>
LdBeth, no, that would just be accurate emulation lol
<aeth>
mooch: If you have a helper function for foo, bar doesn't need to know that it exists. Even if you're just doing things internally to one program.
<mooch>
yeah but why do you need that helper function?
<mooch>
what's the point of getters and setters?
<PuercoPop>
LdBeth: Apparently I meant ap5 U_U' http://ap5.com/
<aeth>
getters and setters in e.g. Java are mostly boiler plate.
<LdBeth>
PuercoPop: interesting so I’d never know that thing, I’ll look up that later
<PuercoPop>
LdBeth: It is a cool concept. You define your models and the application figures out how to best store them
orivej has joined #lisp
<aeth>
mooch: I'm more talking about, if you have a function that's 80 lines long with comments that serve as headings splitting it into 4 parts, why not turn those into four functions? And in CL it's pretty easy to split off functions because everything's an expression and almost everything returns a useful value
idlus_ has quit [Ping timeout: 256 seconds]
<aeth>
And once you have a dozen functions instead of one, it's pretty clear that you want a public interface, and most of the functions won't make the cut, at least not initially.
<LdBeth>
Let me bookmark the pages. Last time I thought I’ve seen a library introduces a meta class called cube which is for syncing database across languages
<LdBeth>
But I forgot the exact name
X-Scale has quit [Ping timeout: 246 seconds]
X-Scale` has joined #lisp
X-Scale` is now known as X-Scale
<mooch>
aeth, i mean, yeah, that makes sense :/
notzmv has quit [Ping timeout: 250 seconds]
femi has quit [Quit: ZNC 1.6.6+deb1ubuntu0.1 - http://znc.in]
<beach>
aeth: One such principle is "information hiding" which is the one that mooch publicly disagreed with when saying that everything should be public.
<aeth>
mooch: Note that that contrarian article has the author's semi-retraction at the top, though.
notzmv has joined #lisp
<beach>
aeth: I can't quote a single source for those principles to you, because I learned them as a result of life-long reading of books on the subject, but I am pretty sure that this one principle is cited in almost all books with "software engineering" in the title, and also in many other books on programming.
<mooch>
beach, i'm entirely self-taught, mostly through simple practice
<beach>
mooch: "I don't see the point" is different from "I disagree". The first one can be explained by ignorance and inexperience (both of which are fixable), whereas the second one reflects some conviction based on careful study.
<mooch>
i've never read a book on the subject, nor have i gone to classes for it
<aeth>
beach: I wasn't aware that the principles in question were so basic.
<beach>
mooch: It is time then to go read some books. I recommend reading one book per month or so.
<mooch>
i hate reading books ;-;
<mooch>
also i can't afford books
<mooch>
i only make like, $20 every two weeks
femi has quit [Quit: ZNC 1.6.6+deb1ubuntu0.1 - http://znc.in]
<beach>
mooch: There are plenty of books available for free as PDFs online.
<beach>
mooch: Now, if you hate reading, there is little that can be done to fix your ignorance and inexperience.
femi has joined #lisp
<aeth>
mooch: This is introductory material, so there should be plenty of $0 videos, websites, book PDFs, etc.
<mooch>
beach i've been programming for 10 years, which btw is half my life
<aeth>
(Of course, there are also plenty of $300 college textbooks on the subject, too.)
asarch has quit [Quit: Leaving]
<mooch>
i don't think "inexperienced" is the right word to describe me
<beach>
mooch: It is said that in software development, most people don't have 10 years of experience, but 1 year of experience 10 times.
<mooch>
?
<mooch>
da heck does that mean?
<beach>
mooch: That most programmers, you included, appear to learn nothing from the experience.
<aeth>
mooch: This is a different skill than just programming. Sort of one level more abstract than programming.
femi has quit [Client Quit]
<mooch>
beach, i mean, my code has gotten cleaner and cleaner over the years, so :/
<mooch>
please stop making assumptions about me
<aeth>
mooch: The skill in question is about building large applications that you can make changes to 10 years from now, or that other people can make changes to even if they're not too familiar with your code.
<beach>
mooch: Yes, I will stop now.
<mooch>
thank you
rwlisp has quit [Quit: rwlisp]
<aeth>
mooch: I don't doubt that you probably can program, but I would try programming a very large project just so you can see the necessity of some techniques you might not otherwise see the point of. Or program with a team of several people, if you haven't already.
<LdBeth>
PuercoPop: so at least I get ap5 build with CLISP, although there’s some issue with CLISP itself on save executable
<mooch>
i mean, i have worked on mame, so :/
<aeth>
mooch: that's pretty large
<mooch>
yeah
<mooch>
i've mostly just contributed two things though, one of which hasn't gotten merged yet
<mooch>
one of them is support for the i386 debug registers, and another one is a driver for the original iphone
Bike has quit [Quit: Lost terminal]
femi has joined #lisp
<aeth>
mooch: What kind of emulator project do you want to do in CL?
pankajgodbole has joined #lisp
<mooch>
okay, so basically, there would be libraries that emulate various components, and standalone emulators that use those libraries, but the libraries are shared between the various emulators!
idlus_ has quit [Ping timeout: 256 seconds]
chrpape has quit [Quit: ERC (IRC client for Emacs 26.1)]
<aeth>
mooch: what are you going to start with?
cpape has joined #lisp
<mooch>
aeth, the 6502 and the nes
<LdBeth>
Apple ][
<LdBeth>
Great
<aeth>
sounds practical to go for something popular
<aeth>
I probably would start with a simple RISC, though
<dmiles>
what would be nice is if i know how to get the old CLISP and new CLISP to dumpo their canonical versions in order to see where the new misunderstanding is
ricekrispie2 has quit [Ping timeout: 258 seconds]
<dmiles>
btw to get as far as i have in a port to SBCL it has involved running macroexpand and then using the macroexpanded code
<dmiles>
but i have a feeling somethihng that does those 40 hours a week instal of 40 hours a year would do better than me
<dmiles>
someone*
ltriant has quit [Quit: leaving]
JohnMS_WORK has joined #lisp
ltriant has joined #lisp
<dmiles>
is hsould probably take my ports and #+CLISP #+SBCL #+ABCL so that someone can continue the work
<xkapastel>
http://okmij.org/ftp/continuations/undelimited.html argues that delimited continuations are "more expressive" but that seems misleading, it's precisely because undelimited continuations are like `goto` that you can do weirder stuff with them
<xkapastel>
oops, wrong channel
lavaflow has quit [Ping timeout: 246 seconds]
Achylles has quit [Remote host closed the connection]
_whitelogger has joined #lisp
Achylles has joined #lisp
Achylles has quit [Read error: Connection reset by peer]
catalinbostan has quit [Ping timeout: 250 seconds]
ealfonso has quit [Ping timeout: 276 seconds]
ealfonso has joined #lisp
remexre has quit [Ping timeout: 255 seconds]
catalinbostan has joined #lisp
catalinbostan has quit [Read error: Connection reset by peer]
Folkol has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lumm has quit [Quit: lumm]
lumm has joined #lisp
Achylles has joined #lisp
ealfonso has quit [Ping timeout: 276 seconds]
Folkol has joined #lisp
cosimone has quit [Quit: WeeChat 2.3]
ealfonso has joined #lisp
skeuomorf has quit [Remote host closed the connection]
makomo has quit [Ping timeout: 250 seconds]
catalinbostan has joined #lisp
ealfonso has quit [Ping timeout: 276 seconds]
jsjolen has joined #lisp
ealfonso has joined #lisp
Achylles has quit [Read error: Connection reset by peer]
jessup has joined #lisp
Josh_2 has joined #lisp
Achylles has joined #lisp
Achylles has quit [Read error: Connection reset by peer]
Achylles has joined #lisp
wxie has joined #lisp
FreeBirdLjj has joined #lisp
clothespin has quit [Ping timeout: 276 seconds]
vms14 has joined #lisp
lumm has quit [Quit: lumm]
pierpal has quit [Quit: Poof]
pierpal has joined #lisp
Folkol has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Bike has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
cosimone has joined #lisp
Folkol has joined #lisp
FreeBirdLjj has quit [Ping timeout: 255 seconds]
Folkol has quit [Client Quit]
LiamH has joined #lisp
vaporatorius has quit [Read error: Connection reset by peer]
t58 has joined #lisp
Inline has joined #lisp
wxie has quit [Quit: Bye.]
wxie has joined #lisp
Folkol has joined #lisp
ludston has joined #lisp
rwlisp has joined #lisp
nimiux has joined #lisp
nimiux has left #lisp [#lisp]
orivej has joined #lisp
angavrilov has joined #lisp
wxie has quit [Quit: Bye.]
<phoe>
sjl: your keyboard-binding trick doesn't really work for me. There is a very short delay between pressing l-shift and it typing a paren. I can't really stand it.
TheWild has quit [Ping timeout: 246 seconds]
cage_ has joined #lisp
nullman` has joined #lisp
andrei-n has quit [Remote host closed the connection]
<phoe>
Also, I come back to a question - is it an error to call (find 1 '(1 2 3) :test nil) ?
<Bike>
yes, nil is not a function designator (or #'nil is undefined, whichever)
<phoe>
so I assume that (split-sequence 2 '(1 2 3) :test #'eql :test-not nil) should similarly blow up
<phoe>
however, (find 1 '(1 2 3) :test nil) doesn't fail on SBCL
<phoe>
so I am puzzled whether I should go "let's pretend the user didn't pass NIL in there" like SBCL does or signal an error which is the formal approach
<Bike>
okay, it's not an error, but it is UB
<jsjolen>
phoe: No. "The consequences are unspecified if both a :test and a :test-not argument are supplied in the same call to F. "
<Bike>
i mean just passing :test nil is undefined, i think.
mindCrime has joined #lisp
orivej has quit [Ping timeout: 250 seconds]
aeth has quit [Ping timeout: 246 seconds]
<jsjolen>
Bike: That was more difficult to find out. Typically a function can know if it actually was supplied with an argument in &key-position or not
<phoe>
that too
<Bike>
i recently ran into the confusing point that :key nil is actually fine.
<Bike>
i get why, but it's mildly annoying
<phoe>
Bike: wait, where, why, how
<phoe>
NIL isn't a function designator though
<Bike>
check e.g. clhs find-if
<Bike>
"key---a designator for a function of one argument, or nil."
<vms14>
I try to make some sort of html generator, but I've ended realizing the best I could do is to create a dom
<vms14>
in the annotations there is the output it gives
<koenig>
Here's a thought question: could you pass in the nesting-value as an argument to the render function and change how some of the recursion works?
<vms14>
yes, would be better?
<vms14>
and change how the function works, what do you mean?
<pjb>
vms14: you could add an indent parameter.
<koenig>
Hmm, I'd hesitate to use the word "better".
<vms14>
I know is a bad implementation
<vms14>
so I'll hear xD
<vms14>
koenig: cleaner*?
<koenig>
Any implementation that you've done is good. I rarely or never discourage people from writing code and trying. :)
<pjb>
vms14: oh, you used the nesting-value in the closure…
<koenig>
It might be more of how a computer scientist would think to write the recursion.
<vms14>
koenig: not really, I was very disappointed with the other versions until I've moved to oop
<vms14>
I'm not used to recursion yet
<pjb>
vms14: really, using a global (special variable) or a value in the closure are bad solutions, because they break with threads.
<koenig>
What I'd suggest is that you keep the current implementation and try to make a new implementation of the same functionality and see how the two compare.
<pjb>
vms14: using an explicit parameter is a little more work but it works better.
<koenig>
Part of learning anything is doing the exercises to become proficient.
<vms14>
pjb: ok I'll remember and change that
<koenig>
Yes, so the direct reasons pjb is describing would be why I'd do it. That's right.
<vms14>
koenig: yeah, that's just an exercise
<pjb>
vms14: ~T is implementation dependent, so it's better to use (format nil "~VAfoo" 4 "") #| --> " foo" |#
dyelar has quit [Quit: Leaving.]
<vms14>
what does ~va ?
<vms14>
oh
<vms14>
you don't need to put ~t before ~a?
<vms14>
you can just put ~3a
<pjb>
~A prints "" ~VA prints "" filling up to 4 with spaces.
<pjb>
vms14: but your indent is variable. hence the V
<sjl_>
And you're doing something like `sbcl --load foo.lisp` and then `./tigger`? Doing that runs the hello, world for me.
<sjl_>
Oh, I wonder if it's something in the CFFI/GTK that's causing problems. Does it work if you comment out the quickload line?
<asarch>
Then my SBCL is somehow broken
<asarch>
No, it doesn't work: ksh: ./tigger: Permission denied
<sjl_>
That's very strange. It's not something silly like you're running the thing in a separate terminal window that's cd'ed to a different directory or something, right?
FreeBirdLjj has quit [Remote host closed the connection]
<vms14>
asarch: sure you applied chmod or just looked with ls?
<asarch>
chmod +x tigger && ./tigger
<pjb>
:compression nil
<vms14>
if there is a problem should fail by executing it
<sjl_>
pjb: read scrollback
<vms14>
but not for permission stuff
<pjb>
ok.
<katco>
is there a better way to do this? `(let ((v (or (gethash 'foo bar) 0))) (setf (gethash 'foo bar) (+ v 1)))`. i.e. i can't use `incf` because the value in the hashtable is `nil` at first
<sjl_>
katco: gethash takes a third argument
<asarch>
I built this SBCL (the newest release) using the binary package from the OpenBSD 6.5 for AMD64 binary ports, and this was the compilation log if it helps: http://paste.scsys.co.uk/584312
<sjl_>
(incf (gethash 'foo bar 0))
<pjb>
Yes, since there's no comma, `(let ((v (or (gethash 'foo bar) 0))) (setf (gethash 'foo bar) (+ v 1))) is better written '(let ((v (or (gethash 'foo bar) 0))) (setf (gethash 'foo bar) (+ v 1)))
* katco
facepalm
<katco>
i totally forgot about that
<asarch>
I used ./make.sh --fancy
<asarch>
You mean, wxallowed?
<katco>
ty sjl_
<sjl_>
asarch: I mean, if just the basic (sb-ext:save-lisp-and-die "tigger" :toplevel (lambda () (format t "Hello, wold!~%"))) doesn't work something seems pretty wrong. Maybe #sbcl would know more.
<sjl_>
katco: np
karlosz has joined #lisp
<vms14>
asarch: if I run sbcl and type your pasted line (sb-ext:save-lisp-and-die "tigger" :toplevel (lambda () (format t "Hello, wold!~%")) :executable t)
<vms14>
It works in netbsd
<vms14>
vms$ ./tigger
<vms14>
Hello, wold!
<asarch>
Bingo!
mathrick has quit [Ping timeout: 276 seconds]
<asarch>
In OpenBSD you need to enable the wxallowed flag to the partition in order to run SBCL
<sjl_>
Oh yeah, a lisp image almost certainly needs to be able to write and execute memory, to compile and evaluate functions.
maxxcan has quit [Client Quit]
<vms14>
Processes that ask for memory to be made writeable plus executable using the mmap(2) and mprotect(2) system calls are killed by default. This option allows those processes to continue operation. It is typically used on the /usr/local filesystem
<asarch>
katco's facepalm reminds me that problem when I was trying to compile it two releases ago
<asarch>
./tigger
<asarch>
Hello, wold!
<vms14>
there is no such thing in netbsd
<asarch>
On a wxallowed-enabled partition
gjvc has quit [Remote host closed the connection]
<asarch>
Ok. Problem fixed. Next one: using (ql:quickload 'cl-cffi-gtk) (sb-ext:save-lisp-and-die :topleve (lambda () (gtk-demo:main)) :executable t) I get this: http://paste.scsys.co.uk/584313
<asarch>
Is it because of "Declared GType name 'BloatPad' for class 'BLOAT-PAD' is invalid (g_type_name returned 0)"?
<asarch>
That is just a warning, isn't it?
<sjl_>
that one seems like the CL GTK thing you're loading is maybe not playing well with whatever version of GTK it's finding from your system
<asarch>
Oh :-(
<sjl_>
I don't know for sure though. I've never used lisp+gtk before, and definitely not on a BSD
<sjl_>
so, someone else might know more
<asarch>
:-(
<asarch>
Thank you anyway
<asarch>
Thank you very much guys :-)
mathrick has joined #lisp
<vms14>
asarch: you can load that library without problems in openbsd + sbcl by using quicklisp?
<vms14>
I've tried to test your paste but quicklisp failed to load this library
<liambrown[m]1>
I have libffi.so.7.1.0 on my machine, and I want it to use that.
<pjb>
On Darwin 18.5.0 cc -o /Users/pjb/.cache/common-lisp/ccl-1.12-f98-macosx-x64/Users/pjb/quicklisp/dists/ultralisp/software/lokedhs-cl-rabbit-20190319101258/src/grovel__grovel-tmpB5GEVTOQ.o -c -m64 -I /opt/local/include/ -fPIC -I/Users/pjb/quicklisp/dists/quicklisp/software/cffi_0.20.0/ /Users/pjb/.cache/common-lisp/ccl-1.12-f98-macosx-x64/Users/pjb/quicklisp/dists/ultralisp/software/lokedhs-cl-rabbit-20190319101258/src/grovel__grov
<pjb>
<liambrown[m]1>
So I choose option 1, [USE-VALUE] Use another library instead.
<pjb>
I would advise to avoid packages using FFI, and even nmore those using grovel.
<pjb>
Groveling doesn't work, it's full of bugs.
<pjb>
For example it doesn't support #pragma packed.
dyelar has joined #lisp
<liambrown[m]1>
Is there an alternative for RabbitMQ? This is the one recommended in their official docs.
<pjb>
You can implement a message broken in pure lisp.
<Bike>
the cffi-libffi github has a commit "Add support for libffi.so.7" as of four days ago.
<Bike>
if you get a newer version of cffi-libffi maybe it will work.
<liambrown[m]1>
I can scour around for other options later, too. The wall I'm hitting is that I don't know how to provide the alternative value to the debugger.
<pjb>
The error is that amqp.h is not found…
<liambrown[m]1>
Oh, I just need development headers?
<liambrown[m]1>
cffi-libffi, is that a library specific to the Lisp implementation, or are we talking about something like the libffi I have installed?
<sjl_>
I'd try using run-program with :output and :error-output set to :string, instead of launch-program, until you debug what's going wrong. then switch back to launch-program if you want the asyncness
<seok>
Error opening #P"c:/Users/Seok/Desktop/port/": Access is denied.
<moldybits>
:o
<seok>
Hm, how can I allow CL access?
nowhere_man has joined #lisp
warweasle has joined #lisp
<moldybits>
try running it as administrator?
<seok>
ya, I am running portacle
<seok>
tried running portacle as admin, still error
<seok>
Access is ddenied
notzmv has quit [Ping timeout: 255 seconds]
<moldybits>
you're trying to run something inside the port/ directory? try putting it on desktop, since you seem to have access to that, at least, if that's what the error message is implying.
<moldybits>
if it's portacle specific you could try asking in #shirakumo
<seok>
Hm ya, it does seem specific to portacle installation
teej has quit [Remote host closed the connection]
sauvin has quit [Ping timeout: 252 seconds]
teej has joined #lisp
Jesin has quit [Quit: Leaving]
charh has quit [Ping timeout: 268 seconds]
charh has joined #lisp
Jesin has joined #lisp
lumm has quit [Quit: lumm]
lumm_ has joined #lisp
lumm has joined #lisp
TheWild has joined #lisp
lumm_ has quit [Ping timeout: 250 seconds]
maxxcan has joined #lisp
maxxcan has quit [Remote host closed the connection]
vms14 has joined #lisp
p9fn has quit [Ping timeout: 276 seconds]
<vms14>
I'm always having troubles with slime when I start
<vms14>
I like to use emacs --daemon and then emacsclient -t
ioa has quit [Ping timeout: 268 seconds]
<vms14>
but slime just gives me the inferior repl, I touched nothing and first days was working fine, giving me the slime-repl
Lord_of_Life has quit [Ping timeout: 255 seconds]
<vms14>
it says ;pipelined request... (swank:connection-info)
khisanth_ has quit [Ping timeout: 255 seconds]
<vms14>
if I type M-x slime-repl it gives me the CL-USER> repl, but it stills saying pipelined request at the minibuffer
warweasle has quit [Quit: later]
cosimone has quit [Quit: WeeChat 2.3]
<vms14>
I kill emacs, M-x slime-reset, M-x slime-restart-inferior lisp
<vms14>
sometimes works
Lord_of_Life has joined #lisp
<vms14>
now it's solved, but it will happen again every time the pc starts
<sukaeto>
vms14: I usually just start a Lisp image in its own console, and then (ql:quickload :swank) followed by something like (swank:create-server :port 4005 :style swank:*communication-style* :dont-close t)
<vms14>
the only info I've found is something like emacs is waiting for some response
<sukaeto>
vms14: and then M-x slime-connect in Emacs
<sukaeto>
fwiw, I also do emacs --daemon on Linux
<vms14>
hmm
gxt has quit [Quit: WeeChat 2.4]
<vms14>
I guess it will solve the problem Xd
Arcaelyx has quit [Ping timeout: 255 seconds]
<vms14>
tnx sukaeto
<sukaeto>
this also allows you to do things like have multiple Lisp images running (e.g. if you're using stumpwm and want to be able to connect to it, but also have another REPL going for any other random junk you're doing that you don't want to pollute your WM with)
<sukaeto>
vms14: no problem! :-)
<vms14>
do you use stumpwm?
<sukaeto>
I do
<vms14>
I wanted to try, but waited until I learn a bit more
ricekrispie2 has joined #lisp
<vms14>
I'm using cwm, but stumpwm is very interesting, even for learning lisp
<sukaeto>
it's pretty handy to be able to modify the WM on the fly
<sukaeto>
or just add your own customizations to it
<vms14>
you'll change it for another wm or de?
ricekrispie has quit [Ping timeout: 258 seconds]
<sukaeto>
yeah, I just use XFCE with xfwm replaced by stumpwm (and a few of the other XFCE services like xfdesktop turned off 'cause they don't play nice with WMs that aren't xfwm)
<vms14>
I'll try it sooner or later
notzmv has quit [Ping timeout: 244 seconds]
khisanth_ has joined #lisp
lumm has quit [Quit: lumm]
varjag has joined #lisp
lumm has joined #lisp
random-nick has quit [Ping timeout: 246 seconds]
MichaelRaskin has joined #lisp
catchme has quit [Quit: Connection closed for inactivity]
vlatkoB has quit [Remote host closed the connection]
random-nick has joined #lisp
Nilby has quit [Ping timeout: 252 seconds]
lumm has quit [Quit: lumm]
lumm has joined #lisp
v88m has joined #lisp
Arcaelyx has joined #lisp
cosimone has joined #lisp
cosimone has quit [Client Quit]
gxt has joined #lisp
digash has quit [Remote host closed the connection]
digash has joined #lisp
lumm has quit [Quit: lumm]
lumm has joined #lisp
karlosz has joined #lisp
ggole has quit [Quit: Leaving]
emacsomancer has joined #lisp
cosimone has joined #lisp
cosimone has quit [Client Quit]
cosimone has joined #lisp
cosimone has quit [Client Quit]
cosimone has joined #lisp
cosimone has quit [Client Quit]
<vms14>
(format t " class=\"~{~a ~}\"" (classes element)
<vms14>
how can I avoid printing the last space when it ends the list?
<vms14>
class="red button ">
scymtym has quit [Ping timeout: 276 seconds]
<vms14>
It's not really a problem, but it's annoying
angavrilov has quit [Remote host closed the connection]
<vms14>
the ~^ directive; within the body of a ~{ directive, the ~^ causes the iteration to stop immediately, without processing the rest of the control string, when no elements remain in the list.
<vms14>
tnx, I'll look for that
cosimone has joined #lisp
cosimone has quit [Client Quit]
<sjl_>
there's also a section about it in Practical Common Lisp
<sjl_>
The standard is a little hard to read for some of the format directives -- pcl is sometimes clearer
<vms14>
thanks a lot sjl_
<vms14>
every time I learn about format I like it more
<vms14>
like with lisp
<vms14>
xD
clothespin has quit [Ping timeout: 258 seconds]
digash has quit [Ping timeout: 246 seconds]
saravia_ has quit [Remote host closed the connection]
bars0 has joined #lisp
anamorphic has joined #lisp
anamorphic has quit [Client Quit]
keep_learning has quit [Ping timeout: 246 seconds]
p9fn has joined #lisp
lumm has quit [Quit: lumm]
lumm has joined #lisp
jprajzne_ has quit [Quit: jprajzne_]
lumm has quit [Client Quit]
lumm has joined #lisp
idlus_ has quit [Ping timeout: 256 seconds]
pierpal has quit [Ping timeout: 244 seconds]
gabbiel has joined #lisp
<gabbiel>
hey guys, I need help
<gabbiel>
is anyone here
cyberoctopi has joined #lisp
<gabbiel>
hopefully one of you sees this later
<sjl_>
people are here. if you ask a question, someone may see it and be able to help.
<gabbiel>
but basically, I need for slime to open after I open a .lisp buffer
<gabbiel>
the kick is, I want slime to open in a background buffer
<gabbiel>
aka, to not open a window
<p_l>
do you mean start a new slime session if there is none?
idlus_ has joined #lisp
karlosz has quit [Quit: karlosz]
<gabbiel>
i assume all lisp buffers r connected to the same slime buffer?
<gabbiel>
but yeah @p_l, if there is none, open a new one in the background
<p_l>
you can have multiple slime sessions, but I never tested how the buffers are mapped
<gabbiel>
if there is a slime buffer, do nothing
<gabbiel>
I dont like how with just adding a hook to lisp-mode, it will also open a window for the slime buffer
<p_l>
#emacs might know better - I do recall there's a hook for new file and there should be a hook that attaches SLIME as minor mode to Lisp-mode
<gabbiel>
lol I was recommended to come here
<p_l>
there definitely should be a method to override opening new windows
<p_l>
gabbiel: I think it might depend on how the question is asked?
<gabbiel>
I know it's possible to do this because geiser does it
<p_l>
But I'm not SLIME hacker nor I am all that well versed in Elisp
<gabbiel>
geiser, the scheme equivalent to slime, opens the geiser buffer and immediately closes it
<p_l>
best option might be to check possible entrypoints to slime called by M-x slime
<p_l>
and see if you can wrap it in something that won't create new window
<gabbiel>
what do u mean it might depend on how the question was asked?
<p_l>
gabbiel: if they smell SLIME in the question, they might decide to punt the question here in hopes you will talk to SLIME authors
<p_l>
who, indeed, frequent here but aren't there all the time
<p_l>
after all, question to source is best
<gabbiel>
tru
<moldybits>
there's #slime, but it's slow.
<gabbiel>
but they aren't here are they
<p_l>
I don't see anyone answering right now, so probably sleeping or busy with something else
<gabbiel>
yeah there's barely anyone there
<gabbiel>
ill still ask there though
<p_l>
you can try temporarily advising pop-to-buffer?
<pjb>
gabbiel: just put: (slime-setup '(slime-fancy slime-repl)) (slime-repl) in your ~/.emacs
<moldybits>
what will that do?
<gabbiel>
pjb: ill try that
<gabbiel>
pjb: what if I have a slime-contribs var
<gabbiel>
pjb: it gave an error
<gabbiel>
I think slime has to be running, the error was: not connected
<moldybits>
same error
nullman` has quit [Ping timeout: 245 seconds]
TheWild has quit [Ping timeout: 244 seconds]
TheWild has joined #lisp
aeth has quit [Ping timeout: 255 seconds]
aeth has joined #lisp
_ark_ has quit [Ping timeout: 276 seconds]
mihaiolteanu has joined #lisp
cdegroot has joined #lisp
mihaiolteanu has quit [Quit: rcirc on GNU Emacs 26.1]
Kaisyu has quit [*.net *.split]
postit has quit [*.net *.split]
hdurer[m] has quit [*.net *.split]
kqr has quit [*.net *.split]
p_l has quit [*.net *.split]
dtw has quit [*.net *.split]
drmeister has quit [*.net *.split]
buhman has quit [*.net *.split]
Grauwolf has quit [*.net *.split]
abbe has quit [*.net *.split]
dru1d has quit [*.net *.split]
LiamH has quit [Quit: Leaving.]
mihaiolteanu has joined #lisp
v88m has quit [Ping timeout: 246 seconds]
v88m has joined #lisp
<pjb>
gabbiel: then replace (slime-repl) by (slime)
fowlduck has quit [*.net *.split]
asedeno has quit [*.net *.split]
stylewarning has quit [*.net *.split]
l1x has quit [*.net *.split]
wilfredh has quit [*.net *.split]
pacon has quit [*.net *.split]
dieggsy has quit [*.net *.split]
dim has quit [*.net *.split]
xristos has quit [*.net *.split]
physpi has quit [*.net *.split]
liambrown[m]1 has quit [*.net *.split]
no-defun-allowed has quit [*.net *.split]
koenig has quit [*.net *.split]
argoneus has quit [*.net *.split]
margaritamike has quit [*.net *.split]
CEnnis91 has quit [*.net *.split]
Grue` has quit [*.net *.split]
jgkamat has quit [*.net *.split]
keep_learning_M has quit [Ping timeout: 255 seconds]
TheWild has quit [Ping timeout: 255 seconds]
keep_learning_M has joined #lisp
mihaiolteanu has quit [Ping timeout: 252 seconds]
elderK has joined #lisp
dru1d has joined #lisp
abbe has joined #lisp
p_l has joined #lisp
drmeister has joined #lisp
buhman has joined #lisp
Grauwolf has joined #lisp
postit has joined #lisp
actuallybatman has joined #lisp
asedeno has joined #lisp
fowlduck has joined #lisp
Kaisyu has joined #lisp
dim has joined #lisp
wilfredh has joined #lisp
koenig has joined #lisp
xristos has joined #lisp
jgkamat has joined #lisp
stylewarning has joined #lisp
kqr has joined #lisp
argoneus has joined #lisp
CEnnis91 has joined #lisp
l1x has joined #lisp
adolby has joined #lisp
dieggsy has joined #lisp
Josh_2 has joined #lisp
Grue` has joined #lisp
sjl_ has quit [Ping timeout: 244 seconds]
Josh_2 has quit [Quit: ERC (IRC client for Emacs 26.1)]
pacon has joined #lisp
Josh_2 has joined #lisp
no-defun-allowed has joined #lisp
femi has quit [Ping timeout: 250 seconds]
cosimone has joined #lisp
shka_ has quit [Ping timeout: 255 seconds]
<vms14>
why format fails identing just because I'm writing to a buffer instead of stdin?
<vms14>
I've just changed (format t ) for (format buffer)
<vms14>
and now the formatting is not consistent
<vms14>
tried with ~va and ~vt but they do the same
<vms14>
at some point is like it looses one space of identation
<gabbiel>
isnt format for output streams?
<vms14>
but just because I'm formatting to a fill pointer array instead of stdin
<vms14>
gabbiel: format accepts adjustable arrays with fillpointer
<vms14>
(defparameter *html* (make-array 0 :adjustable t :fill-pointer t :element-type 'character))
<vms14>
now you can format to *html*
<gabbiel>
but *html* isn't a stream
<vms14>
but is a valid object for format
<gabbiel>
doesn't format only take streams?
<vms14>
nope
<aeth>
Apparently format accepts both streams and strings with fill pointers. I personally would use with-output-to-string for this, though.
<aeth>
with-output-to-string is more flexible. Even when I use FORMAT, I probably use multiple FORMATs and maybe with a few TERPRIs thrown in so I don't have ugly format strings like "~%~%foo"
<LdBeth>
vms14: it seems indent requires to know the screen width of out put and apparently an array don’t know what is the width
<gabbiel>
vms14: try to make-string instead
varjag has quit [Ping timeout: 246 seconds]
<vms14>
LdBeth: thanks, that's a thing I'll never discover by myself I guess
moei has quit [Quit: Leaving...]
<vms14>
so there is no solution to that? it fails at some point but it looses only one space at the "identation level"
<vms14>
the dirty fix is just put a space where I see it's not working
<aeth>
vms14: so your problem is that you're doing something like this, but only getting 4 spaces in from of "hello"? (let ((s (make-array 0 :adjustable t :fill-pointer t :element-type 'character))) (format s "~VT~A" 42 "hello") s)
<aeth>
For my example, I get the same output with that and (with-output-to-string (s) (format s "~VT~A" 5 "hello")) and (format nil "~VT~A" 5 "hello") and they all give me 5 spaces
<vms14>
if you run it you'll see that it's not identing properly the body and html end tags
<phoe>
How do I check if a symbol is imported into a given package?
<Xach>
phoe: if find-symbol on the symbol name reports it as anything but :internal, i believe.
<gabbiel>
you can iterate through a package's symbols with loop
<Xach>
no need
pierpal has joined #lisp
Josh_2 has quit [Remote host closed the connection]
<Xach>
phoe: curious about why you might want that kind of info...can you elaborate?
<no-defun-allowed>
second value of FIND-SYMBOL seems promising
<Xach>
find-symbol is pretty powerful for finding a lot of the critical bits
<Xach>
more powerful than i expected until i wrote a package system clone.
<no-defun-allowed>
it'll be :inherited if the symbol is inherited (which sounds pretty similar to imported, haven't figured out all of CL packages)
<Xach>
no-defun-allowed: it is :inherited if it is "accessible" by way of :use/use-package.
<Xach>
"accessible" being precisely defined for CL symbols
<no-defun-allowed>
gotcha
<Xach>
a symbol is accessible in a package if find-symbol on its name in a package returns that symbol.
<Xach>
it might be :inherited, :internal, or :external if it is accessible.
<Xach>
inherited symbols cannot be exported - they are implicitly imported first if needed
pierpal has quit [Ping timeout: 250 seconds]
<no-defun-allowed>
right
<no-defun-allowed>
i think (eql (nth-value 1 (find-symbol the-symbol the-package)) :inherited) would test if the-symbol is imported in the-package though
* Xach
is still curious about phoe
<phoe>
Is it healthy and expected for DO-ALL-SYMBOLS to operate on a symbol which has no home-package?
<phoe>
parenscript seems to define a few of those
<Xach>
phoe: it is possible but not common that i've seen for a symbol to be imported and then uninterned.
<Xach>
it remains accessible in a package but is uninterned from its original home.
* Xach
looks up do-all-symbols
<Bike>
wow, there's a "find-all-symbols" function. i have never heard of this
<Xach>
Bike: dang
<Bike>
i could think of a few times i'd want it, too... mostly just for "i forget what package this is in", but still
<Xach>
you think you know all 978 and then this happens
Josh_2 has joined #lisp
<Xach>
phoe: it is possible but not common for do-all-symbols to find symbols like that. if they exist do-all-symbols is doing the right thing.
<phoe>
Xach: I know. But I suspect a bug.
<Xach>
phoe: in what parenscript is doing packagewise?
<phoe>
why would you need to create padding like that
<vms14>
but I have the same problem as with ~vt / ~va ""
<phoe>
this doesn't seem right
<vms14>
phoe: I'm writing html, so I try to ident the tags
Arcaelyx has quit [Read error: Connection reset by peer]
<vms14>
if I write to stdin I have no problem
<vms14>
but writing to a fill-array at some time it looses one space
Arcaelyx has joined #lisp
<phoe>
I'd use an external program to prettify your XML since I don't think someone has written a Lisp util for that
<phoe>
or just ignore it and display the HTML in a browser inspector for ultimate maneuverability
<phoe>
since you are writing a part of a pretty-printer right now, the one responsible for indentation
<gabbiel>
pjb: I GOT IT TO WORK
<vms14>
I just want to fix this without being dirty
<vms14>
even while making a function like that is being dirty yet
<vms14>
but it does not work, so the last thing I can do is to put a space where it fails xD
Jesin has quit [Quit: Leaving]
cosimone has quit [Quit: WeeChat 2.3]
Jesin has joined #lisp
pierpal has joined #lisp
wxie has joined #lisp
<aeth>
vms14: I usually just do something like (dotimes (i 4) (write-char #\Space stream))
<aeth>
This requires changing your input into a with-output-to-string stream
karlosz has joined #lisp
<pjb>
phoe: do-all-symbols will return only symbols that have a home package. The only thing is that between it providing the symbol, and you calling (symbol-package sym), another thread can unintern that symbol from its home! Importing a homeless symbol interns it in the package!
mooshmoosh has joined #lisp
<pjb>
vms14: ~T depends on the notion the formatter has of the current column. This notion can be borked.