phoe changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <http://cliki.net/> <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.16, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
quazimodo has joined #lisp
<nydel> grewal: thank you
ecilam has joined #lisp
dmiles has quit [Read error: Connection reset by peer]
pfdietz has quit [Ping timeout: 256 seconds]
ecilam has quit [Remote host closed the connection]
ecilam has joined #lisp
q9929t1 has joined #lisp
wxie has joined #lisp
q9929t has quit [Ping timeout: 246 seconds]
q9929t1 is now known as q9929t
q9929t1 has joined #lisp
q9929t has quit [Ping timeout: 248 seconds]
q9929t1 is now known as q9929t
q9929t1 has joined #lisp
dmiles has joined #lisp
quazimodo has quit [Ping timeout: 248 seconds]
q9929t has quit [Ping timeout: 244 seconds]
q9929t1 is now known as q9929t
wxie has quit [Quit: wxie]
q9929t has quit [Ping timeout: 248 seconds]
igemnace has quit [Quit: WeeChat 2.4]
q9929t has joined #lisp
dmiles has quit [Read error: Connection reset by peer]
ebrasca has joined #lisp
rumbler31 has quit [Remote host closed the connection]
karlosz_ has joined #lisp
dmiles has joined #lisp
q9929t has quit [Ping timeout: 245 seconds]
karlosz_ has quit [Quit: karlosz_]
karlosz_ has joined #lisp
karlosz_ has quit [Quit: karlosz_]
t58 has quit [Quit: Night]
shifty has joined #lisp
Lord_of_Life has quit [Ping timeout: 248 seconds]
Lord_of_Life has joined #lisp
leb has joined #lisp
dmiles has quit [Read error: Connection reset by peer]
beach has quit [Ping timeout: 258 seconds]
mathrick has quit [Ping timeout: 252 seconds]
karlosz_ has joined #lisp
esrse has joined #lisp
emaczen has joined #lisp
beach has joined #lisp
mathrick has joined #lisp
cantstanya has quit [Remote host closed the connection]
zotan has quit [Ping timeout: 248 seconds]
cantstanya has joined #lisp
Ahmedkh has joined #lisp
<beach> Good morning everyone!
<Ahmedkh> Morning
<emaczen> morning beach
<LdBeth> Morning
zotan has joined #lisp
mbrumlow has joined #lisp
<mbrumlow> abarbosa: I have no issue loading the module (the stumpwm module to support ttf fonts was the problem. But once I got it all working clx-truetype could not see my font (many fonts appeared to be missing).
<mbrumlow> That is truetype fonts.
<ebrasca> Good morning beach !
<abarbosa> mbrumlow: one issue is that you have to check how those fonts are called with clx-truetype...
<abarbosa> or even worse, if you have installed that font after instlaling clx-truetype you must to "fc-cache" it ...
<abarbosa> (cache-fonts)
<abarbosa> under a lisp system you would have to call it as:
<abarbosa> (font (make-instance 'font :family "Times New Roman" :subfamily "Bold Italic"
<abarbosa> :size 12 :antialiased t))
<abarbosa> but with stumpwm change that "font" to "set-font"
Lycurgus has joined #lisp
rumbler31 has joined #lisp
<abarbosa> anyway, for more info, let us know what issue you have at stumpwm issues page
<abarbosa> stumpwm-contrib needs more info in its modules org files
<abarbosa> and ofcourse, (load-module "ttf-fonts") must be called too
<abarbosa> mbrumlow: (load-module "ttf-fonts") (xft:cache-fonts) (set-font (make-instance 'xft:font :family "Hack" :subfamily "Regular" :size 11))
<abarbosa> :d
<abarbosa> :D
abarbosa has quit [Remote host closed the connection]
dale has quit [Quit: dale]
abarbosa has joined #lisp
<mbrumlow> abarbosa: yup, that is what I did.
<mbrumlow> Font not found.
<mbrumlow> abarbosa: I can get xft to list the fonts it knows about and Hack is missing, long with most other monospace fonts (I don't think it is a monospace problem).
<abarbosa> oooh
<abarbosa> that is weird
hdasch has joined #lisp
<mbrumlow> I tried in sblc and straced it, it did read the font file, just rejected it as a true type font I think.
<abarbosa> mbrumlow: tss, maybe its time to revisit how to approach it...
<abarbosa> anyway, as I said, at stumpwm you might get better help... as there are people that knows its better
<abarbosa> hehe
<mbrumlow> Hack was first in my local home dir, I moved it to various places to see if it was preferring system installed fonts only.
Oladon has quit [Read error: Connection reset by peer]
<mbrumlow> When I have more time I can look at it closer, I just did not have nay more time to get a working WM going. So back to EXWM until
Oladon has joined #lisp
abarbosa has quit [Remote host closed the connection]
abarbosa has joined #lisp
Lycurgus has quit [Remote host closed the connection]
torbo has quit [Remote host closed the connection]
<abarbosa> mbrumlow: I just correctly loaded hack
<abarbosa> what your system? and how you got that hack font
<abarbosa> usually fonts reside at .local/share/fonts or usr...
<abarbosa> fc-list listed all hack weight...
<abarbosa> and there is a chance that latest stumpwm version have a issue...
<abarbosa> I had some, but as I having building it myself (git pulling) those are gone
crystalball has joined #lisp
theBlackDragon has quit [Ping timeout: 268 seconds]
crystalball has quit [Client Quit]
emaczen has quit [Ping timeout: 256 seconds]
<mbrumlow> ubuntu 19.04, I downloaded Hack from their github page a while back.
<mbrumlow> https://brumlow.io/-m/p/_scratch_-145-471.html <- fc-list grep hack
<abarbosa> just like mine, but debian and hack from repo
<abarbosa> mbrumlow: your quicklisp installation is under $HOME/quicklisp?
<abarbosa> might be it.
<mbrumlow> abarbosa: I moved it to $HOME/lisp/quicklisp
<abarbosa> either way, what is stumpwm is saying as you try to load hack?
<mbrumlow> It can't find the font :/
<abarbosa> mbrumlow: Do stumpwm knowns that new quicklisp location?
atgreen has quit [Remote host closed the connection]
<mbrumlow> Yeha, I had a idea hold on.
<abarbosa> if quicklisp is at $HOME it reckon everything out-of-box
atgreen has joined #lisp
<abarbosa> but that mess our home :D
<abarbosa> but as I rely a lot on quicklisp a symlinked to $HOME
pankajgodbole has joined #lisp
<mbrumlow> Hmm, that might be it
<mbrumlow> is what clx-truetype can see.
<mbrumlow> let me see what happens if I put quicklisp back to the right place.
<mbrumlow> I think this is part of the problem.
<mbrumlow> Family: . Subfamilies: ,
<mbrumlow>
<mbrumlow> There is something weird in the list.
<abarbosa> yep, Ive used your snippet and hack IS listed here.
<abarbosa> damn
<mbrumlow> I put quicklisp back sitll no go :/
<mbrumlow> well, i cheated, let me nuke and start fresh
<abarbosa> mbrumlow: i figured so...
hvxgr has quit [Remote host closed the connection]
<abarbosa> see ya in a few hours... too tired... lol
<abarbosa> JS is wasting me to death...
<mbrumlow> Fresh install of quicklsip in sblc still no Hack :/
<mbrumlow> You installed via pcakge
<mbrumlow> I feel like only package installed fonts are showing in this list.
<mbrumlow> None of my custom fonts are showing.
<mbrumlow> Like I have package installed Roboto, but my local installed font for Roboto mono is not in the list either.
<abarbosa> mbrumlow: I dont see your system as guilty as fc list it...
<abarbosa> its a clx-truetype not seeing it.
<mbrumlow> maybe my font files are older, or newer and clx-tt is expecting a header or version number ?
<mbrumlow> I did strace sblc while updating the font cache, it did for sure read the font file.
nowhere_man has joined #lisp
<abarbosa> clx-truetype, just look for fonts at $HOME/.fonts and /usr/share/fonts/
<abarbosa> might be that
<abarbosa> i must to update it xdg :/
atgreen has quit [Ping timeout: 248 seconds]
<abarbosa> or you can add whatever where you placed your font to *font-dirs*
Bike has quit [Quit: Lost terminal]
<abarbosa> bye bye :D
crystalball has joined #lisp
nanoz has joined #lisp
dmiles has joined #lisp
crystalball has quit []
<mbrumlow> Sorry, sick kid, had to go do sick kid sgtuff
dddddd has quit [Remote host closed the connection]
<mbrumlow> I am trying in just $HOME/.fonts
shka_ has joined #lisp
vlatkoB has joined #lisp
Inline has quit [Quit: Leaving]
nanoz has quit [Ping timeout: 268 seconds]
emaczen has joined #lisp
shka_ has quit [Quit: Konversation terminated!]
shka_ has joined #lisp
<moldybits> (defmethod half ((n number)) (/ n 2)) ; approved?
<emaczen> fiddlerwoaroof: Can you link me to your objc/lisp repo or just answer a question or two of mine?
notzmv has quit [Remote host closed the connection]
<moldybits> oh, you need to define classes before you can specialize methods on them? dang.
<emaczen> moldybits: You can define methods on built-in types as well
sauvin has joined #lisp
igemnace has joined #lisp
<emaczen> Because there are three types of classes predefined: built-in-class, structure-class and standard-class
<emaczen> everything we define is a subclass of standard-class
<moldybits> i have a file with miscellaneous functions and methods, but it was loaded before some of the classes specialized on
<emaczen> Errr, more precisely the metaclass we use be default with the defclass form is standard-class
<moldybits> i wonder if it'd be sensible to put all classes in a classes.lisp and all methods in a methods.lisp, but that sounds crazy :D
<emaczen> moldybits: I don't remember precise details, but you might want to read the standard with regards to class finalization
<emaczen> I've never really done that and haven't had problems with defining classes and methods
<moldybits> would it be nuts to have a collision.lisp where collision-p methods for various classes are defined, as opposed to defining them in rectangle.lisp, game-object.lisp, hitbox.lisp, etc., together with the class they're specializing on?
<emaczen> class definitions are not tied to a specific file like they are in Java -- is that the perspective you are coming from?
<moldybits> python is my previous experience with classes.
<moldybits> all methods are defined within the class definition construct
<emaczen> moldybits: Yeah, sounds similar to Java. You don't have to do that in CL at all, I've defined methods like you describe specializing on different classes all in the same file plenty of times.
<moldybits> i think i'll give it a shot to see how it plays out
<moldybits> it's not unusual for me to forget to add an (in-package ...) form at the top of a new file. i wonder if there's some way lisp, slime, or sbcl could help me either remember to do this or at least hint that i forgot when it's giving me *-not-found errors.
<White_Flame> presumably those are COMMON-LISP-USER::* not found errors?
<emaczen> moldybits: I'm unaware, it became habitual for me immediately... Are you using ASDF or Quicklisp or both?
nowhere_man has quit [Ping timeout: 258 seconds]
<White_Flame> that's at least some distinguishing information
<aeth> It's usually easy to spot because it usually only happens when the file is brand new.
JohnMS_WORK has joined #lisp
leb has quit []
<moldybits> both
<moldybits> aeth: well, yeah, but it seems like something lisp (or its environment) should do for me
<emaczen> moldybits: I usually define one package per system definition (not always)
<moldybits> yeah. is it possible to have it apply for all files without explicitly putting it at the top of them?
techquila has joined #lisp
Ahmedkh has left #lisp ["see you later awesome guys"]
<emaczen> moldybits: You could probably write an extension to ASDF (there is a tutorial somewhere) but I think you would subclass the "type of file" and then you could probably customize it to automatically have your in-package form at the top
<emaczen> Can anyone tell me of a workaround for cffi:defcallback to handle structure arguments and structure return types?
<emaczen> This generally seems to be a problem for anything with CFFI, but then we can solve this by using cffi-libffi but that isn't working for me with cffi:defcallback
<moldybits> hm
lispyone has quit [Ping timeout: 252 seconds]
<emaczen> The code for cffi:defcallback explicitly calls some function named convert-foreign-type that ends up being an etypecase form on the allowed types (which doesn't include anything for structures)
asedeno has quit [Ping timeout: 252 seconds]
crystalball has joined #lisp
lispyone has joined #lisp
crystalball has quit [Remote host closed the connection]
manualcrank has quit [Quit: WeeChat 1.9.1]
crystalball has joined #lisp
asedeno has joined #lisp
schweers has joined #lisp
PuercoPop has quit [Ping timeout: 264 seconds]
orivej has joined #lisp
shka__ has joined #lisp
PuercoPop has joined #lisp
orivej has quit [Ping timeout: 248 seconds]
Necktwi has quit [Ping timeout: 246 seconds]
rippa has joined #lisp
Necktwi has joined #lisp
<emaczen> minion: memo for fiddlerwoaroof: When you get a chance, write a minion memo for me giving the link to your objc/lisp repo
<minion> Remembered. I'll tell fiddlerwoaroof when he/she/it next speaks.
zhlyg has joined #lisp
Necktwi has quit [Ping timeout: 272 seconds]
shrdlu68 has joined #lisp
crystalball has quit []
crystalball has joined #lisp
makomo has joined #lisp
varjag has joined #lisp
donotturnoff has joined #lisp
SumoSud0 has joined #lisp
emaczen has quit [Ping timeout: 256 seconds]
gareppa has joined #lisp
gareppa has quit [Remote host closed the connection]
gareppa has joined #lisp
shrdlu68 has quit [Ping timeout: 248 seconds]
jprajzne has joined #lisp
crystalball has quit []
beach has quit [Ping timeout: 258 seconds]
ggole has joined #lisp
gareppa has quit [Quit: Leaving]
beach has joined #lisp
brundleticks has joined #lisp
hhdave has joined #lisp
v88m has quit [Ping timeout: 248 seconds]
jeosol has quit [Ping timeout: 256 seconds]
brundleticks has quit [Remote host closed the connection]
admich has joined #lisp
<aeth> moldybits: I noticed Lisps don't have very helpful errors. It might be because their compiler architecture doesn't give the line number of the mistake, only the Lisp form?
<aeth> beach: do you have a way to preserve the line number in your compiler error messages?
<saturn2> doesn't that depend on the implementation? SBCL gives line numbers
p9fn has joined #lisp
FreeBirdLjj has joined #lisp
<loke> saturn2: Yes, it does
<loke> it even gives you information on the exact subform the error occurd in, and SLIME with display highlight it.
<loke> Also, SBCL's error message are usually accused of being _too_ detailed.
<beach> aeth: Yes, I do. I'll explain later. Now I must handle an urgent thing here...
<shka__> aeth: i personally find CCL messages to be somewhat easier to parse
<shka__> compared to the SBCL that is
karayan has joined #lisp
FreeBirdLjj has quit [Ping timeout: 272 seconds]
atgreen has joined #lisp
<dim> typing v in slime when in a debugger frame is quite powerful indeed; but when you don't know about it, it can be quite frustrating
* dim had a colleague try to hack pgloader once but who didn't want to learn Emacs to do that and would build the whole image with buildapp each time he would edit the code... and my Makefile target would hide the output... was not a good experience for him
gareppa has joined #lisp
<loke> dim: wow
<schweers> Amazing what very real pain people will endure in order to a avoid imaginary pain.
igemnace has quit [Quit: WeeChat 2.4]
<dim> well he complained loudly about the situation and stopped trying to hack on pgloader and it might be the last time this guy ever tries common lisp
<loke> Was he also trying to edit Lisp with Notepad.EXE?
<schweers> I’m sensing that this was not just because he didn’t want to learn to use emacs.
<dim> learning Emacs after 20 years of being a pro developer isn't for everyone, really
<loke> If you're a pro developer, learning a new language should be trivial.
admich has quit [Read error: No route to host]
<loke> (that's part of being pro, no?)
<LdBeth> Learning a new editor is non trivial
<schweers> loke: if the language is sufficiently different it is not trivial. Nevertheless, we do things not because they are easy, but because they are hard ;)
<schweers> LdBeth: luckily there are only two flavours of editor, so one can be done with the basics pretty quickly.
<schweers> Sorry, two flavours I know of.
<loke> schweers: Emacs or ed?
<schweers> Emacs and ed/vi/sed/etc
<aeth> loke: well, SBCL has the excellent error messages in general
<loke> I'm not sure I'd put ed and vi in the same category?
<aeth> and a lot of criticisms don't apply to SBCL, that's probably why it's #1
<loke> vi goes in the same category as TECO
<LdBeth> Well, no body knows XEDIT :(
<schweers> actually I meant the vi family, as ed is not something I’d really recommend for daily usage.
<loke> Three catories: Interactive/modal/line-based
<schweers> the vi family is interactive and modal
<LdBeth> TECO is the one and true editor
<loke> schewwHey! Ed is fully usable for daily use. It's the standard editore!
<schweers> but I think we’re getting off-topic again.
<schweers> isn’t vi also standardized? I do mean vi, not vim or elvis or neovim.
<loke> LdBeth: TECO is pretty good actually. Better than vi in my opinion
<loke> schweers: Hmm, yeah. I guess it is.
<schweers> ex is standardized, but I can’t find anything on vi so far.
igemnace has joined #lisp
<aeth> loke: I just tested it and SBCL gives line numbers for compilation issues like (+ "hello") but not for runtime things like (break) so it does it 50% of the time.
<aeth> well, for 50% of the things that can go wrong
<aeth> loke: I should have asked about runtime error line numbers because that's a more interesting problem.
<loke> aeth: SLIME is able to jump to the correct pace after a (BREAK), so the information is definitely there
<aeth> loke: SLIME might just be looking up the form?
<loke> That said, I always force max debug level. Perhaps you need to do that?
<aeth> that's also true
<loke> Try this:
<loke> (progn (sb-ext:restrict-compiler-policy 'safety 3) (sb-ext:restrict-compiler-policy 'debug 3))
<loke>
<loke> Before loading the code.
<loke> (clear the compile cache first, to compile every library using max debug too)
<loke> aeth: Pressing V in the SLIME stack trace causes you to jump to the precise place in the source so it definitely works for me.
<aeth> loke: it works... strange that that's not exposed anywhere, and it's just V
<aeth> Even without debug 3
<aeth> I wonder if it's SBCL or SLIME
<aeth> I'm also curious how this happens.
gareppa has quit [Quit: Leaving]
m00natic has joined #lisp
<dim> (sb-ext:restrict-compiler-policy 'debug 3) ; add that to ~/.sbclrc
<loke> It's exposed. I think it's in the menu bar as well.
<beach> aeth: The Cleavir compiler can use the Concrete Syntax Tree library to wrap each expression in source information. In SICL, I take advantage of this possibility to store the line and column of the beginning and the end of each expression. This information is then propagated to the Abstract Syntax Tree and the High-level Intermediate Code. It is possible that we haven't yet figured out how to take full advantage of this possibility in
<beach> compiler error and warning messages. But that will be the case at some point.
v88m has joined #lisp
hvxgr has joined #lisp
JohnMS has joined #lisp
JohnMS_WORK has quit [Ping timeout: 248 seconds]
orivej has joined #lisp
<aeth> Oh, I think I know what's missing from messages vs. a lot of languages. The source code itself. A lot of messages these days will literally just print something like: (+ "hello") with the next line having a ^ on the next line below either the first " or second ". CL relies on SLIME to underline the issues, which it does for compilation errors/warnings/notes, but not for runtime ones.
<aeth> You would also lose that context in e.g. logging error messages
<aeth> (And apparently SBCL catches the (+ "hello") example I keep giving at compile time, but not CCL)
<flip214> I'm too stupid (again). How would I pass a pointer to a pointer to the C function apr_pool_create(apr_pool **new, apr_pool *parent)? https://paste.debian.net/hidden/c93a3458, thanks a lot!
<flip214> thanks, looks solved
atgreen has quit [Ping timeout: 248 seconds]
clothespin has quit [Ping timeout: 252 seconds]
<beach> aeth: As I recall, Bike mede it so that the CST is now included in the compiler messages. That way, a good development environment can capture those, determine the source location, and highlight the place in the code.
<beach> aeth: That's the plan we have for Second Climacs.
hjudt has quit [Quit: leaving]
Josh_2 has quit [Quit: ERC (IRC client for Emacs 26.1)]
dddddd has joined #lisp
mpcjanssen has joined #lisp
<aeth> beach: Would Second Climacs be smart enough to highlight something that comes up at runtime? e.g. a BREAK or a failed CHECK-TYPE. I guess this would have to happen at every point to be useful for stuff like CHECK-TYPE, since it would be nice to highlight where the CHECK-TYPE is, but also where the caller of that function with the check type had that issue is, etc.
moldybits` has joined #lisp
wxie has joined #lisp
<beach> Whether it's in Second Climacs or in Clordane, the plan is to highlight runtime information, yes.
<beach> There will be a mapping from values of the program counter to source locations if your compiler is written the right way.
amerlyq has joined #lisp
moldybits has quit [Read error: Connection reset by peer]
<aeth> (If those files are open)
<aeth> So basically, every point of the backtrace.
rippa has quit [Read error: Connection reset by peer]
equwal has quit [Quit: ZNC 1.7.1 - https://znc.in]
ebrasca has quit [Remote host closed the connection]
libertyprime has quit [Ping timeout: 248 seconds]
libertyprime has joined #lisp
rumpelszn has quit [Ping timeout: 248 seconds]
<beach> aeth: In SICL, I won't depend on the files. The source text will be in the executable.
<beach> aeth: I don't necessarily think of debugging as staring at a backtrace when things go wrong.
<beach> That's what we have had to get used to with SLIME.
<beach> But I also want to be able to set breakpoints by selecting source locations, execute until that point, examine data, step, set more breakpoints, etc.
rumpelszn has joined #lisp
random-nickname has joined #lisp
Inline has joined #lisp
esrse has quit [Ping timeout: 272 seconds]
ays has joined #lisp
Bike has joined #lisp
techquila has quit [Ping timeout: 248 seconds]
<aeth> interesting!
Josh_2 has joined #lisp
maxxcan has joined #lisp
cosimone has joined #lisp
pfdietz has joined #lisp
<pfdietz> join ##lisp
LiamH has joined #lisp
maxxcan has quit [Quit: Vision[0.10.3]: i've been blurred!]
v0|d has quit [Ping timeout: 245 seconds]
Denommus has joined #lisp
notzmv has joined #lisp
<abarbosa> pfdietz: /join
<abarbosa> :D
t58 has joined #lisp
Lycurgus has joined #lisp
karayan has quit []
dvdmuckle has quit [Quit: Bouncer Surgery]
dvdmuckle has joined #lisp
jmercouris has joined #lisp
<jmercouris> how can I uninstall and reinstall the quicklisp dist?
<jmercouris> I do see 'uninstall-dist', but not sure how I would reinstall it..
<jmercouris> ah, looking in the wrong place it seems, ql-dist is what I need
<jmercouris> future readers (ql:dist-url "quicklisp"), then save that string, then (ql:uninstall-dist "quicklisp"), then install (ql-dist:install-dist "quicklisp-url")
<Lycurgus> just removing the ql directory doesn't work?
<jmercouris> it does work, but then how would you know the URL?
<jmercouris> or is that stored somewhere else?
<Lycurgus> Xach will prolly say
<jmercouris> I seem to have some problems with grovel: https://gist.github.com/jmercouris/f3d1c8a37ef65444456a729feb7e80d9
Denommus has quit [Quit: leaving]
<jmercouris> any ideas?
<jmercouris> The error seems pretty clear, but what is "lfp.h"??
<jmercouris> ah part of libfixposix
manualcrank has joined #lisp
atgreen has joined #lisp
<xristos> in my experience, iolib causes far more problems than it solves
<dlowe> I'm a happy iolib user
<dlowe> it solved the problems I needed it to
<jmercouris> one of my dependencies needs it
shifty has quit [Ping timeout: 248 seconds]
Inline has quit [Ping timeout: 264 seconds]
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
JohnMS has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
<warweasle> back
<jmercouris> how do you even build libfixposix
<Lycurgus> it's in ubuntu, presumably any main line distro with a -dev
<Lycurgus> s/main line/mainstream/
<jmercouris> I found an old portfile that I'm upgrading
<jmercouris> anyways, the build instructions make absolutely no sense
<jmercouris> at lest to me
<xristos> jmercouris: i'm curious as to which dependency of yours needs iolib?
jprajzne has quit [Quit: Leaving.]
<Lycurgus> xristos, I'm curious what problems you had with it, alternative used
dale_ has joined #lisp
<jmercouris> xristos: dbus
dale_ is now known as dale
<xristos> Lycurgus: alternative is to use the OS interface(s) directly and not introduce layers of unstable middleware
<Lycurgus> i c
<xristos> Lycurgus: if you value your time that is
<jmercouris> however, I have installed libfixposix...
<dlowe> jmercouris: you need libfixposix-dev
<jmercouris> what? I only see a libfix repository
<jmercouris> is there something besides this?
<dlowe> xristos: so... write your own layer of unstable middleware, then
<xristos> jmercouris: which directory did libfixposix.dylib end up in?
<xristos> dlowe: no middleware
<dlowe> jmercouris: I just install it from apt
<jmercouris> xristos: that's a good question, I will have to look...
<dlowe> xristos: there's always middleware
<jmercouris> xristos: Tried looking in /opt/local/include with no luck
Lord_of_Life_ has joined #lisp
<jmercouris> I figured it would install there since I built from a portfile
<xristos> it's probably in /opt/local/lib
<xristos> push that to cffi:*foreign-library-directories*
<dlowe> oh, BSD. I have nfc then
Lord_of_Life has quit [Ping timeout: 272 seconds]
Lord_of_Life_ is now known as Lord_of_Life
<jmercouris> xristos: indeed it is in /opt/local/lib
<jmercouris> probably something I should put in my sbcl init right?
<xristos> yes
<jmercouris> how would I do that?
<jmercouris> I can't imagine SETF would work, because what if CFFI is not loaded when my init file loads?
<xristos> you can pre-load CFFI in your init file
<xristos> (pushnew "/opt/local/lib" cffi:*foreign-library-directories* :test #'equal)
<jmercouris> its interesting, it has something called CFFI::DARWIN-FALLBACK-LIBRARY-PATH
<jmercouris> you think it would look in /opt/local/lib by default...
<xristos> why would it? not every osx system has macports installed
<jmercouris> fair enough
<jmercouris> unfortunately it still does not work
<jmercouris> same complaint..
saravia has joined #lisp
<jmercouris> maybe cffi requires a path instead of a string?
<xristos> add a / at the end of the path
<xristos> /opt/local/lib/
<jmercouris> trying that literally right now :D
<jmercouris> worked, merci monsieur
Inline has joined #lisp
<jmercouris> I was literally thinking that just as you said it
<jmercouris> so annoying how people sometimes use trailing slashes or not
<jmercouris> personally I think you should never use a trailing slash, a directory is a file after all!
<xristos> so all of this because of dbus? or is there another library that depends on dbus?
<jmercouris> just dbus
<jmercouris> Next now depends on dbus for IPC
<jmercouris> used to use S-XML-RPC with BSD sockets
<jmercouris> now we use unix domain sockets for security/performance
cosimone has quit [Quit: WeeChat 2.3]
ays has quit [Remote host closed the connection]
pankajgodbole has quit [Ping timeout: 258 seconds]
hjudt has joined #lisp
cosimone has joined #lisp
scymtym has joined #lisp
donotturnoff has quit [Ping timeout: 272 seconds]
phoe has quit [Ping timeout: 259 seconds]
phoe has joined #lisp
jmercouris has quit [Ping timeout: 248 seconds]
Lycurgus has quit [Quit: Exeunt]
hhdave_ has joined #lisp
sjl has joined #lisp
cosimone has quit [Quit: WeeChat 2.3]
hhdave has quit [Ping timeout: 272 seconds]
hhdave_ is now known as hhdave
cosimone has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
donotturnoff has joined #lisp
igemnace has joined #lisp
sjl has quit [Quit: WeeChat 2.3-dev]
sjl has joined #lisp
v88m has quit [Read error: Connection reset by peer]
makomo has quit [Quit: WeeChat 2.4]
schweers has quit [Ping timeout: 248 seconds]
jmercouris has joined #lisp
v88m has joined #lisp
kajo has quit [Ping timeout: 248 seconds]
hhdave has quit [Ping timeout: 248 seconds]
hhdave has joined #lisp
cosimone has quit [Quit: WeeChat 2.3]
cosimone has joined #lisp
anewuser has joined #lisp
cosimone has quit [Quit: WeeChat 2.3]
cosimone has joined #lisp
kajo has joined #lisp
<Xach> beach: that would be Good
jmercouris has quit [Ping timeout: 248 seconds]
q9929t has joined #lisp
<beach> Xach: The debugging stuff?
<Xach> Using slime so long has made me somewhat blind to better modes
<Xach> beach: yes.
<beach> I know what you mean.
<Xach> beach: i hate the trap of "if our current system doesn't do it, it must not be worth doing"
<Xach> for any particular capability
<beach> I totally agree.
<Xach> or "if it is difficult it is not worth doing"
<Xach> or "if i can't imagine a way to implement it" - this catches me many times
<beach> Heh, I see.
<Xach> this comes up often in the case of small binaries and/or tree shakers
q9929t1 has joined #lisp
<Xach> stepping also comes to mind
<beach> I see that from time to time, sure. I don't think it's an issue myself, but I also don't see a particular problem implementing a solution.
q9929t has quit [Ping timeout: 248 seconds]
q9929t1 is now known as q9929t
karlosz_ has quit [Quit: karlosz_]
karlosz_ has joined #lisp
q9929t has quit [Read error: Connection reset by peer]
<beach> For small binaries, it would suffice to put most of the system code in a shared library.
q9929t has joined #lisp
wxie has quit [Quit: wxie]
anewuser has quit [Quit: anewuser]
cosimone has quit [Quit: WeeChat 2.3]
ym555 has joined #lisp
skidd0 has joined #lisp
<pjb> /whoami
jmercouris has joined #lisp
themsay has quit [Read error: Connection reset by peer]
atgreen has quit [Ping timeout: 248 seconds]
themsay has joined #lisp
hhdave has quit [Quit: hhdave]
<skidd0> is there a way to recursively list dependencies of a system?
<pjb> Yes.
<skidd0> suddenly, esrap fails to compile and i'm trying to figure out what needs it
<pjb> skidd0: Use a recursive function.
<skidd0> well i was wondering if asdf or quicklisp had one pre made
cosimone has joined #lisp
<sjl> skidd0: (ql-dist:dependency-tree :some-system-in-quicklisp)
<Xach> skidd0: you can build something via asdf:find-system and asdf:system-depends-on
<pjb> skidd0: com.informatimago.tools.check-asdf:system-all-dependencies
<Xach> skidd0: oh, that sounds kind of backwards - you want to know what systems rely on esrap?
<skidd0> i'm really just trying to debug this compile issue
<pjb> So: (ql:quickload :root-system) (com.informatimago.tools.check-asdf:system-all-dependencies :root-system)
<sjl> I think they're trying to load a system, and for some reason esrap is getting loaded, and they want to know how the dependency on esrap is being introduced
<Xach> skidd0: does it fail due to something missing?
<skidd0> is maybe the dependency tree is what i need
<skidd0> Xach: it has some illegal function calls
<skidd0> so it tells me
<Xach> skidd0: wow
<pjb> skidd0: again, check com.informatimago.tools.check-asdf
<pjb> eg. com.informatimago.tools.check-asdf:check-asdf-system-dependencies
<skidd0> will do pjb
<scymtym> skidd0: can you paste the complete error message somewhere?
<skidd0> scymtym: yes one sec
<scymtym> skidd0: thank you
lnostdal has quit [Ping timeout: 258 seconds]
<skidd0> pjb: root-system not found?
<scymtym> skidd0: thanks. maybe i can figure something out from that
<skidd0> oh
<skidd0> root-system being my system's root. duh
<scymtym> skidd0: do you do anything special with the alexandria library?
<skidd0> not that i'm aware of.
<pjb> skidd0: try perhaps :foo ?
<skidd0> i did add the plain-odbc system to my asdf folder
<skidd0> which bundles it's own alexandria lib
<Xach> that is very bad!!
<pjb> skidd0: but you're right, I should have used a free variable instead: (com.informatimago.tools.check-asdf:system-all-dependencies root-system)
<skidd0> but i did not add that as a dependency of my system
<Xach> smoking gun
<Xach> it won't matter - asdf will find that bad alexandria
<scymtym> that could very well be the problem
<skidd0> okay, lemme try removing that from the plain-odbc folder ..?
<Xach> remove it and see what happens
<Xach> it may break plain-odbc, but maybe not
<Xach> if esrap relies on a new macro in new alexandria, you would get the symptoms you see
<skidd0> why would it pull the alexandria lib from a lib i'm not trying to load?
jmercouris has quit [Remote host closed the connection]
<Xach> because the directory structure does not matter, only the presence of alexandria.asd
<Xach> if it is in an asdf search tree, it will be found
<skidd0> okay quickloading just esrap works now. now to test plain-odbc
<scymtym> phew
<skidd0> sorry for the false alarm scymtym
<scymtym> skidd0: no worries
<skidd0> okay the asdf:oos 'asdf:load-op :plain-odbc worked
<skidd0> everything still seems to work
<scymtym> alexandria is unlikely to make breaking changes so deleting the bundled copy is probably fine
<skidd0> yeah i moved it out and renamed it (in case i had to put it back)
<skidd0> not sure why the author bundled it in the first place
<skidd0> good thing i read that part of his/her docs
<Xach> skidd0: it was once a relatively common practice
<skidd0> ah
<Xach> it helped reduce the pain of fetching dependencies
<Xach> quicklisp helps in a different way
lnostdal has joined #lisp
emaczen has joined #lisp
<skidd0> does quicklisp handle dependency versioning?
<Xach> skidd0: no.
ym555_ has joined #lisp
<skidd0> that's a lot to track
<Xach> skidd0: the broad assumption is that "everything works together most of the time" and marches that assumption forward and makes a release when it's true.
ym555 has quit [Read error: Connection reset by peer]
<emaczen> Can't you specify versions with ASDF?
atgreen has joined #lisp
<Xach> emaczen: yes.
random-nickname is now known as random-nick
<emaczen> One could probably roll out versioning without too much difficulty that is integrated with the popular CL tools then
notzmv has quit [Ping timeout: 272 seconds]
<_death> speaking of alexandria.. I was surprised by alexandria:shuffle implementation for lists.. it's as if it was made for educational purposes rather than practical purposes.. compare (time (shuffle (loop repeat 100000 collect 'x))) and (time (coerce (shuffle (coerce (loop repeat 100000 collect 'x) 'vector)) 'list))
atgreen has quit [Remote host closed the connection]
atgreen has joined #lisp
moldybits` is now known as moldybits
<Bike> is there a good way to shuffle a linked list? other than a vector transform
<_death> not that I know of..
<Bike> google suggests merge sort with a random predicate
<Bike> so that's... weird
<_death> current implementation is in-place.. with merge sort, I think you give that up.. but if it was up to me I'd do the coerce dance
<Bike> i guess someone might not want it to cons
<Bike> ...i guess.
<Bike> how often does one shuffle a linked list to begin with
<_death> he'd rather use O(n^2) algo? :)
<_death> (for time)
<Bike> look, i only have a terabyte of ram,
<_death> I shuffle lists a lot ;) mostly in the REPL
m00natic has quit [Remote host closed the connection]
cosimone has quit [Quit: WeeChat 2.3]
ravenousmoose has joined #lisp
q9929t has quit [Quit: q9929t]
cosimone has joined #lisp
cosimone has quit [Client Quit]
mpcjanssen has quit [Quit: WeeChat 1.9.1]
mpcjanssen has joined #lisp
nowhere_man has joined #lisp
cosimone has joined #lisp
cosimone has quit [Quit: WeeChat 2.3]
cosimone has joined #lisp
cosimone has quit [Client Quit]
cosimone has joined #lisp
<emaczen> Is anyone aware of a way to define CFFI callbacks with structure arguments and structure return values?
cosimone has quit [Client Quit]
<emaczen> I'm interested in a CFFI solution or an SBCL solution
<_death> I just posted a comment about it to reddit.. also those bindings I wrote the other day use it
cosimone has joined #lisp
warweasle has quit [Quit: rcirc on GNU Emacs 24.4.1]
<emaczen> Did you see my comment about it last night?
<_death> no
<emaczen> There is a library called cffi-libffi that allows one to call functions with structures as arguments and return types
<emaczen> but cffi:defcallback still cannot handle structure arguments and return types
<emaczen> _death: Send me the reddit link?
<_death> it's just a comment mentioning cffi-libffi
<_death> I didn't need it with defcallback, so maybe you're right
loses has joined #lisp
<emaczen> _death: Are you aware of any solutions? I guess we are dependent on the compiler writers or CFFI right?
<emaczen> At least on SBCL cffi:defcallback will take you to a function called convert-foreign-type which turns into an etypecase form on the type but there is no branch to handle structures
<xristos> someone posted an SBCL bounty today to do exactly that
<xristos> you can always throw some money in the pot
<emaczen> xristos: Where are these bounties?
<_death> emaczen: one simple solution is to write your own C wrapper
<emaczen> xristos: The bounty was posted 10 years ago! haha
<emaczen> _death: Is this a general solution?
<djeis[m]> Fairly certain the bounty was posted today..
<djeis[m]> Attached issue might be ancient tho.
<xristos> yes
<xristos> the date comes from the issue
<emaczen> How does the issue relate to the bounty?
<xristos> the bounty is linked to the issue?
<djeis[m]> Bounty was probably created from the issue.
<emaczen> Okay, I see now.
<djeis[m]> Makes it easy to track the progress in the repo.
<_death> emaczen: yes, it's a general solution.. since you're in control of the wrapper you can hide whatever nasties (this issue, C++, etc.) you want
<emaczen> _death: Will you elaborate on this C wrapper? Or are you talking about just a wrapper for a specific function?
cosimone has quit [Quit: WeeChat 2.3]
<_death> emaczen: not sure what there is to elaborate on.. you can wrap just this specific thing, sure.. I have bindings wrapping C++ stuff that way.. I usually write the wrapper by hand.. autowrap may in the future have support for C++ (it already has partial support for it afaik).. but not for this issue
wigust has joined #lisp
cosimone has joined #lisp
cosimone has quit [Client Quit]
<emaczen> _death: I guess you are talking about a lot of manual code outside of lisp...
mfiano[m] has joined #lisp
<physpi> Anyone using allegro with Jenkins?
wigust- has quit [Ping timeout: 248 seconds]
<emaczen> What are the chances that someone will solve this bounty?
<emaczen> I've never monitored a bounty before
<_death> "a lot" could be <50 lines of C if it's just for a that single callback
<Xach> physpi: few allegro users here
<xristos> _death: 50 lines of C and a working C compiler or you end up delivering precompiled shared libraries (i guess static images are also an option? still horrible)
<emaczen> _death: For this specific problem I have, yes I could do it that way (I actually have done some this way), but I've counted and there are about 1000 C functions with struct arguments or return values that I want to use
<Xach> and they have good support
<_death> xristos: sure
<oni-on-ion> oh where are the bounties at
cosimone has joined #lisp
<emaczen> I could probably even autogenerate most of these wrappers, but this bounty seems promising?
<_death> xristos: but you also need a C compiler if that interface uses size_t that needs to be grovelled, so...
<xristos> _death: not really
<xristos> no need to grovel size_t if you know all your platforms ahead of time
<_death> xristos: sure, you need to determine your constraints and relaxations
<physpi> Xach: I’m having issues running Jenkins as a service
<physpi> Trying to compile our projects
<_death> emaczen: well, I wouldn't hold my breath for that feature ;)
<emaczen> _death: What are your expectations?
<_death> emaczen: the reddit thread mentioned it's on the TODO since 2009
<Xach> physpi: If I were you, I would reach out to their support system - it has been good in my experience.
<physpi> emaczen: how zen are you with emacs
<emaczen> physpi: Not as much as I would like...
<physpi> Xach: unfortunately they weren’t very helpful when we asked last AFAIR
<physpi> About this particular issue*
<physpi> emaczen: ahh
<physpi> Likewise >.<
cosimone has quit [Quit: WeeChat 2.3]
sauvin has quit [Read error: Connection reset by peer]
<emaczen> _death: But now we have bounties 10 years later?! yay?
<emaczen> I wouldn't know if that is significant or not...
cosimone has joined #lisp
<Xach> physpi: sorry to hear that.
<_death> not sure how many sbcl developers would work on that for $70.. on the other hand, volunteer work has been known to happen :)
leb has joined #lisp
Jesin has quit [Quit: Leaving]
techquila has joined #lisp
cosimone has quit [Quit: WeeChat 2.3]
teej has quit [Quit: Connection closed for inactivity]
<sjl> I've been trying to add a contribution to that bounty for like five minutes, but bountysource is such a broken pile of crap that I can't get any page to load reliably in chrome, chromium, or firefox.
<sjl> Even got the Heroku error page a few times.
cosimone has joined #lisp
skidd0 has quit [Quit: WeeChat 2.4]
Jesin has joined #lisp
shifty has joined #lisp
<stylewarning> i'd pay money for structures
<stylewarning> i'd pay money for tree shaker
kajo has quit [Ping timeout: 248 seconds]
<_death> tree shaker was already written.. once..
<stylewarning> i'd pay money for reliable cross-platform GUI
<stylewarning> money is everywhere on the trees
atgreen has quit [Ping timeout: 248 seconds]
<oni-on-ion> firefox.com
<oni-on-ion> also ; http://ceramic.github.io/
<oni-on-ion> (its electron for common lisp. works quite well )
kajo has joined #lisp
Bike has quit []
X-Scale has quit [Quit: HydraIRC -> http://www.hydrairc.com <- Organize your IRC]
cosimone has quit [Quit: WeeChat 2.3]
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
loses has quit [Ping timeout: 272 seconds]
ggole has quit [Quit: Leaving]
ravenousmoose has joined #lisp
ecraven has quit [Quit: bye]
ecraven has joined #lisp
Bike has joined #lisp
cosimone has joined #lisp
nowhere_man has quit [Ping timeout: 245 seconds]
jmercouris has joined #lisp
atgreen has joined #lisp
cosimone has quit [Quit: WeeChat 2.3]
cosimone has joined #lisp
bexx has joined #lisp
<bexx> is there any way of get and output of a function inside a label?
<bexx> I mean, do i need always to push to a let variable to get the output of the function?
<Xach> bexx: there are many ways to get things from a function.
<bexx> let me explain a bit my problem
<bexx> I need to take a list and change the first element to the tail
<bexx> to every sublist
<bexx> I have a function that do this but also I need to send the first element to the last of the hole list
<bexx> whole list
<bexx> suppose that i run (first-to-last '((a b) c (d (e f g))))
<bexx> I need to get (c ((f g e) d) (b a))
<bexx> but i managed to obtain ((b a) c ((f g e) d))
<bexx> so i know that i need to apply this function to the result
<bexx> but i don't know how
<bexx> there is my code
donotturnoff has quit [Ping timeout: 244 seconds]
cosimone has quit [Quit: WeeChat 2.3]
scymtym has quit [Ping timeout: 248 seconds]
cosimone has joined #lisp
kajo has quit [Ping timeout: 248 seconds]
varjag has joined #lisp
<White_Flame> bexx: first off, your recursive calls to (first-to-last ...) could just be (rec ...)
<White_Flame> but yeah, I think your logic is off in that your outermost call, and the outermost (COND (T ..)) case never perform that swap
shka_ has quit [Ping timeout: 244 seconds]
<White_Flame> your function conses together (cons (... (car x)) (rec (cdr x)), meaning that the first term will always be first in your output
<bexx> ooh i see
<White_Flame> maybe your outer form that enters the recursion should be (fi-la (rec L)) instead of just (rec L)?
<bexx> can i exchange that last cons?
<White_Flame> but I dont think it's an actual Lisp semantic problem
<White_Flame> also, #clschool might be a better channel for learner's questions
<bexx> ok thanks
<bexx> you point me to a better understanding
<bexx> the trouble was caused because of the first-to-last confusion with rec
kushal has quit [Remote host closed the connection]
cosimone has quit [Quit: WeeChat 2.3]
<White_Flame> yes, if your entry point to REC is just (REC L), then it's fairly transparent. But if that becomes (fi-la (rec L)), then it's no longer just a pass-through and you should recurse to the inner REC
kushal has joined #lisp
pjb has quit [Remote host closed the connection]
<White_Flame> so that that outer fi-la call only happens on the "final" return value after the recursion returns
cosimone has joined #lisp
vlatkoB has quit [Remote host closed the connection]
<leb> Is there a classical example of a 2 functional mutually tail recursive function?
<Bike> 2 functional?
<leb> Is there a classical example of a 2 function mutually tail recursive function>
<leb> Geez
<leb> Is there a classical example of a 2 function mutual tail recursive function calls?
pjb has joined #lisp
<Bike> you want a pair of mutually tail recursive functions?
<Bike> (defun evenp (n) (if (zerop n) t (oddp (1- n)))) (defun oddp (n) (evenp (1- n)))
<sjl> yep
<sjl> well, oddp needs to check 0
<sjl> but yeah
<pjb> Try: (evenp -12)
<leb> Yea, that's good
<leb> something simple
<leb> Thanks for that
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jmercouris has quit [Ping timeout: 244 seconds]
<leb> I can use that
<leb> Are there any tree traversal code that uses two mutually tail recursive procedures?
<leb> I can look around but if anyone already knows ...
<sjl> Maybe something that maps over a tree and descends into both lists and vectors.
cosimone has quit [Quit: WeeChat 2.3]
<sjl> Though vectors don't lend themselves as well to recursive processing.
<leb> Let me ask a loaded question
<leb> I am writing a proposal for Golang to optimize tail recursive calls
<leb> is it worth it
<leb> ?
<leb> I find that for certain kind of problems it's the only way I can think
<sjl> I find tail recursion useful when working in Common Lisp. I don't tend to find myself wanting it when I work in Golang, but maybe if it were there I might.
lnostdal has quit [Remote host closed the connection]
t58 has quit [Quit: Leaving]
leb has quit []
cosimone has joined #lisp
emaczen has quit [Ping timeout: 256 seconds]
mindthelion has joined #lisp
techquila has quit [Remote host closed the connection]
emaczen has joined #lisp
<jasom> tail-recursive tree traversal usually just involves a stack of future nodes to visit, I'm not sure what two mutually recursive functions would look like.
cosimone has quit [Quit: WeeChat 2.3]
jmercouris has joined #lisp
ym555_ has quit [Ping timeout: 248 seconds]
cosimone has joined #lisp
cosimone has quit [Client Quit]
nowhere_man has joined #lisp
<Inline> probably two stacks, not shared, or two stacks shared but with stack entry elimination or so
<Inline> err 1 stack shared with message passing like transactional balancing say
<jasom> I suppose you could make your stack be function calls...
cosimone has joined #lisp
emaczen has quit [Ping timeout: 256 seconds]
<jasom> https://plaster.tymoon.eu/view/1422#1422 <-- stack with function calls. Feels slightly contrived though.
cosimone has quit [Quit: WeeChat 2.3]
orivej has quit [Ping timeout: 258 seconds]
cosimone has joined #lisp
jmercouris has quit [Ping timeout: 272 seconds]
jfb4 has joined #lisp
Younder has quit [Remote host closed the connection]
LiamH has quit [Quit: Leaving.]
cosimone has quit [Quit: WeeChat 2.3]
cosimone has joined #lisp
sjl has quit [Quit: WeeChat 2.3-dev]
zhlyg has quit [Ping timeout: 268 seconds]
cosimone has quit [Quit: WeeChat 2.3]
nowhereman has joined #lisp
vms14 has joined #lisp
nowhere_man has quit [Ping timeout: 258 seconds]
leb has joined #lisp
ym555_ has joined #lisp
guna has joined #lisp
random-nick has quit [Ping timeout: 252 seconds]
Lycurgus has joined #lisp
saravia has quit [Quit: Leaving]
actuallybatman has joined #lisp
abarbosa has quit [Remote host closed the connection]
abarbosa has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 26.1)]
orivej has joined #lisp
abarbosa has quit [Read error: Connection reset by peer]
anewuser has joined #lisp
guna has quit [Quit: ZNC 1.7.3 - https://znc.in]
guna has joined #lisp
sjl has joined #lisp
abarbosa has joined #lisp
aindilis has quit [Ping timeout: 248 seconds]
abarbosa has quit [Quit: ERC (IRC client for Emacs 26.2)]
abarbosa has joined #lisp
libertyprime has quit [Ping timeout: 244 seconds]
abarbosa has quit [Read error: Connection reset by peer]
gxt has quit [Ping timeout: 256 seconds]
gxt has joined #lisp