freenode/#lisp - IRC Chatlog
Search
21:16:24
gendl
Hi, if i put a (break) in my program, which lands me in the slime debugger, how can I get a repl with local variables set as in a chosen item from the backtrace ?
21:17:26
gendl
if I open the item 0 in the backtrace i'm seeing "Locals:" with the relevant local variables reported, so now i'd like a repl to be able to evaluate expressions in that environment
21:20:27
gendl
reading manual here, less daunting than I thought it would be: https://www.common-lisp.net/project/slime/doc/html/Examining-frames.html
21:28:47
gendl
phoe: got it. well, eval-in-frame one expression at a time is enough for me for now. at least i can see the exact expression the error is coming from so i can dive into its code.
21:32:01
jmercouris
anyone know of something like this for cl? https://github.com/kongaskristjan/fire-hpp
21:32:48
fwoaroof[m]
jmercouris: I've been working on something similar, but haven't gotten it exactly right yet
21:36:31
fwoaroof[m]
A system implements this generic function specialized on the uppercase version of the program name (argv[0])
21:36:57
philweb
when building an application using asdf:make-build in ECL, what information is being used to determine which packages need to be included in the resulting image? I see that it's pulling in a lot, but not everything needed.
21:37:09
fwoaroof[m]
Then, when the system starts up it loads the system corresponding to argv[0] and runs MAIN with the command line arguments
21:37:25
jmercouris
fwoaroof[m]: how do you know WHAT the arguments are without parsing all of the forms?
21:37:54
phoe
I'm asking because there's been some recent bugs on ASDF that sound similar to what you describe
21:38:15
fwoaroof[m]
here's an example user: https://github.com/fiddlerwoaroof/utilitas/blob/master/eval-args.lisp
21:38:16
jmercouris
fwoaroof[m]: yeah, the fire-hpp automatically names the arguments, though arguments in C languages are much simpler
21:38:50
fwoaroof[m]
Yeah, what I was really going for is a single convention making it easy to just run an ASDF system as a program
21:39:03
fwoaroof[m]
the idea is you'd just symlink the binary under different names and it'd pull in the right code
21:39:38
philweb
phoe: it's 3.1.8.2 and I'm running ECL 16.1.3 (that's the version currently in Debian stable)
21:41:28
jmercouris
when you funcall add, it should say "x: ?" and then "y: ?" and you can submit them
21:41:55
jmercouris
I know there is some way to determine the arguments associated with a function object, but I was told it was non portable if I remember
21:41:57
philweb
I was afraid you'd say that ;-) (the downside to running stable)... ugh, it's the same version in testing. Is there no maintainer for it on Debian?
21:42:39
phoe
philweb: I have no idea; you should try building https://common-lisp.net/project/ecl/posts/ECL-20424-release.html
21:43:00
jmercouris
phoe: Nicholas' readme makes me think there must be an exported symbol in swank for doing this
21:47:30
fwoaroof[m]
iirc the first value is the ordinary arguments, the second is optional as triples and the third is keys in some shape :)
22:04:40
jmercouris
anyone have experience doing genetic programming in CL by directly recombining sexps and bodies together?
22:04:53
jmercouris
I am just thinking about since you mentioned parse-body and parse-ordinary-lambda-list
22:06:49
aeth
Xach: This might sound like a stupid question, but is Quicklisp just for Common Lisp? I can think of two edge cases where CL libraries might be of limited utility to the broader CL community: (1) add-ons for a CL application (e.g. Nyxt Browser) or (2) libraries for a language integrated with and written in CL but not CL
22:07:54
jmercouris
I've seen how to make a quicklisp dist, and that's basically what I will do, use Zach's tools to hopefully have a dist for it
22:07:57
aeth
Yes, #1 relates to my game engine (Zombie Raptor) and #2 relates to my Scheme-in-CL, Airship Scheme.
22:08:18
jmercouris
I also looked at ultralisp to see if it would be simpler to set-up, but it seems no
22:08:26
aeth
For #2 in particular, I'm not sure if it belongs in a separate dist or as part of CL, especially since quite a lot of the Scheme should be callable from and usable in CL. You'd have to go out of your way for that not to happen
22:08:46
aeth
I've collected my current thoughts for #2 in my Airship Scheme issue tracker. https://gitlab.com/mbabich/airship-scheme/-/issues/20
22:09:33
aeth
jmercouris: I want to fork Ultralisp for Airship Scheme not because I find it useful but because it's git-enriched, and thus it can be called Git-Rich Quickscheme.
22:15:00
aeth
jmercouris: I just updated with your note. https://gitlab.com/mbabich/airship-scheme/-/issues/20
22:17:01
aeth
jmercouris: re opening up libraries for usage... to be fair, someone has been implementing Scheme SRFIs in Common Lisp and that might be more directly useful for Common Lispers. https://github.com/g000001/srfi-47
22:18:07
aeth
hmm... so weird seeing a different define-function that's not my gigantic zr-utils:define-function macro.
22:18:39
aeth
jeosol: SRFI is a mix between CDRs (specifications of things to implement, sort of like bordeaux-threads but at the implementation level, more like if sb-unicode was a formal library implemented in more than one place)
22:19:42
jeosol
I like the path of being able to use libraries from scheme. When I use to go to comp.lang.lisp, some quotes srfi- and a number, that I 'll find a function, I wondered how they remembered the numbers after the srfi
22:20:24
aeth
A bunch are being integrated to R7RS-large and being renamed as part of the process, though
22:21:38
aeth
e.g. for Fibonacci you can just call them A000045 and not everything is important enough to have a name like "Fibonacci" https://oeis.org/A000045
22:22:04
minion
jmercouris: does torturing a poor bot with things beyond its comprehension please you?
22:23:34
jeosol
meaning of SRFI above. I don't remember the name, but one contributor over comp.lang that offered scheme answers seemed to have a good handle on the numbering. Good to see list as compiled.
22:26:33
pve
jmercouris: not sure of your requirements, but you could check out https://github.com/pve1/shell-utility (SBCL only for now)
22:26:38
jeosol
So this is how libraries are developed in the scheme universe? Their increasing numbering system
22:27:37
aeth
(1) portable versions of an implementation's libraries like (chibi test), which would be the equivalent of e.g. making sb-unicode into a library (which would be *really* nice, if anyone needs any ideas)
22:28:26
jeosol
As one of the goals is to be able to run both scheme and CL, what is the space of intersection of libraries like?
22:29:16
jeosol
I haven't used scheme at all, and I remember in a previous discussion with Fare, he said he was using (I think) gerbil scheme
22:29:22
aeth
jeosol: Ideally, every public Scheme procedure will be automatically exposed as a CL function, which will also serve as an entry point into the Airship Scheme runtime (to handle tail recursion and continuations).
22:30:01
aeth
jeosol: Going the other direction, it's not as simple because of the ambiguity between nil-as-false and nil-as-empty-list in CL. (It's easy to turn both nil and #f into CL:NIL, but not easy to determine whether CL:NIL should be nil or #f)
22:30:29
aeth
Stuff that heavily uses macros or reader macros (or SRFI-specified syntax extensions in the case of Scheme) or continuations will complicate things
22:30:49
aeth
Perhaps Scheme macros could automatically make CL macros as well, since I control this, but the other way around is just... probably not going to work.
22:32:01
phoe
aeth: if a piece of Scheme code is loadable and useful from CL then I see no reason why it shouldn't be in Quicklisp; look at all the foreign code that is written in C and is loadable and useful from CL
22:32:57
aeth
phoe: Yes, but what if I wrote a library that solely deals with continuations, which are emulated in Scheme via continuation passing style?
22:35:28
aeth
Hopefully I can get a left-pad situation going where nearly every CL project depends on some Brainfuck :-p
22:36:34
jeosol
phoe: not to digress to much, how is the process with clcs. I have been out for a while
22:37:14
phoe
jeosol: the book is still in production. I'll notify everyone on GitHub when we have something to look at.
22:42:11
aeth
jeosol, phoe: I will probably go above and beyond what's required to just get Scheme running on CL to try to get the interop working better, e.g. I'll try to use trivial-extensible-sequences (if they work!) for the sequences available in Scheme but not in CL (lazy lists? maybe a few others).
22:44:45
aeth
I'm also considering writing a reader macro that blends Scheme and CL (since the readers are slightly incompatible with each other) by extending CL to support some Scheme syntax (like "foo\n" to end a string with a newline)
22:52:56
fwoaroof[m]
jmercouris: if you have ideas about extending my protocol to handle your use case, I'd be interested, BTW
22:52:57
fwoaroof[m]
minione: memo for jmercouris: if you have ideas about extending my protocol to handle your use case, I'd be interested, BTW
22:53:01
fwoaroof[m]
minion: memo for jmercouris: if you have ideas about extending my protocol to handle your use case, I'd be interested, BTW
22:53:43
fwoaroof[m]
I've been thinking of integrating clon, because I like how it handles command line arguments alot
23:47:13
philweb
I've installed ECL 20.4.24 and attempted asdf:make-build again. Now it's complaining about a couple of UIOP packages referenced in compiled file nil
4:39:18
u0_a156
Pleased to meet you bleach. Concerning CL, I'm awfully... lost when it comes to quicklisp and ASDF and what the difference is. :/
4:41:26
u0_a156
That explains why it was able to load... On another machine I tried to (ql:quickload "youtube") but it said ASDF wasn't new enough.
4:41:33
aeth
Quicklisp's abstraction is the project, which is the top level directory, probably from a git repository. This can contain one or more ASDF systems, defined in DEFSYSTEMs in .asd files
4:42:22
aeth
The complete mapping is here, but it has the long name (which is probably the last update from the, probably git, repository) https://www.quicklisp.org/beta/releases.html
4:42:55
aeth
e.g. 1am-20141106-git is the project release of the project 1 am which provides the system 1am, but they don't always have to align, e.g. a few later you see 3bmd provides a bunch
4:46:13
aeth
I'll give a more dramatic example, much further down on that page. You can see on that page I linked to that "cl-sdl2" is the project name, but "sdl2" is the ASDF system name.
4:48:07
u0_a156
In other words, an extra opportunity for misconfiguration...Never mess with configuration files, let the installer do it!
6:45:03
philweb
jackdaniel: I added asdf to dependencies thinking that would pull them in (apparently it didn't work) then I tried adding the named packages (uiop/os and uiop/pathname) but that results in component not found when loading my top-level system