freenode/#lisp - IRC Chatlog
Search
19:01:14
jmercouris
DeadTrickster: Yeah, it works, I changed a bunch of things to make it work per jasoms instruction
19:05:19
jmercouris
I see, so you know how to make a standalone executable or one that uses shared libraries?
19:06:21
jmercouris
If you don't want to do it, that's of course no problem, I am just asking if you can since I'm a BSD/MacOS user
19:06:55
jmercouris
So, I'm not exactly 7 days like I said in the issue on github, but pretty close :D
19:26:53
sigjuice
jmercouris the 'Memory pressure relief' messages are coming from here. https://anonscm.debian.org/git/pkg-webkit/webkit.git/tree/Source/WTF/wtf/MemoryPressureHandler.cpp?h=webkitgtk-2.18#n280
19:31:50
jmercouris
sigjuice: It doesn't look like anything unusual I guess, do you know under which condition this log is fired off?
19:33:03
jmercouris
It's possible that it's just a standard debug message do to the way the process is launched
19:33:28
jmercouris
I'll take a look later into cl-webkit and see how the webview is actually instantiated
19:39:08
sigjuice
I guess that is how the gtk window is created. (make-instance 'gtk:gtk-window ... :default-width 250)
21:34:22
Ardx
Can anyone direct me to a lisp/scheme that can be used in a proven, robust and modern IDE? These include vscode, visual studio, intellij, atom. Not emacs, or dr racket
21:37:23
jmercouris
Visual Studio is used for .net mostly, and Intellij is used basically just for Java, so what are you asking for?
21:37:27
Ardx
_death point me to a plugin with syntax highlighting, autocomplete, debugging, and error underlining?
21:38:09
Ardx
In an IDE that has a file tree, can support multiple tabs, and has a working dark theme?
21:38:59
jmercouris
Ardx: Do you think it is just one huge coincidence that we are mostly using Emacs?
21:39:21
Ardx
I just hate emacs tbh, tried to use it with clojure for ages and hate all the keyboard commands i need to remember
21:39:56
jmercouris
There are no keyboard commands you have to remember, if you have vanilla emacs, you can type into it with normal keys, and there is even a menu bar with File-> Save, etc
21:40:31
jmercouris
The latest release of Emacs was within the past year, and why does modern equate to better?
21:40:58
jmercouris
Ardx: Except for that Ctrl+C and Ctrl+V can be made as copy/paste keys, and there are Windows versions that have that built in by default
21:41:17
aeth
Emacs is a lot more modern when (1) you turn off tool-bar-mode and menu-bar-mode and (2) you give it a dark theme and (3) you shrink the font
21:42:23
Ardx
I like having drag drop panes that show me file tree, document tabs, code, menu with debugging options etc
21:43:00
jmercouris
Ardx: If you just don't feel like learning it, that's fine, but you can't argue that emacs is less capable
21:44:14
Ardx
not here to learn keyboard shortcuts and how to hide everything away, just want to edit lisp in a regular enviroment that I work in all day too
21:45:29
jmercouris
Ardx: Not all interfaces have to be so strange looking: https://imgur.com/a/LhCA6
21:45:54
jmercouris
Ardx: I'm just suggesting keep an open mind, it is not a coincidence that the best developers are using heavily modified emacs and vi
21:47:45
jmercouris
Ardx: I would say you rather prefer your editor as simple as possible, and making all decisions for you, and that's fine, but you won't score any points by criticizing emacs (unless of course your criticisms are accurate)
21:49:26
aeth
Ardx: The problem is that every language that has an IDE has a different best IDE. And IDEs make a huge difference. C# in Emacs isn't a good experience, just like Common Lisp in Visual Studio isn't a good experience. The recommended IDE for CL is SLIME, which does many cool things. There are ports of SLIME outside of Emacs (e.g. vim), but they're not as featureful at the moment.
21:50:00
aeth
Emacs is both a text editor and a platform, and it happens to be the platform for the Common Lisp IDE.
21:51:07
Ardx
all languages have the same core concepts though: a set of files, code to syntax highlight, autocompletion on type, error underlining, a repl, and a compilation step
21:51:08
rme
And that is, IMO, somewhat unfortunate. Emacs and SLIME do a lot, but you can write CL using any tool you like.
21:51:46
Ardx
Thats why things like the language service exist, and how a vscode/sublime can suport a lot of different languages
21:51:47
aeth
Ardx: Yes, all languages have the same core concepts, but they all tend to have a different "best" IDE. That's definitely unfortunate.
21:52:32
aeth
Ardx: There is a server that CL can speak, used by SLIME and other IDEs. It's called swank. https://github.com/slime/slime/blob/master/swank.lisp
21:52:45
_death
Ardx: this is wrong, and if you want to learn why, you need to suspend your disbelief and pick the environment that tends to be used by practitioners of a language
21:52:59
aeth
Ardx: The problem is that people hav eto support swank, and I don't think Microsoft (creators of Visual Studio) have an interest in CL.
21:54:27
aeth
CL is a fairly unique language, so converting it to something designed for a C# or Java workflow is probably not going to work. Common Lisp is unlike almost every other language because it's based on an interactive image. Smalltalk is also like that, and Smalltalk is the only other language I know like that.
21:54:54
aeth
Smalltalk is probably the only language more interactive than CL (it did it first, and it did it better)
21:55:24
jmercouris
Ardx: Did you try something like spacemacs? That seems to cater to the Atom type crowd
21:55:56
jmercouris
You can't tell me the aesthetics of that look bad, though I don't even see why that should be an issue
21:56:26
jmercouris
At the end of the day, the choice is yours, but I cannot in good conscience reccommend another platform/editor
21:57:41
random-nick
if you don't like keyboard shortcuts then you can always execute a command by name using M-x
21:57:48
Ardx
Heres the modern approach: Have menus , buttons etc interactive things. Also allow keyboard shortcuts. voila
21:58:04
jmercouris
Ardx: That's just the thing though, emacs DOES come with a menu bar and buttons if you want
21:58:27
random-nick
Ardx: well, that seems to be what you want, since using the mouse is just extra work
21:58:46
jmercouris
I'm at a loss as to whether you are trolling or not, if you are, you did an excellent job, because this whole time I've been taking you seriously :D
21:58:48
p_l
Ardx: most editors don't provide enough stuff to implement comparable interfaces, or just require too much work (Eclipse)
21:59:03
p_l
Ardx: that said, I do seem to recall some pretty recent Atom and VSCode integration work
21:59:13
phoe
since it's about if emacs is outdated or not, and certainly doesn't concern itself directly with Common Lisp
21:59:32
jmercouris
phoe: Well, the conversation is about the best Lisp Editor, it's ALMOST offtopic, but not quite
21:59:36
aeth
The real problem Common Lisp has is that its unique characteristics (shared with one of its main inspirations, Smalltalk) really works best with its own enviornment. And that environment doesn't exist. If you've looked into Smalltalks, you've probably noticed that they tend to come with IDEs because that's a big part of the Smalltalk experience. GNU Emacs is old, and it uses Emacs Lisp, which is basically Lisp stepping in a time machine bac
21:59:55
aeth
Lisp stepping in a time machine back 30+ years. But it's close enough, so people use it.
22:00:40
aeth
But if you really get used to the Emacs+SLIME workflow, it provides a glimpse into what could have been, if there was more development effort in that direction. An experience you don't really get elsewhere, even though GNU Emacs really isn't perfect
22:00:45
Ardx
jmercouris this https://static.thegeekstuff.com/wp-content/uploads/2010/05/emacs-editor-gui.png vs this https://i.stack.imgur.com/Ne3qd.png
22:01:19
Ardx
Just because emacs come with buttons doesnt make it better, though tbf spacemacs seemed to hide them from me too
22:03:00
_death
aeth: this is also wrong.. realize that Emacs Lisp is developed and gains more features every day, unlike Common Lisp which is stable and standardized.. there are IDEs for Common Lisp, like LispWorks and Allegro.. (there was that Cusp thingy some years ago)
22:03:59
aeth
_death: IDEs that cost hundreds/thousands of dollars in 2017 might as well be considered non-existant for most people.
22:05:05
__rumbler31
tbf the money spent on developing vs is enormous, and the whole vs ecosystem does cost thousands to truly leverage
22:05:13
aeth
_death: Emacs Lisp was made intentionally archaic, e.g. dynamic scoping. RMS was an old Lisper. He was aware of the future of Lisp and rejected it. Emacs Lisp still gains features because it's so far behind Common Lisp and Scheme.
22:05:38
__rumbler31
ms just subsidizes the costs of giving away a free version of their editor since they need to provide a polished experience in order to drive users/devs to their platform
22:05:41
Ardx
This sums it up: "There is a time limit of 5 hours for each session, after which LispWorks Personal exits, possibly without saving "
22:06:07
__rumbler31
there is no such thing for lisp, so allegro/LW ides for a couple hundred bucks seem out of place
22:06:39
aeth
__rumbler31: Microsoft killed a lot of markets like the commercial web browser market and the commercial IDE market (although the latter has somewhat made a comeback in recent years).
22:08:23
__rumbler31
Ardx: the value proposition for emacs is thus: this tool might be clunky at first, but its so configurable that you end up making a custom fit glove over the course of your career
22:09:43
aeth
_death: Afaik, Emacs Lisp can now sort of emulate Common Lisp, as quite possibly the slowest Common Lisp implementation out there, because it's emulating Common Lisp.
22:09:52
_death
Ardx: if you're allergic to the free, unlimited, hackable and customizable lisp env..
22:09:54
__rumbler31
since we edit text as a regular part of our work, once you can create modes that distill your editing down to your other mental models (like browsing between forms), you get to leverage your knowledge in a new domain, which is powerful
22:11:16
aeth
__rumbler31: Emacs is a good example of why defaults matter. Default Emacs is terrible, but every Emacs user doesn't realize this because Emacs users have a mandatory 100+ line .emacs file and, these days, probably at least a dozen packages from M-x package-list-packages
22:11:20
__rumbler31
I imagine one uses menus to discover what an interface can do. If it never changes, eventually the most common commands will be memorized as key combinations anyways. So imagine that your interface no longer EVER changes (like emacs) what you are left with after several years of use is exactly the environment you need
22:11:51
_death
aeth: not claiming it's more performant, or that it should be used for general purpose programming.. just that it's not stuck in the past as you described it
22:12:28
aeth
_death: It's still stuck in the past. It's more modern features bolted onto a Lisp that was outdated at the start in its design.
22:13:00
jmercouris
Unless they introduce some sort of "compatibility" layer or something I don't know
22:13:06
__rumbler31
aeth: yes, although I would say that sometimes with long enough timelines, getting the defaults right can be hard. IIR the most popular editing constructs like copy/paste existed in emacs and vi before they became known as copy and paste and associated with C-v. C-c etc
22:13:10
_death
aeth: fine.. believe what you want.. me, I try to learn from the changes people (Lisp hackers, after all) make to it..
22:14:11
aeth
_death: All I know is that the style of CL I write is essentially impossible in Emacs Lisp, and even if it isn't, it wouldn't be fast at all.
22:16:19
jasom
Ardx: and by that I mean 80% of why I use common lisp over other tools is that SLIME is the best development environment I've ever used, and lighttyears ahead of any freely available one.
22:16:35
aeth
jmercouris: That's what they're doing. They're switching everything over to Guile (???) with a compatibility layer. Which is strange since elisp is almost CL-compatible and GNU has not one, but two CLs.
22:16:57
__rumbler31
to finish my point, your emacs will never change. VS will change, while that timeline is covered in years, I don't care to keep chasing down where vs decided to hide that feature under whatever menu.
22:17:55
aeth
I suspect if Emacs picked CL, they could have made the transition 10+ years ago instead of still having a work-in-progress Guile port.
22:20:19
aeth
jmercouris: I believe I read an FSF or GNU article about how Guile was going to become the standard GNU scripting language... and that article was from the 90s.
22:21:26
aeth
The whole implementation-in-C, scripting-in-interpreted-Lisp approach is flawed imo. Just writing the whole thing in SBCL will probably as a whole be faster than mixing very fast with slow.
22:22:25
_death
sure, that's one thing that separates the boy languages from the men languages.. the former are written in some other language..
22:23:13
p_l
Ardx: https://atom.io/packages/atom-slime might be of interest to you, it's afaik "still usable"
22:24:40
aeth
jasom: Yeah. We finally have the fast implementations and fast hardware to do things properly today. A lot of strange decisions made 30 years ago were for performance issues that no longer matter, but we're stuck with those decisions, unfortunately.
22:25:15
p_l
aeth: a bit of the problem is that GNU Emacs harks in its history to before Common Lisp and evolved separately
22:25:28
_death
jasom: if rms wanted to pick the CL route, a GNU CL would've been developed.. gcl/clisp came afterwards
22:27:05
aeth
Yeah, Emacs's history goes back a long way. GNU Emacs's tutorial is actually mostly compatible with the tutorial for the original (not in Lisp) Emacs. I don't know if the tutorial was modified from the original Emacs or backported from GNU Emacs with minor changes made. https://github.com/PDP-10/its/blob/master/src/emacs/teach.1
22:27:47
p_l
jasom: the GNU branding might have happened after CLtL1, but the implementation is older
22:28:32
jasom
And CLISP is older than Guile, but was not licensed under GPL until about the same time that Guile was released
22:29:18
aeth
Early GNU Emacs is still inferior to Lisp Machine Lisp, though. And RMS was aware of that. His name is on the later manuals.
22:30:12
jasom
Don't link with readline, or your entire program becomes a derivitive work of readline...
22:31:01
p_l
jasom: it's interpretation that is arguably thrown out today (case in point: Illumos and KVM, Linux and AFS/ZFS)
22:31:17
random-nick
_death: I am not sure where I've heard that, but you can always ask him about that using email
22:32:14
random-nick
well, you can send a mail to rms@gnu.org and he will probably respond in up to 2 days
22:38:46
Ardx
well the atom lisp plugin is super nice, uses slime in the background too so finally I have all the features of a modern IDE with the power of lisp language. Sweet
22:41:51
aeth
Well, to be fair, Emacs bloated 10x since the "Eight Megabytes and Constantly Swapping" joke. I now open a fresh emacs to 81.5 MB RAM usage.
22:45:34
_death
just think, when you want to hack your own package or the editor's or someone else's, you need to write javascript :(
23:13:01
makomo
jmercouris: Ardx: Did you try something like spacemacs? That seems to cater to the Atom type crowd
23:18:51
makomo
i really like the philosophy of having the keybinds of vim and extensibility of emacs
23:34:57
jmercouris
makomo: I was saying the people who like a pre-built config would be more likely to be atom users
23:35:51
jmercouris
makomo: Nothing wrong with evil mode, but spacemacs makes 100% of decisions for you, and I find that people who use spacemacs don't deviate from that a lot, it's not a bad thing, it's just a different way of doing things
23:36:26
p_l
jmercouris: it's less "100% of decisions" and more "customizing spacemacs is an extra level of work"
23:36:48
p_l
and more related to how, for example, most people don't change basic emacs keybinds either
23:37:08
jmercouris
Well, I try not to change the core ones, I just add to them so that I can still use vanilla emacs
23:37:26
jmercouris
nothing terrible about c-n, c-p, c-x c-f, though I'll usually use s-f for projectile instead etc
23:37:43
p_l
jmercouris: so on top of already complex beast (Emacs) you add essentially a whole application (spacemacs) which has its own approach to configuration logic
23:43:37
p_l
well, I find it quite interesting, just didn't get around to setting myself up, because the defaults support CL and Org quite well
23:53:05
Shinmera
I'm still waiting on people to give feedback on Portacle's key set and help document.
0:01:16
p_l
Many of the more knowledgeable people tend to have their idiosyncratic ways of setting up
0:02:09
Shinmera
p_l: Yes. I expect most people to just drop it without a word if they don't like it. That's one of my "fears" about all projects I have.
0:02:46
Shinmera
For Portacle (and most things, really) I don't even know how many people use it, let alone how many of those are beginners.
0:03:23
jmercouris
Shinmera: This is not just a "fear" this is a reality, if people don't like a piece of software they'll just loook for another instead of leaving feedback
0:03:44
Shinmera
I know, what I meant is that I fear most people will react that way, rather than a minority.
0:04:57
p_l
Shinmera: I think some work on getting Portacle in front of users is needed, not because of anything you do, but because gigamonkeys.com/book still gets people to look at Lisp in a Box
0:05:12
jmercouris
you could do a bunch of user studies, individually interviewing programmers to see if there is a need for such a tool, you could do test balloon posts on media platforms and see how people react to them, surveys you submit to a mailing list, etc
0:05:38
jmercouris
If you believe you've made a good piece of software, and no doubt you have, the second part that is necessary is marketing
0:05:47
Shinmera
p_l: Yeah. I've also seen a couple of posts on reddit where people suggest some complicated manual setup rather than just linking to Portacle, so it's still obscure even among people already familiar with lisp and willing to help.
0:06:24
jmercouris
Shinmera: If your interested in marketing, there's a lot of good resources on /r/startups
0:07:33
jmercouris
it is a shame that you produce so many packages that are not well known, because they are quite useful
0:08:10
Shinmera
Reforming the lisp community or whatnot isn't one of my goals. I made Portacle primarily for myself :^)
0:08:23
jmercouris
I don't know what your goals are, but I think if you are writing software that you hope other people will find useful, it follows that you'd want as many people as possible to benefit from those pieces of software
0:09:03
jmercouris
you are not trying to sell them some useless bs, but you can provide tangible value to their lives by informing them of products that you make that they may be interested in
0:09:18
jmercouris
Shinmera: Well, at least one person thinks your software isn't shit, and that's me
0:10:18
Shinmera
Anyway, I'm aware marketing and all that can be beneficial for the target audience as well, it's just really not my deal. If someone else wants to do that, I don't mind, as long as I deem the thing being advertised as "ready".
0:10:50
Shinmera
I'll just continue on my (not so) merry way hammering out software, whether people use it or not.
0:23:47
aeth
How does Portacle differ from Roswell? I use Roswell to test my code on a bunch of implementations I wouldn't otherwise have easy access to
0:39:59
mfiano
The difference is Portacle is an Emacs distribution and roswell is an implementation manager. Not much overlap there
3:16:36
jmercouris
I'm using cl-webkit, and I want to pass a function to the callback, but apparently you are supposed to pass a SYSTEM-AREA-POINTER : https://gist.github.com/91d471ea63c8f601178bdfb2a1955493
3:18:07
pillton
It is not something created using cffi:defcallback? (https://common-lisp.net/project/cffi/manual/html_node/Tutorial_002dCallbacks.html#Tutorial_002dCallbacks)
3:25:46
jmercouris
rpg: javascript is executed asynchronously and upon completion a callback is fired, the webkit api is in C
3:26:31
jmercouris
So this is my first time touching any CFFI stuff, and I'm having a right challenge with it
3:26:46
rpg
jmercouris: Seems like that's just the sort of thing that a CL library should wrap up and hide away from you!
3:27:31
jmercouris
the author does provide a macro called define-g-async-ready-callback, not sure what to does, could be what I need though
3:28:59
rpg
I understand why it's so, but I'm not excited about libraries that are usable ... if only you know how to use the original C++, C, or Objective C API!1
3:31:50
rpg
I mean, to be fair, we're a small community, which means we don't have the cycles to support lots of thick APIs.
3:32:17
rpg
I do understand that, and don't mean to insult the people doing the good work. Just wishing....
3:34:54
throwprans
on another topic, reading PCL, it goes "At least one of Common Lisp's original designers hated it. LOOP's detractors complain that its syntax is totally un-Lispy (in other words, not enough parentheses)"
3:35:39
rpg
throwprans: You triggered the trap! This is where I start ranting about how much better it is to use ITERATE than LOOP! ;-)
3:37:32
rpg
seriously, for a number of reasons, I encourage people to use ITERATE. It's not just that "it's more lispy," LOOP is a not-so-good domain specific language. ITERATE gives you all the power, but in a way that fits better.
3:38:32
rpg
throwprans: You should probably just leave LOOP and ITERATE alone for a while, and stick to the core of the language.
3:39:01
throwprans
Well, learning about Macros, it says it is important to understand loops and other control structures.
3:39:27
jmercouris
Eventually you'll come across other code, and lot of people use Loop, so you should understand it
3:40:20
rpg
jmercouris is right, but still not a fan. We turned into an ITERATE shop. Once you've read a couple of LOOPs with IF-THEN-ELSE-ENDIF in them, you'll know why!
3:41:31
throwprans
But this is a thing of beauty though: (loop for x from 1 to 10 summing (expt x 2)) ==> 385
3:41:44
jmercouris
This is the macro I was saying I found https://gist.github.com/35966c2230d4683174aa1a3605319c42
3:42:08
aeth
throwprans: that's actually not efficient. You want something like series, which will ideally use the mathematical identity instead of actually doing the unnecessary loop
3:42:35
throwprans
Judging from what I know so far, I think I am gonna like loop, I am very much a man of pragmatism, dogma is no good.
3:43:25
aeth
pierpa: DO is literally just LET where the bindings have an optional increment, and then with a termination step before the body.
3:43:40
rpg
throwprans: The person who did ITERATE wanted to keep all the power of LOOP, only without the totally different syntax.
3:43:59
aeth
A lot of people can't even read it, which is strange, because they probably can read let
3:45:08
rpg
aeth: I find DO very hard to read -- there isn't enough structure to it for me to easily extract the return values, in particular.
3:45:30
rpg
throwprans: the CL standard is, alas, dead, and will never be revised. There's lots of history about why that is the case.
3:46:07
aeth
rpg: yeah, do probably would have been better with three clauses, since it sticks in the return value(s) in the same section as the terminating condition, but then that adds an extra thing that's not always used
3:46:48
aeth
throwprans: (1) The standard is never going to be updated even though it's incomplete. (2) Don't put in the standard what can be put in a library.
3:47:14
aeth
Even loop probably shouldn't be in the language. You can already do everything loop can do without loop, although it might not be as clean, especially collect
3:47:37
throwprans
aeth: I strongly believe a powerful language has a complete "standard library" even if the language is light.
3:49:20
aeth
throwprans: The de facto standard is the Common Lisp Hyperspec, a web version of the ANSI Standard that looks like it was released with web 0.4
3:49:25
jmercouris
I have this terrible bug in nEXT, I can kill a tab with youtube, and it will keep playing the song
3:49:46
jmercouris
somehow it doesn't want to release the resource, so now I'm stuck listening to this justin bieber song :\
3:52:01
throwprans
loop isn't lispy enough. The PCL is unfair in making it an issue with "parentheses" joke.
3:54:04
aeth
throwprans: There are three layers. CL itself comes with packages. These are essentially just namespaces for symbols. There are third party systems built on top of this. The overwhelming winner is ASDF, which has a concept called systems, defined in .asd files.
3:54:20
rpg
throwprans: Sorry -- I have to go AFK right now. The system definition capability that jmercouris refers to is ASDF, and the easiest way for now to install libraries is to grab Quicklisp.
3:54:39
aeth
Dependencies are then managed through a "package manager" (although that name is inaccurate because it's a system manager) called Quicklisp, which works on projects, which are basically a set of systems
3:55:05
throwprans
I know of quicklisp, I had to install it to get vlime (vim + sbcl integration) working.
3:55:55
jmercouris
throwprans: Here's a trivial example: https://github.com/nEXT-Browser/nEXT/blob/master/next/next.asd
3:56:39
jmercouris
if I say something like (ql:quickload :next), and this system definition file is located within my local projects dir, it will load all dependencies listed
3:57:12
jmercouris
so it will quickload :cl-strings, :cl-string-match, etc, which are also defined with ASD files, and so on and so forth until your dependencies are resolved
3:57:46
jmercouris
Yeah, but once you do, you'll see that you don't need to tuoch 99% of the spec, so try not to feel too overwhelmed
3:57:49
aeth
Packages do not necessarily have to correspond to systems, but they probably should to keep things simple.
3:58:33
aeth
Or, at the very least, there should be a main package with the same name as the system, even if you have other ones
3:59:18
jmercouris
throwprans: Packages are defined using defpackage http://www.lispworks.com/documentation/HyperSpec/Body/m_defpkg.htm
4:00:41
aeth
There are two styles for defining packages. The majority style is to have a package.lisp per directory (so usually just one, if it's just in one src directory or just all at the top level directory). The minority style is to have a package definition at the top of every file, and have one package per file.
4:01:09
jmercouris
aeth: I've never seen a one package per file definition, why would someone do that?
4:01:43
aeth
Frequently, you can only safely :use one thing other than :cl before you hit a name conflict
4:02:26
jmercouris
Hm, that's true, I prefer to have the full name though package-name:function because it allows me to identify code not native to my package
4:06:06
aeth
I only use prefixes for huge packages that are clearly designed to be used that way, like cl-opengl (in that case, the gl: or %gl: prefix)
4:06:23
jmercouris
Can someone explain the warnings I hget when I define a cffi callback: https://gist.github.com/f44d31f5b2195018cd23319eaa4d4675
4:06:47
jmercouris
it doesn't make sense that I get undefined variable: CALLYBACKY, when I've literally just defined it above
4:08:25
jmercouris
When I eval it via slime-eval-region it'll show callybacky in the message buffer, so it must be fine, but then it says "callybacky" unbound, YET it autocompletes within slime-company, what is going on here
4:14:04
jmercouris
I somehow didn't realize that from the example here: https://common-lisp.net/project/cffi/manual/html_node/defcallback.html
4:18:12
jmercouris
IT WORKED! Sure it crashes because my callback has the wrong args or something, but my callback was invoked!
4:21:47
jmercouris
I've gone through so many minion advice, and none of them are even slightly positive, I feel like I should program a new one called "friendly minion" that says friendly and nice things