freenode/#lisp - IRC Chatlog
Search
12:28:39
mrSpec
Hi guys! I've got a question related to SLIME. When I go to method definition using M-. it opens *slime-xref* new buffer (fine!), when I select definition, slime points me the method, but instead of showing it in the buffer I came from, it uses the oldest buffer (so this is always not the one where I pressed M-. but the one where I'm looking at another file)
12:38:13
edgar-rft
There's e.g. Elisp (buffer-menu) for managing buffers like dired does for files, and I'm sure there are other built-in things...
12:40:07
Shinmera
edgar-rft: I don't want to have to do anything at all. It should just use a sensible buffer to display the result in instead of splitting things to hell.
12:44:39
edgar-rft
Shinmera: and I want a pony. Example: Using the same *buffer* means Emacs would have to delete the old contents of the buffer first and you would need to undo the deletion afterwards, is that what you want?
12:45:25
Shinmera
edgar-rft: This is software, I can just say what I want and it should be possible.
12:46:26
Shinmera
It's not what he meant because emacs terminology is confusing. He meant to reuse the same window.
12:47:14
Shinmera
Rather than the current behaviour, where it often will split the windows again or place the result buffer in some other random window.
12:48:57
Xach
ACTION wonders what to do about macroexpand-dammit, a project that never had an .asd file and whose site has stopped working
12:49:54
edgar-rft
Shinmera: You can configure Emacs to never split windows, or only split windows in any situation you like, or a bazillion other possibilities. That's what Emacs is famous for.
12:51:52
edgar-rft
the general stuff is here: <https://www.gnu.org/software/emacs/manual/html_node/elisp/Windows.html#Windows>
12:54:05
edgar-rft
...and here are the window-splittig options:<https://www.gnu.org/software/emacs/manual/html_node/elisp/Choosing-Window-Options.html#Choosing-Window-Options>
12:57:47
edgar-rft
Example for a list of Emacs buffer names that shall not pop-up: (setq same-window-buffer-names '("*inferior-lisp*"))
12:59:32
edgar-rft
Change number of buffers displayed in the toolbar's buffers list from 10 to 16: (setq buffers-menu-max-size 16)
13:02:14
edgar-rft
I have some function slike "switch to last visited Elisp buffer" and ".. CL buffer" if anyone is interested, but that is far more than oly one line.
13:03:21
mrSpec
because making *slime-xref* not pop-up won't solve the issue, and would create a new one
13:06:26
mrSpec
edgar-rft: ah no sorry. I'm looking for opening file (with function definition) in last visited buffer, not switching to last visited buffer
13:12:50
edgar-rft
mrSpec: an Emacs *buffer* is a piece of RAM holding the text, an Emacs *window* ist the graphic memory object displaying the text. Do you want to re-use the *buffer* (requires deleting the old text) or the *window* (does *not* require deletion of text in any buffer, only re-uses the GUI window for displaying a different buffer). In Emacs, this is an important difference.
13:19:06
mrSpec
I thought that when I split window I still have 1 window, but 2 buffers. Now I see that when I split window, I have 2 windows.
13:19:46
Shinmera
as in, you have frames which contain one or more windows, each of which displays a buffer.
13:25:48
edgar-rft
mrSpec: the Emacs terminology comes from the time when people still worked with text terminals. When GUIs became popular, Emacs already had occupied the term "window" for it's own meaning. That's why Emacs calls GUI desktop windows "frames". Not very clever, but it saved them from re-writing all the internals. It's a well-known and endless source of confusion.
13:26:29
dlowe
if only they had access to a decent text editor that would do search-and-replace on a lot of files.
13:27:20
edgar-rft
I still would like to come up with a workable solution, but I need to know what the exact problem is.
13:28:37
Xach
dlowe: I don't like getting an alert every day about a failure to fetch an update for it.
13:28:56
Xach
dlowe: so that means moving to sharplispers (and adding a system, readme, etc) or just dropping it and breaking a couple projects.
13:31:37
dlowe
If I had a project that depended on something like that, I would just want to get a notification that it was no longer maintained, and that I should switch to something else before it gets dropped.
14:01:31
Xach
phoe_: no. but it is a system where the .asd file is auto-generated for packaging purposes.
14:02:32
phoe_
which would require these two gentlemen to test their projects with the refactored version, once it's done.
14:02:56
phoe_
in any other case, they'll nonetheless need to react to you killing that project from Quicklisp, so you can poke them either way
14:05:25
phoe_
Xach: so you can query them for asking what they would prefer to do in their code... and in madnificent's case, also for their gender.
14:08:09
phoe_
it's you who enforces author information for every single project you accept into Quicklisp
14:26:32
Xach
it also really helps that i have ed wired up so i can use (ed (asdf:system-source-file "fn")) to pop to it in emacs
14:32:27
phoe_
I plan on submitting CL-LZMA into Quicklisp one day, but I need to compile foreign libraries for a variety of systems.
14:35:50
JuanDaugherty
i think they did same as everybody else pretty much, just being a closed platform ... .
14:36:33
phoe_
Shinmera: good. And AFAIK even their 32-bit kernels are somehow able to use 64-bit programs and libs.
14:37:14
Shinmera
What apple doesn't have is backwards compatibility. Apparently the next OS X version breaks things from 10.11/10.12 again.
14:50:20
JuanDaugherty
it was a 12 yo machine so I didn bother further with it and moved its function onto this machine
14:50:58
JuanDaugherty
was just using as a LAN router, it was in continuous service all or most of that time though
14:51:22
JuanDaugherty
if it had been on the UPS, as all the local machines are now, it would still be in service
14:52:27
JuanDaugherty
i think it was the cumulative effect of being exposed to such power events over the decade or so
14:53:47
shrdlu68
I have a raspberry pi outside, without any covering, protected only from rain and direct sunlight, that acts as a wifi router. Has been running reliably for a year and a half.
14:53:59
JuanDaugherty
it had 32 bit linux most of that time but I looked up the processor model and it indicated it could run 64 which in fact it did
17:14:55
borodust
Xach: are there any plans (if that's even possible) to support conditional dependencies in asdf?
17:15:19
Xach
borodust: I don't have plans for that on the quicklisp side. I don't know about the asdf side.
17:16:01
borodust
Xach: i mean, asdf has those, i was wondering if quicklisp would support that feature
19:36:29
Marcy
I can't get slime to load quicklisp automagically, the closest thing I could find to an answer was here: http://slime-devel.common-lisp.narkive.com/o9d9bm37/different-behavior-ccl-w-slime#post2 which seems to indicate that slime isn't loading my CLISP init file correctly, but further searching isn't turning up results for me.
19:37:05
Xach
Marcy: do you want quicklisp to load when you start clisp, or only when you start slime?
19:38:12
Marcy
It loads fine into CLISP, and slime has CLISP as my inferior-lisp-program. I'd like for it to load when I start slime.
19:43:09
Xach
Marcy: are you up for pasting some stuff? if so, what's in your clisp init file? and what's in your *inferior-lisp* buffer at the start? maybe there are some clues.
19:46:45
Xach
As a meta comment, clisp is not good and I would recommend something else. But it is still an interesting puzzle.
19:51:12
Marcy
Xach: I'm new and on windows, and am having trouble finding it again. I knew where it was last night...
19:52:50
jasom
Marcy: if you just want to get up and running on emacs, and don't mind using sbcl, I've got a "just unzip it to run" packge of emacs/slime/quicklisp/sbcl here: https://github.com/jasom/lispstick-automate/releases/download/1.0/lispstick-sbcl-1.3.9-emacs-24.5.zip
19:54:04
Marcy
jasom: my .emacs file appears to be empty, with the exception of the ql loading code. And I don't have a specific attachment to CLISP other than, "it's what I started with"
19:55:43
Marcy
jasom: I set up my slime using QL through CLISP on the command line, so it's all magic to me.
20:01:16
Marcy
jasom: http://paste.lisp.org/display/355606 Looking at this closer, I'm not actually writing my .emacs file, because of reasons? But emacs is loading the same file when I load it across sessions.
20:02:45
jasom
Marcy: that's fine, I just wanted to check that nothing was passing options to clisp to tell it to *not* load your initialization file. That's on the second line of the .emacs
20:10:01
Marcy
Xach: https://pastebin.com/m0Jx9QAr here's my CLISP init file; why is it bad? Is there a place I can dig around to find out more about implementations?
20:11:45
Xach
Marcy: clisp has some virtues but they are outweighed by its flaws. it is not very fast, it has some deviations from the spec, it is not released very often, it is unmaintained or lightly maintained, and it does not have many users to help other users.
20:12:45
Xach
SBCL is popular and actively used and developed. CCL is pretty good, though development has slowed quite a bit. other implementations have their virtues and vices too.
20:13:56
osune
it seems the users settle for sbcl for general stuff and ECL for the embedded side (?)
20:14:07
Xach
for example, i don't use abcl, but it runs on the jvm, and if that was a constraint for me, i'm glad it is actively developed
20:14:30
Shinmera
ACTION wonders how to divide CL implementations into the different vices of Pride, Envy, Wrath, Sloth, Greed, Gluttony, and Lust
20:16:56
Marcy
Haskell introduced me to the REPL, and I don't want to use anything without it, but oh gosh getting build environments working as a beginner in whatever language is rough.
20:17:37
Shinmera
You could also just use a packaged deal like Lispstick or Portacle, which has been shown to you.
20:18:01
rpg
ABCL is handy if you want to script a Java program, but if you just want to run CL code, and want something free, you should probably use CCL or SBCL.
20:18:12
Xach
Everything new smacks you with all the weird stuff that longtime users just ignore/accept/take for granted.
20:19:55
Marcy
Shinmera: I'll take a look at both of those, but neither showed up when I googled "learn lisp" :p Scala has a similar issue, except lisp has not blown up when I tried to do stuff in the preferred IDE. I couldn't get hello_world to work in Scala's IDE : /
20:20:41
Shinmera
And a lot of people still continue to put out tutorials that try to do things from scratch.
20:21:50
osune
well apart from lispstick, which i didn't know about until now. there was no other option until last weak, to be fair ...
20:22:24
Shinmera
there was lispbox, but it hasn't been maintained in forever and never quite run right on all systems either.
20:25:38
jasom
Speaking of niche uses of lisps not named sbcl or ccl, has anyone written a plugin for a non-lisp program using ECL?
20:25:48
Shinmera
I made Portacle in preparation for writing my book. The idea that people would have to go through an error-prone, long, and besides-the-point manual setup before they could get started lisping is absolutely disgusting to me.
20:26:44
jasom
Shinmera: that's also why I created my tool for generating .zip files for windows and my script for configuring slime on linux
20:27:18
Shinmera
osune: https://www.reddit.com/r/lisp/comments/6zhc2m/the_portacle_common_lisp_ide_10_released/dmvd619/
20:27:38
dlowe
Shinmera: there was always the demo version of lispworks. Though portacle is much better, so thanks.
20:28:59
osune
Shinmera: what can you do about native grep support in portacle ? asking for a friend ...
20:29:37
jasom
osune: I also used shell scripts for exactly the same reason for generating lispstick: https://github.com/jasom/lispstick-automate
20:30:55
Shinmera
jasom: Oh, so you use Wine to build. Interesting. Did you encounter any issues with that?
20:31:26
osune
jasom: yeah but see this days where people speak of dockers and flatpaks 'n fancy stuff , using plain shell seems exotic for modern standards
20:32:01
jasom
If I need incremental builds and dependency management, I switch to redo, which is just a fancy interface for shell scripts
20:32:51
Shinmera
osune: One of the requirements for Portacle was to avoid container technology, so that rules out Docker. I didn't know of flatpack at the time, but I doubt it would easily solve my issue, and would only handle Linux anyway.
20:33:24
jasom
Shinmera: sbcl works as good, if not better, under wine as native windows, and the only other thing I was doing was scripting .msi files, which wine does fine as well
20:33:51
jasom
There are supposedly crazy corner-cases of .msi files that wine can't handle, but I've not run into them in my time using it
20:34:32
Shinmera
Currently portacle is already wired to MSYS2, so seeing if Wine would work as an alternative host would require a good bit of work.
20:36:12
jasom
Shinmera: mainly I don't have a windows machine everywhere I go, and wine is much faster than a VM
20:38:26
jasom
back when I was maintaining a native-windows application written in lisp, I used wine for building executable imags as well; so much nicer than .bat files, and I never had time to learn powershell
20:40:38
Shinmera
https://github.com/portacle/portacle/commit/06e124851fb11efd0495b99bfeafb2bdce9a8fe8
20:42:15
Shinmera
I initially used scripts to handle the wrapping of executables, but that turned out to be a mistake in the long run, especially on Windows. Hence the launcher application.
21:35:22
edgar-rft
JohnTalent: the error seems to be that (SDL2-EXAMPLES:BASIC-TEST *POSIX-ARGV*) was called with one argument, but wants exactly zero arguments. Everything else must be looked-up in the definition of the SDL2-EXAMPLES:BASIC-TEST function.
21:41:54
ralt
how can I make a macro that will give me the proper docstring when using multiple args? e.g. with (defmacro foo (vars &body body)), I'd like "vars" to be decomposed into proper arguments in the docstring, such that I can do (foo (#| get proper docstring there |#
22:46:40
edgar-rft
JohnTalent: you call it with the argument *POSIX-ARGV*, so even if *POSIX-ARGV* is NIL, it's a *one* argument, a symbol-name.
22:54:12
edgar-rft
Sorry, now I understand: in prerend.lisp you write (sdl2-examples:basic-test) and then buildapp turns it in dumper-2SKVI5f7.lisp into (sdl2-examples:basic-test *posix-argv*), then it looks like a bug in buildapp
22:56:04
JohnTalent
edgar-rft: Ah okay. Off the top of the head, is the source available for buildapp?
22:57:06
JohnTalent
edgar-rft: When you run hello-lines it gives you a REPL. I type (sdl2-examples:basic-test) and everything works without issues.
22:59:07
JohnTalent
perhaps it's looking for an eclosure to the series of lists I provided in preresnd.lisp but I'd rather look at the source.
22:59:45
edgar-rft
AFAIK the source is <https://github.com/xach/buildapp>, but I never used buildapp, so don't ask me too man details :-)
23:05:26
edgar-rft
The normal way is not to create stand-alone executables, so you're outside the ANSI spec, everthing depends on the SBCL internals.
23:08:39
edgar-rft
I usually start with dumb-simple things like (print "hello") lines and stuff like that
23:13:21
edgar-rft
but it would be interesting where the *POSIX-ARGV* argument (probably holding the command-line arguments) comes from
23:22:16
edgar-rft
To me it looks like buildapp tries to insert a handler for command-line arguments. Look at the (defun main (argv) ...) examples at <https://www.xach.com/lisp/buildapp/>
23:45:01
edgar-rft
JohnTalent: in a stand-alone executable it's up to *you* to start a REPL if you want one.
23:52:56
mfiano
If you are trying to dump an executable of a game/sdl render, a lot of groundwork has to be done
0:03:34
mfiano
At a bare minimum, you'll have to make the sdl thread main, and somehow control how assets are resolved, since they would otherwise refer to the host system's path locations without any work done.
0:06:02
JohnTalent
what assets does cl-sdl2 require besides tg, sdl-ffi etc. Are these the sort requirements you refer to?