2021-01-01T00:00:13Z hiroaki_ quit (Ping timeout: 264 seconds) 2021-01-01T00:02:13Z benjamindc joined #lisp 2021-01-01T00:02:54Z hiroaki_ joined #lisp 2021-01-01T00:03:54Z reggie_ joined #lisp 2021-01-01T00:05:05Z reggie_ quit (Remote host closed the connection) 2021-01-01T00:05:08Z bilegeek joined #lisp 2021-01-01T00:07:08Z reggie_ joined #lisp 2021-01-01T00:07:33Z frost-lab joined #lisp 2021-01-01T00:07:50Z gaqwas quit (Ping timeout: 264 seconds) 2021-01-01T00:10:20Z reggie_ quit (Remote host closed the connection) 2021-01-01T00:16:57Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-01T00:18:45Z kenran quit (Quit: leaving) 2021-01-01T00:26:25Z jibanes quit (Ping timeout: 240 seconds) 2021-01-01T00:31:30Z madagest joined #lisp 2021-01-01T00:31:31Z frost-lab quit (Quit: Connection closed) 2021-01-01T00:33:43Z madage quit (Ping timeout: 240 seconds) 2021-01-01T00:34:28Z jibanes joined #lisp 2021-01-01T00:40:56Z jibanes quit (Ping timeout: 240 seconds) 2021-01-01T00:42:09Z jibanes joined #lisp 2021-01-01T00:45:28Z moon-child: is there a good way to do forward declarations, to keep sbcl from getting uppity with me about co-recursive functions? 2021-01-01T00:48:45Z Alfr_: clhs with-compilation-unit 2021-01-01T00:48:45Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_w_comp.htm 2021-01-01T00:48:52Z Alfr_: moon-child, ^ 2021-01-01T00:48:53Z benjamindc quit (Remote host closed the connection) 2021-01-01T00:49:08Z benjamindc joined #lisp 2021-01-01T00:51:14Z v0|d joined #lisp 2021-01-01T00:52:37Z moon-child: Alfr_: these functions are already in the same file 2021-01-01T00:56:13Z Alfr_: moon-child, by any chance you're loading the file directly? Can't it reproduce with (load (compile-file ..)). 2021-01-01T00:57:06Z moon-child: ah, yes, that's it. Using compile-file I get no warning 2021-01-01T00:57:08Z moon-child: thanks! 2021-01-01T00:57:28Z Alfr_: moon-child, but you still can wrap these mutually recursive defuns in a (with-compilation-unit () ..) . 2021-01-01T00:58:15Z Alfr_: ... if you don't want to compile first. 2021-01-01T01:01:34Z jibanes quit (Ping timeout: 256 seconds) 2021-01-01T01:03:03Z jibanes joined #lisp 2021-01-01T01:06:39Z heisig quit (Quit: Leaving) 2021-01-01T01:06:59Z judson_ joined #lisp 2021-01-01T01:08:23Z frost-lab joined #lisp 2021-01-01T01:10:01Z luni quit (Quit: Connection closed) 2021-01-01T01:16:27Z benjamindc left #lisp 2021-01-01T01:18:37Z matta quit (Ping timeout: 246 seconds) 2021-01-01T01:22:44Z dilated_dinosaur quit (Ping timeout: 272 seconds) 2021-01-01T01:30:20Z varjag quit (Ping timeout: 272 seconds) 2021-01-01T01:32:21Z kuroda joined #lisp 2021-01-01T01:39:36Z kuroda quit (Remote host closed the connection) 2021-01-01T01:57:33Z nicktick quit (Ping timeout: 260 seconds) 2021-01-01T02:02:48Z karlosz joined #lisp 2021-01-01T02:06:15Z random-nick quit (Ping timeout: 265 seconds) 2021-01-01T02:06:42Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-01T02:12:28Z Colleen quit (Remote host closed the connection) 2021-01-01T02:15:09Z ebrasca quit (Remote host closed the connection) 2021-01-01T02:16:32Z makomo quit (Ping timeout: 260 seconds) 2021-01-01T02:18:17Z Colleen joined #lisp 2021-01-01T02:18:54Z judson_ joined #lisp 2021-01-01T02:18:59Z pfdietz: Or, you can declaim the later functions to have an ftype. Or, you can make the later functions be generic, and put defgenerics at the top of the file, above the defmethods. 2021-01-01T02:20:37Z rgherdt quit (Ping timeout: 260 seconds) 2021-01-01T02:24:45Z mrios222 quit (Remote host closed the connection) 2021-01-01T02:24:54Z notzmv quit (Remote host closed the connection) 2021-01-01T02:25:14Z notzmv joined #lisp 2021-01-01T02:26:27Z jibanes quit (Ping timeout: 260 seconds) 2021-01-01T02:28:04Z jibanes joined #lisp 2021-01-01T02:30:16Z karlosz quit (Quit: karlosz) 2021-01-01T02:43:40Z jjong joined #lisp 2021-01-01T02:48:31Z rumbler31 joined #lisp 2021-01-01T02:52:36Z rumbler31 quit (Ping timeout: 240 seconds) 2021-01-01T02:58:46Z mindCrime quit (Excess Flood) 2021-01-01T02:59:15Z mindCrime joined #lisp 2021-01-01T03:02:08Z abhixec joined #lisp 2021-01-01T03:07:17Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-01T03:32:22Z asarch quit (Quit: Leaving) 2021-01-01T03:39:05Z hiroaki_ quit (Ping timeout: 240 seconds) 2021-01-01T03:40:50Z hiroaki joined #lisp 2021-01-01T03:41:17Z hiroaki quit (Max SendQ exceeded) 2021-01-01T03:41:50Z hiroaki joined #lisp 2021-01-01T03:42:20Z hiroaki quit (Max SendQ exceeded) 2021-01-01T03:48:09Z plisp joined #lisp 2021-01-01T03:48:25Z surabax quit (Quit: Leaving) 2021-01-01T03:51:58Z Jeanne-Kamikaze quit (Remote host closed the connection) 2021-01-01T03:52:20Z plisp quit (Remote host closed the connection) 2021-01-01T04:00:11Z hiroaki joined #lisp 2021-01-01T04:02:47Z madagest quit (Remote host closed the connection) 2021-01-01T04:02:50Z Alfr joined #lisp 2021-01-01T04:04:50Z Alfr_ quit (Ping timeout: 264 seconds) 2021-01-01T04:08:37Z contrapunctus left #lisp 2021-01-01T04:10:15Z contrapunctus joined #lisp 2021-01-01T04:11:07Z madage joined #lisp 2021-01-01T04:11:15Z charles` joined #lisp 2021-01-01T04:11:46Z thmprover joined #lisp 2021-01-01T04:12:02Z skapate joined #lisp 2021-01-01T04:13:27Z skapata quit (Ping timeout: 258 seconds) 2021-01-01T04:13:27Z skapate is now known as skapata 2021-01-01T04:28:30Z beach: Good morning everyone! 2021-01-01T04:28:31Z beach: And a happy new year! 2021-01-01T04:32:59Z thmprover: Good morning, beach, and a happy new year to you and yours! 2021-01-01T04:33:11Z beach: Thanks. 2021-01-01T04:37:55Z gioyik joined #lisp 2021-01-01T04:38:44Z beach: gendl: Starting in 2000, my colleague organized the "Libre Software Meeting" or "Rencontres Mondiales de Logiciel Libre" in Bordeaux. It was a strange "conference" where people did not pay to attend, and some where in fact invited so they had their trip paid for. 2021-01-01T04:38:51Z beach: I volunteered to chair the track called "Very high-level languages for application development", which I turned into a mostly Common Lisp track. So from the start we had danb, Krystof, gilberth, and many others present. 2021-01-01T04:38:55Z beach: This meeting was were McCLIM was essentially created. We sketched how special variables were to be implemented in the presence of threads in SBCL. danb did Bordeaux threads and maybe also ASDF then. Over a few years, probably, because we organized the LSM/RMLL for a few years in Bordeaux before it became an even that moved every year. 2021-01-01T04:42:15Z karlosz joined #lisp 2021-01-01T04:48:48Z beach: Maybe Krystof remembers more stuff, and remember them better, than I do. 2021-01-01T04:59:23Z karlosz quit (Quit: karlosz) 2021-01-01T05:01:12Z mgxm quit (Quit: ....) 2021-01-01T05:03:31Z mgxm joined #lisp 2021-01-01T05:03:31Z karlosz joined #lisp 2021-01-01T05:07:17Z mgxm quit (Client Quit) 2021-01-01T05:07:51Z mgxm joined #lisp 2021-01-01T05:14:01Z orivej joined #lisp 2021-01-01T05:27:31Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-01T05:34:36Z orivej quit (Ping timeout: 240 seconds) 2021-01-01T05:35:31Z orivej joined #lisp 2021-01-01T05:43:35Z akoana quit (Quit: leaving) 2021-01-01T05:44:30Z reggie_ joined #lisp 2021-01-01T05:46:07Z jeosol: Good morning beach and everyone 2021-01-01T05:46:20Z jeosol: Happy new year 2021 (15 more minutes at my location) 2021-01-01T05:47:13Z beach: You too! 2021-01-01T05:47:18Z reggie_ quit (Remote host closed the connection) 2021-01-01T05:48:29Z ck_: and then four hours more until the date line has swept the planet, right? 2021-01-01T05:49:24Z reggie_ joined #lisp 2021-01-01T05:49:55Z beach: Something like that. 2021-01-01T05:50:43Z reggie_ quit (Remote host closed the connection) 2021-01-01T05:51:10Z reggie_ joined #lisp 2021-01-01T05:53:23Z reggie_ quit (Remote host closed the connection) 2021-01-01T05:53:29Z PuercoPop quit (Remote host closed the connection) 2021-01-01T05:53:53Z ck_: I looked it up because I wasn't sure; there are two US islands in UTC-12. And also I did the arithmetic the wrong way, it's six hours from now. 2021-01-01T05:54:56Z hiroaki quit (Ping timeout: 240 seconds) 2021-01-01T06:01:11Z beach: Most islands in that zone made a choice to be among the first to celebrate the new year. 2021-01-01T06:03:52Z ck_: most as in both of them? 2021-01-01T06:09:00Z abhixec quit (Ping timeout: 272 seconds) 2021-01-01T06:10:02Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-01T06:14:29Z beach: I am sure there are thousands of islands near the date line. 2021-01-01T06:16:00Z judson_ joined #lisp 2021-01-01T06:19:44Z ck_: According to a map, most of them are in +12, or even +13, that's what I meant earlier, was surprised that there even are marked islands in UTC-12. But ok. I guess it's off topic unless they do lisp 2021-01-01T06:21:14Z lotuseater: there is a chance for lispers to live there 2021-01-01T06:24:47Z Lycurgus joined #lisp 2021-01-01T06:37:44Z thmprover: Say, is there an abstract machine (or virtual machine) that's particularly well suited for Lisp to target? 2021-01-01T06:41:24Z aeth: (nth 8 (multiple-value-list (get-decoded-time))) ; now it's on topic-ish 2021-01-01T06:41:26Z Lycurgus: prolly the one(s) in the lisp machine implementations if any 2021-01-01T06:41:33Z aeth: ck_: Except you have it backwards. 2021-01-01T06:42:02Z ck_: aeth: what part? 2021-01-01T06:42:54Z karlosz quit (Quit: karlosz) 2021-01-01T06:43:05Z Lycurgus: also any string oriented like Hendry's MINT 2021-01-01T06:43:39Z aeth: You're talking about places where (= 12 (nth 8 (multiple-value-list (get-decoded-time)))) and talking about it like it's -12 while talking about (= -13 (nth 8 (multiple-value-list (get-decoded-time)))) like it's +13 2021-01-01T06:44:51Z moon-child: thmprover: something with hw-assisted gc and cons-aware cache algorithms 2021-01-01T06:46:22Z thmprover: Lycurgus: I don't know much about the Lisp Machines, is there some "toy model" describing their architecture? 2021-01-01T06:46:40Z ck_: aeth: so your point is that I got the lisp terminology wrong with respect to delta to UTC, and 24.1.4.1? 2021-01-01T06:47:00Z thmprover: moon-child: ah, well, I'm more interested in the theory side, gc and caching are very...applied... 2021-01-01T06:47:13Z thmprover: (applied, and useful) 2021-01-01T06:47:43Z Lycurgus: thmprover, unclear what you mean but wouldn't know. FWIU, the ancient archives have complete sources 2021-01-01T06:48:15Z Lycurgus: there's prolly a description of the lisp compiler somewhere 2021-01-01T06:48:38Z Lycurgus: OTOH, i have the MINT distro tape 2021-01-01T06:49:48Z thmprover: Lycurgus: I mean, something similar to the SECD machine, in the sense of simple and minimal while demonstrating the key parts of the instruction set for a Lisp Machine. (Or is that just an SECD machine?) 2021-01-01T06:49:50Z Lycurgus: and the book can apparently be gotten on amazon 2021-01-01T06:50:48Z Lycurgus: thmprover, FWIW here's my spin 2021-01-01T06:52:01Z Lycurgus: as an implementor, in practice either you want a real lisp machine to target or you will likely prefer a pragmatic approach to produce good code on 2021-01-01T06:52:11Z Lycurgus: implicitly defined target arches 2021-01-01T06:52:34Z Lycurgus: with something like an implied vm from that approach 2021-01-01T06:53:01Z Lycurgus: that's what I've mostly seen in implementations I looked into 2021-01-01T06:53:21Z Lycurgus: only did one a port of AKCL to OS/2 2021-01-01T06:53:31Z thmprover: Lycurgus, I completely agree with you; my curiosity was strictly academic. 2021-01-01T06:53:47Z Lycurgus: and used to build cmucl before sbcl 2021-01-01T06:54:26Z thmprover: I just wasn't sure if there was some "obvious virtual machine" like CAM/FAM/ZINC for ML, but for Lisp. 2021-01-01T06:54:48Z Lycurgus: there well may be more or less 2021-01-01T06:55:16Z Lycurgus: i.e. obviously the best after the review 2021-01-01T06:55:39Z Lycurgus: and as I stated there are categories 2021-01-01T06:56:43Z Lycurgus: eg (also) SNOBOL 2021-01-01T06:58:13Z Lycurgus: also there were/are user u programmable arches like the burroughs mid range series 2021-01-01T06:58:23Z beach: thmprover: For a theoretical machine to be applicable, you also need a very simple "Lisp" language. 2021-01-01T06:58:32Z Lycurgus: which had lisp compilers 2021-01-01T06:59:18Z reggie_ joined #lisp 2021-01-01T07:00:10Z reggie_ quit (Remote host closed the connection) 2021-01-01T07:00:18Z thmprover: Well, I know the SECD machine can be the target for a simple-ish Lisp compiler, which piqued my interest about what needs to be added to handle more complex Lisp constructs. 2021-01-01T07:00:27Z reggie_ joined #lisp 2021-01-01T07:02:14Z reggie_ quit (Remote host closed the connection) 2021-01-01T07:03:18Z beach: thmprover: simple compiler, but also a very simple subset of what we think of as "Lisp" today. 2021-01-01T07:03:33Z beach: thmprover: I would think "Purely functional" to start with. 2021-01-01T07:04:39Z thmprover: beach: I should also mention, my curiosity really is strictly academic (for use in a case-study in compiler correctness) 2021-01-01T07:04:57Z thmprover: beach: so, simple Lisp is perfectly fine :) 2021-01-01T07:05:33Z ym555 quit (Ping timeout: 260 seconds) 2021-01-01T07:06:09Z beach: thmprover: But then you are in trouble because 1. There is no widely agreed-upon definition of "Lisp", and 2. The channel topic is Common Lisp. 2021-01-01T07:09:00Z thmprover: beach: trouble is my business ;) In all seriousness, I've been thinking about how to move from "A simple toy Scheme interpreter" to "A simple toy Common Lisp interpreter", what would need to change. 2021-01-01T07:09:25Z Lycurgus quit (Quit: Exeunt) 2021-01-01T07:10:38Z beach: thmprover: Common Lisp is such a complex language, in particular with lots of imperative constructs, that I am pretty sure that there is no simple abstract machine that will help, unless, of course, you accept that the result will be so slow that it's unusable. 2021-01-01T07:13:30Z saturn2 joined #lisp 2021-01-01T07:14:02Z saturn2 quit (Quit: WeeChat 1.0.1) 2021-01-01T07:14:29Z thmprover: beach: like CLISP? Yeah, I have no illusions about performance, my goal is correctness. This is more an experiment with literate programming plus formal proofs, than a fancy new tool for production. 2021-01-01T07:15:03Z clone_of_saturn joined #lisp 2021-01-01T07:15:04Z beach: Way worse than CLISP. 2021-01-01T07:15:19Z clone_of_saturn is now known as saturn2 2021-01-01T07:16:51Z beach: thmprover: For example, you could use Church numerals for integers. 2021-01-01T07:17:01Z beach: That's very simple. 2021-01-01T07:20:25Z thmprover: beach: true, but that may be too simple. I'm looking for a happy medium between the extremely simple pure lambda calculus VM, and the complicated real world. 2021-01-01T07:20:59Z beach: That's a very tough thing to help you with, because it is not obvious what is too simple and what is too complicated for you. 2021-01-01T07:22:23Z beach: thmprover: For instance, something like RISC-V or a tiny subset of x86-64 can run Common Lisp just fine. 2021-01-01T07:27:19Z thmprover: beach: well, as I understand it (and I don't fully), a Lisp Machine boiled down to a sort of virtual machine atop a Risc processor. 2021-01-01T07:29:10Z beach: Sort of. I think it was a machine that could be microprogrammed. But the Lisp machine was not designed to be simple. It was designed to run Lisp efficiently, given the existing general-purpose processors and the compiler technology we had at the time. 2021-01-01T07:29:28Z charles` quit (Ping timeout: 260 seconds) 2021-01-01T07:31:08Z beach: Take "CDR coding", for example. It makes things horribly complicated for the only reason that memory was expensive at the time. 2021-01-01T07:32:33Z beach: Didn't it also have out-of-band tag bits? Now, you can use the lower few bits of a 64-bit word without any problem, because machines are byte addressed, so there are more bits than you need. 2021-01-01T07:34:31Z alexshendi joined #lisp 2021-01-01T07:35:15Z alexshendi: Hi! Good morning & happy new year. 2021-01-01T07:36:42Z beach: Hello alexshendi. You too! 2021-01-01T07:37:35Z alexshendi: I am trying to build SBCL 2.1.0 under NetBSD/arm64. I have tried to bootstrap using ecl and abcl. Both ultimately fail in the warm init phase (make-target-2.sh). 2021-01-01T07:38:14Z thmprover: beach: right, and while "CDR coding" is an important optimization, it's not a necessary component for an "abstract Lisp machine". I suppose my lack of knowledge about Lisp Machines may be the crux of my [immediate] problem. 2021-01-01T07:38:20Z alexshendi: Which pastebin can I use for this channel? 2021-01-01T07:39:15Z beach: plaster.tymoon.edu 2021-01-01T07:39:32Z beach: er, eu, not edu 2021-01-01T07:39:37Z saturn2: i believe the lisp machine had special instructions for accessing the various lisp data types, so you didn't have to choose between speed and memory safety 2021-01-01T07:40:12Z beach: saturn2: So you mean there was no need to check the type? 2021-01-01T07:40:38Z beach: But checking the type is easy these days, and type inference often makes it not necessary. 2021-01-01T07:40:39Z saturn2: no need to emit extra instructions to do that, right 2021-01-01T07:40:56Z beach: Yes, so another complication in the name of speed. 2021-01-01T07:41:59Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-01T07:42:40Z judson_ joined #lisp 2021-01-01T07:42:41Z alexshendi: https://pastebin.com/WKmWkBTd 2021-01-01T07:42:47Z judson_ quit (Client Quit) 2021-01-01T07:43:02Z alexshendi: Have already used pastebin. 2021-01-01T07:43:24Z judson_ joined #lisp 2021-01-01T07:43:33Z judson_ quit (Client Quit) 2021-01-01T07:43:56Z alexshendi: Any suggestions? I have already explored different dynamic sizes... 2021-01-01T07:44:15Z judson_ joined #lisp 2021-01-01T07:44:20Z judson_ quit (Client Quit) 2021-01-01T07:44:26Z alexshendi: TIA :) 2021-01-01T07:44:56Z judson_ joined #lisp 2021-01-01T07:45:08Z judson_ quit (Client Quit) 2021-01-01T07:45:45Z judson_ joined #lisp 2021-01-01T07:45:54Z judson_ quit (Client Quit) 2021-01-01T07:46:26Z judson_ joined #lisp 2021-01-01T07:46:41Z judson_ quit (Client Quit) 2021-01-01T07:47:10Z judson_ joined #lisp 2021-01-01T07:47:14Z narimiran joined #lisp 2021-01-01T07:47:28Z judson_ quit (Client Quit) 2021-01-01T07:48:00Z judson_ joined #lisp 2021-01-01T07:48:16Z judson_ quit (Client Quit) 2021-01-01T07:48:16Z [d] quit (Ping timeout: 240 seconds) 2021-01-01T07:48:55Z judson_ joined #lisp 2021-01-01T07:49:02Z judson_ quit (Client Quit) 2021-01-01T07:49:36Z solideogloria[m]: Has anyone here used the croatoan library > 2021-01-01T07:49:41Z solideogloria[m]: * * Has anyone here used the croatoan library ? 2021-01-01T07:49:44Z judson_ joined #lisp 2021-01-01T07:49:49Z judson_ quit (Client Quit) 2021-01-01T07:49:58Z solideogloria[m]: If yes, what exact character does the down keycode return ? 2021-01-01T07:50:25Z judson_ joined #lisp 2021-01-01T07:50:35Z judson_ quit (Client Quit) 2021-01-01T07:51:06Z judson_ joined #lisp 2021-01-01T07:51:22Z judson_ quit (Client Quit) 2021-01-01T07:51:55Z judson_ joined #lisp 2021-01-01T07:52:09Z judson_ quit (Client Quit) 2021-01-01T07:52:50Z judson_ joined #lisp 2021-01-01T07:52:55Z judson_ quit (Client Quit) 2021-01-01T07:53:30Z judson_ joined #lisp 2021-01-01T07:53:42Z judson_ quit (Client Quit) 2021-01-01T07:54:19Z judson_ joined #lisp 2021-01-01T07:54:28Z judson_ quit (Client Quit) 2021-01-01T07:55:00Z judson_ joined #lisp 2021-01-01T07:55:18Z judson_ quit (Client Quit) 2021-01-01T07:55:34Z thmprover quit (Quit: Happy new year!) 2021-01-01T07:55:50Z judson_ joined #lisp 2021-01-01T07:56:05Z judson_ quit (Client Quit) 2021-01-01T07:56:45Z judson_ joined #lisp 2021-01-01T07:56:51Z judson_ quit (Client Quit) 2021-01-01T07:57:23Z andreyorst joined #lisp 2021-01-01T07:57:24Z judson_ joined #lisp 2021-01-01T07:57:39Z judson_ quit (Client Quit) 2021-01-01T07:58:20Z judson_ joined #lisp 2021-01-01T07:58:25Z judson_ quit (Client Quit) 2021-01-01T07:59:05Z judson_ joined #lisp 2021-01-01T07:59:13Z judson_ quit (Client Quit) 2021-01-01T07:59:50Z judson_ joined #lisp 2021-01-01T07:59:59Z judson_ quit (Client Quit) 2021-01-01T08:00:29Z judson_ joined #lisp 2021-01-01T08:00:45Z judson_ quit (Client Quit) 2021-01-01T08:01:17Z judson_ joined #lisp 2021-01-01T08:01:32Z judson_ quit (Client Quit) 2021-01-01T08:02:09Z judson_ joined #lisp 2021-01-01T08:02:18Z judson_ quit (Client Quit) 2021-01-01T08:03:00Z judson_ joined #lisp 2021-01-01T08:03:05Z judson_ quit (Client Quit) 2021-01-01T08:03:46Z judson_ joined #lisp 2021-01-01T08:03:52Z judson_ quit (Client Quit) 2021-01-01T08:04:30Z judson_ joined #lisp 2021-01-01T08:04:38Z judson_ quit (Client Quit) 2021-01-01T08:05:19Z judson_ joined #lisp 2021-01-01T08:05:24Z judson_ quit (Client Quit) 2021-01-01T08:06:05Z judson_ joined #lisp 2021-01-01T08:06:10Z judson_ quit (Client Quit) 2021-01-01T08:06:41Z birdwing joined #lisp 2021-01-01T08:06:50Z judson_ joined #lisp 2021-01-01T08:06:59Z judson_ quit (Client Quit) 2021-01-01T08:07:39Z judson_ joined #lisp 2021-01-01T08:07:45Z judson_ quit (Client Quit) 2021-01-01T08:08:09Z heisig joined #lisp 2021-01-01T08:08:19Z judson_ joined #lisp 2021-01-01T08:08:31Z judson_ quit (Client Quit) 2021-01-01T08:09:04Z judson_ joined #lisp 2021-01-01T08:09:18Z judson_ quit (Client Quit) 2021-01-01T08:09:37Z aartaka joined #lisp 2021-01-01T08:09:50Z judson_ joined #lisp 2021-01-01T08:10:05Z judson_ quit (Client Quit) 2021-01-01T08:10:44Z judson_ joined #lisp 2021-01-01T08:10:52Z judson_ quit (Client Quit) 2021-01-01T08:11:30Z judson_ joined #lisp 2021-01-01T08:11:38Z judson_ quit (Client Quit) 2021-01-01T08:12:14Z judson_ joined #lisp 2021-01-01T08:12:24Z judson_ quit (Client Quit) 2021-01-01T08:12:53Z judson_ joined #lisp 2021-01-01T08:13:12Z judson_ quit (Client Quit) 2021-01-01T08:13:44Z judson_ joined #lisp 2021-01-01T08:13:59Z judson_ quit (Client Quit) 2021-01-01T08:14:41Z judson_ joined #lisp 2021-01-01T08:14:46Z judson_ quit (Client Quit) 2021-01-01T08:15:26Z judson_ joined #lisp 2021-01-01T08:15:33Z judson_ quit (Client Quit) 2021-01-01T08:16:14Z judson_ joined #lisp 2021-01-01T08:16:19Z judson_ quit (Client Quit) 2021-01-01T08:16:49Z judson_ joined #lisp 2021-01-01T08:17:06Z judson_ quit (Client Quit) 2021-01-01T08:17:40Z judson_ joined #lisp 2021-01-01T08:17:55Z judson_ quit (Client Quit) 2021-01-01T08:18:24Z judson_ joined #lisp 2021-01-01T08:18:43Z judson_ quit (Client Quit) 2021-01-01T08:19:12Z judson_ joined #lisp 2021-01-01T08:19:30Z judson_ quit (Client Quit) 2021-01-01T08:20:09Z judson_ joined #lisp 2021-01-01T08:20:17Z judson_ quit (Client Quit) 2021-01-01T08:20:57Z judson_ joined #lisp 2021-01-01T08:21:04Z judson_ quit (Client Quit) 2021-01-01T08:21:38Z judson_ joined #lisp 2021-01-01T08:21:51Z judson_ quit (Client Quit) 2021-01-01T08:22:22Z judson_ joined #lisp 2021-01-01T08:22:38Z judson_ quit (Client Quit) 2021-01-01T08:23:16Z judson_ joined #lisp 2021-01-01T08:23:24Z judson_ quit (Client Quit) 2021-01-01T08:24:07Z judson_ joined #lisp 2021-01-01T08:24:12Z judson_ quit (Client Quit) 2021-01-01T08:24:44Z judson_ joined #lisp 2021-01-01T08:24:59Z judson_ quit (Client Quit) 2021-01-01T08:25:37Z judson_ joined #lisp 2021-01-01T08:25:45Z judson_ quit (Client Quit) 2021-01-01T08:26:13Z judson_ joined #lisp 2021-01-01T08:26:33Z judson_ quit (Client Quit) 2021-01-01T08:27:02Z judson_ joined #lisp 2021-01-01T08:27:20Z judson_ quit (Client Quit) 2021-01-01T08:27:58Z judson_ joined #lisp 2021-01-01T08:28:06Z judson_ quit (Client Quit) 2021-01-01T08:28:47Z judson_ joined #lisp 2021-01-01T08:28:56Z judson_ quit (Client Quit) 2021-01-01T08:29:28Z imode quit (Quit: WeeChat 2.9) 2021-01-01T08:29:31Z judson_ joined #lisp 2021-01-01T08:29:42Z judson_ quit (Client Quit) 2021-01-01T08:29:45Z imode joined #lisp 2021-01-01T08:30:22Z judson_ joined #lisp 2021-01-01T08:30:28Z judson_ quit (Client Quit) 2021-01-01T08:31:00Z judson_ joined #lisp 2021-01-01T08:31:15Z judson_ quit (Client Quit) 2021-01-01T08:31:57Z judson_ joined #lisp 2021-01-01T08:32:02Z judson_ quit (Client Quit) 2021-01-01T08:32:39Z judson_ joined #lisp 2021-01-01T08:32:43Z lotuseater: solideogloria[m]: #\ARROW_DOWN maybe? 2021-01-01T08:32:48Z judson_ quit (Client Quit) 2021-01-01T08:33:27Z lotuseater: ah no, #\DOWNWARDS_ARROW is a valid char 2021-01-01T08:33:27Z judson_ joined #lisp 2021-01-01T08:33:35Z judson_ quit (Client Quit) 2021-01-01T08:34:09Z judson_ joined #lisp 2021-01-01T08:34:21Z judson_ quit (Client Quit) 2021-01-01T08:35:02Z judson_ joined #lisp 2021-01-01T08:35:08Z judson_ quit (Client Quit) 2021-01-01T08:35:43Z judson_ joined #lisp 2021-01-01T08:35:54Z judson_ quit (Client Quit) 2021-01-01T08:36:07Z skapata quit (Remote host closed the connection) 2021-01-01T08:36:27Z judson_ joined #lisp 2021-01-01T08:36:42Z judson_ quit (Client Quit) 2021-01-01T08:37:10Z judson_ joined #lisp 2021-01-01T08:37:28Z judson_ quit (Client Quit) 2021-01-01T08:38:07Z judson_ joined #lisp 2021-01-01T08:38:14Z judson_ quit (Client Quit) 2021-01-01T08:38:52Z judson_ joined #lisp 2021-01-01T08:39:01Z judson_ quit (Client Quit) 2021-01-01T08:39:43Z judson_ joined #lisp 2021-01-01T08:39:48Z judson_ quit (Client Quit) 2021-01-01T08:40:24Z judson_ joined #lisp 2021-01-01T08:40:35Z judson_ quit (Client Quit) 2021-01-01T08:41:17Z judson_ joined #lisp 2021-01-01T08:41:22Z judson_ quit (Client Quit) 2021-01-01T08:41:59Z judson_ joined #lisp 2021-01-01T08:42:09Z judson_ quit (Client Quit) 2021-01-01T08:42:37Z judson_ joined #lisp 2021-01-01T08:42:56Z judson_ quit (Client Quit) 2021-01-01T08:43:35Z judson_ joined #lisp 2021-01-01T08:43:42Z judson_ quit (Client Quit) 2021-01-01T08:44:19Z jeosol: alexshendi: Are you trying to install a fresh SBCL? 2021-01-01T08:44:22Z judson_ joined #lisp 2021-01-01T08:44:29Z judson_ quit (Client Quit) 2021-01-01T08:45:07Z judson_ joined #lisp 2021-01-01T08:45:15Z judson_ quit (Client Quit) 2021-01-01T08:45:41Z alexshendi: jeosol: It's not in packages, so what alternative do I have? 2021-01-01T08:45:57Z judson_ joined #lisp 2021-01-01T08:46:02Z judson_ quit (Client Quit) 2021-01-01T08:46:15Z alexshendi: jeosol: So, yes. 2021-01-01T08:46:34Z judson_ joined #lisp 2021-01-01T08:46:49Z judson_ quit (Client Quit) 2021-01-01T08:47:22Z judson_ joined #lisp 2021-01-01T08:47:37Z judson_ quit (Client Quit) 2021-01-01T08:48:09Z judson_ joined #lisp 2021-01-01T08:48:15Z jeosol: I haven't installed on a NetBSD/arm64 before. What command are you running? There is also a #sbcl channel and the guys may be able to address this. 2021-01-01T08:48:24Z judson_ quit (Client Quit) 2021-01-01T08:48:31Z jeosol: which of the other implementation gave the error you linked in the pastebin? 2021-01-01T08:48:52Z judson_ joined #lisp 2021-01-01T08:49:11Z judson_ quit (Client Quit) 2021-01-01T08:49:42Z judson_ joined #lisp 2021-01-01T08:49:58Z judson_ quit (Client Quit) 2021-01-01T08:50:37Z judson_ joined #lisp 2021-01-01T08:50:44Z judson_ quit (Client Quit) 2021-01-01T08:51:14Z judson_ joined #lisp 2021-01-01T08:51:15Z alexshendi: I have already posted on on #sbcl, thanks. 2021-01-01T08:51:33Z judson_ quit (Client Quit) 2021-01-01T08:51:48Z nicktick joined #lisp 2021-01-01T08:52:02Z judson_ joined #lisp 2021-01-01T08:52:20Z judson_ quit (Client Quit) 2021-01-01T08:52:30Z alexshendi: Actually both. Note that the error isn't from the host lisp implementation, but from the sbcl binary that was built using it. 2021-01-01T08:52:49Z judson_ joined #lisp 2021-01-01T08:53:07Z judson_ quit (Client Quit) 2021-01-01T08:53:48Z judson_ joined #lisp 2021-01-01T08:53:53Z judson_ quit (Client Quit) 2021-01-01T08:54:34Z judson_ joined #lisp 2021-01-01T08:54:39Z judson_ quit (Client Quit) 2021-01-01T08:55:20Z judson_ joined #lisp 2021-01-01T08:55:25Z judson_ quit (Client Quit) 2021-01-01T08:55:45Z alexshendi: The error message in the pastebin is actually from a build using abcl. 2021-01-01T08:55:59Z judson_ joined #lisp 2021-01-01T08:56:12Z judson_ quit (Client Quit) 2021-01-01T08:56:50Z judson_ joined #lisp 2021-01-01T08:56:58Z judson_ quit (Client Quit) 2021-01-01T08:57:29Z judson_ joined #lisp 2021-01-01T08:57:45Z judson_ quit (Client Quit) 2021-01-01T08:58:23Z judson_ joined #lisp 2021-01-01T08:58:32Z judson_ quit (Client Quit) 2021-01-01T08:59:03Z judson_ joined #lisp 2021-01-01T08:59:21Z judson_ quit (Client Quit) 2021-01-01T08:59:53Z judson_ joined #lisp 2021-01-01T09:00:05Z Jach[m] quit (Quit: Idle for 30+ days) 2021-01-01T09:00:08Z judson_ quit (Client Quit) 2021-01-01T09:00:44Z judson_ joined #lisp 2021-01-01T09:00:55Z judson_ quit (Client Quit) 2021-01-01T09:01:33Z judson_ joined #lisp 2021-01-01T09:01:42Z judson_ quit (Client Quit) 2021-01-01T09:02:16Z gaqwas joined #lisp 2021-01-01T09:02:16Z gaqwas quit (Changing host) 2021-01-01T09:02:16Z gaqwas joined #lisp 2021-01-01T09:05:36Z scymtym_ joined #lisp 2021-01-01T09:06:20Z hendursa1 joined #lisp 2021-01-01T09:06:53Z solideogloria[m]: that is the unicode character ↓ 2021-01-01T09:06:53Z scymtym quit (Ping timeout: 260 seconds) 2021-01-01T09:07:03Z solideogloria[m]: not what the terminal returns to the program 2021-01-01T09:08:23Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-01T09:11:52Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-01T09:14:45Z shka_ joined #lisp 2021-01-01T09:15:40Z gaqwas quit (Remote host closed the connection) 2021-01-01T09:24:40Z pve joined #lisp 2021-01-01T09:42:33Z gioyik quit (Quit: WeeChat 3.0) 2021-01-01T09:44:30Z gaqwas joined #lisp 2021-01-01T09:52:39Z cantstanya quit (Remote host closed the connection) 2021-01-01T09:54:33Z cantstanya joined #lisp 2021-01-01T09:57:25Z gproto23 joined #lisp 2021-01-01T09:57:38Z gproto23 quit (Client Quit) 2021-01-01T10:05:07Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-01T10:07:04Z toorevitimirp joined #lisp 2021-01-01T10:08:56Z rotty quit (Ping timeout: 240 seconds) 2021-01-01T10:10:18Z bilegeek quit (Quit: Leaving) 2021-01-01T10:10:25Z orivej quit (Ping timeout: 240 seconds) 2021-01-01T10:14:03Z galex-713 joined #lisp 2021-01-01T10:15:14Z imode quit (Quit: WeeChat 2.9) 2021-01-01T10:15:29Z imode joined #lisp 2021-01-01T10:18:49Z imode quit (Client Quit) 2021-01-01T10:18:58Z imode joined #lisp 2021-01-01T10:19:24Z minion quit (Remote host closed the connection) 2021-01-01T10:19:24Z specbot quit (Remote host closed the connection) 2021-01-01T10:20:25Z rotty joined #lisp 2021-01-01T10:20:44Z mindCrime joined #lisp 2021-01-01T10:22:49Z imode quit (Client Quit) 2021-01-01T10:22:58Z imode joined #lisp 2021-01-01T10:23:23Z imode quit (Client Quit) 2021-01-01T10:23:33Z imode joined #lisp 2021-01-01T10:24:39Z imode quit (Client Quit) 2021-01-01T10:24:48Z imode joined #lisp 2021-01-01T10:24:48Z minion joined #lisp 2021-01-01T10:25:24Z imode quit (Client Quit) 2021-01-01T10:25:28Z specbot joined #lisp 2021-01-01T10:25:33Z imode joined #lisp 2021-01-01T10:26:32Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-01T10:26:49Z imode quit (Client Quit) 2021-01-01T10:26:59Z imode joined #lisp 2021-01-01T10:31:27Z imode quit (Client Quit) 2021-01-01T10:31:36Z imode joined #lisp 2021-01-01T10:32:49Z imode quit (Client Quit) 2021-01-01T10:32:57Z imode joined #lisp 2021-01-01T10:33:51Z imode quit (Client Quit) 2021-01-01T10:34:00Z imode joined #lisp 2021-01-01T10:37:37Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-01T10:37:37Z amb007 quit (Read error: Connection reset by peer) 2021-01-01T10:37:41Z imode quit (Client Quit) 2021-01-01T10:37:49Z specbot quit (Remote host closed the connection) 2021-01-01T10:37:49Z minion quit (Remote host closed the connection) 2021-01-01T10:37:51Z imode joined #lisp 2021-01-01T10:37:52Z phoe: is there a version of Flavors that runs on modern Common Lisp implementations? 2021-01-01T10:38:05Z rogersm joined #lisp 2021-01-01T10:38:48Z amb007 joined #lisp 2021-01-01T10:39:50Z makomo joined #lisp 2021-01-01T10:40:41Z kam1 joined #lisp 2021-01-01T10:42:36Z minion joined #lisp 2021-01-01T10:43:15Z specbot joined #lisp 2021-01-01T10:44:18Z scymtym__ joined #lisp 2021-01-01T10:45:59Z Krystof: beach: another thing about RMLL, at least as I recall it was implemented in our track, was that the plenary-type talks did not take up all that much time (1 day of the 4 or 5, perhaps) and so the rest of the time was spent however the delegates wanted... which led to some good hacking times 2021-01-01T10:46:03Z scymtym_ quit (Ping timeout: 260 seconds) 2021-01-01T10:47:14Z Krystof: it was also great because a bunch of us were able to meet in person for the first time. I'd met dan_b before (I think) but those meetings were my first encounter with gilbert, eric marsden, marc battyani, tim daly, ... 2021-01-01T10:47:33Z Krystof: andreas fuchs, maybe? 2021-01-01T10:48:00Z edgar-rft joined #lisp 2021-01-01T10:48:34Z beach: Krystof: Yes, I agree it was great. 2021-01-01T10:49:38Z beach: I don't think I had met any of those before, including you. 2021-01-01T10:50:58Z makomo quit (Ping timeout: 256 seconds) 2021-01-01T10:54:16Z imode quit (Quit: WeeChat 2.9) 2021-01-01T10:54:39Z imode joined #lisp 2021-01-01T10:56:18Z imode quit (Client Quit) 2021-01-01T10:56:58Z varjag joined #lisp 2021-01-01T10:57:13Z Krystof: and I had a great time! I remember going to Bordeaux twice for RMLL, and somewhere else once, I think 2021-01-01T10:57:33Z imode joined #lisp 2021-01-01T10:58:16Z beach: Yeah, I went to a few other places as well. Dijon was one, and Metz. 2021-01-01T10:58:57Z beach: The entire idea was fantastic. The first year there were less than 200 participants, as I recall, but it grew to more than 1000 pretty fast. 2021-01-01T11:01:18Z imode quit (Client Quit) 2021-01-01T11:01:25Z beach: It was just amazing to walk into the main entry hall of ENSERB and see all these people hacking away. 2021-01-01T11:01:29Z imode joined #lisp 2021-01-01T11:02:18Z luni joined #lisp 2021-01-01T11:03:39Z imode quit (Client Quit) 2021-01-01T11:04:11Z bilal_ joined #lisp 2021-01-01T11:05:16Z imode joined #lisp 2021-01-01T11:06:37Z bilalkhan quit (Ping timeout: 246 seconds) 2021-01-01T11:06:59Z scymtym__ is now known as scymtym 2021-01-01T11:08:05Z rgherdt joined #lisp 2021-01-01T11:08:14Z Inline joined #lisp 2021-01-01T11:17:02Z kam1 quit (Ping timeout: 256 seconds) 2021-01-01T11:23:17Z luni quit (Quit: Connection closed) 2021-01-01T11:28:44Z cosimone joined #lisp 2021-01-01T11:34:34Z kam1 joined #lisp 2021-01-01T11:40:10Z rogersm quit (Remote host closed the connection) 2021-01-01T11:42:08Z random-nick joined #lisp 2021-01-01T11:43:27Z sloanr joined #lisp 2021-01-01T11:43:51Z vegansbane6 joined #lisp 2021-01-01T11:49:11Z rogersm joined #lisp 2021-01-01T11:55:07Z frgo quit (Remote host closed the connection) 2021-01-01T11:55:36Z frgo joined #lisp 2021-01-01T12:00:10Z bilal__ joined #lisp 2021-01-01T12:00:52Z gko_ joined #lisp 2021-01-01T12:03:03Z bilal_ quit (Ping timeout: 260 seconds) 2021-01-01T12:05:05Z quazimodo quit (Read error: Connection reset by peer) 2021-01-01T12:08:26Z rogersm quit (Remote host closed the connection) 2021-01-01T12:08:51Z orivej joined #lisp 2021-01-01T12:10:17Z Earendil_14 joined #lisp 2021-01-01T12:12:20Z ym555 joined #lisp 2021-01-01T12:13:08Z dilated_dinosaur joined #lisp 2021-01-01T12:13:53Z dilated_dinosaur quit (Client Quit) 2021-01-01T12:14:09Z dilated_dinosaur joined #lisp 2021-01-01T12:15:19Z makomo joined #lisp 2021-01-01T12:24:49Z liberliver joined #lisp 2021-01-01T12:32:16Z nicktick quit (Ping timeout: 240 seconds) 2021-01-01T12:34:13Z Inline quit (Read error: Connection reset by peer) 2021-01-01T12:35:47Z Inline joined #lisp 2021-01-01T12:38:27Z Inline__ joined #lisp 2021-01-01T12:38:46Z Inline quit (Disconnected by services) 2021-01-01T12:38:58Z Inline__ is now known as Inline 2021-01-01T12:39:10Z ebrasca joined #lisp 2021-01-01T12:39:56Z lotuseater quit (Ping timeout: 256 seconds) 2021-01-01T12:40:43Z imode quit (Quit: WeeChat 2.9) 2021-01-01T12:48:02Z _whitelogger quit (Remote host closed the connection) 2021-01-01T12:50:10Z _whitelogger joined #lisp 2021-01-01T12:53:21Z ym555_ joined #lisp 2021-01-01T12:55:41Z ym555_ quit (Client Quit) 2021-01-01T12:55:42Z amb007 quit (Read error: Connection reset by peer) 2021-01-01T12:56:01Z ym555 quit (Ping timeout: 264 seconds) 2021-01-01T13:01:12Z Inline__ joined #lisp 2021-01-01T13:01:12Z Inline__ quit (Remote host closed the connection) 2021-01-01T13:02:05Z Inline quit (Ping timeout: 268 seconds) 2021-01-01T13:05:54Z pfdietz quit (Ping timeout: 245 seconds) 2021-01-01T13:06:14Z amb007 joined #lisp 2021-01-01T13:08:32Z surabax joined #lisp 2021-01-01T13:21:42Z lotuseater joined #lisp 2021-01-01T13:21:43Z Inline joined #lisp 2021-01-01T13:21:50Z zmagii: Anyone know about the Lean programming language? 2021-01-01T13:22:35Z phoe: what is it? 2021-01-01T13:23:01Z phoe: https://en.wikipedia.org/wiki/Lean_(proof_assistant) this one you mean? 2021-01-01T13:25:53Z liberliver quit (Ping timeout: 260 seconds) 2021-01-01T13:29:10Z liberliver joined #lisp 2021-01-01T13:31:25Z kam1 quit (Ping timeout: 264 seconds) 2021-01-01T13:31:30Z Earendil_14 quit (Ping timeout: 256 seconds) 2021-01-01T13:31:53Z pagnol joined #lisp 2021-01-01T13:32:18Z VincentVega joined #lisp 2021-01-01T13:35:19Z kam1 joined #lisp 2021-01-01T13:42:21Z Inline quit (Ping timeout: 272 seconds) 2021-01-01T13:42:40Z toorevitimirp quit (Ping timeout: 256 seconds) 2021-01-01T13:45:52Z waleee-cl joined #lisp 2021-01-01T13:51:05Z liberliver quit (Ping timeout: 240 seconds) 2021-01-01T13:57:59Z Earendil_14 joined #lisp 2021-01-01T13:59:15Z toorevitimirp joined #lisp 2021-01-01T14:02:09Z Earendil_14 quit (Client Quit) 2021-01-01T14:03:40Z heisig quit (Quit: Leaving) 2021-01-01T14:12:13Z nullman quit (Ping timeout: 265 seconds) 2021-01-01T14:14:38Z murtagh joined #lisp 2021-01-01T14:15:18Z murtagh: Is it a good idea to read SICP .. If you have just learnt a little bit of C 2021-01-01T14:15:40Z beach: It could be overwhelming. 2021-01-01T14:15:45Z murtagh: How will learning Lisp help me? 2021-01-01T14:16:03Z alexshendi quit (Read error: Connection reset by peer) 2021-01-01T14:16:04Z beach: It depends on what you need help with. 2021-01-01T14:16:05Z murtagh: I mean what is lisp known for? 2021-01-01T14:16:42Z murtagh: Someone kinda bought SICP for me... So I wasnt sure if I should go with it? 2021-01-01T14:16:49Z beach: It is a great programming language. But that might not be what it is "known for". 2021-01-01T14:17:01Z beach: OK, several things. 2021-01-01T14:17:06Z murtagh: So let me see how do I say.. 2021-01-01T14:17:21Z murtagh: What do ppl here use lisp for? 2021-01-01T14:17:24Z beach: This channel is dedicated to Common Lisp, whereas SICP uses Scheme. 2021-01-01T14:17:31Z murtagh: Ohh 2021-01-01T14:17:52Z beach: But Scheme is a good idea to learn as well if you want to try something different from C. 2021-01-01T14:18:24Z murtagh: Yeah but what does Scheme focus on or Common Lisp 2021-01-01T14:18:25Z beach: People here use Common Lisp for all kinds of things. It is a general-purpose programming language. 2021-01-01T14:18:30Z murtagh: Ohhh 2021-01-01T14:19:11Z murtagh: Could you give me a reason why ppl would use C and why would they use Scheme or Common Lisp 2021-01-01T14:19:43Z murtagh: Like why one over than another 2021-01-01T14:19:54Z beach: Globally speaking, C is closer to the machine, and Common Lisp is much better for writing applications. 2021-01-01T14:19:56Z sloanr quit (Ping timeout: 240 seconds) 2021-01-01T14:20:02Z murtagh: But yeah I got it.. When you said general purpose language 2021-01-01T14:20:09Z murtagh: I see 2021-01-01T14:21:29Z beach: See the second quote of www.nhplace.com/kent/quoted.html for what Lisp is used for. 2021-01-01T14:22:36Z beach: C is a very unsafe language, whereas most Common Lisp implementations are safe by default. 2021-01-01T14:23:01Z murtagh: I see 2021-01-01T14:23:18Z murtagh: Is Common Lisp the most popular implementation of lisp? 2021-01-01T14:23:27Z murtagh: I mean more widely used? 2021-01-01T14:23:35Z Cthulhux: i think that would be scheme 2021-01-01T14:23:44Z phoe: "Lisp" is an overloaded term 2021-01-01T14:24:06Z Cthulhux: phoe: technically, ruby is a lisp.. 2021-01-01T14:24:10Z beach: murtagh: There is no widely agreed-upon definition of "Lisp", which is part of the reason why this channel is about Common Lisp, which is quite well defined. 2021-01-01T14:24:12Z phoe: Lisp is a whole family of languages, including dialects like Scheme, Racket, Common Lisp, Clojure, Shen, Hy, Lisp Flavored Erlang, and what else 2021-01-01T14:24:16Z kam1 quit (Ping timeout: 240 seconds) 2021-01-01T14:24:17Z murtagh: My end goal ofc is to make games no doubt 2021-01-01T14:24:20Z beach: Cthulhux: Please don't go there. 2021-01-01T14:24:30Z phoe: however you have wandered into #lisp which is a lair of Common Lisp programmers 2021-01-01T14:24:45Z phoe: ##lisp is a more general channel that is about all Lisp dialects 2021-01-01T14:24:54Z beach: murtagh: I believe there is a channel #lispgames that is dedicated to games in Common Lisp. 2021-01-01T14:24:55Z murtagh: Oh ok 2021-01-01T14:25:05Z murtagh: Kk 2021-01-01T14:25:06Z murtagh: Thanks 2021-01-01T14:25:17Z beach: Pleasure. Good luck! 2021-01-01T14:25:21Z Xach: Furthermore, #lisp is the place where people who *like* common lisp congregate - not simply people who use it. It's not a support group for people who are forced to use it and hate it. 2021-01-01T14:25:38Z murtagh: Gotcha 2021-01-01T14:25:43Z Xach: Although those people do sometimes visit and ask for homework help 2021-01-01T14:26:01Z murtagh: What makes common lisp stand out.. From other lisps? 2021-01-01T14:26:21Z murtagh: I mean why do you guys like this impl for lisp 2021-01-01T14:26:25Z phoe: murtagh: it's a multiparadigm language meant for designing real-world applications 2021-01-01T14:26:34Z beach: murtagh: We just said that the term "Lisp" is not well defined. 2021-01-01T14:26:36Z phoe: I like its natural interactivity and livecoding 2021-01-01T14:27:43Z Xach: common lisp has a well-written standard, multiple mature implementations, the possibility of commercial support, examples of successful companies and applications with CL at their core (though not a zillion, they do exist), potential for fast code 2021-01-01T14:28:17Z Xach: if you like emacs, a nice development environment 2021-01-01T14:28:59Z Xach: i sometimes wish there were multiple multibillion-dollar companies racing to improve it, but then i think the result would not really be recognizable as the thing i like for very long. 2021-01-01T14:32:46Z hendursa1 quit (Quit: hendursa1) 2021-01-01T14:33:04Z hendursaga joined #lisp 2021-01-01T14:34:44Z bitmapper joined #lisp 2021-01-01T14:46:43Z gxt quit (Ping timeout: 240 seconds) 2021-01-01T14:47:34Z Inline joined #lisp 2021-01-01T14:47:59Z VincentVega quit (Ping timeout: 245 seconds) 2021-01-01T14:49:28Z luni joined #lisp 2021-01-01T14:50:06Z gxt joined #lisp 2021-01-01T14:50:23Z kam1 joined #lisp 2021-01-01T14:54:25Z VincentVega joined #lisp 2021-01-01T14:54:45Z gko_ quit (Ping timeout: 265 seconds) 2021-01-01T14:56:03Z gxt quit (Ping timeout: 240 seconds) 2021-01-01T14:56:35Z gxt joined #lisp 2021-01-01T14:58:53Z VincentVega: Happy 2021, folks! A bit late to the party, but now that quickdocs is closed. what do you use? I just want to explore the existing projects. For emacs, there's MELPA which makes it easy as every project there has a very short description and you can search it. 2021-01-01T15:02:36Z contrapunctus: VincentVega: awesome-cl/cl-cookbook, but I'm just a newcomer. Would the querying functions of Quicklisp work? 2021-01-01T15:04:12Z kam1 quit (Ping timeout: 260 seconds) 2021-01-01T15:06:06Z VincentVega70 joined #lisp 2021-01-01T15:06:09Z VincentVega70 quit (Remote host closed the connection) 2021-01-01T15:06:19Z VincentVega quit (Ping timeout: 245 seconds) 2021-01-01T15:06:22Z Xach: quicklisp doesn't offer summary info 2021-01-01T15:06:34Z VincentVega joined #lisp 2021-01-01T15:06:44Z phoe: quickref 2021-01-01T15:07:49Z VincentVega: phoe: ok, looks good! 2021-01-01T15:08:09Z kam1 joined #lisp 2021-01-01T15:09:09Z ebrasca quit (Read error: Connection reset by peer) 2021-01-01T15:09:19Z VincentVega: contrapunctus: thanks for awesome-cl, never heard of that one 2021-01-01T15:09:21Z ebrasca joined #lisp 2021-01-01T15:10:18Z pagnol quit (Ping timeout: 260 seconds) 2021-01-01T15:17:11Z birdwing quit (Remote host closed the connection) 2021-01-01T15:17:55Z ebrasca quit (Ping timeout: 246 seconds) 2021-01-01T15:25:58Z makomo quit (Ping timeout: 256 seconds) 2021-01-01T15:29:59Z birdwing joined #lisp 2021-01-01T15:31:31Z makomo joined #lisp 2021-01-01T15:33:20Z izh_ joined #lisp 2021-01-01T15:37:50Z attila_lendvai joined #lisp 2021-01-01T15:37:50Z attila_lendvai quit (Changing host) 2021-01-01T15:37:50Z attila_lendvai joined #lisp 2021-01-01T15:44:25Z makomo quit (Ping timeout: 240 seconds) 2021-01-01T15:48:12Z attila_lendvai quit (Ping timeout: 260 seconds) 2021-01-01T15:52:49Z luna_is_here quit (Ping timeout: 272 seconds) 2021-01-01T15:55:15Z luna_is_here joined #lisp 2021-01-01T15:55:20Z contrapunctus left #lisp 2021-01-01T15:56:31Z narimiran quit (Remote host closed the connection) 2021-01-01T15:57:22Z contrapunctus joined #lisp 2021-01-01T15:57:45Z Josh_2 joined #lisp 2021-01-01T16:00:06Z austincummings[m quit (Quit: Idle for 30+ days) 2021-01-01T16:00:41Z narimiran joined #lisp 2021-01-01T16:00:42Z amb007 quit (Read error: Connection reset by peer) 2021-01-01T16:00:42Z cosimone quit (Quit: cosimone) 2021-01-01T16:00:50Z amb007 joined #lisp 2021-01-01T16:02:42Z amb007 quit (Read error: Connection reset by peer) 2021-01-01T16:03:16Z amb007 joined #lisp 2021-01-01T16:06:11Z cosimone joined #lisp 2021-01-01T16:08:08Z amb007 quit (Ping timeout: 272 seconds) 2021-01-01T16:14:27Z makomo joined #lisp 2021-01-01T16:15:03Z amb007 joined #lisp 2021-01-01T16:16:59Z FreeBirdLjj joined #lisp 2021-01-01T16:20:59Z izh_ quit (Quit: Leaving) 2021-01-01T16:27:36Z kam1 quit (Read error: Connection reset by peer) 2021-01-01T16:27:48Z kam1 joined #lisp 2021-01-01T16:31:16Z VincentVega quit (Remote host closed the connection) 2021-01-01T16:38:22Z cosimone quit (Quit: cosimone) 2021-01-01T16:42:01Z cosimone joined #lisp 2021-01-01T16:49:37Z skapata joined #lisp 2021-01-01T16:50:07Z amb007 quit (Read error: Connection reset by peer) 2021-01-01T16:50:25Z amb007 joined #lisp 2021-01-01T17:06:15Z gutter joined #lisp 2021-01-01T17:06:35Z pve: Hi! Is there a CL implementation that you would recommend for a Raspberry Pi? 2021-01-01T17:07:18Z Xach: pve: i have run sbcl and ccl, but not used them enough to endorse either one, sorry 2021-01-01T17:07:25Z kam1 quit (Ping timeout: 264 seconds) 2021-01-01T17:09:27Z pve: Xach: ok thanks.. my main concern is whether sbcl or ccl are too heavyweight 2021-01-01T17:10:07Z pve: so I was thinking maybe ECL would be a good fit 2021-01-01T17:10:44Z pve: at least I'm under the impression that ECL is a bit more lightweight 2021-01-01T17:10:50Z Xach: pve: i would seriously try ccl before ecl 2021-01-01T17:11:28Z pve: Xach: hmm ok, never really tried ccl before in any serious capacity 2021-01-01T17:12:23Z beach: pve: You could ask no-defun-allowed. 2021-01-01T17:12:45Z perrier-jouet quit (Quit: WeeChat 3.0) 2021-01-01T17:13:10Z beach: pve: Not here at the moment. You would have to ask in #sicl. 2021-01-01T17:15:12Z pve: beach: alright, will do, thanks 2021-01-01T17:15:51Z Xach: pve: did you have a specific task in mind? 2021-01-01T17:16:52Z aldessa joined #lisp 2021-01-01T17:19:30Z pve: Xach: not really, would just like to play around with it for now 2021-01-01T17:19:31Z Josh_2: Ello 2021-01-01T17:21:37Z liberliver joined #lisp 2021-01-01T17:22:28Z pve: at some point I'd like to give one to my son, but I fear he's still a bit too young for CL :) 2021-01-01T17:23:16Z dra joined #lisp 2021-01-01T17:27:29Z lotuseater: i wish someone would have shown me all this stuff with 6 2021-01-01T17:28:19Z luni left #lisp 2021-01-01T17:28:26Z dra quit (Remote host closed the connection) 2021-01-01T17:32:58Z aeth: pve: https://borodust.org/projects/trivial-gamekit/ 2021-01-01T17:33:13Z murtagh quit (Ping timeout: 260 seconds) 2021-01-01T17:33:15Z aeth: pve: Probably too low-level but you could probably hack together some 80s-style 2D game that he can just modify 2021-01-01T17:33:22Z v0|d quit (Read error: Connection reset by peer) 2021-01-01T17:34:11Z pve: aeth: hey cool! 2021-01-01T17:38:20Z amb007 quit (Read error: Connection reset by peer) 2021-01-01T17:39:07Z amb007 joined #lisp 2021-01-01T17:41:12Z nullman joined #lisp 2021-01-01T17:42:00Z FreeBirdLjj quit (Remote host closed the connection) 2021-01-01T17:42:36Z FreeBirdLjj joined #lisp 2021-01-01T17:42:40Z FreeBirdLjj quit (Read error: Connection reset by peer) 2021-01-01T17:42:42Z perrier-jouet joined #lisp 2021-01-01T17:43:00Z FreeBirdLjj joined #lisp 2021-01-01T17:43:02Z FreeBirdLjj quit (Remote host closed the connection) 2021-01-01T17:43:18Z FreeBirdLjj joined #lisp 2021-01-01T17:43:23Z FreeBirdLjj quit (Remote host closed the connection) 2021-01-01T17:43:40Z FreeBirdLjj joined #lisp 2021-01-01T17:43:44Z FreeBirdLjj quit (Remote host closed the connection) 2021-01-01T17:46:39Z Oladon joined #lisp 2021-01-01T17:47:24Z Jeanne-Kamikaze joined #lisp 2021-01-01T17:48:08Z aldessa quit (Quit: Leaving) 2021-01-01T17:48:16Z toorevitimirp quit (Remote host closed the connection) 2021-01-01T17:48:28Z judson_ joined #lisp 2021-01-01T17:50:20Z shka_: aeth: how cool! 2021-01-01T17:51:39Z kam1 joined #lisp 2021-01-01T17:53:32Z phoe: We have CL:CONSTANTP that accepts a Lisp form and a lexical environment, and answers true or false. Is it generally possible to have a hypothetical CONSTANT-VALUE operator that produces a value off a form that has been declared constant by CONSTANTP? 2021-01-01T17:57:28Z jackdaniel: phoe: yes 2021-01-01T17:57:50Z jackdaniel: i.e ecl's compiler has a function constant-value-p which returns two values: whether it is a constant, and if it is, the second value the value 2021-01-01T17:58:11Z phoe: oh! perfect 2021-01-01T17:59:19Z jackdaniel: see src/cmp/cmpopt-constant.lsp if you are interested about details 2021-01-01T18:02:02Z aeth: phoe: Portably, I guess could do something like this, which doesn't have an environment, but I think the only portable DEFCONSTANT is global, anyway: (and (constantp '+foo+) (symbol-value '+foo+)) 2021-01-01T18:02:28Z rogersm joined #lisp 2021-01-01T18:03:03Z phoe: aeth: portably, yes, but if an implementation answers that e.g. '(+ 1 2) is CONSTANTP, then it should be able to fetch that value 2021-01-01T18:03:08Z phoe: for use e.g. inside compiler macros 2021-01-01T18:03:28Z makomo quit (Ping timeout: 246 seconds) 2021-01-01T18:03:28Z amb007 quit (Read error: Connection reset by peer) 2021-01-01T18:03:33Z phoe: I'm asking because I'm verifying my comment at https://www.reddit.com/r/lisp/comments/kob7hd/compiler_macros_when_why_how_and_real_life/ 2021-01-01T18:03:37Z jackdaniel: constant may be defined in the compilation unit (but not really evaluated), that's another gotcha (then symbol-value won't work) 2021-01-01T18:03:39Z aeth: Well, then you just branch on symbolp... 2021-01-01T18:04:17Z amb007 joined #lisp 2021-01-01T18:05:14Z phoe: okay - what do I do in the non-symbol branch though? 2021-01-01T18:06:06Z phoe: that's where the hypothetical CONSTANT-VALUE function comes into play, but I have no idea if there even exists a portalib for it 2021-01-01T18:06:06Z amb007 quit (Read error: Connection reset by peer) 2021-01-01T18:06:39Z amb007 joined #lisp 2021-01-01T18:08:31Z aeth: phoe: maybe something like this? (if (and (symbolp foo) (constantp foo)) #| the fast path using (symbol-value foo) |# #| the slow path |#) 2021-01-01T18:09:02Z phoe: basically https://github.com/Clozure/ccl/blob/553c0f25f38b2b0d5922ca7b4f62f09eb85ace1c/level-1/l1-utils.lisp#L680-L684 2021-01-01T18:09:07Z jackdaniel: you need a codewalker to analyae the lexenv too 2021-01-01T18:09:18Z phoe: CCL does not seem to recognize '(+ 1 2) as CONSTANTP, so that is going to work 2021-01-01T18:09:22Z jackdaniel: hence portable library does not exist 2021-01-01T18:09:27Z aeth: well, no, the codewalker will fail because you don't know what's going on 2021-01-01T18:09:32Z aeth: well, a portable one, at least 2021-01-01T18:09:36Z aeth: If you see a + it could be anything. 2021-01-01T18:09:57Z jackdaniel: you can't redefine cl functions 2021-01-01T18:09:58Z aeth: Well, I guess not because CL:+ is package-locked in SBCL and perhaps other implementations. 2021-01-01T18:10:06Z phoe: aeth: it can't be anything 2021-01-01T18:10:07Z aeth: But in general, you don't know what's going on. 2021-01-01T18:10:21Z phoe: CL functions must not be frebound 2021-01-01T18:11:21Z phoe: still, this gives me idea for writing a portalib that fills exactly this gap 2021-01-01T18:11:50Z aeth: phoe: That doesn't help the general case, only with CL:+, which was poorly chosen on my part. Unless the package you're using is package locked. It looks like Alexandria has this... #+sb-package-locks (:lock t) 2021-01-01T18:11:56Z phoe: I remember heisig complaining about this some time ago, too. 2021-01-01T18:12:09Z phoe: aeth: the general case is that I have a form, and an implementation tells me that this form is CONSTANTP 2021-01-01T18:12:11Z aeth: Idk which implementations other than SBCL implement the feature sb-package-locks, though 2021-01-01T18:12:24Z phoe: I want to get the value of that CONSTANTP form 2021-01-01T18:12:43Z phoe: possibly using implementation-dependent functionality, because it's required in the general case 2021-01-01T18:12:49Z aeth: phoe: If it's a symbol, then symbol-value, otherwise tree-walk or just slow-path. 2021-01-01T18:13:06Z aeth: But a tree-walk only works if it's package locked, otherwise it could stand for anything. 2021-01-01T18:14:35Z phoe: I don't want to manually tree-walk, I want the implementation to tell me the value 2021-01-01T18:14:55Z phoe: and so far it seems that SBCL, CCL, and ECL have functionalities for that 2021-01-01T18:15:02Z aeth: eval? 2021-01-01T18:15:11Z phoe: which means that creating a portalib for that would be viable. 2021-01-01T18:15:11Z aeth: Would eval work? 2021-01-01T18:15:14Z phoe: hmmmm 2021-01-01T18:15:17Z phoe: no 2021-01-01T18:15:27Z aeth: ah, no environment, unlike in Scheme 2021-01-01T18:15:30Z phoe: because EVAL takes no environment argument 2021-01-01T18:15:45Z aeth: In Scheme it does. :-) 2021-01-01T18:15:46Z phoe: the fact that a form is constant in some env doesn't mean it's constant in a null env 2021-01-01T18:19:19Z aeth: phoe: I guess SYMBOLP is the only thing you can do portably for the portable path, then? Since that's just global. i.e. (and (symbolp '+foo+) (constantp '+foo+)) then (symbol-value '+foo+) 2021-01-01T18:19:37Z phoe: yes 2021-01-01T18:27:49Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-01T18:28:24Z Aurora_v_kosmose joined #lisp 2021-01-01T18:31:28Z kam1 quit (Ping timeout: 246 seconds) 2021-01-01T18:32:05Z jackdaniel: you can't do that 2021-01-01T18:32:15Z jackdaniel: symbol-value does not accept the environment 2021-01-01T18:32:21Z jackdaniel: (constantp does) 2021-01-01T18:32:50Z jackdaniel: in other words you query the runtime, not the compilation unit symbol 2021-01-01T18:43:04Z jurov_ joined #lisp 2021-01-01T18:46:28Z jurov quit (Ping timeout: 272 seconds) 2021-01-01T18:46:28Z slyrus_ quit (Read error: Connection reset by peer) 2021-01-01T18:47:01Z slyrus joined #lisp 2021-01-01T18:48:40Z Lord_of_Life_ joined #lisp 2021-01-01T18:51:43Z jurov joined #lisp 2021-01-01T18:52:00Z Lord_of_Life quit (Ping timeout: 256 seconds) 2021-01-01T18:52:01Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-01T18:55:27Z jurov_ quit (Ping timeout: 265 seconds) 2021-01-01T19:05:25Z andreyorst quit (Ping timeout: 246 seconds) 2021-01-01T19:05:50Z andreyorst joined #lisp 2021-01-01T19:07:32Z mindCrime joined #lisp 2021-01-01T19:07:46Z gioyik joined #lisp 2021-01-01T19:08:01Z v88m quit (Ping timeout: 264 seconds) 2021-01-01T19:10:03Z hnOsmium0001 joined #lisp 2021-01-01T19:10:15Z hiroaki joined #lisp 2021-01-01T19:10:38Z MetaYan: The sb-cga issue that's been causing many failures in the Quicklisp reports now has a fix: https://github.com/nikodemus/sb-cga/pull/8 . Does anyone here have the possibility to merge it? 2021-01-01T19:11:20Z Oladon quit (Quit: Leaving.) 2021-01-01T19:13:11Z andreyorst_ joined #lisp 2021-01-01T19:14:14Z andreyorst_ quit (Client Quit) 2021-01-01T19:14:51Z andreyorst_ joined #lisp 2021-01-01T19:18:07Z xsperry joined #lisp 2021-01-01T19:22:04Z makomo joined #lisp 2021-01-01T19:29:06Z andreyorst_ quit (Remote host closed the connection) 2021-01-01T19:30:14Z andreyorst_ joined #lisp 2021-01-01T19:31:54Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-01T19:34:14Z andreyorst_ quit (Remote host closed the connection) 2021-01-01T19:35:29Z kam1 joined #lisp 2021-01-01T19:35:29Z andreyorst_ joined #lisp 2021-01-01T19:36:45Z birdwing quit (Ping timeout: 268 seconds) 2021-01-01T19:40:04Z rogersm quit (Quit: Leaving...) 2021-01-01T19:41:28Z v88m joined #lisp 2021-01-01T19:42:07Z luna_is_here quit (Quit: No Ping reply in 210 seconds.) 2021-01-01T19:45:53Z bendersteed joined #lisp 2021-01-01T19:46:24Z luna_is_here joined #lisp 2021-01-01T19:47:56Z andreyorst_ quit (Ping timeout: 240 seconds) 2021-01-01T19:48:50Z andreyorst_ joined #lisp 2021-01-01T19:50:56Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-01T19:51:39Z Aurora_v_kosmose joined #lisp 2021-01-01T19:54:29Z rogersm joined #lisp 2021-01-01T19:55:31Z attila_lendvai joined #lisp 2021-01-01T19:58:56Z andreyorst_ quit (Ping timeout: 256 seconds) 2021-01-01T20:07:40Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-01T20:08:15Z Aurora_v_kosmose joined #lisp 2021-01-01T20:10:02Z rogersm quit 2021-01-01T20:12:06Z ebrasca joined #lisp 2021-01-01T20:12:35Z attila_lendvai quit (Remote host closed the connection) 2021-01-01T20:12:47Z kam1 quit (Ping timeout: 265 seconds) 2021-01-01T20:13:03Z attila_lendvai joined #lisp 2021-01-01T20:15:58Z jjong quit (Ping timeout: 260 seconds) 2021-01-01T20:26:16Z kam1 joined #lisp 2021-01-01T20:26:59Z kaftejiman joined #lisp 2021-01-01T20:33:35Z andreyorst quit (Remote host closed the connection) 2021-01-01T20:33:47Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-01T20:33:47Z h1xhk1xo joined #lisp 2021-01-01T20:34:27Z h1xhk1xo quit (Quit: Leaving) 2021-01-01T20:38:49Z Jeanne-Kamikaze quit (Remote host closed the connection) 2021-01-01T20:41:48Z jw4 quit (Read error: Connection reset by peer) 2021-01-01T20:42:47Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-01T20:43:20Z Aurora_v_kosmose joined #lisp 2021-01-01T20:43:47Z jw4 joined #lisp 2021-01-01T20:54:21Z amb007 quit (Read error: Connection reset by peer) 2021-01-01T20:54:21Z aartaka quit (Read error: Connection reset by peer) 2021-01-01T20:55:04Z amb007 joined #lisp 2021-01-01T20:55:30Z galex-713 quit (Read error: Connection reset by peer) 2021-01-01T20:55:44Z galex-713 joined #lisp 2021-01-01T20:57:25Z jw4 quit (Ping timeout: 240 seconds) 2021-01-01T21:02:14Z judson_ joined #lisp 2021-01-01T21:02:56Z andreyorst joined #lisp 2021-01-01T21:03:11Z jw4 joined #lisp 2021-01-01T21:03:16Z kam1 quit (Ping timeout: 272 seconds) 2021-01-01T21:04:25Z orivej quit (Ping timeout: 240 seconds) 2021-01-01T21:10:54Z makomo: does anyone have a recommendation for a library that implements a mutable ordered set? 2021-01-01T21:11:15Z phoe: funny, I was thinking about ordered hash tables some time ago 2021-01-01T21:11:45Z ralt joined #lisp 2021-01-01T21:11:52Z makomo: it's a bit annoying how fragmented the ecosystem is when it comes to data structures :/ 2021-01-01T21:11:58Z narimiran quit (Ping timeout: 256 seconds) 2021-01-01T21:12:30Z shka_: slyrus: i just rewrote select stuff 2021-01-01T21:12:36Z Alfr: phoe, how would that work? 2021-01-01T21:12:41Z shka_: it was way more complex then useful 2021-01-01T21:12:55Z makomo: Alfr: i suppose phoe meant ordered dictionaries/maps 2021-01-01T21:13:08Z shka_: makomo: skip-list would do? 2021-01-01T21:13:19Z phoe: Alfr: like Java's LinkedHashSet 2021-01-01T21:13:50Z makomo: shka_: i've taken a look at cl-data-structures :-), and was just about to ask you a bit about it. does the set interface have just those 3 functions? what about unions, intersections, differences? 2021-01-01T21:14:06Z shka_: yeah, they are missing :( 2021-01-01T21:14:16Z narimiran joined #lisp 2021-01-01T21:14:18Z shka_: which is a shame, because i planned to add it 2021-01-01T21:14:39Z shka_: skip-lists are the best data structures for intersections actually 2021-01-01T21:15:10Z benjamindc joined #lisp 2021-01-01T21:15:24Z Alfr: phoe, ah okay. It's insertion order, not inventing some H respecting < for every problem. Didn't know about it, thanks. 2021-01-01T21:16:16Z shka_: makomo: i certainly want to add unions, intersection and difference, i just didn't manage to get to it yet 2021-01-01T21:17:34Z makomo: shka_: mhm, i see. do you know of any other libraries that provide a mutable set? 2021-01-01T21:17:49Z shka_: nope, sorry 2021-01-01T21:18:13Z makomo: it's really weird to me that such a thing is impossible to find in CL :( 2021-01-01T21:20:11Z shka_: i know 2021-01-01T21:21:24Z shka_: if you want to contribute to the development of cl-ds, you are encouraged to implement the set intersection for skip-lists ;-) 2021-01-01T21:22:52Z rogersm joined #lisp 2021-01-01T21:23:53Z rogersm quit (Client Quit) 2021-01-01T21:27:39Z makomo: shka_: is there some sort of reference that you used while implementing the skip-list-based set or? 2021-01-01T21:29:38Z aeth quit (Ping timeout: 265 seconds) 2021-01-01T21:31:08Z aeth joined #lisp 2021-01-01T21:31:40Z shka_: hmmm, i think that i did this by the book 2021-01-01T21:32:38Z shka_: it is not particularly complex data structures, erase proved to be the most difficult part 2021-01-01T21:34:18Z liberliver quit (Ping timeout: 272 seconds) 2021-01-01T21:36:00Z thmprover joined #lisp 2021-01-01T21:39:08Z charles` joined #lisp 2021-01-01T21:42:23Z makomo: shka_: any book in particular or did you just "wing it" from memory? ;) 2021-01-01T21:42:53Z shka_: makomo: by the book i meant the original article 2021-01-01T21:43:01Z shka_: describing the skip-list 2021-01-01T21:43:30Z shka_: but honestly, after you get the basic property of the one into your head, you can figure out the rest 2021-01-01T21:43:37Z shka_: *node 2021-01-01T21:44:13Z amb007 quit (Read error: Connection reset by peer) 2021-01-01T21:44:32Z shka_: which is distinctly different to the tree balancing :-) 2021-01-01T21:45:08Z amb007 joined #lisp 2021-01-01T21:45:17Z shka_: and RB-trees are the worst 2021-01-01T21:45:43Z narimiran quit (Ping timeout: 246 seconds) 2021-01-01T21:46:47Z makomo: aha, i see 2021-01-01T21:46:55Z makomo: re rb-trees: for sure ;) 2021-01-01T21:48:03Z mfiano: what about rb-trees? 2021-01-01T21:48:25Z shka_: mfiano: they are PITA to implement 2021-01-01T21:48:35Z shka_: and equally PITA to understand 2021-01-01T21:48:36Z mfiano: balancing red-black trees is quite easy compared to other rebalancing such as AVL/WAVL 2021-01-01T21:49:15Z shka_: yeah, all autoabalancing trees are a mess 2021-01-01T21:49:16Z mfiano: Also, all self-balancing trees can be written in terms of 2 functions split and join, with the rest of the code shared among all implementations. 2021-01-01T21:49:38Z shka_: in theory :P 2021-01-01T21:49:45Z mfiano: Not in theory :) 2021-01-01T21:50:31Z shka_: seriously, internet is full of slightly broken RB trees implementations 2021-01-01T21:51:07Z shka_: anyway, good night all 2021-01-01T21:51:29Z mfiano: Maybe people should write tests to ensure the invariants. The algorithm is quite simple 2021-01-01T21:51:39Z mfiano: Just pick up a copy of CLRS and translate the pseudo code to Lisp 2021-01-01T21:51:54Z akoana joined #lisp 2021-01-01T21:52:00Z karlosz joined #lisp 2021-01-01T21:52:19Z mfiano: Also, for the split/join awesomeness, have a read this paper which is what I did for RB/AVL: https://arxiv.org/pdf/1602.02120.pdf 2021-01-01T21:52:45Z benjamindc quit (Remote host closed the connection) 2021-01-01T21:56:35Z mfiano: I guess I recalled incorrectly: "all code except JOINisgeneric across the balancing schemes 2021-01-01T21:56:37Z mfiano: " 2021-01-01T21:58:45Z contrapunctus: I'm trying to write a Gemini CGI script. (I'm new to Gemini, web programming, _and_ CL. 😅) This is not a long-running application - does the "connect to remote Lisp image" workflow still make sense for it? 🤔 2021-01-01T21:59:33Z shka_: contrapunctus: i honestly don't understand your question, but connecting to the remote lisp is normally very useful 2021-01-01T22:00:08Z Xach: What is Gemini? 2021-01-01T22:00:40Z contrapunctus: Xach: https://gemini.circumlunar.space/ 2021-01-01T22:01:26Z contrapunctus: shka_: most of the examples I've seen for remote interaction have been of programs with a constant event loop of sorts running. 2021-01-01T22:02:21Z shka_: contrapunctus: well, for what is worth i used to connect to the remote server with a decent hardware resources to crunch some data 2021-01-01T22:02:36Z shka_: no event loop involved 2021-01-01T22:02:49Z shka_: anyway, if you need to be on a remote server, then connect 2021-01-01T22:02:59Z shka_: easy 2021-01-01T22:04:44Z contrapunctus: shka_: what did your workflow look like? Start remote SBCL (running swank), create SSH tunnel, and M-x slime-connect, each time you want to work on it? 🤔 2021-01-01T22:04:58Z shka_: yeah, exactly that 2021-01-01T22:05:18Z shka_: also, set up emacs for easier debugging 2021-01-01T22:06:01Z shka_: oh, and i simply never disconnecting 2021-01-01T22:06:02Z luna_is_here quit (Read error: Connection reset by peer) 2021-01-01T22:06:08Z shka_: *never did disconnecting 2021-01-01T22:06:27Z contrapunctus: And then I imagine you load your script into the remote image. Hm... 2021-01-01T22:06:35Z luna_is_here joined #lisp 2021-01-01T22:07:06Z shka_: or just compile with C-c C-c 2021-01-01T22:07:10Z shka_: in emacs 2021-01-01T22:08:13Z shka_: it will send the it via the ssh tunnel and swank connection into the remote lisp 2021-01-01T22:08:26Z shka_: and use TRAMP for editing 2021-01-01T22:08:57Z shka_: eshell also works via tramp, same for magit 2021-01-01T22:09:05Z contrapunctus: Yeah... 2021-01-01T22:09:06Z shka_: so in summary, it was pretty nice 2021-01-01T22:09:21Z shka_: i recomend 2021-01-01T22:09:25Z shka_: anyway 2021-01-01T22:09:27Z shka_: bye! 2021-01-01T22:09:45Z contrapunctus: thanks, ciao 2021-01-01T22:09:46Z benjamindc joined #lisp 2021-01-01T22:10:17Z bendersteed quit (Read error: Connection reset by peer) 2021-01-01T22:11:28Z benjamindc: When I try to load my asd file I get an error: Execution of a form compiled with errors. Form: ("alexandria"). But when I prefix defsystem with asdf (e.g. asdf:defsystem), I don't get that error. But I see that it's standard not to use the prefix on code that I see on github. What am I doing wrong? 2021-01-01T22:11:52Z Xach: benjamindc: don't try to use LOAD to load system files. 2021-01-01T22:12:07Z easye quit (Remote host closed the connection) 2021-01-01T22:12:11Z Xach: benjamindc: asdf:load-asd will work better 2021-01-01T22:12:32Z benjamindc: wonderful, that works. Thanks Xach 2021-01-01T22:12:43Z Xach: Also, I wouldn't say it's standard not to use the prefix - that is a way around the very problem you have. 2021-01-01T22:15:50Z benjamindc: Now I'm having the problem that when i run (asdf:test-system "systemname"), rove runs successfully, but doesn't run any tests. 2021-01-01T22:16:06Z benjamindc: I get "All 0 tests passed." 2021-01-01T22:17:16Z semz joined #lisp 2021-01-01T22:17:22Z benjamindc: I'm using the :package-inferred-system class 2021-01-01T22:17:25Z frodef joined #lisp 2021-01-01T22:17:53Z frodef: 'evening 2021-01-01T22:17:59Z benjamindc: Hey frodef 2021-01-01T22:18:22Z Xach: I don't know about that, sorry. I'm not familiar with rove. 2021-01-01T22:18:40Z frodef: is there a good idiom for detecting the presence of any duplicates in a list? 2021-01-01T22:19:03Z shka_ quit (Ping timeout: 260 seconds) 2021-01-01T22:19:04Z frodef: I have, basically, (= (length list) (remove-duplicates list)) 2021-01-01T22:19:38Z Xach: frodef: is there any other interesting property of the list that might be exploited? 2021-01-01T22:19:46Z frodef: .. (length (remove-dupl ...)) that is. 2021-01-01T22:19:51Z skapate joined #lisp 2021-01-01T22:19:57Z Xach: (it's not a sorted list of integers, is it?) 2021-01-01T22:20:12Z skapata quit (Disconnected by services) 2021-01-01T22:20:22Z skapate is now known as skapata 2021-01-01T22:20:23Z frodef: no, the elements are rudimentary datastructures, really. 2021-01-01T22:21:10Z frodef: so there's a :TEST in there that I didn't put in explicitly. 2021-01-01T22:21:54Z Xach: a table would be faster but longer to make - i can't think of a well-known short idiom 2021-01-01T22:22:22Z frodef: ok, thanks, I was just getting this feeling I was missing something obvious :) 2021-01-01T22:22:37Z Xach: i might be missing something obvious too :~( 2021-01-01T22:22:47Z frodef: nah.. ;) 2021-01-01T22:24:01Z Xach: alexandria:has-duplicates-p 2021-01-01T22:24:08Z Xach: (does not exist) 2021-01-01T22:24:41Z frodef: In terms of efficiency I could easily whip up a simple loop, but I don't think it would be more readable/idiomatic. 2021-01-01T22:24:48Z semz: why not just write a helper function 2021-01-01T22:24:50Z phoe: frodef: duplicates under which test? 2021-01-01T22:25:05Z semz: would probably be clearer than an idiom 2021-01-01T22:25:16Z phoe: if it's eq or eql or equal or equalp I just add them into a hash table and return NIL if there's a FOUNDP 2021-01-01T22:25:19Z phoe: otherwise return T 2021-01-01T22:25:24Z frodef: phoe: general duplicates under any (provided) test. 2021-01-01T22:25:32Z phoe: no idea then 2021-01-01T22:25:51Z frodef: expected list-size in my case is about 2-4, so ... no hash-table :) 2021-01-01T22:26:06Z semz: If a function converts something to a string, is it ever a disadvantage if the resulting string has a fill pointer? I find the function much easier to write using FPs and feel it'd be silly to copy the entire thing just to end up with a simple-string. 2021-01-01T22:26:49Z phoe: semz: mostly speed I think, some code is more performant if it knows that it works on simple strings 2021-01-01T22:27:34Z frodef: semz: I can do a helper function, just that if there's already such a function or idiom, that'd be better. 2021-01-01T22:28:32Z Xach: semz: yeah, working on arrays with fill pointers is slower in general. if a consumer cares, it would have to convert. 2021-01-01T22:28:49Z Xach: it depends on the situation 2021-01-01T22:29:57Z semz: fwiw the array isn't adjustable 2021-01-01T22:30:05Z semz: still relevant? 2021-01-01T22:30:10Z mfiano: Yes 2021-01-01T22:30:13Z Xach: semz: yes 2021-01-01T22:30:14Z semz: grr 2021-01-01T22:30:18Z mfiano: It is no longer a simple-array if it has a fill-pointer 2021-01-01T22:30:32Z mfiano: and therefor not a simple-string, or perhaps even a simple-base-string 2021-01-01T22:31:29Z Xach: It can still be the right choice for you! It just helps to be aware that it's not without drawbacks. 2021-01-01T22:31:59Z benjamindc quit (Remote host closed the connection) 2021-01-01T22:36:15Z phoe: CONSTANTP question: could someone provide me an example where the &environment argument passed to CONSTANTP matters? Like, where it changes the actual outcome of the function? 2021-01-01T22:37:33Z cosimone quit (Quit: cosimone) 2021-01-01T22:37:46Z frodef: I guess an env could hold e.g. a symbol-macro that transforms a symbol to e.g an integer? 2021-01-01T22:38:39Z phoe: right, this is one example 2021-01-01T22:41:13Z frodef: duplicates-p: (loop for x = (pop list) while list thereis (find x list :test ...)) 2021-01-01T22:41:17Z mfiano: phoe: http://random-state.net/log/3340101644.html 2021-01-01T22:41:31Z phoe: mfiano: gasp 2021-01-01T22:41:45Z phoe: thank you 2021-01-01T22:43:05Z frodef: ... (loop while list thereis (find (pop list) list :test test :key key)) 2021-01-01T22:45:31Z Xach: frodef: points for brevity if not efficiency 2021-01-01T22:46:20Z edgar-rft quit (Quit: Leaving) 2021-01-01T22:47:45Z frodef: Xach: hm.. can't really see a more efficient (general) solution, can you? 2021-01-01T22:48:08Z semz: (cons x y) has duplicates iff y contains x or y contains duplicates, so it's enough to check cdrs 2021-01-01T22:48:24Z semz: cuts the run time in half 2021-01-01T22:48:40Z semz: assuming of course that your test is symmetric 2021-01-01T22:50:17Z semz: but afaik most built-in functions barf when given asymmetric tests anyway 2021-01-01T22:50:18Z frodef: semz: I don't follow, really..? 2021-01-01T22:51:35Z semz: once you've checked for 1 in '(1 2 3), there's no need to check 2 against all of '(1 2 3) again because (test 2 1) = (test 1 2) was already done earlier 2021-01-01T22:51:56Z Xach: it popped the earlier entry 2021-01-01T22:52:07Z Xach: frodef: i bet i was too hasty, i'll think more about it 2021-01-01T22:52:14Z semz: there's no need to pop 2021-01-01T22:52:24Z imode joined #lisp 2021-01-01T22:54:04Z semz: (loop for x on list thereis (find (car x) (cdr x) ...)) should do the trick 2021-01-01T22:54:38Z benjamindc joined #lisp 2021-01-01T22:54:56Z semz: or member, rather than find 2021-01-01T22:55:00Z frodef: semz: that is pretty much the same, though probably less confusing. 2021-01-01T22:55:12Z semz: oh i see 2021-01-01T22:55:26Z aorst joined #lisp 2021-01-01T22:55:33Z frodef: semz: the penny popped? :) 2021-01-01T22:55:35Z semz: yeah i was the one who misread, sorry 2021-01-01T22:55:57Z Xach: i like that formulation 2021-01-01T22:56:01Z semz: i'm going to shamelessly use this as an argument that my solution trips less people up :-) 2021-01-01T22:56:18Z frodef: semz: I tend to agree :) 2021-01-01T22:59:21Z Xach: you could tweak it slightly to (loop for (item . rest) on list thereis (find item rest ...))? 2021-01-01T22:59:37Z andreyorst quit (Ping timeout: 264 seconds) 2021-01-01T23:07:23Z shqsh00q joined #lisp 2021-01-01T23:08:15Z shqsh00q quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-01-01T23:08:40Z karlosz quit (Quit: karlosz) 2021-01-01T23:13:06Z jibanes quit (Ping timeout: 272 seconds) 2021-01-01T23:13:37Z benjamindc quit (Ping timeout: 260 seconds) 2021-01-01T23:14:27Z jibanes joined #lisp 2021-01-01T23:21:19Z pve quit (Quit: leaving) 2021-01-01T23:25:01Z zulu-inuoe_ joined #lisp 2021-01-01T23:27:18Z makomo quit (Ping timeout: 260 seconds) 2021-01-01T23:27:43Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-01T23:28:25Z zulu-inuoe quit (Ping timeout: 240 seconds) 2021-01-01T23:38:13Z benjamindc joined #lisp 2021-01-01T23:44:29Z judson_ joined #lisp 2021-01-01T23:50:21Z attila_lendvai quit (Ping timeout: 272 seconds) 2021-01-01T23:53:33Z Jeanne-Kamikaze joined #lisp 2021-01-01T23:55:07Z frgo quit (Remote host closed the connection) 2021-01-01T23:55:34Z frgo joined #lisp 2021-01-01T23:55:52Z Oladon joined #lisp 2021-01-02T00:00:38Z rgherdt quit (Ping timeout: 264 seconds) 2021-01-02T00:03:42Z Jeanne-Kamikaze quit (Quit: Leaving) 2021-01-02T00:04:24Z makomo joined #lisp 2021-01-02T00:05:00Z emacsomancer quit (Ping timeout: 268 seconds) 2021-01-02T00:10:38Z Nilby joined #lisp 2021-01-02T00:27:48Z emacsomancer joined #lisp 2021-01-02T00:27:51Z benjamindc quit (Remote host closed the connection) 2021-01-02T00:33:23Z luckless joined #lisp 2021-01-02T00:33:32Z gaqwas quit (Ping timeout: 272 seconds) 2021-01-02T00:37:19Z charles`: When I call "error" it only give me the abort option. if I want options like "continue" or "retry", do I have to make my own condition? 2021-01-02T00:37:47Z frodef: charles`: you have to make your own restarts, rather. 2021-01-02T00:39:34Z frodef: for example: (with-simple-restart (continue "Never mind.") (error "I don't know what to do!")) 2021-01-02T00:41:17Z kam1 joined #lisp 2021-01-02T00:42:18Z Nilby: You can also use cerror if you only want continue. 2021-01-02T00:44:22Z frodef: right, cerror is basically the same as above. 2021-01-02T00:44:25Z zaquest quit (Quit: Leaving) 2021-01-02T00:44:40Z charles`: Thank you a lot 2021-01-02T00:45:54Z zaquest joined #lisp 2021-01-02T00:46:29Z frodef: retry: (loop until (with-simple-restart (retry "Have another go") .. (error "huh?") ... (compute-non-nil-value))) 2021-01-02T00:47:48Z mindCrime joined #lisp 2021-01-02T00:52:09Z jjong joined #lisp 2021-01-02T00:54:19Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-02T00:55:13Z charles`: and "restart-case" is the right way to define custom restarts 2021-01-02T00:58:39Z frodef: w-s-restart often does the trick, but sometimes restart-case or even restart-bind is the way to go. 2021-01-02T00:59:52Z charles`: and what if I want to use my custom ones with the default continue, should I nest them? 2021-01-02T01:01:32Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-02T01:01:55Z matryoshka joined #lisp 2021-01-02T01:03:02Z Nilby: If you call a restart ‘continue’ it's the same as the default. 2021-01-02T01:03:31Z matryoshka` joined #lisp 2021-01-02T01:03:42Z matryoshka quit (Remote host closed the connection) 2021-01-02T01:04:42Z aorst quit (Quit: WeeChat 3.0) 2021-01-02T01:05:11Z cantstanya quit (Remote host closed the connection) 2021-01-02T01:06:13Z random-nick quit (Ping timeout: 264 seconds) 2021-01-02T01:06:32Z frodef: The function CONTINUE will go to the innermost restart called continue. But any decent interactive debugger will let you chose which exact restart (inner or outer) you want. 2021-01-02T01:07:33Z cantstanya joined #lisp 2021-01-02T01:07:53Z frodef: programmatically, see COMPUTE-RESTARTS. You can invoke any one of them, regardless of what they are named. 2021-01-02T01:08:48Z galex-713 joined #lisp 2021-01-02T01:09:24Z vhost- quit (Ping timeout: 256 seconds) 2021-01-02T01:09:53Z matryoshka` quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-02T01:10:13Z matryoshka joined #lisp 2021-01-02T01:10:16Z charles`: so a restart is not much more than a dynamically bound function? 2021-01-02T01:10:50Z frodef: exactly, it's not very magic at all. 2021-01-02T01:12:24Z charles`: And what is the proper way to define them: RESTART-CASE or RESTART-BIND? 2021-01-02T01:12:43Z frodef: The magic is just in the framework, or the ideas behind it. Having proper restarts available can make or a beautiful system. 2021-01-02T01:12:57Z Nilby: but dynamically bound functions are a bit magic, especially in compiled code. 2021-01-02T01:12:57Z karlosz joined #lisp 2021-01-02T01:13:35Z frodef: ... make for ... 2021-01-02T01:14:19Z frodef: Usually RESTART-CASE, but RESTART-BIND if your restart would benefit from the dynamic context of the error. 2021-01-02T01:14:37Z kam1 quit (Ping timeout: 264 seconds) 2021-01-02T01:14:52Z matryoshka quit (Client Quit) 2021-01-02T01:15:12Z matryoshka joined #lisp 2021-01-02T01:15:13Z frodef: ...much like HANDLER-BIND vs. HANDLER-CASE. 2021-01-02T01:16:30Z frodef: These are really some of the most profoundly and uniquely beautiful corners of CL, IHMO. 2021-01-02T01:17:17Z matryoshka quit (Client Quit) 2021-01-02T01:17:35Z matryoshka joined #lisp 2021-01-02T01:19:12Z matryoshka quit (Client Quit) 2021-01-02T01:19:35Z matryoshka joined #lisp 2021-01-02T01:20:50Z matryoshka quit (Read error: Connection reset by peer) 2021-01-02T01:21:03Z matryoshka joined #lisp 2021-01-02T01:22:00Z vhost- joined #lisp 2021-01-02T01:22:15Z gaqwas joined #lisp 2021-01-02T01:22:15Z gaqwas quit (Changing host) 2021-01-02T01:22:15Z gaqwas joined #lisp 2021-01-02T01:22:45Z matryoshka` joined #lisp 2021-01-02T01:22:49Z matryoshka quit (Client Quit) 2021-01-02T01:24:15Z matryoshka` quit (Read error: Connection reset by peer) 2021-01-02T01:24:38Z matryoshka joined #lisp 2021-01-02T01:27:25Z matryoshka quit (Client Quit) 2021-01-02T01:27:28Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-02T01:27:45Z matryoshka joined #lisp 2021-01-02T01:29:26Z matryoshka quit (Read error: Connection reset by peer) 2021-01-02T01:30:32Z matryoshka joined #lisp 2021-01-02T01:35:28Z jjong quit (Ping timeout: 256 seconds) 2021-01-02T01:37:32Z rumbler31 joined #lisp 2021-01-02T01:42:48Z Jeanne-Kamikaze joined #lisp 2021-01-02T01:43:24Z varjag quit (Ping timeout: 256 seconds) 2021-01-02T01:44:25Z GuerrillaMonkey joined #lisp 2021-01-02T01:45:38Z FreeBirdLjj joined #lisp 2021-01-02T01:48:16Z Jeanne-Kamikaze quit (Ping timeout: 240 seconds) 2021-01-02T01:48:46Z junkicide joined #lisp 2021-01-02T01:49:52Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2021-01-02T01:50:10Z Jeanne-Kamikaze joined #lisp 2021-01-02T01:52:42Z GuerrillaMonkey quit (Ping timeout: 256 seconds) 2021-01-02T01:53:08Z gaqwas quit (Ping timeout: 260 seconds) 2021-01-02T01:57:22Z makomo quit (Ping timeout: 246 seconds) 2021-01-02T01:59:44Z kam1 joined #lisp 2021-01-02T02:00:34Z jjong joined #lisp 2021-01-02T02:13:33Z kam1 quit (Ping timeout: 260 seconds) 2021-01-02T02:14:34Z frodef quit (Ping timeout: 256 seconds) 2021-01-02T02:17:33Z bilegeek joined #lisp 2021-01-02T02:19:01Z scymtym_ joined #lisp 2021-01-02T02:20:37Z scymtym quit (Ping timeout: 264 seconds) 2021-01-02T02:21:45Z rumbler31 quit (Remote host closed the connection) 2021-01-02T02:23:44Z kam1 joined #lisp 2021-01-02T02:32:41Z euandreh joined #lisp 2021-01-02T02:33:13Z bilegeek_ joined #lisp 2021-01-02T02:34:32Z semz quit (Ping timeout: 260 seconds) 2021-01-02T02:36:02Z bilegeek quit (Ping timeout: 260 seconds) 2021-01-02T02:37:41Z pfdietz joined #lisp 2021-01-02T02:37:49Z cyraxjoe joined #lisp 2021-01-02T02:39:38Z charles`: if CONTINUE can be used to continue, what can be used to retry 2021-01-02T02:40:41Z abhixec joined #lisp 2021-01-02T02:41:26Z ralt quit (Quit: Connection closed for inactivity) 2021-01-02T02:42:39Z [d] joined #lisp 2021-01-02T02:43:23Z luckless quit (Ping timeout: 240 seconds) 2021-01-02T02:44:02Z luckless joined #lisp 2021-01-02T02:46:28Z ebrasca quit (Remote host closed the connection) 2021-01-02T02:47:59Z semz joined #lisp 2021-01-02T02:48:29Z no-defun-allowed joined #lisp 2021-01-02T02:55:31Z choegusung joined #lisp 2021-01-02T02:58:16Z junkicide quit (Ping timeout: 246 seconds) 2021-01-02T03:00:14Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-02T03:00:17Z pagnol joined #lisp 2021-01-02T03:01:07Z matryoshka joined #lisp 2021-01-02T03:07:35Z surabax quit (Quit: Leaving) 2021-01-02T03:08:16Z kam1 quit (Ping timeout: 240 seconds) 2021-01-02T03:08:59Z judson_ joined #lisp 2021-01-02T03:11:06Z contrapunctus left #lisp 2021-01-02T03:11:22Z contrapunctus joined #lisp 2021-01-02T03:12:04Z contrapunctus left #lisp 2021-01-02T03:12:11Z kam1 joined #lisp 2021-01-02T03:12:27Z contrapunctus joined #lisp 2021-01-02T03:21:30Z vhost- quit (Ping timeout: 256 seconds) 2021-01-02T03:24:27Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-02T03:24:48Z matryoshka joined #lisp 2021-01-02T03:27:17Z zulu-inuoe__ joined #lisp 2021-01-02T03:27:45Z contrapunctus left #lisp 2021-01-02T03:28:03Z contrapunctus joined #lisp 2021-01-02T03:29:39Z murtagh joined #lisp 2021-01-02T03:30:12Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-02T03:30:33Z matryoshka joined #lisp 2021-01-02T03:30:56Z zulu-inuoe_ quit (Ping timeout: 240 seconds) 2021-01-02T03:35:32Z KREYREEN quit (Remote host closed the connection) 2021-01-02T03:35:55Z KREYREEN joined #lisp 2021-01-02T03:38:23Z madage quit (Ping timeout: 240 seconds) 2021-01-02T03:38:55Z madage joined #lisp 2021-01-02T03:39:33Z benjamindc joined #lisp 2021-01-02T03:40:59Z benjamindc quit (Remote host closed the connection) 2021-01-02T03:41:38Z choegusung quit (Quit: leaving) 2021-01-02T03:43:16Z vhost- joined #lisp 2021-01-02T03:45:24Z benjamindc joined #lisp 2021-01-02T03:48:59Z GuerrillaMonkey joined #lisp 2021-01-02T03:49:50Z galex-713 quit (Ping timeout: 264 seconds) 2021-01-02T03:52:31Z Jeanne-Kamikaze quit (Ping timeout: 246 seconds) 2021-01-02T03:53:42Z Jeanne-Kamikaze joined #lisp 2021-01-02T03:55:40Z vhost- quit (Ping timeout: 256 seconds) 2021-01-02T03:55:42Z Josh_2 quit (Remote host closed the connection) 2021-01-02T03:56:16Z GuerrillaMonkey quit (Ping timeout: 240 seconds) 2021-01-02T03:57:06Z beach: Good morning everyone! 2021-01-02T03:57:13Z kam1 quit (Ping timeout: 264 seconds) 2021-01-02T03:58:34Z oni-on-ion: good morning happy new year ! 2021-01-02T03:58:52Z oni-on-ion: (still current here) 2021-01-02T03:59:40Z beach: Thanks. You too! 2021-01-02T03:59:57Z GuerrillaMonkey joined #lisp 2021-01-02T04:00:05Z sauvin: Ubuntu installed a pile of cl-* files when I installed Common Lisp but I have no idea how to load or use them. Figuring out how to use them is my problem, but could anybody help me with using them and/or with a package manager? Quicklisp doesn't seem to like gcl. 2021-01-02T04:01:05Z galex-713 joined #lisp 2021-01-02T04:02:44Z Alfr_ joined #lisp 2021-01-02T04:03:00Z no-defun-allowed: I don't know how to use the Ubuntu (or Debian) packages (though you could always try locate to find them), but you probably don't want to use GCL these days. 2021-01-02T04:03:14Z contrapunctus: sauvin: by 'installed Common Lisp' do you mean installed gcl? What did gcl say that makes you think that Quicklisp doesn't like it? 2021-01-02T04:03:32Z Jeanne-Kamikaze quit (Ping timeout: 260 seconds) 2021-01-02T04:03:42Z aeth: I'm not an Ubuntu expert, but you generally don't use the distro packages for languages that have their own package manager. They're mostly for dependencies of things that the distro ships, like e.g. Maxima. 2021-01-02T04:03:48Z aeth: Or maybe pgloader. Or whatever else a distro might ship. 2021-01-02T04:04:13Z no-defun-allowed: Oh, looking at the file listings, they are stored in /usr/share/common-lisp/source/ but I don't know what you do with them. If you installed ASDF from the package manager, it might know to search there for systems, or it might not. 2021-01-02T04:04:15Z aeth: If GCL isn't complete enough to run Quicklisp, it probably can't run any of the libraries, either. e.g. I think its CLOS is incomplete. 2021-01-02T04:05:26Z Alfr quit (Ping timeout: 264 seconds) 2021-01-02T04:05:45Z sauvin: contrapunctus, it won't load the quicklisp.quicklisp in /usr/share/..../quicklisp, complaining about ASDF. 2021-01-02T04:06:52Z sauvin: aeth, what you're saying is familiar to a perl person. I'll take the risk, but I'd really like to check out this pile of cl-* files that Ubuntu put on the hard drive but I'm at a loss for loading. 2021-01-02T04:07:07Z sauvin: The form (require "asdf") failes. 2021-01-02T04:08:11Z sauvin: The gcl I'm using is 2.6.12, is that not recent enough? 2021-01-02T04:08:53Z sauvin: If this stupid thing vexes me much longer, I'm gonna say "screw you" and start using sbcl. 2021-01-02T04:09:01Z aeth: Why GCL? 2021-01-02T04:09:16Z charles` quit (Ping timeout: 256 seconds) 2021-01-02T04:09:23Z euandreh quit (Ping timeout: 272 seconds) 2021-01-02T04:09:24Z vhost- joined #lisp 2021-01-02T04:09:34Z sauvin: I _usually_ like gnu stuff and don't know enough about lisp - ANY recent implimentation - to make anything like an informed choice. 2021-01-02T04:09:46Z aeth: I'm under the impression, perhaps mistaken, that GCL was never completed. Even CLISP is a more mature GNU CL, but CLISP hasn't had a release in 10 years. 2021-01-02T04:10:14Z aeth: But generally people use SBCL, CCL, or ECL, I think. A bit of ABCL (on the JVM) in here. 2021-01-02T04:10:38Z sauvin: Hrm, yea, it's been about six years for gcl. 2021-01-02T04:10:49Z contrapunctus: sauvin: this guided me in my choices as a newcomer to the CL world, hope it helps you too - https://github.com/emacs-tw/awesome-emacs 2021-01-02T04:10:58Z aeth: ECL's LGPL, CCL's Apache, SBCL's mostly public domain. They're all GPL-compatible. 2021-01-02T04:11:00Z contrapunctus: Whoops 2021-01-02T04:11:14Z sauvin: contrapunctus, thanks, but I'm not smart enough for emacs. I'm a geany person. 2021-01-02T04:11:17Z contrapunctus: sauvin: this https://github.com/CodyReichert/awesome-cl 2021-01-02T04:12:10Z benjamindc: does anyone know why the asdf package-inferred-system class doesn't work with pathname? 2021-01-02T04:12:23Z aeth: GNU has two CLs (CLISP and GCL) and maybe 3-4 Schemes (Guile, Kawa, MIT/GNU, and I'm sure they have another one or two hiding because Schemes are common)... 2021-01-02T04:13:00Z sauvin: aeth, for example gauche, I think it is? :D 2021-01-02T04:13:04Z aeth: but unfortunately, neither of the CLs are that active. CLISP's last release was 10 years ago. GCL's was 6. Meanwhile, SBCL's on a monthly release cycle. 2021-01-02T04:13:21Z benjamindc: Why not use SBCL? 2021-01-02T04:13:34Z sauvin: Again, rank newbie: its REPL has no readline. 2021-01-02T04:13:42Z aeth: rlwrap 2021-01-02T04:14:05Z benjamindc: or sly/slime 2021-01-02T04:14:09Z sauvin: Everything you're telling me, though, suggests I oughta spend a few minutes rethinking my cathexis to gcl. 2021-01-02T04:14:20Z sauvin: slime is also eamcs, no? 2021-01-02T04:14:33Z beach: sauvin: You really should learn Emacs and SLIME. 2021-01-02T04:14:43Z no-defun-allowed: How fast can you say "Eh, maybe not then?" You need about that long to make a decision. 2021-01-02T04:14:51Z beach: sauvin: Programming in Common Lisp without those will make you hate the experience. 2021-01-02T04:15:08Z sauvin: I'm a perl guy. :D 2021-01-02T04:15:14Z no-defun-allowed: There's also...SLIMV for Vim, SLIMA for Atom, and Alive for VS Code. 2021-01-02T04:15:29Z sauvin: Also, I'm a geany guy. 2021-01-02T04:15:33Z benjamindc: sauvin: you know vim keybindings? 2021-01-02T04:15:43Z sauvin: Nope. I've never learned any of the TUI editors. 2021-01-02T04:16:25Z no-defun-allowed: Well, none of the three mentioned other than Vim are really TUI editors. 2021-01-02T04:16:27Z beach: sauvin: I don't know what it means to be a "Perl guy" or any " guy". You should learn the tools that will make you the most productive. It is not personal. 2021-01-02T04:16:55Z benjamindc: Really, Emacs is the best tool for the job for CL programming. 2021-01-02T04:17:01Z oni-on-ion: back in the day all we had was a repl, no fancy editor shenanigans 2021-01-02T04:17:12Z __jrjsmrtn__ joined #lisp 2021-01-02T04:17:16Z sauvin: I didn't take it as a personal affront, but one also uses what one knows, especially since this is strictly armchair stuff. My day job is "forklift driver". 2021-01-02T04:17:26Z GuerrillaMonkey quit (Quit: Leaving) 2021-01-02T04:17:30Z beach: oni-on-ion: That was a long time ago. 2021-01-02T04:17:35Z Jeanne-Kamikaze joined #lisp 2021-01-02T04:17:54Z beach: oni-on-ion: I used Multics Emacs (written in MacLisp) in 1985 or so. 2021-01-02T04:18:00Z aeth: sauvin: https://gitlab.com/-/snippets/2056133 2021-01-02T04:18:14Z aeth: sauvin: I don't remember where I saw the original, but I made a few modifications iirc... 2021-01-02T04:18:34Z beach: sauvin: That is the wrong attitude. If one always uses what one knows, then one will never learn anything new. 2021-01-02T04:18:36Z oni-on-ion: beach, nice =) 10 years later i was just starting emacs 2021-01-02T04:18:44Z _jrjsmrtn quit (Ping timeout: 256 seconds) 2021-01-02T04:18:53Z aeth: sauvin: But I just use the rlwrapped SBCL as a fallback. It's no replacement for SLIME. 2021-01-02T04:19:25Z sauvin: Probably not, but I think I'll learn a few things about the language itself before simultaneously wrestling with an unfamiliar editor. 2021-01-02T04:19:26Z beach: oni-on-ion: Oh, did I say 1985? More like 1981. 2021-01-02T04:20:13Z aeth: sauvin: but if you absolutely need built-in readline, then CLISP will probably be a bit less painful than GCL, although it's increasingly common not to support it with libraries 2021-01-02T04:20:15Z sauvin: On the subject of which, is there a way to use emacs lisp without also having to use emacs itself? O:) 2021-01-02T04:20:21Z aeth: (e.g. package local nicknames aren't on CLISP) 2021-01-02T04:20:49Z sauvin: OK, well, small loss. I'll use sbcl. 2021-01-02T04:21:04Z aeth: sauvin: Common Lisp is close enough to Emacs Lisp that there's not much of a need to use it outside of Emacs, although there is an implementation of it in CL iirc. 2021-01-02T04:21:26Z sauvin: I wonder why gcl is lagging so much, though. 2021-01-02T04:21:30Z beach: sauvin: Stepping out of one's comfort zone is part of the learning experience. The more uncomfortable one feels, the faster the learning. 2021-01-02T04:21:56Z beach: sauvin: GCL is lagging because nobody is working on it. Nobody is paid to do this stuff. 2021-01-02T04:22:02Z sauvin: Oh, I know this, but I'm an older fella; sometimes, learning too fast isn't very wise. 2021-01-02T04:22:28Z sauvin: beach, that's the FOSS reality. Who's backing sbcl? 2021-01-02T04:23:06Z beach: sauvin: Volunteers. Convinced by the argument of what's-his-name-again who forked it off of CMUCL. 2021-01-02T04:23:21Z aeth: At least 24 financial contributors, too. https://fundrazr.com/61kPgb?ref=ab_44p9NqQUZKv44p9NqQUZKv 2021-01-02T04:24:06Z benjamindc: sauvin check out portacle https://portacle.github.io 2021-01-02T04:24:09Z beach: sauvin: CMUCL used to be the fastest free Common Lisp implementation, but it was a mess to build. So this guy forked the code and turned it into SBCL. And some smart and knowledgeable people were convinced. 2021-01-02T04:24:53Z sauvin: Then maybe the stuff I'd been reading is dated. I didn't pay attention. A couple of online books roasted sbcl as being sub-par and strongly preferred gcl. Didn't understand all the arguments and don't remember most of them. 2021-01-02T04:25:09Z aeth: probably 20 years dated, then? 2021-01-02T04:25:20Z sauvin: Very damn well could be. 2021-01-02T04:25:44Z aeth: circa 2008-2010, a lot of people preferred CLISP to SBCL, but then... CLISP didn't get a release in 10 years and started bitrotting. It's also a slow interpreter rather than a fast compiler. 2021-01-02T04:25:47Z oni-on-ion: beach, yep. i started coding early 90s so most revolutions were before my timev 2021-01-02T04:26:01Z aeth: the good thing about CL is that if you write portable-enough code, it's not too hard to move to whatever's trendy 2021-01-02T04:26:21Z sauvin: That's one of the virtues of an older language. 2021-01-02T04:26:23Z beach: sauvin: The name of the guy who started SBCL is William Newman. 2021-01-02T04:27:24Z sauvin: The actor? 2021-01-02T04:27:48Z beach: I doubt it. 2021-01-02T04:29:27Z sauvin: Jeebus crap, SBCL is is 21 years old and has a stable release just three days ago!? 2021-01-02T04:29:27Z Nilby quit (Read error: Connection reset by peer) 2021-01-02T04:29:50Z Nilby joined #lisp 2021-01-02T04:29:58Z beach: Monthly releases, yes. 2021-01-02T04:30:26Z aeth: heh, I was thinking "oh, no, it's not that old, it's from the late 90s" 2021-01-02T04:30:54Z sauvin: Right there with ya, pal. I'm a boomer who can't get used to the idea of not being 17 anymore. 2021-01-02T04:31:05Z oni-on-ion: also, SBCL is 2.1 , now its 2021 =) 2021-01-02T04:31:18Z sauvin: dpkg says I have 2.2.mumble. 2021-01-02T04:31:37Z oni-on-ion: that is strange 2021-01-02T04:32:03Z aeth: CCL started in 1984. https://ccl.clozure.com/history.html 2021-01-02T04:32:06Z sauvin: Oh, wait, I might be misreading. The version field from the dpkg listing is 2:2.0.1-3 2021-01-02T04:32:18Z aeth: CMUCL, which SBCL forked from, started in "the early 1980s". https://www.cons.org/cmucl/credits.html 2021-01-02T04:32:36Z aeth: I wouldn't be surprised if there's a 1970s (or older?) CL if it started as some other Lisp first. 2021-01-02T04:32:41Z oni-on-ion: mocl is a nice idea 2021-01-02T04:32:42Z sauvin: OK, well, like I said, small loss. As far as lisp is concerned, I'm now an sbcl guy. 2021-01-02T04:33:03Z aeth: The first copyright in ECL is 1984... https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop/LICENSE 2021-01-02T04:33:14Z sauvin: I can't remember, seems like there was a Kyoto Lisp when I was still swearing at a 286. 2021-01-02T04:33:51Z aeth: Looks like GCL, ECL, and MKCL are all descended from it. https://en.wikipedia.org/wiki/Kyoto_Common_Lisp 2021-01-02T04:34:56Z beach: aeth: CMUCL started as Spice Lisp. 2021-01-02T04:35:41Z beach: sauvin: KCL turned into AKCL (Austin-) which turned into GCL. 2021-01-02T04:36:41Z beach: Someone has a diagram of all the Common Lisp history. Maybe jackdaniel? 2021-01-02T04:37:06Z benjamindc: Does anyone have experience with ASDF package-inferred-system and the :pathname option for defsystem? I'm having an issue where my test system isn't finding packages defined in "test/" even though I've got pathname set. 2021-01-02T04:38:16Z beach: https://common-lisp.net/project/ecl/manual/History.html 2021-01-02T04:38:24Z oni-on-ion: not sure why this is redacted: https://www.infoq.com/news/2009/04/Lisp-Guy-Steele-Richard-Gabriel/ 2021-01-02T04:39:01Z sauvin: beach, that link is a 404 on my end. 2021-01-02T04:39:14Z aeth: benjamindc: if you have a foo/test, then make a test.lisp at the top level that contains a package 2021-01-02T04:39:15Z beach: https://common-lisp.net/project/ecl/static/manual/History.html 2021-01-02T04:39:21Z aeth: benjamindc: https://gitlab.com/zombie-raptor/zombie-raptor/-/blob/2316d43b3a9f9a98325e45fa891b1845e055a5da/tests.lisp 2021-01-02T04:39:31Z sauvin: Ah! Thanks! 2021-01-02T04:39:39Z aeth: benjamindc: https://gitlab.com/zombie-raptor/zombie-raptor/-/blob/2316d43b3a9f9a98325e45fa891b1845e055a5da/zombie-raptor.asd#L31 2021-01-02T04:40:16Z benjamindc: Thanks aeth! 2021-01-02T04:40:53Z beach: I still don't know what problem package-inferred systems are supposed to solve. They seem to make everything harder. 2021-01-02T04:41:27Z aeth: jackdaniel: hmm, that history diagram in beach's link doesn't look that good to me... I think it might just be me. I have a dark UI, so it's probably automatically putting it in dark mode in Firefox. 2021-01-02T04:41:54Z aeth: I switched browsers to Chromium (which doesn't use the host's UI, and so uses a light UI, and so doesn't request dark mode CSS) and it's a white background and looks fine 2021-01-02T04:42:19Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-02T04:42:36Z beach: aeth: I think it is just you. It looks fine in Firefox to me. 2021-01-02T04:42:54Z bilegeek_ is now known as bilegeek 2021-01-02T04:43:00Z aeth: yeah, it's because the image has a transparent background which doesn't go with dark mode, which is automatically selected 2021-01-02T04:43:13Z aeth: since the lines are very close to the dark mode background color 2021-01-02T04:43:22Z beach: Oh, I see. 2021-01-02T04:43:24Z easye joined #lisp 2021-01-02T04:43:40Z sauvin: OK, well, dudes, thank you very much for your time. We'll find out if sbcl gives me any less grief than gcl does. 2021-01-02T04:44:12Z beach doesn't think of himself as a "dude". 2021-01-02T04:44:20Z aeth: sauvin: you're welcome 2021-01-02T04:44:36Z aeth: beach: Whether or not package inferred systems are useful really depends on the problem. I definitely wouldn't use it for every repository, but it seems more useful than not in my game engine. 2021-01-02T04:45:01Z oni-on-ion: with FIrefox i've got to often switch on/off dark mode for sites that break with it on 2021-01-02T04:45:28Z oni-on-ion: (usually background images that somehow become foreground, covering everything0 2021-01-02T04:45:30Z oni-on-ion: ) 2021-01-02T04:45:39Z beach: I still don't know what problem they are supposed to solve. But we have been through this before, and all you could come up with to solve the problems they introduce were more unnecessary complications. 2021-01-02T04:45:52Z beach: aeth: ^ 2021-01-02T04:46:04Z benjamindc: beach what do you suggest instead? 2021-01-02T04:46:16Z beach: benjamindc: Not using them? 2021-01-02T04:46:30Z beach: benjamindc: I organize my code into "modules".... 2021-01-02T04:47:11Z beach: benjamindc: Each "module" is in one directory, has one (or two) .asdf file(s), and one (or two) packages.lisp file(s). 2021-01-02T04:47:18Z Nilby: beach: But would you say that automatic dependencies that worked well, would not be desirable? 2021-01-02T04:47:23Z aeth: beach: It makes every file into a system, which means that any file with the same name of a directory also becomes a system, so as a whole it does reduce boilerplate for certain kinds of projects, but it only really works with some of them, not all of them. 2021-01-02T04:47:46Z aeth: Something similar, but with directories instead of files (and the more idiomatic package.lisp in each directory) would probably work more generally. 2021-01-02T04:48:01Z oni-on-ion: oh that sounds useful 2021-01-02T04:48:05Z beach: Nilby: How would one module infer automatically what other modules it depends on? 2021-01-02T04:48:53Z aeth: beach: it parses the defpackage. If you use prefixes, you have it in an IMPORT-FROM with nothing other than the package name iirc. Otherwise, USE (not recommended in most cases) or manually IMPORT-FROM various symbols. 2021-01-02T04:48:56Z Jeanne-Kamikaze quit (Quit: Leaving) 2021-01-02T04:48:57Z aeth: iirc 2021-01-02T04:48:58Z beach: aeth: Yes, as I said, we have been through this before, and all it would do for me would be to have each file be huge. And you came up with various fixes for that problem that made everything even more complicated. 2021-01-02T04:49:01Z Nilby: beach: By what symbols it uses, and some heuristics. 2021-01-02T04:49:24Z aeth: Nilby: No, I think it's literally just (:import-from #:alexandria) and now it knows you're using (alexandria:foo) 2021-01-02T04:50:08Z aeth: beach: it's definitely not for every project, I don't use it in my Scheme-in-CL project 2021-01-02T04:50:23Z luckless quit (Ping timeout: 240 seconds) 2021-01-02T04:50:25Z aeth: but my game engine's bordering on a "monorepo" so it's very useful there. 2021-01-02T04:50:34Z Nilby: aeth: Yes, but I'm dreaming of something more fully automatic. 2021-01-02T04:50:51Z benjamindc: beach, do you have an example of what you mean that I can check out on gitlab or github? 2021-01-02T04:50:52Z aeth: Nilby: impossible in the general case because of features like EVAL 2021-01-02T04:51:16Z beach: benjamindc: Sure, hold on... 2021-01-02T04:51:29Z beach: benjamindc: Maybe Cluffer. 2021-01-02T04:51:34Z benjamindc: thanks, beach 2021-01-02T04:51:37Z aeth: benjamindc: Idiomatic CL is structured so that there's either a top level package.lisp or a bunch of subdirectories, each with one package.lisp 2021-01-02T04:52:15Z beach: https://github.com/robert-strandh/Cluffer 2021-01-02T04:53:04Z benjamindc: I'm coming to CL from Clojure and I like the one package per file style as it somewhat maps to clojure's namespaces. But if that's not idiomatic, when I should reasses. 2021-01-02T04:53:19Z beach: I think it's a silly idea. I mean, setting up a "module" is (or should be) a tiny fraction of the total amount of work on the real code of the module. And if instead package-inferred systems make the code for the module huge and unmanageable, then what's the point? 2021-01-02T04:54:17Z luckless joined #lisp 2021-01-02T04:56:28Z no-defun-allowed: I have files that average 40LOC or so; should I make a package for each of them? 2021-01-02T04:56:44Z beach: Exactly! 2021-01-02T04:56:58Z aeth: it really depends on what you're trying to do 2021-01-02T04:56:59Z Nilby: aeth: Some very useful things are impossible in the general case. I don't see it as a problem. 2021-01-02T04:57:01Z no-defun-allowed: And how do I export symbols from each file, in a way that lets me use symbols inside my "modules", but without the user being able to use them? 2021-01-02T04:57:37Z no-defun-allowed: There are a fair few things that I need to use between files, which a user could easily use to break the state of the system. 2021-01-02T04:57:56Z beach: Well put. 2021-01-02T04:58:31Z aeth: no-defun-allowed: Well, I mean, for one, I have a file with 5 lines of code, 4 being the defpackage, in one of my projects that doesn't use package-inferred-system. https://gitlab.com/mbabich/airship-scheme/-/blob/master/scheme-boolean.lisp 2021-01-02T04:58:33Z beach: no-defun-allowed: And I think the answer is that one has to put all the code of the module in one huge file. 2021-01-02T04:58:35Z aeth: So it really depends on the problem... 2021-01-02T04:58:57Z saganman joined #lisp 2021-01-02T04:59:25Z aeth: no-defun-allowed: Another thing is, you have no real privacy that's not privacy-by-convention in Common Lisp outside of lexical closures. So you change the expectations of certain packages. That is, you have to have "internal" packages that if the user uses directly, you don't guarantee a stable interface. 2021-01-02T04:59:36Z aeth: So you just introduce another convention... 2021-01-02T04:59:42Z no-defun-allowed: beach: It reminds me of when the Java teacher at university told us how having a class Class being in a file Class.java was a good idea. Sure, I know that the definition of stuff in that Class is in that file, but now I just have to find the method I want in a 3kLOC file. 2021-01-02T05:00:19Z aeth: File organization is... very subjective. In the end, you get there by M-. 2021-01-02T05:00:41Z beach: no-defun-allowed: Wow. 2021-01-02T05:00:46Z no-defun-allowed: aeth: If you use internal symbols, you're on your own. There are only a few ways you can break my system from exported symbols, which are mutating sequences I can only tell you that you shouldn't mutate. 2021-01-02T05:01:11Z aeth: no-defun-allowed: And if you use a package in package-inferred-system that's clearly for use by other packages rather than the user, then you're also on your own. 2021-01-02T05:01:29Z no-defun-allowed: At one point, I wished you could pass out immutable "mirrors" of objects somehow, but it would have to be transitive, and it got too messy in my head. 2021-01-02T05:01:40Z aeth: Package-inferred-system encourages "internal" packages more than other styles, but that's an issue that can come up in other places. 2021-01-02T05:02:41Z no-defun-allowed: On the other hand, I have one package with like 100 symbols, and that feels a bit big (here we go again with the disbelief that I wrote 10,000 lines of code and all). But then I remember CLIM defines about a magnitude more symbols, and I don't feel so bad. 2021-01-02T05:03:59Z aeth: no-defun-allowed: It really depends on the domain you're doing. Java treats everything like it's a big, important project that's full of complexity and importance. Most projects aren't like that. trivial-left-pad doesn't need package-inferred-system. 2021-01-02T05:04:32Z aeth: But sometimes, you do a project where that sort of organization makes sense. Where there are a *ton* of files, and they all really need their own package because they do their own thing. E.g. I have a file that deals with SDL2. A file. Nothing else needs to know that SDL2 even exists. 2021-01-02T05:05:09Z galex-713 joined #lisp 2021-01-02T05:05:26Z no-defun-allowed: I try to do "one file per concept", which leads to a somewhat pleasing LOC distribution. 2021-01-02T05:05:40Z Nilby is so tired of the old cliché of files and filesystems. 2021-01-02T05:06:12Z no-defun-allowed: Yeah, the damned filesystem makes organising code a fair bit harder than it should be. 2021-01-02T05:06:56Z aeth: Well, files are somewhat useful. If you write a bunch of macros with their own functions, and those functions are elaborate, then you probably want those functions to be in another file so you don't have to wrap them in a gigantic, hundreds-of-lines-long EVAL-WHEN. 2021-01-02T05:07:02Z aeth: And... that's it. 2021-01-02T05:07:10Z aeth: Beyond that, it's aesthetics. 2021-01-02T05:07:41Z jeosol: aeth: I had a conversion with Fare when I was trying to understand the use of :package-inferred-system for a code base. His article seems to suggested it helps compilation for large code bases but I never did a test to verify 2021-01-02T05:07:43Z luckless quit (Ping timeout: 240 seconds) 2021-01-02T05:08:12Z luckless joined #lisp 2021-01-02T05:08:17Z aeth: jeosol: It definitely helps CI for very large systems because not everything needs to be tested in the CI. e.g. all of the FFI stuff, if cleanly separated, doesn't need to be loaded. 2021-01-02T05:08:18Z no-defun-allowed uploaded an image: loc-distribution-function.png (41KiB) < https://matrix.org/_matrix/media/r0/download/matrix.org/LxrkPifVjClIzILMEKUPbWgl/loc-distribution-function.png > 2021-01-02T05:08:23Z jeosol: I remember I used it in my code base, but like beach said, it can be difficult to work with sometimes, as in some cases, you'd then define another package.lisp file to aggregate everything later on 2021-01-02T05:08:31Z no-defun-allowed: For reference, I graphed the cumulative distribution functions of my largest two codebases. 2021-01-02T05:10:34Z aeth: no-defun-allowed: I tend to prefer 300-1000 lines, but I also have a lot of extremely tiny files, too. Lots of special cases exist as real outliers, too, e.g. tests, which can be 7 lines or infinite. 2021-01-02T05:11:16Z pyc: Follow up question on our discussion on the importance of backward compatibility in the CL community. How did this breakage happen? "Doesn't work with the current version of Hunchentoot anymore!" 2021-01-02T05:11:24Z pyc: https://common-lisp.net/project/cl-wiki/ 2021-01-02T05:12:19Z no-defun-allowed: It would be nice if they said why. 2021-01-02T05:12:29Z jeosol: aeth: I do have some 1000 loc files. Sometimes I want to break them but it will be more of a hassle as related functions are not together then. 2021-01-02T05:12:54Z benjamindc: jeosol, do you have a link to his article? 2021-01-02T05:13:12Z jeosol: what article? 2021-01-02T05:13:20Z jeosol: you mean Fare's? 2021-01-02T05:13:23Z benjamindc: yeah 2021-01-02T05:14:19Z oni-on-ion: scratch.lisp 2021-01-02T05:14:20Z jeosol: ok, let me see if I can pull it up. For context, I had a large system and I was running into issues where I wanted things to load faster and Fare suggested to look into that, and also some and to look at the dependency graph 2021-01-02T05:16:02Z jeosol: benjamindc: http://fare.tunes.org/files/asdf3/asdf3-2014.html#%28part._asdf-package-system%29 2021-01-02T05:16:11Z jeosol: See section 2.10 for package-inferred-system 2021-01-02T05:16:55Z jeosol: The second to last paragraph is the statement about "scaling" but I never verified this 2021-01-02T05:16:59Z benjamindc: thank you 2021-01-02T05:19:27Z aeth: jeosol: Oh, it probably *reloads* faster 2021-01-02T05:19:40Z vhost- quit (Ping timeout: 246 seconds) 2021-01-02T05:19:43Z notzmv quit (Remote host closed the connection) 2021-01-02T05:19:48Z aeth: Since it'll only reload the file you modified and the files that depend on it. 2021-01-02T05:19:52Z jeosol: aeth: may be that's what it is. 2021-01-02T05:20:14Z jeosol: I did notice that, when I changed a few, only the file that's change is reload 2021-01-02T05:20:18Z notzmv joined #lisp 2021-01-02T05:20:24Z aeth: I do notice that zombie-raptor loads faster than airship-scheme when it's not a from scratch load (so not e.g. a new version of SBCL) 2021-01-02T05:20:31Z aeth: Even though zombie-raptor is larger. 2021-01-02T05:21:49Z jeosol: aeth: I would think that's one of the benefit - at least what I observed 2021-01-02T05:24:19Z jeosol: I looked at your zombie-raptor link I realized I did something similar, have the separate files, then aggregate with a common package and use-reexport later. 2021-01-02T05:24:45Z notzmv quit (Remote host closed the connection) 2021-01-02T05:24:48Z aeth: yeah, that's because having directory-level modularity makes a lot of sense 2021-01-02T05:25:00Z aeth: It's very monorepo 2021-01-02T05:25:05Z notzmv joined #lisp 2021-01-02T05:25:26Z aeth: The only reason I spun off zr-utils is because it would be strange for airship-scheme to either (1) depend on a game engine or (2) actually be hosted in a game engine monorepo 2021-01-02T05:25:43Z jeosol: aeth: makes sense 2021-01-02T05:26:07Z jeosol: I remember the airship-scheme project you mentioned before, how is that coming along 2021-01-02T05:26:17Z hiroaki quit (Ping timeout: 268 seconds) 2021-01-02T05:26:26Z aeth: I'm taking a bit of a break from it now that the reader, which took longer than I had expected, is done 2021-01-02T05:26:42Z aeth: it wound up being 1024 lines :-/ 2021-01-02T05:26:43Z benjamindc: I just keep getting this error when trying to run (asdf:test-system "ramsay") even though the file lexer.lisp is in the test dir. Component "ramsay/test/lexer" not found, required by # 2021-01-02T05:26:43Z jeosol: that's good. Allow the brain cells to heal ... 2021-01-02T05:27:04Z aeth: I do multiple projects so I can cycle between them when there's a good breaking point so I don't burn out of them 2021-01-02T05:27:14Z jeosol: benjamindc: can you paste the *.asd file 2021-01-02T05:27:23Z no-defun-allowed: Most of the time, I reload with C-c C-c; only reloading when I replace a macro or something more invasive. 2021-01-02T05:27:25Z benjamindc: ;;;; ramsay.asd 2021-01-02T05:27:25Z benjamindc: (defsystem #:ramsay 2021-01-02T05:27:25Z benjamindc: :description "Lisp like language for the EVM" 2021-01-02T05:27:25Z benjamindc: :author "benjamin cassidy " 2021-01-02T05:27:28Z benjamindc: :license "GPL-3.0" 2021-01-02T05:27:31Z vhost- joined #lisp 2021-01-02T05:27:32Z benjamindc: :version "0.0.1" 2021-01-02T05:27:36Z benjamindc: :class :package-inferred-system 2021-01-02T05:27:40Z benjamindc: :pathname "src/" 2021-01-02T05:27:40Z benjamindc: :depends-on ("alexandria" 2021-01-02T05:27:43Z benjamindc: "ramsay/lexer") 2021-01-02T05:27:44Z jeosol: aeth: I think that's a good strategy, I working on multiple projects too, 2021-01-02T05:27:46Z benjamindc: :in-order-to ((test-op (test-op "ramsay/test")))) 2021-01-02T05:27:49Z benjamindc: 2021-01-02T05:27:52Z benjamindc: (defsystem #:ramsay/test 2021-01-02T05:27:56Z benjamindc: :class :package-inferred-system 2021-01-02T05:27:56Z no-defun-allowed: Hey, use a paste or copy the link please. 2021-01-02T05:27:59Z benjamindc: :depends-on ("rove" "ramsay" "ramsay/test/lexer") 2021-01-02T05:28:00Z jeosol: benjamindc: use pastebin, its better 2021-01-02T05:28:02Z benjamindc: :perform (test-op (o c) (symbol-call :rove :run c))) 2021-01-02T05:28:02Z notzmv quit (Remote host closed the connection) 2021-01-02T05:28:06Z benjamindc: 2021-01-02T05:28:13Z benjamindc: sorry :( 2021-01-02T05:28:20Z benjamindc: will use pastebin in the future 2021-01-02T05:28:21Z aeth: no-defun-allowed: I'm talking about QL:QUICKLOAD, though. When you have a large project, you could go months without touching 80% of it, and unless you touched the core stuff that everything else depends on, that means you can go months without compiling almost 80% of it... unless you update SBCL monthly. 2021-01-02T05:28:50Z notzmv joined #lisp 2021-01-02T05:28:52Z no-defun-allowed: So, is every file a component in ASDF? 2021-01-02T05:29:18Z no-defun-allowed: Oh, that's generally true, not just for package-inferred-system. 2021-01-02T05:29:45Z no-defun-allowed: If I had said "system" or "module" or something, and it was true, then I'd wonder how long (ql:register-local-projects) would take, when scanning SICL takes a good 20 seconds. 2021-01-02T05:30:43Z jeosol: aeth: 1024 lines is not bad. I once had a component, 3d graphical ray tracing, took me a month to complete for a challenge (circa 2017) - early days. The guys over at comp.lang.lisp helped a lot 2021-01-02T05:32:05Z jeosol: aeth: I have to work on something with python pandas last few days, dealing with python version hell drove me mad. I wished I could have used some CL library for the data manipulation piece 2021-01-02T05:32:49Z jeosol: I think the vellum library is a step in that direction, and clml 2021-01-02T05:33:34Z no-defun-allowed: I get uncomfortable around 200 to 250 lines. 2021-01-02T05:34:10Z jeosol: if not for M-. , it will definitely be hard to work with large files 2021-01-02T05:35:15Z skapate joined #lisp 2021-01-02T05:37:23Z aeth: jeosol: for me what bothers me with that sort of thing is Jupyter... Everything will be fine until I need to run it again because of the implicit state in the out-of-order evaluation of the cells that I did while programming it. 2021-01-02T05:37:35Z skapata quit (Ping timeout: 258 seconds) 2021-01-02T05:37:38Z aeth: That and it's frustratingly missing certain features like a spellchecker or an integrated linter (and you need a linter when you run Python) 2021-01-02T05:38:00Z aeth: (Plus, I like Emacs keys) 2021-01-02T05:38:22Z no-defun-allowed: Hypothetically, you could use the reads and writes each cell makes to topologically sort them, but that requires hooks in places no real Common Lisp implementation gives you. 2021-01-02T05:38:23Z jeosol: out-of-order is a pain in jupyter notebooks for sure. 2021-01-02T05:38:34Z hiroaki joined #lisp 2021-01-02T05:39:00Z varjag joined #lisp 2021-01-02T05:39:29Z aeth: Something based in CL probably could implement a similar literate-programming thing in a smarter way than Jupyter (since CL already expects things to be redefined constantly), where it would make sure that running it from start-to-finish still produces the current results or something. 2021-01-02T05:40:33Z jeosol: i guess the cl-jupyter is the same issue right? I followed a clml tutorial. It's probably just to show things I suppose, I also tried to use VS code for it. The workflow is certainly not easy 2021-01-02T05:40:57Z jeosol: The problem with the project if implemented in CL, is that client may complain that they don't understand it if they need to take it over 2021-01-02T05:43:07Z oni-on-ion: aeth, CL-listener ? 2021-01-02T05:44:05Z varjag quit (Ping timeout: 265 seconds) 2021-01-02T05:46:22Z thmprover quit (Quit: Happy new year!) 2021-01-02T05:53:43Z luckless quit (Ping timeout: 240 seconds) 2021-01-02T05:58:14Z kam1 joined #lisp 2021-01-02T05:59:41Z luckless joined #lisp 2021-01-02T06:04:03Z luckless quit (Ping timeout: 240 seconds) 2021-01-02T06:07:09Z karlosz quit (Quit: karlosz) 2021-01-02T06:25:16Z benjamindc quit (Remote host closed the connection) 2021-01-02T06:26:01Z abhixec quit (Read error: Connection reset by peer) 2021-01-02T06:26:06Z mrno1 joined #lisp 2021-01-02T06:31:42Z kam1 quit (Ping timeout: 260 seconds) 2021-01-02T06:42:22Z mrno1 quit (Remote host closed the connection) 2021-01-02T06:45:41Z imode quit (Quit: System (literal) crash, need to recover, brb.) 2021-01-02T06:46:10Z gioyik_ joined #lisp 2021-01-02T06:48:37Z gioyik quit (Ping timeout: 260 seconds) 2021-01-02T06:50:07Z solideogloria[m]: Why does `cl-json` parse the string "!BFYazLCNOAsYDPxIDn:matrix.org" as the symbol !+BF+-YAZ-+LCNO+-AS-+YD+-PX-I-DN:MATRIX.ORG 2021-01-02T06:51:50Z no-defun-allowed: cl-json only interns keys, from memory. But if you're using it to parse Matrix events, then the number of keys isn't finite, so you probably want to use another library, like jsown. 2021-01-02T06:52:13Z no-defun-allowed: But some parsers treat a key a:b as the symbol printed as a:b; I think there was also another XML parser that did that. 2021-01-02T06:55:18Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-02T06:55:43Z saturn2: you can override that by binding json:*json-identifier-name-to-lisp* and json:*identifier-name-to-key* to #'identity 2021-01-02T06:57:54Z aeth: solideogloria[m]: that's a camelCase to hyphen translation. 2021-01-02T06:58:28Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-02T06:59:48Z imode joined #lisp 2021-01-02T07:00:29Z solideogloria[m]: got it saturn2 2021-01-02T07:00:50Z loke[m]: I tend to use st-json 2021-01-02T07:01:13Z loke[m]: It uses strings as keys, which is better (no risk of intern attacks with untrusted data). 2021-01-02T07:01:27Z loke[m]: Also, it allows you to define custom datatype converters. 2021-01-02T07:06:16Z lottaquestions quit (Remote host closed the connection) 2021-01-02T07:06:41Z lottaquestions joined #lisp 2021-01-02T07:07:45Z jackdaniel: beach: this image is more complete https://common-lisp.net/project/ecl/static/quarterly/img/vol4/all-hierarchy.png 2021-01-02T07:07:55Z jackdaniel: the one you have linked illustrates only ecl family and influences 2021-01-02T07:10:48Z beach: Ah, OK, thanks! 2021-01-02T07:15:22Z imode quit (Quit: Rebooting, updates.) 2021-01-02T07:15:52Z shka_ joined #lisp 2021-01-02T07:17:43Z imode joined #lisp 2021-01-02T07:18:03Z jackdaniel: sure 2021-01-02T07:34:09Z aartaka joined #lisp 2021-01-02T07:41:36Z Oladon quit (Quit: Leaving.) 2021-01-02T07:47:06Z orivej joined #lisp 2021-01-02T07:47:31Z luckless joined #lisp 2021-01-02T07:50:52Z luckless quit (Remote host closed the connection) 2021-01-02T07:51:25Z luckless joined #lisp 2021-01-02T08:03:48Z narimiran joined #lisp 2021-01-02T08:04:56Z solideogloria[m]: loke: st-json looks like a better choice 2021-01-02T08:04:57Z solideogloria[m]: thanks 2021-01-02T08:15:28Z jrm quit (Quit: ciao) 2021-01-02T08:15:54Z jrm joined #lisp 2021-01-02T08:25:16Z akoana left #lisp 2021-01-02T08:27:33Z edgar-rft joined #lisp 2021-01-02T08:35:22Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-02T08:45:54Z skapate quit (Remote host closed the connection) 2021-01-02T08:45:59Z mindCrime joined #lisp 2021-01-02T08:50:41Z oni-on-ion: what is stored in the [sbcl] lisp image? just compiled code? 2021-01-02T08:51:40Z beach: Documentation strings. 2021-01-02T08:51:48Z beach: Lambda lists. 2021-01-02T08:52:02Z beach: Maybe some FUNCTION-LAMBDA-EXPRESSIONs 2021-01-02T08:52:03Z luckless quit (Ping timeout: 240 seconds) 2021-01-02T08:53:53Z beach: Various objects, like classes, generic functions, symbols, packages. 2021-01-02T08:55:14Z oni-on-ion: ahh right. hmm 2021-01-02T08:55:14Z beach: And if you are not restricted to SBCL, in SICL, I store the entire source text of all the code that has been loaded into the image. 2021-01-02T08:55:25Z oni-on-ion: oh nice ! great! 2021-01-02T08:55:31Z no-defun-allowed: I think everything in memory (after a full GC). 2021-01-02T08:55:32Z oni-on-ion: oh oh: "Cannot save core with multiple threads running." 2021-01-02T08:56:05Z saturn2: you can see what's in your lisp image with (room t) 2021-01-02T08:56:07Z oni-on-ion: no-defun-allowed, i wonder what an 'empty' session would have as live objects? aside from classes, packages, symbols etc. 2021-01-02T08:56:07Z beach: oni-on-ion: I use the source text for reporting errors and warnings, and for backtraces. 2021-01-02T08:56:22Z oni-on-ion: saturn2, oh cool 2021-01-02T08:57:20Z beach: oni-on-ion: Methods and generic functions are objects, and there may be data structures involved for organizing those. Most certainly, you have hash tables in your package objects and such. 2021-01-02T08:57:30Z oni-on-ion: ROOM is awesome. so on a plain start, it takes about 100Mb ram? (Summary Total) 2021-01-02T08:58:05Z beach: oni-on-ion: Method combinations involve data structures as well. 2021-01-02T08:58:13Z oni-on-ion: beach, hmm yes i see. have you played around with Squeak at all? having the source in the image allows for some very useful things. like ChangeSet 2021-01-02T08:59:12Z beach: I have not used Squeak, but my experience from staring at compiler output from SBCL and trying to match it to source code made me think about other ways of doing it. 2021-01-02T08:59:41Z oni-on-ion: beach, ahh, never had thought of CLOS. i mistakenly think it is bare knuckles, i had been accustomed to the seperation of FoundationKit and AppKit from other lands 2021-01-02T08:59:53Z oni-on-ion: beach, nice. good =) 2021-01-02T09:00:01Z beach: Thanks. 2021-01-02T09:00:37Z beach: Common Lisp being a dynamic language, lots of stuff must be kept track of to allow for incremental updates to the image. 2021-01-02T09:00:44Z oni-on-ion: can't save image with threads, i dont know 2021-01-02T09:00:58Z oni-on-ion: yep - Squeak/Smalltalk is similar in that regard 2021-01-02T09:01:29Z beach: Sure. 2021-01-02T09:02:22Z no-defun-allowed: 100 megabits? After compression, a SBCL image is about 100 megabits on disk. 2021-01-02T09:03:02Z andreyorst joined #lisp 2021-01-02T09:03:06Z beach: Tiny. 2021-01-02T09:03:12Z no-defun-allowed: (save-lisp-and-die "foo" :executable t :compression 9) gives me a 96 megabit image. 2021-01-02T09:03:55Z shka_: who measures disk space in bits? 2021-01-02T09:04:19Z no-defun-allowed: oni-on-ion: After making sure not to load Quicklisp, (room) tells me I'm using about 25MB of dynamic space, and 12.8MB of immobile space. The rest is negligible. 2021-01-02T09:04:32Z no-defun-allowed: shka_: Well, oni-on-ion measured 100 megabits of RAM. 2021-01-02T09:06:17Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-02T09:06:54Z hendursa1 joined #lisp 2021-01-02T09:09:23Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-02T09:09:39Z Nilby: When you compare the size of a CL image to most other program binaries, make sure to add the size of most shared libraries, the compiler tool chain, and the debugger. 2021-01-02T09:10:38Z no-defun-allowed: No need - appimages and Electron programs blow most CL images out of the water in terms of size. 2021-01-02T09:12:47Z pve joined #lisp 2021-01-02T09:15:44Z rgherdt joined #lisp 2021-01-02T09:18:06Z rjcks joined #lisp 2021-01-02T09:18:49Z luckless joined #lisp 2021-01-02T09:24:27Z birdwing joined #lisp 2021-01-02T09:33:42Z sauvin: beach, everybody, you were right: sbcl is a better choice. 2021-01-02T09:34:29Z beach: Great! 2021-01-02T09:35:28Z sauvin: I poked around the nets for a while looking at all kinds of different things regarding lisp, then remembered I wanted quicklisp, so, I fired up sbcl, loaded the quicklisp.lisp file and it just took right off. Slicker than CPAN. 2021-01-02T09:36:01Z beach: Sounds like you're in business then. Good. 2021-01-02T09:37:38Z sauvin: I think so. A beginner doesn't need to have to try to wrestle with the language implimentation while he's still trying to figure out how to say "sub stuff { 3.14159 * 2**$_[0]}" or "sub chunk { [ split ] }" 2021-01-02T09:38:33Z beach: What on earth is that? Line noise? 2021-01-02T09:39:26Z sauvin: It's perl, you semiliterate LUNK! 2021-01-02T09:40:24Z no-defun-allowed: Whoa, that's rude. 2021-01-02T09:40:25Z sauvin: I've been perling (strictly on an armchair basis, mind) for about twenty years. Lisp gonna be a new way to think. 2021-01-02T09:41:30Z contrapunctus left #lisp 2021-01-02T09:41:31Z saturn2: (defun stuff (x) (* 3.14159 (expt 2 x)) the other one doesn't quite have a direct equivalent 2021-01-02T09:41:38Z VincentVega joined #lisp 2021-01-02T09:42:04Z no-defun-allowed: "a new way to think" is the wrong way to approach it, in my opinion. Writing in Lisp is frequently "the way I wanted to think about it", except for the times in which it isn't, but those times are much less frequent. 2021-01-02T09:42:04Z contrapunctus joined #lisp 2021-01-02T09:42:06Z sauvin: Direct, maybe not, but it's what got me wanting libraries to begin with. I didn't want to have to come up with a BASIC-like equivalent. 2021-01-02T09:42:59Z otwieracz left #lisp 2021-01-02T09:43:12Z VincentVega: is there some trick to specify synonyms in &key? 2021-01-02T09:43:32Z no-defun-allowed: What would you consider a synonym? 2021-01-02T09:43:47Z VincentVega: :w and :width for instance 2021-01-02T09:44:03Z luckless quit (Ping timeout: 240 seconds) 2021-01-02T09:44:24Z VincentVega: in initialize-instance for some geometric object 2021-01-02T09:44:53Z VincentVega: so far i just do (... &key (w nil) (width nil)) and check for mutual exclusivity but it's a runtime check 2021-01-02T09:45:16Z VincentVega: and the defaults aren't obvious 2021-01-02T09:45:27Z Nilby: a repl or editor that does :w -> :width 2021-01-02T09:45:59Z saturn2: i'm not aware of any such trick 2021-01-02T09:46:42Z Nilby: but if you really want to parse synonyms for the keys with &rest yourself, you can 2021-01-02T09:46:57Z Nilby: and even make a macro for it 2021-01-02T09:47:46Z VincentVega: yeah ok 2021-01-02T09:48:08Z saturn2: you could write your own object making function with a compiler macro for the compile time check 2021-01-02T09:48:48Z Alfr_: Nilby, which editor does that? And not also suggesting all keywords starting with w ? 2021-01-02T09:49:16Z VincentVega: a macro like that actually sounds pretty interesting 2021-01-02T09:49:21Z no-defun-allowed: I think sticking to the long names is a good idea, generally. 2021-01-02T09:50:21Z Nilby: Probably emacs w/SLY/SIME, vim w/VLIME or something, vs code with some lisp extension, etc. but I don't know since I use my own thing. 2021-01-02T09:50:35Z no-defun-allowed: For geometric objects, w, h, x and y can be assumed to be width, height, X and Y positions, but it's usually nicer to use full names when someone else is supposed to look at a lambda-list and guess what they can call your functions with. 2021-01-02T09:51:41Z VincentVega: no-defun-allowed: i see your point there (sorry for the pun) 2021-01-02T09:52:00Z no-defun-allowed: That was a recurring theme in a funny Usenet thread I read, in which the verbosity of many Common Lisp libraries is supposed to be a problem (as it apparently is bad for "scripting"). 2021-01-02T09:52:31Z Alfr_: Nilby, hm. I must have somehow misconfigured slime. 2021-01-02T09:53:22Z no-defun-allowed: If you write (make-instance 'some-class, then SLIME will pop up with a lambda list like (&key this-initarg that-initarg ...) ;; and because unbalanced parens tick me off ) 2021-01-02T09:56:01Z Alfr_: I mean it's doesn't complete :e to :element-type for make-array for me. 2021-01-02T09:57:50Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-02T09:58:04Z no-defun-allowed: Here, I have to press C-M-i (or ESC TAB or M-TAB, whatever floats your boat) to complete, unless I'm in the REPL, as TAB indents. 2021-01-02T09:58:49Z Nilby: Alfr_: I just tried it with no configuration on emacs 25.2 and slime 2.26 from melpa. But I'm probably not the person to ask, since I don't use it. SLIME doesn't come close to working on my real configuration. 2021-01-02T09:59:16Z gaqwas joined #lisp 2021-01-02T09:59:16Z gaqwas quit (Changing host) 2021-01-02T09:59:16Z gaqwas joined #lisp 2021-01-02T09:59:50Z Nilby: oh and most recent sbcl 2021-01-02T10:04:04Z Alfr_: Nilby, after removing slime-fuzzy-complete-symbol from slime-completion-at-point-functions it works here as well. Thank you. :) 2021-01-02T10:04:19Z gaqwas quit (Remote host closed the connection) 2021-01-02T10:04:54Z gaqwas joined #lisp 2021-01-02T10:04:54Z gaqwas quit (Changing host) 2021-01-02T10:04:54Z gaqwas joined #lisp 2021-01-02T10:09:58Z Nilby: Alfr_: Nice! I've saved myself many hours of pointless work by always trying stuff in a clean setup first. 2021-01-02T10:13:14Z Alfr_: For that one has to know how it's supposed to work in the first place and until you mentioned it, I didn't. 2021-01-02T10:15:36Z Nilby: I usually just think what I want it to do, and figure somebody must have already done it. 2021-01-02T10:16:48Z Nilby: and if not someone on #lisp will usually know 2021-01-02T10:19:51Z Nilby: When I used to work on emacs the philosophy was, most of your code that isn't docstring should be written by completion. Snippets really help with that too. 2021-01-02T10:20:06Z heisig joined #lisp 2021-01-02T10:21:47Z lotuseater quit (Ping timeout: 272 seconds) 2021-01-02T10:23:25Z villanella joined #lisp 2021-01-02T10:24:08Z mirchael joined #lisp 2021-01-02T10:24:50Z mirchael quit (Client Quit) 2021-01-02T10:27:03Z contrapunctus left #lisp 2021-01-02T10:28:48Z contrapunctus joined #lisp 2021-01-02T10:33:16Z murtagh quit (Ping timeout: 246 seconds) 2021-01-02T10:37:46Z cantstanya quit (Remote host closed the connection) 2021-01-02T10:41:01Z cantstanya joined #lisp 2021-01-02T10:41:27Z igemnace joined #lisp 2021-01-02T10:46:12Z igemnace quit (Client Quit) 2021-01-02T10:54:47Z galex-713 quit (Ping timeout: 260 seconds) 2021-01-02T11:04:02Z varjag joined #lisp 2021-01-02T11:04:23Z cantstanya quit (Ping timeout: 240 seconds) 2021-01-02T11:07:42Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-02T11:08:11Z Inline quit (Remote host closed the connection) 2021-01-02T11:08:26Z bilegeek quit (Quit: Leaving) 2021-01-02T11:09:00Z akoana joined #lisp 2021-01-02T11:10:30Z cantstanya joined #lisp 2021-01-02T11:17:01Z galex-713 joined #lisp 2021-01-02T11:28:01Z luckless joined #lisp 2021-01-02T11:28:31Z gutter quit (Remote host closed the connection) 2021-01-02T11:29:29Z galex-713 quit (Ping timeout: 258 seconds) 2021-01-02T11:30:38Z galex-713 joined #lisp 2021-01-02T11:30:39Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T11:32:45Z v_m_v joined #lisp 2021-01-02T11:33:09Z akoana quit (Quit: leaving) 2021-01-02T11:35:18Z galex-713 quit (Ping timeout: 260 seconds) 2021-01-02T11:35:19Z amb007 joined #lisp 2021-01-02T11:36:28Z galex-713 joined #lisp 2021-01-02T11:40:11Z euandreh joined #lisp 2021-01-02T11:40:56Z rumbler31 joined #lisp 2021-01-02T11:43:01Z vegansbane6 joined #lisp 2021-01-02T11:43:04Z Inline joined #lisp 2021-01-02T11:44:43Z scymtym_ quit (Remote host closed the connection) 2021-01-02T11:45:01Z rumbler31 quit (Ping timeout: 246 seconds) 2021-01-02T11:48:13Z kaftejiman quit (Ping timeout: 264 seconds) 2021-01-02T11:50:37Z mbomba joined #lisp 2021-01-02T11:52:00Z pagnol quit (Ping timeout: 256 seconds) 2021-01-02T11:52:03Z mbomba quit (Client Quit) 2021-01-02T11:54:19Z Inline quit (Read error: Connection reset by peer) 2021-01-02T11:54:53Z ebrasca joined #lisp 2021-01-02T11:55:09Z frgo quit (Remote host closed the connection) 2021-01-02T11:55:36Z frgo joined #lisp 2021-01-02T11:59:24Z scymtym joined #lisp 2021-01-02T12:04:43Z liberliver joined #lisp 2021-01-02T12:07:35Z v_m_v quit (Remote host closed the connection) 2021-01-02T12:07:53Z v_m_v joined #lisp 2021-01-02T12:12:38Z v_m_v quit (Ping timeout: 264 seconds) 2021-01-02T12:15:58Z v_m_v joined #lisp 2021-01-02T12:17:10Z [d] quit (Ping timeout: 272 seconds) 2021-01-02T12:19:43Z cosimone joined #lisp 2021-01-02T12:22:43Z aorst joined #lisp 2021-01-02T12:33:22Z random-nick joined #lisp 2021-01-02T12:35:58Z joshcom joined #lisp 2021-01-02T12:36:47Z fanta1 joined #lisp 2021-01-02T12:39:48Z charlie770 joined #lisp 2021-01-02T12:40:05Z frgo quit 2021-01-02T12:41:41Z aorst quit (Ping timeout: 265 seconds) 2021-01-02T12:45:27Z cosimone quit (Quit: cosimone) 2021-01-02T12:45:37Z akrl joined #lisp 2021-01-02T12:48:01Z v88m quit (Ping timeout: 246 seconds) 2021-01-02T12:50:08Z contrapunctus left #lisp 2021-01-02T12:50:42Z contrapunctus joined #lisp 2021-01-02T12:56:30Z aorst joined #lisp 2021-01-02T12:57:17Z surabax joined #lisp 2021-01-02T12:58:07Z kam1 joined #lisp 2021-01-02T13:01:23Z zulu-inuoe__ quit (Read error: Connection reset by peer) 2021-01-02T13:02:10Z makomo joined #lisp 2021-01-02T13:07:54Z frgo joined #lisp 2021-01-02T13:09:49Z kam1 quit (Ping timeout: 264 seconds) 2021-01-02T13:18:57Z VincentVega quit (Remote host closed the connection) 2021-01-02T13:29:05Z rumbler31 joined #lisp 2021-01-02T13:33:40Z rumbler31 quit (Ping timeout: 256 seconds) 2021-01-02T13:35:08Z joshcom quit (Ping timeout: 256 seconds) 2021-01-02T13:41:09Z hendursa1 quit (Quit: hendursa1) 2021-01-02T13:41:28Z hendursaga joined #lisp 2021-01-02T13:41:47Z cosimone joined #lisp 2021-01-02T13:46:26Z joshcom joined #lisp 2021-01-02T13:49:09Z andreyor1 joined #lisp 2021-01-02T13:50:01Z aorst quit (Ping timeout: 264 seconds) 2021-01-02T14:04:19Z C-16 joined #lisp 2021-01-02T14:11:05Z waleee-cl joined #lisp 2021-01-02T14:14:59Z nicktick joined #lisp 2021-01-02T14:19:24Z joshcom quit (Ping timeout: 256 seconds) 2021-01-02T14:22:56Z C-16 quit (Quit: leaving) 2021-01-02T14:25:35Z charlie770 quit (Quit: thatsit) 2021-01-02T14:28:19Z Lycurgus joined #lisp 2021-01-02T14:35:36Z beach: Xach: Do you still check Quicklisp systems with SICL LOOP? I am asking because Alexandria contains two illegal LOOP forms. 2021-01-02T14:36:18Z SpaceIgor2075 joined #lisp 2021-01-02T14:36:58Z rwcom60280385034 quit (Ping timeout: 268 seconds) 2021-01-02T14:37:13Z rwcom60280385034 joined #lisp 2021-01-02T14:37:25Z ebrasca: beach: what do you mean with "illegal LOOP forms"? 2021-01-02T14:37:54Z beach: It violates the clause order defined by the standard. 2021-01-02T14:38:28Z beach: Oh, wait, it has been fixed. I just need to update my Alexandria distribution. 2021-01-02T14:38:46Z gutter joined #lisp 2021-01-02T14:40:43Z beach: So how do I update a single distribution in Quicklisp? 2021-01-02T14:41:15Z phoe: (ql:update-dist "quicklisp") 2021-01-02T14:41:17Z SpaceIgo` joined #lisp 2021-01-02T14:41:53Z beach: It is Alexandria that I want to update. 2021-01-02T14:42:09Z phoe: it's not a distribution, it's a system 2021-01-02T14:42:24Z beach: Oh? OK, sorry. 2021-01-02T14:42:58Z [d] joined #lisp 2021-01-02T14:43:07Z beach: It is under "dists" in ~/quicklisp 2021-01-02T14:43:27Z phoe: no, under "dists" is most likely "quicklisp" 2021-01-02T14:43:32Z phoe: and only then there's alexandria 2021-01-02T14:43:44Z phoe: unless you have a separate alexandria dist, which would be the first time I've seen one! 2021-01-02T14:43:52Z beach: Right you are. 2021-01-02T14:44:00Z phoe: anyway - I'd clone alexandria into your local-projects and checkout whatever commit you need 2021-01-02T14:44:28Z phoe: that'll take precedence over whatever quicklisp downloads for you 2021-01-02T14:44:36Z beach: Are you saying I can't update just Alexandria in Quicklisp? 2021-01-02T14:45:36Z beach: I guess I could update everything. 2021-01-02T14:45:44Z beach: Some stuff will break as usual. 2021-01-02T14:45:58Z kaftejiman joined #lisp 2021-01-02T14:47:01Z phoe: yes, you cannot easily update just system X in quicklisp 2021-01-02T14:47:11Z phoe: quicklisp dists are snapshots of multiple projects built together 2021-01-02T14:47:12Z beach: Got it. 2021-01-02T14:47:19Z phoe: at least the standard dists, that is 2021-01-02T14:47:20Z beach: Might as well bite the bullet now. 2021-01-02T14:47:34Z SpaceIgo` quit (Remote host closed the connection) 2021-01-02T14:47:42Z SpaceIgor2075 quit (Read error: Connection reset by peer) 2021-01-02T14:47:55Z loke[m]: beach: When was the last time you did a QL update? 2021-01-02T14:48:03Z beach: I don't remember. 2021-01-02T14:48:03Z SpaceIgor2075 joined #lisp 2021-01-02T14:48:21Z beach: But things did break, as predicted. 2021-01-02T14:49:22Z beach: Oh, well. 2021-01-02T14:49:45Z loke[m]: It's easier to deal with if one updates every time QL updates. 2021-01-02T14:50:15Z beach: Yes, but I don't want to deal with it at all. 2021-01-02T14:50:22Z beach: I need a system administrator. 2021-01-02T14:51:22Z beach: This is going to be hell, as predicted again. 2021-01-02T14:54:32Z villanella quit (Ping timeout: 260 seconds) 2021-01-02T14:58:25Z troydm: I have a weird thing going with jsonrpc on MacOS and inside bordeaux thread 2021-01-02T14:58:46Z troydm: if I bind to a port inside a thread jsonrpc:server-listen is not working 2021-01-02T14:58:47Z phoe: beach: need help? 2021-01-02T14:59:02Z troydm: however if I bind to a port in main thread, everything works fine 2021-01-02T14:59:04Z beach: phoe: That would be great. 2021-01-02T14:59:13Z beach: phoe: Shall we do it in #sicl? 2021-01-02T14:59:17Z troydm: I'm using SBCL 2.0.11 on MacOS 2021-01-02T15:00:17Z phoe: beach: OK 2021-01-02T15:00:28Z phoe: troydm: sounds like some deal with dynamic variables 2021-01-02T15:00:30Z phoe: these are thread-local 2021-01-02T15:01:19Z troydm: doesn't seem so, as only variables that are used inside thread is global *server* and local port 2021-01-02T15:01:25Z judson_ joined #lisp 2021-01-02T15:02:10Z liberliver quit (Quit: liberliver) 2021-01-02T15:02:39Z troydm: basicly what I'm doing is debugging why https://github.com/cxxxr/cl-lsp is not working on MacOS as expected, as when I start cl-lsp with args tcp 10003 2021-01-02T15:02:44Z troydm: it doesn't binds to a port 2021-01-02T15:02:51Z judson_ quit (Client Quit) 2021-01-02T15:03:12Z troydm: moving jsonrpc:server-listen call outside of bt:make-thread makes it work fine 2021-01-02T15:03:49Z troydm: I'm using this cl-lsp fork https://github.com/ailisp/cl-lsp 2021-01-02T15:04:15Z troydm: but it doesn't seems like it's something cl-lsp related, more probably related to jsonrpc and bordeaux-threads 2021-01-02T15:04:37Z _paul0 joined #lisp 2021-01-02T15:05:48Z paul0 quit (Ping timeout: 256 seconds) 2021-01-02T15:05:58Z SpaceIgor2075 quit (Remote host closed the connection) 2021-01-02T15:06:18Z SpaceIgor2075 joined #lisp 2021-01-02T15:07:22Z andreyorst quit (Ping timeout: 260 seconds) 2021-01-02T15:07:39Z andreyor1 quit (Ping timeout: 265 seconds) 2021-01-02T15:11:57Z ykm joined #lisp 2021-01-02T15:13:47Z rwcom60280385034 quit (Ping timeout: 260 seconds) 2021-01-02T15:18:16Z phoe: "Value of 'NIL in (THE NIL (PROGN 'NIL)) is NIL, not a NIL." 2021-01-02T15:18:20Z phoe: poetry 2021-01-02T15:19:22Z saganman quit (Quit: WeeChat 1.6) 2021-01-02T15:24:00Z ykm quit (Quit: leaving) 2021-01-02T15:25:21Z ykm joined #lisp 2021-01-02T15:29:38Z contrapunctus: phoe: wat 2021-01-02T15:29:39Z charlie770 joined #lisp 2021-01-02T15:33:48Z phoe: contrapunctus: (ql:quickload :cl-unicode) on my machine 2021-01-02T15:38:38Z karlosz joined #lisp 2021-01-02T15:39:09Z SpaceIgor2075 quit (Remote host closed the connection) 2021-01-02T15:43:04Z SpaceIgor2075 joined #lisp 2021-01-02T15:44:34Z troydm: after ton of debugging, found the root cause of the problem 2021-01-02T15:45:02Z phoe: troydm: what was it? 2021-01-02T15:45:37Z troydm: it seems like jsonrpc is designed this way that when you bind a server on tcp it needs to load (ql:quickload "jsonrpc/transport/tcp" :silent t) 2021-01-02T15:45:52Z troydm: but this gets stuck if it runs inside bt thread 2021-01-02T15:45:58Z troydm: I don't know why it gets stuck 2021-01-02T15:46:01Z troydm: but it gets stuck 2021-01-02T15:46:14Z troydm: maybe I'm using older quickload 2021-01-02T15:46:21Z troydm: I'm not sure 2021-01-02T15:47:29Z SpaceIgo` joined #lisp 2021-01-02T15:49:24Z phoe: weird architecture 2021-01-02T15:51:25Z SpaceIgor2075 quit (Ping timeout: 246 seconds) 2021-01-02T15:52:16Z v88m joined #lisp 2021-01-02T15:55:32Z paul0 joined #lisp 2021-01-02T15:57:14Z emma joined #lisp 2021-01-02T15:57:14Z emma quit (Changing host) 2021-01-02T15:57:14Z emma joined #lisp 2021-01-02T15:57:32Z _paul0 quit (Ping timeout: 260 seconds) 2021-01-02T16:00:05Z kinope quit (Quit: Idle for 30+ days) 2021-01-02T16:01:57Z karlosz quit (Quit: karlosz) 2021-01-02T16:03:49Z makomo quit (Ping timeout: 264 seconds) 2021-01-02T16:04:58Z imode quit (Ping timeout: 256 seconds) 2021-01-02T16:06:19Z hiroaki quit (Ping timeout: 272 seconds) 2021-01-02T16:10:58Z Xach: beach: i have not tried in a while 2021-01-02T16:12:36Z troydm: opened an issue for this https://github.com/cxxxr/jsonrpc/issues/27 2021-01-02T16:14:14Z andreyorst joined #lisp 2021-01-02T16:17:01Z mrios joined #lisp 2021-01-02T16:17:22Z charlie770 quit (Ping timeout: 260 seconds) 2021-01-02T16:18:26Z hiroaki joined #lisp 2021-01-02T16:20:53Z mrios is now known as mrios22 2021-01-02T16:22:37Z charlie770 joined #lisp 2021-01-02T16:22:43Z charlie770 left #lisp 2021-01-02T16:22:47Z mindCrime joined #lisp 2021-01-02T16:24:30Z SpaceIgo` quit (Remote host closed the connection) 2021-01-02T16:24:49Z SpaceIgor2075 joined #lisp 2021-01-02T16:25:07Z _paul0 joined #lisp 2021-01-02T16:26:19Z SpaceIgor2075: Hello! Can anybody recommend any resources to learn about modules,packages, asdf and projects? i am a newbie 2021-01-02T16:26:24Z frodef joined #lisp 2021-01-02T16:26:35Z phoe: SpaceIgor2075: yes, one second 2021-01-02T16:26:36Z jjong quit (Ping timeout: 240 seconds) 2021-01-02T16:26:40Z SpaceIgor2075: (a CL newbie) 2021-01-02T16:26:46Z phoe: http://www.flownet.com/gat/packages.pdf <- this one is a first 2021-01-02T16:26:54Z phoe: it has an unfortunate title but pretty good content 2021-01-02T16:27:04Z TMA quit (Ping timeout: 256 seconds) 2021-01-02T16:27:23Z phoe: once you've absorbed this document and played in the REPL with the knowledge you've gained this way, please come back for a bit more about ASDF, systems, and projects 2021-01-02T16:28:36Z paul0 quit (Ping timeout: 240 seconds) 2021-01-02T16:30:15Z SpaceIgor2075: phoe: Thanks. 2021-01-02T16:30:32Z SpaceIgor2075: (This title is awesome, i love it) 2021-01-02T16:31:00Z phoe: (depends on the person; some people like the sarcasm, some are allergic to it) 2021-01-02T16:32:28Z villanella joined #lisp 2021-01-02T16:32:33Z Xach: i don't like its POV of "isn't this dumb system dumb? well, here's how it works" - I'd prefer an explanation from someone with less contempt for it. 2021-01-02T16:32:53Z Xach: IIRC the explanation in PCL is ok 2021-01-02T16:33:11Z phoe: http://www.gigamonkeys.com/book/programming-in-the-large-packages-and-symbols.html 2021-01-02T16:33:22Z phoe: yes, I see 2021-01-02T16:33:53Z beach: Xach: It's OK. I see Alexandria fixed the incorrect clause order. That's all I need for now. 2021-01-02T16:34:33Z Xach: beach: whenever i increase strictness (by updating my sbcl), something that is 5-10 years since last maintenance breaks 2021-01-02T16:34:58Z Xach: the current problem is a widely-used library named "access" which uses function designators wrong 2021-01-02T16:35:12Z beach: I can very well imagine. 2021-01-02T16:35:36Z phoe: Xach: is it possible for you to also test on high safety/debug settings? this exposes bugs that are not exposed otherwise, like this cl-unicode bug that I just encountered 2021-01-02T16:36:03Z phoe: can I anyhow help with this process if help is needed? 2021-01-02T16:36:08Z Xach: phoe: oh, that would be interesting 2021-01-02T16:36:26Z phoe: Xach: see https://github.com/edicl/cl-unicode/issues/25 for some poetry 2021-01-02T16:36:40Z phoe: only seems to appear with SBCL compiler restricted to debug 3 safety 3. 2021-01-02T16:37:07Z phoe: it's fixed now, but the unpatched version is in the current dist 2021-01-02T16:37:12Z jurov_ joined #lisp 2021-01-02T16:39:29Z beach: Oh, so you tried it with lower safety? And it passed? 2021-01-02T16:41:04Z jurov quit (Ping timeout: 256 seconds) 2021-01-02T16:41:11Z kam1 joined #lisp 2021-01-02T16:41:43Z makomo joined #lisp 2021-01-02T16:43:41Z galex-713 quit (Quit: No Ping reply in 180 seconds.) 2021-01-02T16:44:38Z contrapunctus left #lisp 2021-01-02T16:45:29Z contrapunctus joined #lisp 2021-01-02T16:45:33Z FreeBirdLjj joined #lisp 2021-01-02T16:46:33Z Xach gives hi debug/safety a try 2021-01-02T16:47:10Z phoe: beach: yes 2021-01-02T16:47:21Z phoe: on default optimization settings it seems no error is generated 2021-01-02T16:47:52Z phoe: I assume that is why this cl-unicode issue was not noticed by Xach when preparing the QL distribution 2021-01-02T16:48:02Z beach: Yes, I see. 2021-01-02T16:48:25Z phoe: obviously we need to lower our expectations about safety to properly use cl-unicode 2021-01-02T16:48:28Z beach: Definitely a good idea to test systems that way then. 2021-01-02T16:48:39Z beach: Heh, no way! 2021-01-02T16:48:44Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T16:49:04Z phoe: no unicode for you then, you must make-do with ISO-8859-1 2021-01-02T16:49:09Z amb007 joined #lisp 2021-01-02T16:49:16Z beach: :( 2021-01-02T16:49:43Z phoe: (or download the patched version, which seems that you have already done) 2021-01-02T16:49:52Z beach: Indeed. 2021-01-02T16:50:02Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2021-01-02T16:50:59Z jurov joined #lisp 2021-01-02T16:50:59Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T16:51:09Z heisig: In case anyone is wondering, the correct way to restrict SBCL's compiler policy is (sb-ext:restrict-compiler-policy 'safety 3). 2021-01-02T16:52:21Z heisig: (Just posting it here, because I didn't know it some time ago) 2021-01-02T16:53:10Z amb007 joined #lisp 2021-01-02T16:53:17Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T16:53:35Z amb007 joined #lisp 2021-01-02T16:54:49Z jurov_ quit (Ping timeout: 264 seconds) 2021-01-02T16:54:50Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T16:55:40Z jurov_ joined #lisp 2021-01-02T16:56:15Z amb007 joined #lisp 2021-01-02T16:58:22Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T16:59:08Z jurov quit (Ping timeout: 256 seconds) 2021-01-02T16:59:15Z amb007 joined #lisp 2021-01-02T16:59:20Z makomo_ joined #lisp 2021-01-02T16:59:40Z makomo quit (Ping timeout: 246 seconds) 2021-01-02T17:00:41Z galex-713 joined #lisp 2021-01-02T17:00:58Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T17:02:00Z amb007 joined #lisp 2021-01-02T17:03:59Z saganman joined #lisp 2021-01-02T17:03:59Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T17:04:32Z amb007 joined #lisp 2021-01-02T17:05:15Z VincentVega joined #lisp 2021-01-02T17:05:52Z makomo joined #lisp 2021-01-02T17:05:52Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T17:07:25Z makomo_ quit (Ping timeout: 264 seconds) 2021-01-02T17:07:56Z amb007 joined #lisp 2021-01-02T17:10:08Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T17:10:38Z amb007 joined #lisp 2021-01-02T17:11:00Z VincentVega: guys, i am reading the cl-containers docs for red-black trees and don't get one thing: is there really no function to find the closest element to a given or am i just not seeing it? 2021-01-02T17:11:04Z VincentVega: https://common-lisp.net/project/cl-containers/documentation/metabang.cl-containers-package/class-red--black--tree.html 2021-01-02T17:11:23Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T17:11:48Z amb007 joined #lisp 2021-01-02T17:13:45Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T17:14:15Z amb007 joined #lisp 2021-01-02T17:18:15Z judson_ joined #lisp 2021-01-02T17:22:42Z judson_ quit (Ping timeout: 260 seconds) 2021-01-02T17:23:05Z ck_: VincentVega: what about best-item ? 2021-01-02T17:26:22Z VincentVega: ck_: i think best item computes the function on each node 2021-01-02T17:27:22Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-02T17:27:32Z ck_: yes, looks that way. It depends on what you mean by 'closest' then. If you're looking for something like a range test for the ordering that the tree uses.. well I don't see one either 2021-01-02T17:27:44Z karlosz joined #lisp 2021-01-02T17:28:26Z VincentVega: ck_: yep, that one : ) 2021-01-02T17:30:02Z Colleen quit (Quit: Colleen) 2021-01-02T17:30:29Z ck_: looks like you get to implement your own tree walking then, have fun 2021-01-02T17:30:48Z charles` joined #lisp 2021-01-02T17:30:51Z Colleen joined #lisp 2021-01-02T17:31:23Z rogersm joined #lisp 2021-01-02T17:31:33Z VincentVega: ck_: looks like it, thanks for the sanity check! 2021-01-02T17:32:57Z Bike joined #lisp 2021-01-02T17:35:03Z ck_: if you need this type of look-up often or mostly, maybe a different data structure would be a better choice 2021-01-02T17:35:31Z ck_: an Interval Tree for example 2021-01-02T17:37:16Z notzmv quit (Remote host closed the connection) 2021-01-02T17:37:24Z SpaceIgor2075: is (set 'x 13) equivalent to (setq x 13)? 2021-01-02T17:37:50Z aindilis` joined #lisp 2021-01-02T17:38:15Z VincentVega: ck_: nah, it's for some occasional queries, so it's cool : ) 2021-01-02T17:38:18Z aindilis quit (Ping timeout: 256 seconds) 2021-01-02T17:38:47Z Xach: SpaceIgor2075: no 2021-01-02T17:39:05Z rogersm quit 2021-01-02T17:39:17Z Xach: SpaceIgor2075: consider (let ((x 42)) (setq x 13)) 2021-01-02T17:39:33Z notzmv joined #lisp 2021-01-02T17:54:26Z skapata joined #lisp 2021-01-02T17:55:26Z benjamindc joined #lisp 2021-01-02T17:55:29Z notzmv quit (Remote host closed the connection) 2021-01-02T17:55:44Z notzmv joined #lisp 2021-01-02T17:58:32Z Nilby quit (Ping timeout: 272 seconds) 2021-01-02T18:09:08Z euandreh quit (Remote host closed the connection) 2021-01-02T18:09:48Z aindilis` quit (Remote host closed the connection) 2021-01-02T18:16:26Z orivej quit (Ping timeout: 256 seconds) 2021-01-02T18:16:41Z orivej joined #lisp 2021-01-02T18:20:42Z notzmv quit (Remote host closed the connection) 2021-01-02T18:21:07Z notzmv joined #lisp 2021-01-02T18:21:29Z benjamindc: IS there a way to get "(asdf:test-system "system")" to return an exit code of 1 when executed in a script for CI pipelines? 2021-01-02T18:23:34Z notzmv quit (Remote host closed the connection) 2021-01-02T18:23:49Z Inline joined #lisp 2021-01-02T18:24:47Z phoe: benjamindc: the convention is generally that if asdf:test-system signals an error, then it has failed 2021-01-02T18:25:08Z SpaceIgor2075 quit (Ping timeout: 272 seconds) 2021-01-02T18:25:56Z phoe: so you can do it like (handler-bind ((error (lambda (x) (print x) (print stacktrace) (exit 1)))) (asdf:test-system :foo) (exit 0)) 2021-01-02T18:29:27Z aeth: benjamindc: In general, just ignore asdf:test-system in CI pipelines and just directly use the non-portable return value of whatever test suite you're using. ASDF doesn't want to have asdf:test-system return a non-portable return value, making it near-useless for CI 2021-01-02T18:29:58Z aeth: phoe's answer is the correct answer, but it winds up being like 5 lines of code just to return something that your test suite already returns that asdf:test-system is blocking... 2021-01-02T18:31:12Z aeth: (non-portable as in not portable between test suites) 2021-01-02T18:31:48Z renzhi quit (Ping timeout: 260 seconds) 2021-01-02T18:34:15Z aeth: benjamindc: Sorry, phoe's answer is almost the correct answer. You want to exit with (uiop:quit 1) 2021-01-02T18:34:23Z benjamindc: aeth are you using a custom test suite for your zombi-raptor library? 2021-01-02T18:34:49Z aeth: no, but I'm not very happy with any of them having used almost all of them in different projects of mine over the years 2021-01-02T18:35:04Z aeth: if you merged them all together you might have a decent feature set :-p 2021-01-02T18:37:39Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T18:38:00Z amb007 joined #lisp 2021-01-02T18:40:15Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T18:40:28Z benjamindc: aeth i follow your advice, but my script returns 0 when there are failing tests: https://pastebin.com/zgKD6F4n 2021-01-02T18:40:42Z amb007 joined #lisp 2021-01-02T18:41:13Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T18:42:08Z amb007 joined #lisp 2021-01-02T18:42:13Z phoe: depends on your test framework 2021-01-02T18:42:32Z phoe: if your test framework returns gracefully when you run the test suite and there are failures, then you get what you see 2021-01-02T18:42:49Z benjamindc: curses 2021-01-02T18:42:49Z aeth: benjamindc: most of them return the number of failed tests or can be configured to do so 2021-01-02T18:42:50Z phoe: you'll need to analyze the results manually and if there are any failures then you'll need to (exit 1) 2021-01-02T18:43:05Z notzmv joined #lisp 2021-01-02T18:43:16Z benjamindc: alright. thanks for the advice 2021-01-02T18:44:22Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T18:44:42Z amb007 joined #lisp 2021-01-02T18:45:56Z surabax_ joined #lisp 2021-01-02T18:49:18Z surabax quit (Ping timeout: 260 seconds) 2021-01-02T18:51:36Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T18:51:43Z amb007 joined #lisp 2021-01-02T18:51:46Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T18:52:06Z Lord_of_Life_ joined #lisp 2021-01-02T18:52:31Z surabax__ joined #lisp 2021-01-02T18:52:33Z Lord_of_Life quit (Ping timeout: 256 seconds) 2021-01-02T18:53:17Z amb007 joined #lisp 2021-01-02T18:54:25Z surabax__ quit (Client Quit) 2021-01-02T18:54:56Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-02T18:54:56Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T18:55:37Z amb007 joined #lisp 2021-01-02T18:55:45Z hnOsmium0001 joined #lisp 2021-01-02T18:55:52Z surabax_ quit (Ping timeout: 256 seconds) 2021-01-02T18:56:02Z saganman quit (Quit: WeeChat 1.6) 2021-01-02T19:02:37Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T19:02:49Z rumbler31 joined #lisp 2021-01-02T19:03:17Z amb007 joined #lisp 2021-01-02T19:06:32Z thmprover joined #lisp 2021-01-02T19:06:32Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T19:07:10Z Jesin quit (Quit: Leaving) 2021-01-02T19:07:38Z amb007 joined #lisp 2021-01-02T19:12:23Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T19:12:30Z amb007 joined #lisp 2021-01-02T19:16:32Z KREYREEN quit (Remote host closed the connection) 2021-01-02T19:16:32Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T19:16:51Z amb007 joined #lisp 2021-01-02T19:17:11Z KREYREEN joined #lisp 2021-01-02T19:19:25Z kam1 quit (Ping timeout: 264 seconds) 2021-01-02T19:22:53Z heisig quit (Quit: Leaving) 2021-01-02T19:22:53Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T19:23:10Z amb007 joined #lisp 2021-01-02T19:25:16Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T19:25:44Z amb007 joined #lisp 2021-01-02T19:28:10Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T19:29:09Z amb007 joined #lisp 2021-01-02T19:29:32Z KREYREEN quit (Remote host closed the connection) 2021-01-02T19:29:52Z KREYREEN joined #lisp 2021-01-02T19:31:19Z random-nick quit (Quit: quit) 2021-01-02T19:31:19Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T19:31:44Z kam1 joined #lisp 2021-01-02T19:32:09Z amb007 joined #lisp 2021-01-02T19:32:20Z random-nick joined #lisp 2021-01-02T19:34:16Z benjamindc quit (Remote host closed the connection) 2021-01-02T19:35:34Z ykm quit (Remote host closed the connection) 2021-01-02T19:35:37Z oni_on_ion joined #lisp 2021-01-02T19:35:57Z oni-on-ion quit (Ping timeout: 260 seconds) 2021-01-02T19:38:10Z Jesin joined #lisp 2021-01-02T19:43:28Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T19:44:36Z amb007 joined #lisp 2021-01-02T19:46:31Z Inline quit (Quit: Leaving) 2021-01-02T19:46:56Z rumbler31 quit (Remote host closed the connection) 2021-01-02T19:47:07Z fanta1 quit (Quit: fanta1) 2021-01-02T19:48:38Z birdwing quit (Ping timeout: 264 seconds) 2021-01-02T19:49:22Z amb007 quit (Read error: Connection reset by peer) 2021-01-02T19:49:52Z amb007 joined #lisp 2021-01-02T19:58:31Z KREYREEEN joined #lisp 2021-01-02T19:58:50Z galex-713 quit (Ping timeout: 256 seconds) 2021-01-02T20:00:43Z KREYREEN quit (Ping timeout: 240 seconds) 2021-01-02T20:01:55Z cosimone quit (Quit: cosimone) 2021-01-02T20:11:07Z Inline joined #lisp 2021-01-02T20:15:58Z Jeanne-Kamikaze joined #lisp 2021-01-02T20:17:02Z emma: Not exactly lisp but do any of you enjoy electronic music like trance, house, or techno? 2021-01-02T20:17:28Z phoe gently guides the discussion to #lispcafe 2021-01-02T20:17:45Z phoe: I think there will be some people in there who'd like to indulge in that discussion 2021-01-02T20:17:48Z phoe: (possibly including me) 2021-01-02T20:18:14Z Inline quit (Quit: Leaving) 2021-01-02T20:27:56Z rumbler31 joined #lisp 2021-01-02T20:28:12Z aindilis joined #lisp 2021-01-02T20:28:33Z KREYREEEN quit (Remote host closed the connection) 2021-01-02T20:29:50Z KREYREN joined #lisp 2021-01-02T20:30:09Z xanderle joined #lisp 2021-01-02T20:32:33Z rumbler31 quit (Ping timeout: 260 seconds) 2021-01-02T20:39:04Z v_m_v quit (Remote host closed the connection) 2021-01-02T20:39:22Z v_m_v joined #lisp 2021-01-02T20:47:46Z cosimone joined #lisp 2021-01-02T20:52:07Z barbanegra left #lisp 2021-01-02T20:58:18Z jw4 quit (Read error: Connection reset by peer) 2021-01-02T20:59:28Z andreyorst quit (Remote host closed the connection) 2021-01-02T21:00:17Z jw4 joined #lisp 2021-01-02T21:00:29Z andreyorst joined #lisp 2021-01-02T21:00:52Z shka_ quit (Ping timeout: 260 seconds) 2021-01-02T21:04:02Z notzmv quit (Remote host closed the connection) 2021-01-02T21:04:30Z notzmv joined #lisp 2021-01-02T21:08:53Z v_m_v quit (Remote host closed the connection) 2021-01-02T21:12:26Z notzmv quit (Remote host closed the connection) 2021-01-02T21:22:07Z cosimone quit (Quit: cosimone) 2021-01-02T21:23:37Z hiroaki quit (Ping timeout: 272 seconds) 2021-01-02T21:24:16Z kam1 quit (Ping timeout: 246 seconds) 2021-01-02T21:24:40Z entre-parenteses joined #lisp 2021-01-02T21:25:24Z wsinatra joined #lisp 2021-01-02T21:32:54Z ech joined #lisp 2021-01-02T21:35:50Z Xach: phoe: building with safety 3/debug 3 is a lot slower 2021-01-02T21:36:30Z phoe: Xach: hmmm 2021-01-02T21:36:47Z phoe: I can imagine the generated code must contain much more debug information and runtime checks 2021-01-02T21:36:50Z Xach: almost done though 2021-01-02T21:36:59Z phoe: possibly that's why generating it is slower, too 2021-01-02T21:37:05Z phoe: but it's just speculation on my side 2021-01-02T21:37:22Z phoe: did that uncover any new issues so far? 2021-01-02T21:37:49Z Xach: no report until the end 2021-01-02T21:38:00Z phoe wiggles in anticipation 2021-01-02T21:38:31Z rjcks_ joined #lisp 2021-01-02T21:39:45Z Lycurgus quit (Ping timeout: 240 seconds) 2021-01-02T21:40:05Z v_m_v joined #lisp 2021-01-02T21:41:50Z ebrasca quit (Remote host closed the connection) 2021-01-02T21:42:06Z rjcks quit (Ping timeout: 272 seconds) 2021-01-02T21:47:34Z charles` quit (Ping timeout: 256 seconds) 2021-01-02T21:49:29Z Xach: almost at the end 2021-01-02T21:53:04Z v_m_v quit (Remote host closed the connection) 2021-01-02T21:53:20Z v_m_v joined #lisp 2021-01-02T21:53:43Z wsinatra_ joined #lisp 2021-01-02T21:57:42Z Xach: phoe: http://report.quicklisp.org/2021-01-02/failure-report.html has the report but there's a lot of noise from the things sbcl broke recently 2021-01-02T21:58:11Z Xach: but some other things are in there too 2021-01-02T21:58:18Z Xach: gtirb breakage seems new 2021-01-02T21:58:24Z phoe: Unhandled SIMPLE-CONDITION in thread #: break 2021-01-02T21:58:28Z phoe: well 2021-01-02T21:59:22Z phoe: The constant MINUTES-PER-INTERNAL-TIME-UNIT is being redefined (from 1.6666668e-8 to 1.6666666e-8) 2021-01-02T21:59:25Z phoe: this one is interesting 2021-01-02T21:59:44Z phoe: there's lots of those 2021-01-02T21:59:47Z Xach: yes 2021-01-02T21:59:59Z Xach: i don't get the increased # of arithmetic error COMMON-LISP:FLOATING-POINT-INVALID-OPERATION signalled 2021-01-02T22:00:45Z Xach: I don't know if the "unknown type specifier" errors are sbcl or debug/safety 2021-01-02T22:01:00Z phoe: floating-point-invalid-operation? hmmmmm 2021-01-02T22:01:09Z phoe: which SBCL did you build on? 2021-01-02T22:01:11Z phoe: current master? 2021-01-02T22:01:36Z Xach: phoe: not quite current. 2.0.11.142-1b0795826 (it's at the top of the report) 2021-01-02T22:01:43Z phoe: oh 2021-01-02T22:01:52Z phoe: the current master includes some floating point stuff that me and mfiano have coerced stassats into adding 2021-01-02T22:01:57Z phoe: so it's good that it's not because of this 2021-01-02T22:02:09Z phoe: oh 2021-01-02T22:02:31Z phoe: it's trying to #'< two NaNs 2021-01-02T22:02:50Z phoe: or rather, it's trying to make a numeric type with NaNs... 2021-01-02T22:03:00Z Xach: Which? 2021-01-02T22:03:04Z phoe: http://report.quicklisp.org/2021-01-02/failure-report/gtirb.html#gtirb 2021-01-02T22:03:13Z phoe: (SB-KERNEL:MAKE-NUMERIC-TYPE :CLASS COMMON-LISP:FLOAT :FORMAT COMMON-LISP:SINGLE-FLOAT :COMPLEXP :REAL :LOW # :HIGH # :ENUMERABLE COMMON-LISP:NIL) 2021-01-02T22:03:18Z phoe: this cannot end well 2021-01-02T22:03:53Z Xach: there are other failures with the same message 2021-01-02T22:03:57Z Xach: ryeboy and others 2021-01-02T22:04:01Z phoe: yes 2021-01-02T22:04:33Z Xach: are they all from the same root cause? 2021-01-02T22:04:39Z phoe: no idea 2021-01-02T22:07:01Z phoe: hmmmm 2021-01-02T22:07:24Z phoe: yes, seems so 2021-01-02T22:08:11Z Alfr_ quit (Remote host closed the connection) 2021-01-02T22:08:17Z Xach: would it help to use latest sbcl instead? 2021-01-02T22:08:34Z phoe: I don't think so 2021-01-02T22:08:38Z karlosz quit (Remote host closed the connection) 2021-01-02T22:09:16Z Xach does not know what it all means 2021-01-02T22:09:25Z Alfr joined #lisp 2021-01-02T22:09:31Z phoe: ryeboy chokes on protobuf 2021-01-02T22:09:42Z phoe: osmpbf does, too 2021-01-02T22:10:03Z Xach: ah ok 2021-01-02T22:10:06Z phoe: in here in particular: https://github.com/brown/protobuf/blob/master/protocol-buffer.lisp#L109-L121 2021-01-02T22:10:28Z phoe: for some reason, this causes the SBCL compiler to try and compare two NaNs via #'> 2021-01-02T22:10:31Z phoe: which traps the FPU 2021-01-02T22:10:38Z phoe: which bubbles up as an error. 2021-01-02T22:10:45Z mindCrime joined #lisp 2021-01-02T22:10:58Z phoe: gtirb also chokes on protobuf 2021-01-02T22:12:52Z phoe: I can reproduce the protobuf failure 2021-01-02T22:13:01Z Xach: oh loard 2021-01-02T22:14:55Z phoe: https://github.com/brown/protobuf/issues/21 2021-01-02T22:16:18Z mfiano: Is it time for the ecosystem to start adopting versioned dependencies yet? 2021-01-02T22:17:04Z Xach: i don't think that would help my recent problems, which stem from SBCL detecting more invalid code at compile-time. 2021-01-02T22:17:06Z narimiran quit (Ping timeout: 256 seconds) 2021-01-02T22:17:26Z v_m_v quit (Remote host closed the connection) 2021-01-02T22:17:42Z phoe: (declaim (sb-ext:shut-up-and-compile-it-worked-on-the-previous-release)) 2021-01-02T22:17:49Z pve quit (Quit: leaving) 2021-01-02T22:18:39Z phoe: mfiano: versioned dependencies can't help you if all versions are broken 2021-01-02T22:18:43Z Xach: phoe: do you think the error is a mistake in protobuf or a mistake in sbcl? 2021-01-02T22:19:08Z phoe: Xach: I have no idea - it is on the intersection 2021-01-02T22:19:11Z phoe: lemme check real quick 2021-01-02T22:21:09Z phoe: ... 2021-01-02T22:21:15Z phoe: this is a SBCL bug 2021-01-02T22:21:22Z phoe: (cl:define-symbol-macro foo #.(sb-kernel:make-single-float -1)) works fine on default safety/speed 2021-01-02T22:21:27Z Xach: NOOOO 2021-01-02T22:21:35Z phoe: but chokes on debug 3/safety 3 2021-01-02T22:22:37Z mfiano: Does not choke here 2021-01-02T22:23:24Z edgar-rft quit (Quit: Leaving) 2021-01-02T22:23:59Z phoe: https://bugs.launchpad.net/sbcl/+bug/1909881 2021-01-02T22:24:07Z phoe: try wrapping that in compile nil lambda 2021-01-02T22:24:28Z junkicide joined #lisp 2021-01-02T22:24:50Z mfiano: That fails even with default debug/safety 2021-01-02T22:24:57Z phoe: welp 2021-01-02T22:25:13Z phoe: no idea then! it built fine for Xach on default debug/safety 2021-01-02T22:26:50Z mfiano: Minimum reproducible error: (compile nil (lambda () #.(sb-kernel:make-single-float -1))) 2021-01-02T22:28:13Z phoe: nice 2021-01-02T22:29:09Z phoe: why did it work previously though? 2021-01-02T22:29:18Z phoe: why does protobuf seem to compile on default settings? 2021-01-02T22:31:48Z phoe thonk 2021-01-02T22:35:55Z phoe: enough thonking for today 2021-01-02T22:35:56Z phoe: good night 2021-01-02T22:38:34Z villanella quit (Quit: villanella) 2021-01-02T22:40:45Z slyrus: nice find phoe! 2021-01-02T22:40:52Z phoe: slyrus: wasn't me 2021-01-02T22:41:04Z slyrus: ah, mfiano? 2021-01-02T22:41:08Z phoe: all I did was tell Xach to build with a different safety/debug 2021-01-02T22:41:24Z phoe: the rest is directed by robert b. weide 2021-01-02T22:41:30Z slyrus: got it, thanks 2021-01-02T22:41:46Z mfiano: Wasn't me this time. I did find about a dozen SBCL bugs over the last few weeks that have all been fixed, but not this one 2021-01-02T22:46:25Z rjcks_ quit (Quit: leaving) 2021-01-02T22:48:36Z entre-parenteses quit (Ping timeout: 240 seconds) 2021-01-02T22:51:04Z travv0 joined #lisp 2021-01-02T22:52:45Z dhil joined #lisp 2021-01-02T22:53:17Z imode joined #lisp 2021-01-02T22:55:17Z hiroaki joined #lisp 2021-01-02T22:57:59Z v0|d joined #lisp 2021-01-02T23:00:03Z _paul0 quit (Quit: Leaving) 2021-01-02T23:07:34Z thmprover: Is there a way to verify `double-float` is in fact IEEE 754 double precision (since the CL standard doesn't require it)? 2021-01-02T23:10:23Z aeth: there's an :IEEE-FLOATING-POINT in *features* but they might not all have that because I don't think that's standard 2021-01-02T23:10:26Z phoe: #+ieee-floating-point t #+ieee-floating-point nil 2021-01-02T23:10:49Z aeth: CCL doesn't have it 2021-01-02T23:10:50Z phoe: http://www.lispworks.com/documentation/HyperSpec/Body/v_featur.htm 2021-01-02T23:10:55Z aeth: so you could do (or ccl ieee-floating-point) 2021-01-02T23:11:13Z aeth: weird, then, that CCL doesn't have it 2021-01-02T23:12:26Z phoe: aeth: https://github.com/Clozure/ccl/issues/355 2021-01-02T23:12:37Z charles` joined #lisp 2021-01-02T23:12:42Z thmprover: I'd prefer to have an error raised if the CL implementation does not support IEEE 754, so the user would know and be sufficiently alarmed/informed. 2021-01-02T23:13:02Z mfiano: CCL is non-conforming in this regard. I brought it up a while ago to them 2021-01-02T23:13:02Z aeth: thmprover: based on the implementation support of float-features, IEEE is pretty much guaranteed to be present on any living implementation unless you stretch the definition of "living" to include CLISP. https://github.com/Shinmera/float-features 2021-01-02T23:13:10Z phoe: mfiano: oh? what do you mean? 2021-01-02T23:13:33Z phoe: you mean the missing feature? 2021-01-02T23:13:34Z mfiano: :ieee-floating-point 2021-01-02T23:13:36Z mfiano: If present, indicates that the implementation purports to conform to the requirements of IEEE Standard for Binary Floating-Point Arithmetic. 2021-01-02T23:13:40Z mfiano: Their documentation purports to conform 2021-01-02T23:14:05Z phoe: yes, I've made an issue for it now 2021-01-02T23:14:07Z frodef: did clisp die? 2021-01-02T23:14:10Z charles`: What is the deal with base64 there seems to be two packages for it 2021-01-02T23:14:23Z phoe: frodef: depends on your definition of "die" 2021-01-02T23:14:24Z aeth: Airship Scheme does #+(or ccl ieee-floating-point) and probably will have to for some time even if CCL adds it to *features*. 2021-01-02T23:14:27Z phoe: charles`: only two? 2021-01-02T23:14:32Z thmprover: aeth: I hoped that most modern Lisp implementations support it, but I am doing numerical analysis, so I want to be *certain*. 2021-01-02T23:14:45Z aeth: thmprover: Then use float-features and if it doesn't run, then it's uncertain :-) 2021-01-02T23:14:52Z phoe: there's base64, cl-base64, qbase64, and s-base64, that's four in Quicklisp 2021-01-02T23:14:53Z charles`: two being loaded in and arguing with each other 2021-01-02T23:15:01Z phoe: charles`: oh 2021-01-02T23:15:05Z aeth: thmprover: you probably want float-features:with-float-traps-masked anyway 2021-01-02T23:15:21Z phoe: nickname conflicts? 2021-01-02T23:15:26Z charles`: indeed 2021-01-02T23:15:44Z aeth: frodef: No release in 10 years as of last July... So 10.5 years now, I guess. 2021-01-02T23:15:50Z phoe: escalate to the maintainers and tell them to fix their stuff up. we've been in this ground multiple times now, and local nicknames exist nowadays. 2021-01-02T23:15:57Z phoe: s/in/on/ 2021-01-02T23:16:06Z mfiano: There is plenty of alive software that has not made a release 2021-01-02T23:16:12Z aeth: frodef: And the pile of things that it's missing because of that is climbing, e.g. package local nicknames 2021-01-02T23:16:13Z thmprover: aeth: good to know about the package; but you mean, I should wrap all floating point computation in a `(with-float-traps-masked ...)`? 2021-01-02T23:16:31Z aeth: thmprover: and t, i.e. mask them all 2021-01-02T23:16:34Z aeth: So you get NaN/inf 2021-01-02T23:16:38Z aeth: Instead of errors. 2021-01-02T23:16:38Z phoe: aeth: there's a MR with PLNs waiting 2021-01-02T23:16:40Z aeth: Then at the end error 2021-01-02T23:16:44Z rumbler31 joined #lisp 2021-01-02T23:16:47Z thmprover: aeth: gotchya, thanks for the heads up :) 2021-01-02T23:16:53Z phoe: just not merged. 2021-01-02T23:17:13Z aeth: mfiano: Plenty of alive software hasn't made a release in 10 years. However, Common Lisp gets this ecosystem stability because it shifts the burden of a lot of bitrot onto the implementations, which must continue to add things over time. 2021-01-02T23:17:39Z aeth: mfiano: Sure, portable CL will continue to run in CLISP as long as it remains ANSI compliant with no compliance bugs (which undoubtably exist in every implementation) 2021-01-02T23:17:57Z aeth: mfiano: But most nontrivial CL uses some nonportable code, either as extensions or libraries. 2021-01-02T23:18:01Z mfiano: C++ is over there if you require implementations to change 2021-01-02T23:18:38Z aeth: e.g. If you use package local nicknames, you can't say that CLISP is living because you're actively working to break large parts of the Quicklisp ecosystem in CLISP. 2021-01-02T23:18:55Z aeth: That's just the most popular one, there's lots of other assumptions people make that don't work on CLISP. 2021-01-02T23:19:12Z mfiano: One can use defpackage-plus to gracefully fall back to global nicknames if you need to test your code on CCL 2021-01-02T23:20:02Z aeth: float-features is another one. Most numerical code should have with-float-traps-masked, and maybe you can have a fallback for implementations that float-features doesn't support, but if you're using it, you might also want to be able to deal with infinities and NaNs 2021-01-02T23:20:08Z mfiano: I try not to use implementation features apart from PLN because I value portability, and it took a look time before I accepted I would like to use PLN because of this 2021-01-02T23:20:16Z mfiano: s/look/long/ 2021-01-02T23:21:12Z mfiano: also s/CCL/CLISP/ 2021-01-02T23:21:27Z mfiano: I cant think today apparently. Off to go read a book 2021-01-02T23:21:56Z aeth: I don't test in or support CLISP anymore because enough of my dependencies are broken in it these days that it's not worth the effort to figure out exactly what subset I can test in it. 2021-01-02T23:23:37Z mfiano: Reminds me of cl-opengl and how it is incredibly slow because of traps 2021-01-02T23:23:52Z aeth: The worst dependency of mine is probably cl-sdl2, which I need to replace at some point. I tested it in Roswell a while back and it only ran in SBCL, CCL, and ECL. 2021-01-02T23:24:05Z aeth: And barely in ECL. 2021-01-02T23:24:37Z mfiano: It wraps float trapping around every call, and on the way out in unwind-protect, which accounted for about 30% of the runtime last time I made a flamegraph 2021-01-02T23:26:16Z dhil quit (Ping timeout: 240 seconds) 2021-01-02T23:26:27Z charles`: Speaking of CLISP, can it do threads? 2021-01-02T23:26:34Z phoe: AFAIK yes 2021-01-02T23:29:28Z mfiano: One can push a feature, but a large number of shader programs would fail to link on Intel/Mesa. 2021-01-02T23:29:44Z phoe: what feature? 2021-01-02T23:30:06Z mfiano: forget off hand. the one cl-opengl uses to control masking traps 2021-01-02T23:30:14Z phoe: oh, I see 2021-01-02T23:30:18Z mfiano: Here is a flamegraph view of one draw call for example. Look at that that time spent: https://i.lisp.cl/JmiUBd.png 2021-01-02T23:35:08Z orivej quit (Ping timeout: 260 seconds) 2021-01-02T23:36:56Z kaftejiman quit (Ping timeout: 240 seconds) 2021-01-02T23:37:52Z karlosz joined #lisp 2021-01-02T23:38:25Z mfiano: Xach: curious, I recall recently you did some image thing with an octree. Did you write the octree yourself, or use some library? 2021-01-02T23:48:12Z varjag quit (Remote host closed the connection) 2021-01-02T23:54:13Z wsinatra quit (Quit: WeeChat 3.0) 2021-01-02T23:55:03Z frgo quit (Remote host closed the connection) 2021-01-02T23:55:31Z frgo joined #lisp 2021-01-03T00:05:31Z luckless quit (Remote host closed the connection) 2021-01-03T00:06:03Z luckless joined #lisp 2021-01-03T00:09:20Z VincentVega quit (Remote host closed the connection) 2021-01-03T00:10:24Z wsinatra joined #lisp 2021-01-03T00:13:37Z lowryder quit (Ping timeout: 260 seconds) 2021-01-03T00:18:58Z Average-user joined #lisp 2021-01-03T00:19:14Z Average-user: join #lispcafe 2021-01-03T00:19:34Z phoe hands Average-user a solidus 2021-01-03T00:20:03Z Average-user: Yup, thanks. My keyboard sometimes trolls me 2021-01-03T00:23:33Z knowayback joined #lisp 2021-01-03T00:24:13Z Krystof quit (Ping timeout: 264 seconds) 2021-01-03T00:24:14Z Average-user quit (Quit: WeeChat 2.8) 2021-01-03T00:24:48Z gaqwas quit (Remote host closed the connection) 2021-01-03T00:25:02Z junkicide quit (Ping timeout: 260 seconds) 2021-01-03T00:33:14Z lowryder joined #lisp 2021-01-03T00:36:05Z charles`: I emailed the author of cl-base64 to remove his nickname 2021-01-03T00:39:07Z kam1 joined #lisp 2021-01-03T00:41:01Z flazh quit (Ping timeout: 264 seconds) 2021-01-03T00:43:16Z flazh joined #lisp 2021-01-03T00:48:25Z flazh quit (Ping timeout: 240 seconds) 2021-01-03T00:52:07Z leo_song_ joined #lisp 2021-01-03T00:52:10Z leo_song quit (Read error: Connection reset by peer) 2021-01-03T00:52:25Z leo_song_ quit (Remote host closed the connection) 2021-01-03T00:52:38Z leo_song joined #lisp 2021-01-03T00:54:38Z mankaev quit (Read error: Connection reset by peer) 2021-01-03T00:54:40Z mankaev_ joined #lisp 2021-01-03T00:54:46Z frodef: The package system (and missing module system) really needs revamping. 2021-01-03T00:54:47Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-03T00:56:09Z flazh joined #lisp 2021-01-03T00:56:13Z wsinatra quit (Quit: WeeChat 3.0) 2021-01-03T00:57:10Z wsinatra_ quit (Ping timeout: 272 seconds) 2021-01-03T01:00:58Z flazh quit (Ping timeout: 272 seconds) 2021-01-03T01:03:04Z X-Scale` joined #lisp 2021-01-03T01:03:04Z random-nick quit (Ping timeout: 256 seconds) 2021-01-03T01:03:21Z moon-child: is there a version of mapcar which errors if the lists it applies to aren't the same length? 2021-01-03T01:04:04Z X-Scale quit (Ping timeout: 246 seconds) 2021-01-03T01:04:05Z X-Scale` is now known as X-Scale 2021-01-03T01:04:25Z makomo quit (Ping timeout: 240 seconds) 2021-01-03T01:06:13Z kam1 quit (*.net *.split) 2021-01-03T01:06:13Z Jesin quit (*.net *.split) 2021-01-03T01:06:13Z vhost- quit (*.net *.split) 2021-01-03T01:06:13Z aeth quit (*.net *.split) 2021-01-03T01:06:13Z bilal__ quit (*.net *.split) 2021-01-03T01:06:14Z elflng quit (*.net *.split) 2021-01-03T01:06:14Z sxmx quit (*.net *.split) 2021-01-03T01:06:14Z grobe0ba quit (*.net *.split) 2021-01-03T01:06:14Z xsperry quit (*.net *.split) 2021-01-03T01:06:14Z Mandus quit (*.net *.split) 2021-01-03T01:06:14Z phoe624 quit (*.net *.split) 2021-01-03T01:06:14Z cg505 quit (*.net *.split) 2021-01-03T01:06:14Z phantomics quit (*.net *.split) 2021-01-03T01:06:14Z cross quit (*.net *.split) 2021-01-03T01:06:14Z Cthulhux quit (*.net *.split) 2021-01-03T01:06:14Z grumble quit (*.net *.split) 2021-01-03T01:06:14Z catern quit (*.net *.split) 2021-01-03T01:06:14Z justinmcp quit (*.net *.split) 2021-01-03T01:06:14Z cpape quit (*.net *.split) 2021-01-03T01:06:14Z dwts quit (*.net *.split) 2021-01-03T01:06:14Z docl quit (*.net *.split) 2021-01-03T01:09:03Z rgherdt quit (Ping timeout: 268 seconds) 2021-01-03T01:09:31Z kam1 joined #lisp 2021-01-03T01:09:31Z Jesin joined #lisp 2021-01-03T01:09:31Z vhost- joined #lisp 2021-01-03T01:09:31Z aeth joined #lisp 2021-01-03T01:09:31Z xsperry joined #lisp 2021-01-03T01:09:31Z bilal__ joined #lisp 2021-01-03T01:09:31Z elflng joined #lisp 2021-01-03T01:09:31Z sxmx joined #lisp 2021-01-03T01:09:31Z grobe0ba joined #lisp 2021-01-03T01:09:31Z Mandus joined #lisp 2021-01-03T01:09:31Z phoe624 joined #lisp 2021-01-03T01:09:31Z cg505 joined #lisp 2021-01-03T01:09:31Z phantomics joined #lisp 2021-01-03T01:09:31Z cross joined #lisp 2021-01-03T01:09:31Z Cthulhux joined #lisp 2021-01-03T01:09:31Z grumble joined #lisp 2021-01-03T01:09:31Z justinmcp joined #lisp 2021-01-03T01:09:31Z cpape joined #lisp 2021-01-03T01:09:32Z dwts joined #lisp 2021-01-03T01:09:32Z docl joined #lisp 2021-01-03T01:10:10Z dwts quit (Max SendQ exceeded) 2021-01-03T01:10:10Z kam1 quit (Max SendQ exceeded) 2021-01-03T01:10:10Z sxmx quit (Ping timeout: 249 seconds) 2021-01-03T01:10:45Z sxmx joined #lisp 2021-01-03T01:11:35Z dwts joined #lisp 2021-01-03T01:11:54Z andreyorst quit (Remote host closed the connection) 2021-01-03T01:12:37Z andreyorst joined #lisp 2021-01-03T01:13:28Z flazh joined #lisp 2021-01-03T01:17:29Z mfiano: I would think that would be too slow to be useful 2021-01-03T01:17:49Z mfiano: So I would say no, unless some obscure library has something 2021-01-03T01:18:31Z Lycurgus joined #lisp 2021-01-03T01:18:47Z no-defun-allowed: I don't think so. 2021-01-03T01:19:12Z no-defun-allowed: You iterate over all the lists, then instead of terminating when one is '(), you check if all are '(), and if not, then you signal an error. 2021-01-03T01:19:18Z aeth: ah, netsplit 2021-01-03T01:20:09Z Lycurgus quit (Client Quit) 2021-01-03T01:20:12Z aeth: https://irclog.tymoon.eu/freenode/%23lisp?around=1609635801#1609635801 2021-01-03T01:20:26Z aeth: Fortunately, at least one log bot was on the "correct" side of the netsplit for anyone else who was confused 2021-01-03T01:20:43Z aeth: The rest of us were wondering what these answers had to do with the package system. :-) 2021-01-03T01:21:49Z aeth: frodef: There are some low-hanging fruits in package features, including hierarchical and versioned, although you can sort of fake the former with reexporting symbols and you can definitely do the latter manually (although only Alexandria does this afaik). 2021-01-03T01:22:05Z aeth: frodef: But the solutions would be controversial so it would take a lot to get anything. 2021-01-03T01:22:35Z catern joined #lisp 2021-01-03T01:23:08Z frodef: aeth: The problem with CL is, it was so good back in 1990 that it's still "good enough" :-) 2021-01-03T01:23:31Z contrapunctus left #lisp 2021-01-03T01:24:12Z contrapunctus joined #lisp 2021-01-03T01:27:41Z aeth: frodef: No, it's more like... how many > 100 kloc projects are there written in CL that aren't CL compilers? 2021-01-03T01:28:02Z aeth: Edge cases only really show up in really, really large projects. 2021-01-03T01:28:22Z aeth: And compilers can just add whatever internals they want, so they're not really having to deal with mostly-portable CL. 2021-01-03T01:28:24Z kam1 joined #lisp 2021-01-03T01:29:33Z frodef: aeth: I tend to disagree, I suspect the lack of a global "module" system/architecture is holding CL back. 2021-01-03T01:30:24Z no-defun-allowed: How do you handle having version X for one package, and version Y for another? 2021-01-03T01:31:31Z no-defun-allowed: You might put versions in the package "names" or something, so they don't collide. But then would FIND-SYMBOL take a versioned name? These things seem hard with packages as bundles of sybmols. 2021-01-03T01:31:34Z no-defun-allowed: *symbols 2021-01-03T01:31:43Z frodef: no-defun-allowed: not easily with today's package system, I believe. 2021-01-03T01:31:55Z aeth: no-defun-allowed: well, versioned can follow from... some kinds of hierarchical 2021-01-03T01:32:12Z aeth: The new version just inherits from the old one for the most part. Sometimes removing, but mostly adding. 2021-01-03T01:32:38Z no-defun-allowed: I think first class global environments, specifically sticking each module in a FCGE with its dependencies, is a good idea, but then you have edge cases like one module returning a FOO:B that's different to another module removing FOO:B, cause they came from different package objects. 2021-01-03T01:33:11Z frodef: no-defun-allowed: FCGE? 2021-01-03T01:33:24Z no-defun-allowed: So you might want to have package objects collude to not create duplicate symbol objects somehow, I dunno. 2021-01-03T01:33:31Z no-defun-allowed: frodef: "First class global environment" 2021-01-03T01:34:25Z aeth: no-defun-allowed: Versioned packages are way simpler than FCGE, though. Essentially you want to inherit symbols in a new package from an old one (several libraries do this, including UIOP and defpackage-plus afaik) 2021-01-03T01:34:38Z White_Flame: PLN would allow you to have package foo-3.5: and package foo-3.6: simultaneously, but I think those canonical package versions are better handled in the .asd file than scattered around the source's defpackages & imports 2021-01-03T01:34:48Z no-defun-allowed: Gnuxie tells me that in Self and Newspeak, module imports are just assignments to slots, so you can provide whatever objects you want. But packages, querying the environment for packages, and all that introspective stuff makes it harder. 2021-01-03T01:35:15Z aeth: no-defun-allowed: Except, sometimes, you want to do one of three things: (1) remove a symbol (something deprecated got removed from the API), (2) add a symbol (by far the most common and totally safe), (3) replace a symbol (because foo.1:barfoo and foo.2:barfoo have two different implementations so they refer to two different functions) 2021-01-03T01:35:38Z no-defun-allowed: Yeah, that much could be done with diffs. That'd handle deduping symbol objects across package versions. 2021-01-03T01:35:51Z akoana joined #lisp 2021-01-03T01:36:03Z aeth: You'd basically just semvar it, with the no-version version being the latest. 2021-01-03T01:36:15Z aeth: *semver 2021-01-03T01:37:12Z aeth: To complicate things a bit, you'd want one of the symbol conflict resolution options to be "don't use the latest, use this specific version instead" 2021-01-03T01:37:42Z aeth: So if you USE my-package and it stops working because of a symbol conflict (and, yeah, USE is bad in general), then you can just use my-package.2 or whatever. 2021-01-03T01:38:25Z aeth: Someone can probably do 95% of this as a library. 2021-01-03T01:40:54Z fiddlerwoaroof: For most cases, loading the library then renaming the package Just Works 2021-01-03T01:40:57Z fiddlerwoaroof: As long as you don't have any code that relies on a package name. 2021-01-03T01:41:02Z fiddlerwoaroof: Anyways, I think using PLNs in code that ends up in Quicklisp is a Bad Idea 2021-01-03T01:41:58Z fiddlerwoaroof: Personally, I tend to distinguish "code that I might eventually put into quicklisp" from "application code" 2021-01-03T01:42:17Z fiddlerwoaroof: And only use implementation-specific features in the latter sorts of projects 2021-01-03T01:43:17Z hiroaki quit (Ping timeout: 272 seconds) 2021-01-03T01:55:23Z hiroaki joined #lisp 2021-01-03T02:04:11Z kam1 quit (Read error: Connection reset by peer) 2021-01-03T02:05:31Z kam1 joined #lisp 2021-01-03T02:06:02Z kam1 quit (Client Quit) 2021-01-03T02:09:08Z plisp joined #lisp 2021-01-03T02:10:39Z aorst joined #lisp 2021-01-03T02:12:12Z plisp quit (Client Quit) 2021-01-03T02:12:31Z mindCrime joined #lisp 2021-01-03T02:12:42Z plisp joined #lisp 2021-01-03T02:13:13Z andreyorst quit (Ping timeout: 260 seconds) 2021-01-03T02:15:06Z aorst quit (Client Quit) 2021-01-03T02:15:21Z andreyorst joined #lisp 2021-01-03T02:18:36Z KREYREN quit (Remote host closed the connection) 2021-01-03T02:18:58Z KREYREN joined #lisp 2021-01-03T02:21:50Z flazh quit (Ping timeout: 256 seconds) 2021-01-03T02:22:30Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-03T02:22:51Z matryoshka joined #lisp 2021-01-03T02:28:10Z flazh joined #lisp 2021-01-03T02:29:20Z galex-713 joined #lisp 2021-01-03T02:33:37Z semz quit (Ping timeout: 260 seconds) 2021-01-03T02:33:55Z oni_on_ion is now known as oni-on-ion 2021-01-03T02:34:37Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-03T02:34:41Z bilal_ joined #lisp 2021-01-03T02:34:51Z stzsch joined #lisp 2021-01-03T02:34:57Z matryoshka joined #lisp 2021-01-03T02:34:58Z cpape` joined #lisp 2021-01-03T02:35:04Z sm2n_ joined #lisp 2021-01-03T02:35:04Z pfdietz quit (Ping timeout: 245 seconds) 2021-01-03T02:35:06Z DGASAU`` joined #lisp 2021-01-03T02:35:55Z jonatack quit (Ping timeout: 265 seconds) 2021-01-03T02:36:06Z grobe0ba_ joined #lisp 2021-01-03T02:36:06Z docl_ joined #lisp 2021-01-03T02:36:22Z Cthulhux` joined #lisp 2021-01-03T02:36:29Z Lord_of_Life_ joined #lisp 2021-01-03T02:36:49Z cg505- joined #lisp 2021-01-03T02:37:27Z jonatack joined #lisp 2021-01-03T02:37:46Z phoe6245 joined #lisp 2021-01-03T02:38:00Z justinmcp_ joined #lisp 2021-01-03T02:38:28Z cgay_ joined #lisp 2021-01-03T02:38:28Z SumoSud0- joined #lisp 2021-01-03T02:38:36Z aeth_ joined #lisp 2021-01-03T02:38:41Z flazh1 joined #lisp 2021-01-03T02:38:47Z cross_ joined #lisp 2021-01-03T02:38:49Z elflng_ joined #lisp 2021-01-03T02:38:54Z nicktick quit (Ping timeout: 256 seconds) 2021-01-03T02:39:02Z froggey_ joined #lisp 2021-01-03T02:39:10Z Mandus_ joined #lisp 2021-01-03T02:39:19Z akoana_ joined #lisp 2021-01-03T02:39:21Z matijja``` joined #lisp 2021-01-03T02:40:24Z me_at_drewc_ca joined #lisp 2021-01-03T02:40:37Z rumbler31 quit (Remote host closed the connection) 2021-01-03T02:41:03Z akoana_ quit (Client Quit) 2021-01-03T02:41:05Z ggoes_ joined #lisp 2021-01-03T02:41:07Z leo_song_ joined #lisp 2021-01-03T02:41:13Z rumbler31 joined #lisp 2021-01-03T02:41:31Z akoana_ joined #lisp 2021-01-03T02:41:35Z emacsoma1 joined #lisp 2021-01-03T02:42:33Z zmagii_ joined #lisp 2021-01-03T02:42:51Z lonjil2 joined #lisp 2021-01-03T02:42:56Z rumbler31 quit (Remote host closed the connection) 2021-01-03T02:43:14Z rumbler31 joined #lisp 2021-01-03T02:43:52Z leo_song quit (*.net *.split) 2021-01-03T02:43:52Z Lord_of_Life quit (*.net *.split) 2021-01-03T02:43:52Z aartaka quit (*.net *.split) 2021-01-03T02:43:52Z emacsomancer quit (*.net *.split) 2021-01-03T02:43:52Z jibanes quit (*.net *.split) 2021-01-03T02:43:52Z sm2n quit (*.net *.split) 2021-01-03T02:43:52Z stzsch|2 quit (*.net *.split) 2021-01-03T02:43:52Z DGASAU` quit (*.net *.split) 2021-01-03T02:43:52Z froggey quit (*.net *.split) 2021-01-03T02:43:52Z MichaelRaskin quit (*.net *.split) 2021-01-03T02:43:52Z ggoes quit (*.net *.split) 2021-01-03T02:43:52Z fiddlerwoaroof quit (*.net *.split) 2021-01-03T02:43:52Z drewc quit (*.net *.split) 2021-01-03T02:43:52Z matijja quit (*.net *.split) 2021-01-03T02:43:52Z zmagii quit (*.net *.split) 2021-01-03T02:43:52Z cgay quit (*.net *.split) 2021-01-03T02:43:52Z Iolo quit (*.net *.split) 2021-01-03T02:43:52Z mathrick quit (*.net *.split) 2021-01-03T02:43:52Z Posterdati quit (*.net *.split) 2021-01-03T02:43:52Z lonjil quit (*.net *.split) 2021-01-03T02:43:52Z SumoSud0 quit (*.net *.split) 2021-01-03T02:43:53Z madnificent quit (*.net *.split) 2021-01-03T02:43:53Z vert2 quit (*.net *.split) 2021-01-03T02:43:53Z flazh quit (*.net *.split) 2021-01-03T02:43:53Z akoana quit (*.net *.split) 2021-01-03T02:43:53Z Jesin quit (*.net *.split) 2021-01-03T02:43:53Z vhost- quit (*.net *.split) 2021-01-03T02:43:53Z aeth quit (*.net *.split) 2021-01-03T02:43:53Z bilal__ quit (*.net *.split) 2021-01-03T02:43:53Z elflng quit (*.net *.split) 2021-01-03T02:43:53Z grobe0ba quit (*.net *.split) 2021-01-03T02:43:53Z xsperry quit (*.net *.split) 2021-01-03T02:43:53Z Mandus quit (*.net *.split) 2021-01-03T02:43:53Z phoe624 quit (*.net *.split) 2021-01-03T02:43:53Z cg505 quit (*.net *.split) 2021-01-03T02:43:53Z phantomics quit (*.net *.split) 2021-01-03T02:43:53Z cross quit (*.net *.split) 2021-01-03T02:43:53Z Cthulhux quit (*.net *.split) 2021-01-03T02:43:53Z grumble quit (*.net *.split) 2021-01-03T02:43:54Z justinmcp quit (*.net *.split) 2021-01-03T02:43:54Z cpape quit (*.net *.split) 2021-01-03T02:43:54Z docl quit (*.net *.split) 2021-01-03T02:43:54Z grobe0ba_ is now known as grobe0ba 2021-01-03T02:43:57Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-03T02:44:08Z Iolo joined #lisp 2021-01-03T02:44:10Z fiddlerwoaroof joined #lisp 2021-01-03T02:44:19Z grumble joined #lisp 2021-01-03T02:45:37Z shifty joined #lisp 2021-01-03T02:46:10Z akoana_ quit (Client Quit) 2021-01-03T02:46:14Z wxie joined #lisp 2021-01-03T02:46:45Z semz joined #lisp 2021-01-03T02:47:09Z Nilby joined #lisp 2021-01-03T02:47:12Z madnificent joined #lisp 2021-01-03T02:48:25Z akoana joined #lisp 2021-01-03T02:48:40Z jjong joined #lisp 2021-01-03T02:49:24Z vhost- joined #lisp 2021-01-03T02:49:32Z vert2 joined #lisp 2021-01-03T02:49:36Z mathrick joined #lisp 2021-01-03T02:51:04Z phantomics joined #lisp 2021-01-03T02:51:24Z jibanes joined #lisp 2021-01-03T02:53:34Z rumbler31 quit (Remote host closed the connection) 2021-01-03T03:11:22Z flazh1 quit (Ping timeout: 256 seconds) 2021-01-03T03:13:03Z flazh1 joined #lisp 2021-01-03T03:20:03Z Aurora_v_kosmose quit (Ping timeout: 240 seconds) 2021-01-03T03:20:11Z xsperry joined #lisp 2021-01-03T03:20:25Z Jeanne-Kamikaze quit (Quit: Leaving) 2021-01-03T03:24:39Z Aurora_v_kosmose joined #lisp 2021-01-03T03:26:47Z andreyorst quit (Remote host closed the connection) 2021-01-03T03:26:56Z rumbler31 joined #lisp 2021-01-03T03:31:16Z rumbler31 quit (Ping timeout: 258 seconds) 2021-01-03T03:32:51Z charlie770 joined #lisp 2021-01-03T03:33:01Z charlie770 quit (Client Quit) 2021-01-03T03:34:17Z troydm: what does PACKAGE-INFERRED-SYSTEM means in QuickLisp? 2021-01-03T03:35:07Z mfiano: https://common-lisp.net/project/asdf/asdf/The-package_002dinferred_002dsystem-extension.html 2021-01-03T03:35:54Z troydm: mfiano: thx 2021-01-03T03:39:02Z _whitelogger quit (Remote host closed the connection) 2021-01-03T03:41:10Z _whitelogger joined #lisp 2021-01-03T03:42:59Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-03T03:43:32Z Aurora_v_kosmose joined #lisp 2021-01-03T04:02:41Z Alfr_ joined #lisp 2021-01-03T04:04:39Z beach: Good morning everyone! 2021-01-03T04:05:25Z Alfr quit (Ping timeout: 268 seconds) 2021-01-03T04:06:36Z slyrus: morning beach! 2021-01-03T04:14:02Z FreeBirdLjj joined #lisp 2021-01-03T04:14:10Z FreeBirdLjj quit (Read error: Connection reset by peer) 2021-01-03T04:14:40Z scymtym quit (Ping timeout: 256 seconds) 2021-01-03T04:31:06Z charles` quit (Ping timeout: 256 seconds) 2021-01-03T04:33:42Z Jesin joined #lisp 2021-01-03T04:48:40Z Bike quit (Quit: Lost terminal) 2021-01-03T04:50:43Z cantstanya quit (Ping timeout: 240 seconds) 2021-01-03T04:54:36Z cantstanya joined #lisp 2021-01-03T04:58:53Z charles` joined #lisp 2021-01-03T05:01:24Z asarch joined #lisp 2021-01-03T05:07:23Z wxie quit (Quit: wxie) 2021-01-03T05:07:33Z wxie joined #lisp 2021-01-03T05:07:51Z refpga joined #lisp 2021-01-03T05:09:09Z KREYREN quit (Remote host closed the connection) 2021-01-03T05:09:31Z KREYREN joined #lisp 2021-01-03T05:18:10Z karlosz quit (Quit: karlosz) 2021-01-03T05:31:25Z wxie quit (Ping timeout: 264 seconds) 2021-01-03T05:31:51Z knowayback quit (Ping timeout: 265 seconds) 2021-01-03T05:34:01Z asarch quit (Quit: Leaving) 2021-01-03T05:35:11Z aeth_ is now known as aeth 2021-01-03T05:42:14Z refpga quit (Ping timeout: 268 seconds) 2021-01-03T05:48:49Z xsperry quit (Ping timeout: 264 seconds) 2021-01-03T05:54:10Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-03T05:55:02Z refpga joined #lisp 2021-01-03T06:00:00Z Misha_B left #lisp 2021-01-03T06:06:26Z gko_ joined #lisp 2021-01-03T06:13:09Z beach: frodef: See http://metamodular.com/SICL/environments.pdf for a description of first-class global environments. 2021-01-03T06:13:14Z troydm: okey this might sound like a dumb question but it seems that there are two local-projects directories when using roswell 2021-01-03T06:13:28Z troydm: am I missing something? 2021-01-03T06:14:50Z troydm: like how do I get a list of local-project directories? 2021-01-03T06:20:15Z troydm: it seems like top level local-projects directory is not part of ql:*local-project-directories* 2021-01-03T06:21:27Z gioyik_ quit (Quit: WeeChat 3.0) 2021-01-03T06:26:27Z troydm: or rather roswell adds ~/.roswell/local-projects to ASDF registry but not ql:*local-project-directories* 2021-01-03T06:26:28Z refpga quit (Ping timeout: 265 seconds) 2021-01-03T06:27:17Z elflng_ is now known as elflng 2021-01-03T06:27:22Z refpga joined #lisp 2021-01-03T06:28:48Z troydm: also one the side note which is the best readline repl for sbcl? 2021-01-03T06:28:59Z zacts joined #lisp 2021-01-03T06:29:01Z zacts quit (Client Quit) 2021-01-03T06:29:15Z troydm: I've installed linedit but not sure maybe there are better alternatives 2021-01-03T06:30:22Z birdwing joined #lisp 2021-01-03T06:30:22Z moon-child: slime 2021-01-03T06:31:29Z moon-child: failing that, I usually use rlwrap, but linedit is probably at parity with it 2021-01-03T06:32:02Z troydm: moon-child: it has tab completion 2021-01-03T06:32:33Z troydm: moon-child: I do use slime, but sometimes I start repl just to quickly check something 2021-01-03T06:32:43Z troydm: old habit 2021-01-03T06:33:05Z beach: troydm: Why would you do that if you already have SLIME running? 2021-01-03T06:34:03Z troydm: beach: ohh, well I'm still learning to use SLIME 2021-01-03T06:34:35Z thmprover quit (Quit: Up, up, and away) 2021-01-03T06:39:02Z _whitelogger quit (Remote host closed the connection) 2021-01-03T06:41:10Z _whitelogger joined #lisp 2021-01-03T06:48:53Z saganman joined #lisp 2021-01-03T06:52:37Z fiddlerwoaroof: troydm: I use linedit all the time 2021-01-03T06:52:48Z fiddlerwoaroof: Better integrated with lisp, although it has a couple bugs 2021-01-03T06:53:06Z fiddlerwoaroof: Tab complete for symbols and M-i for documenting the current symbol is pretty handy 2021-01-03T06:53:39Z troydm: yeah, I like it too 2021-01-03T06:54:14Z fiddlerwoaroof: As for "why": I occasionally use lisp on servers where I don't have emacs installed 2021-01-03T06:54:51Z fiddlerwoaroof: And, if I'm already doing stuff at the shell, sometimes it's easier just to use the REPL in the context of my current session rather than context-switching into emacs 2021-01-03T06:56:14Z Nikotiini quit (Ping timeout: 260 seconds) 2021-01-03T07:01:22Z no-defun-allowed: Although a touch convoluted, you could start SWANK on the server, then use SSH to port forward and M-x slime-connect to that. 2021-01-03T07:01:37Z fiddlerwoaroof: Linedit is pretty good 2021-01-03T07:01:53Z fiddlerwoaroof: As is the sb-aclrepl contrib 2021-01-03T07:02:17Z Nilby fails 2021-01-03T07:02:18Z Nilby left #lisp 2021-01-03T07:08:19Z v0|d quit (Remote host closed the connection) 2021-01-03T07:10:14Z Lycurgus joined #lisp 2021-01-03T07:14:28Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-03T07:41:03Z Nikotiini joined #lisp 2021-01-03T07:42:25Z rumbler31 joined #lisp 2021-01-03T07:43:45Z gutter quit (Remote host closed the connection) 2021-01-03T07:47:27Z rumbler31 quit (Ping timeout: 272 seconds) 2021-01-03T07:49:03Z chrisb joined #lisp 2021-01-03T07:49:22Z gutter joined #lisp 2021-01-03T07:54:02Z _whitelogger quit (Remote host closed the connection) 2021-01-03T07:56:10Z _whitelogger joined #lisp 2021-01-03T07:56:43Z refpga quit (Read error: Connection reset by peer) 2021-01-03T07:57:38Z refpga joined #lisp 2021-01-03T08:00:13Z orivej joined #lisp 2021-01-03T08:07:50Z narimiran joined #lisp 2021-01-03T08:09:49Z flazh1 quit (Ping timeout: 264 seconds) 2021-01-03T08:14:26Z refpga quit (Ping timeout: 264 seconds) 2021-01-03T08:14:30Z contrapunctus left #lisp 2021-01-03T08:14:56Z contrapunctus joined #lisp 2021-01-03T08:17:41Z contrapunctus left #lisp 2021-01-03T08:18:07Z contrapunctus joined #lisp 2021-01-03T08:19:57Z refpga joined #lisp 2021-01-03T08:22:10Z flazh1 joined #lisp 2021-01-03T08:24:02Z contrapunctus left #lisp 2021-01-03T08:31:22Z flazh1 quit (Ping timeout: 256 seconds) 2021-01-03T08:36:00Z charles` quit (Ping timeout: 265 seconds) 2021-01-03T08:37:03Z nullman quit (Ping timeout: 260 seconds) 2021-01-03T08:38:28Z nullman joined #lisp 2021-01-03T08:40:17Z contrapunctus joined #lisp 2021-01-03T08:44:18Z andreyorst joined #lisp 2021-01-03T08:44:57Z Lord_of_Life quit (Ping timeout: 260 seconds) 2021-01-03T08:52:17Z Lord_of_Life joined #lisp 2021-01-03T08:56:50Z equwal joined #lisp 2021-01-03T08:57:00Z v_m_v joined #lisp 2021-01-03T08:58:00Z v_m_v quit (Remote host closed the connection) 2021-01-03T08:58:25Z v_m_v joined #lisp 2021-01-03T08:58:43Z contrapunctus left #lisp 2021-01-03T08:59:10Z contrapunctus joined #lisp 2021-01-03T09:02:17Z andreyorst quit (Quit: WeeChat 3.0) 2021-01-03T09:02:59Z andreyorst joined #lisp 2021-01-03T09:06:27Z pve joined #lisp 2021-01-03T09:08:39Z jjong quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-01-03T09:08:43Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-03T09:11:40Z hendursaga joined #lisp 2021-01-03T09:15:36Z Ekho quit (Ping timeout: 268 seconds) 2021-01-03T09:22:31Z akoana left #lisp 2021-01-03T09:24:57Z flazh1 joined #lisp 2021-01-03T09:26:44Z Posterdati joined #lisp 2021-01-03T09:31:03Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-03T09:31:55Z refpga quit (Ping timeout: 246 seconds) 2021-01-03T09:33:07Z equwal quit (Quit: Lost terminal) 2021-01-03T09:33:12Z Ekho joined #lisp 2021-01-03T09:40:08Z refpga joined #lisp 2021-01-03T09:45:40Z nostoi joined #lisp 2021-01-03T09:48:47Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-03T09:48:48Z amb007 quit (Read error: Connection reset by peer) 2021-01-03T09:50:36Z amb007 joined #lisp 2021-01-03T09:52:00Z birdwing quit (Remote host closed the connection) 2021-01-03T09:52:12Z birdwing joined #lisp 2021-01-03T09:52:28Z mindCrime joined #lisp 2021-01-03T10:00:00Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-03T10:01:49Z rgherdt joined #lisp 2021-01-03T10:02:12Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-03T10:05:27Z shka_ joined #lisp 2021-01-03T10:05:43Z sauvin: in sbcl, I'm suddenly getting hit with an "undefined variable" error or warning when I try (setq a '(1 2 3 4 5)). What could be wrong? 2021-01-03T10:05:50Z phoe: sauvin: SETQ 2021-01-03T10:05:59Z phoe: toplevel SETQ in Common Lisp is undefined behavior 2021-01-03T10:06:06Z phoe: and the examples in CLHS are, sadly, making heavy use of it 2021-01-03T10:06:25Z sauvin: Yeah. Doesn't happen in gcl, just sbcl. 2021-01-03T10:06:35Z phoe: define your variables before setting them - globals via DEFVAR or DEFPARAMETER, locals via LET or LET* or the other utilities for binding 2021-01-03T10:06:48Z phoe: I can't recommeng GCL since it's been pretty much dead and non-conforming 2021-01-03T10:07:20Z phoe: s/toplevel SETQ/toplevel SETQ on undefined variables/ 2021-01-03T10:07:23Z sauvin: Yeah, well, folks in this channel about 24 hours ago told me about that, which is why I'm asking. Worked in gcl, ain't working in sbcl, wtf!? 2021-01-03T10:09:09Z phoe: mostly because SBCL is becoming more and more strict as of late 2021-01-03T10:09:12Z shifty quit (Ping timeout: 260 seconds) 2021-01-03T10:09:25Z phoe: as in, it sets off fireworks for more and more non-conforming code 2021-01-03T10:09:26Z amb007 quit (Read error: Connection reset by peer) 2021-01-03T10:10:01Z phoe: it's a good thing on one hand, and on the other, it has caused a fair share of breakages in libraries that were working before but then SBCL found ANSI CL conformance bugs in them 2021-01-03T10:10:32Z sauvin: Oh, wonderful. 2021-01-03T10:10:36Z amb007 joined #lisp 2021-01-03T10:10:46Z phoe: and then the breakages get fixed after the initial anguish 2021-01-03T10:10:50Z phoe: and we end up with better code overall. 2021-01-03T10:11:40Z sauvin: Well, see, this was one of the reasons the folks here gave yesterday for me to move to sbcl: more conformant to the standard. 2021-01-03T10:11:59Z phoe: and much more eager to warn the programmer 2021-01-03T10:12:00Z sauvin: Anyway, yeah, using let solved my problem. 2021-01-03T10:13:12Z phoe: the question with SETQ on symbols always is: where is this particular symbol defined to be a variable? 2021-01-03T10:13:18Z phoe: if it's defined nowhere, SBCL will point that out 2021-01-03T10:13:35Z froggey_ is now known as froggey 2021-01-03T10:13:36Z beach: sauvin: It's kind of the other way around. It "works" in SBCL, since it signals a warning, and it does not "work" in GCL because it lets a detectable undefined situation pass silently. 2021-01-03T10:14:07Z phoe: beach: actually, it's undefined behavior, so an implementation is free *not* to warn 2021-01-03T10:14:23Z beach: Hence "works". 2021-01-03T10:14:47Z beach: ... and "kind of". 2021-01-03T10:14:56Z phoe: so both SBCL and GCL/ECL/CCL/ABCL behavior groups are acceptable 2021-01-03T10:15:05Z phoe: ;; which doesn't mean they are desirable 2021-01-03T10:15:16Z beach: For some value of "acceptable", sure. 2021-01-03T10:16:04Z sauvin: Any way to turn that particular warning off? 2021-01-03T10:16:21Z phoe: the easiest: don't use toplevel SETQ 2021-01-03T10:16:23Z beach: You absolutely don't want to do that. 2021-01-03T10:16:25Z moon-child: why not define the variable properly? (defparameter a '(1 2 3 4 5)) 2021-01-03T10:17:17Z beach: sauvin: You should not rely on undefined behavior. 2021-01-03T10:17:33Z sauvin: Because I don't understand it. I'm just now learning how to assign variables in lisp, and it's a lot more complex than in perl, and it's more complex than in the AutoLISP that I used to use heavily but haven't seen in twenty years. 2021-01-03T10:18:12Z no-defun-allowed: You are going to understand it even less, if you attempt to intentionally break it. 2021-01-03T10:18:30Z sauvin: So, anyway, let works at the top level. I'm a big fan of lexical variables anyway. I avoid globals wherever I can. 2021-01-03T10:18:41Z beach: sauvin: How is (setq ) more complex than = ? 2021-01-03T10:18:50Z sauvin: How am I intentionally breaking anything using let? 2021-01-03T10:19:02Z phoe: using let, you aren't 2021-01-03T10:19:09Z phoe: using toplevel setq, you might be 2021-01-03T10:19:29Z sauvin: beach: in perl, "my $thing = 'stuff'" works regardless of where it appears. 2021-01-03T10:19:39Z no-defun-allowed: You are not breaking anything with LET. You're also not really breaking things with SETQ on undefined variables on its own, but attempting to dispose of the warnings your implementation makes for using SETQ in that way is breaking it. 2021-01-03T10:19:44Z moon-child: sauvin: setq is analogous to assignment, not declaration 2021-01-03T10:19:44Z beach: sauvin: I am sorry to hear that. 2021-01-03T10:19:44Z phoe: yep, not in Lisp 2021-01-03T10:19:51Z sauvin: Hey: sbcl doesn't like top-level setq, I don't use it. Easy peasy. 2021-01-03T10:19:59Z no-defun-allowed: my $thing = ... would be like wrapping the rest of the body in (let ((thing ...)) ...) 2021-01-03T10:20:04Z moon-child: $thing = 'stuff' ←→ setq. my $thing = 'stuff' ←→ defparameter/let 2021-01-03T10:20:20Z phoe: declaring local variables in Lisp is done via LET and LET* and some other similar operators 2021-01-03T10:20:51Z beach: moon-child: Oh, good point. 2021-01-03T10:20:54Z sauvin: moon-child, a hint from an old perl guy: ALWAYS use strict. 2021-01-03T10:21:16Z no-defun-allowed: However, note that DEFVAR and DEFPARAMETER are always used to declare special variables, which are dynamically scoped. I think Perl is another one of the few languages with dynamically scoped variables. 2021-01-03T10:21:21Z sauvin: defparameter can be used anywhere? 2021-01-03T10:21:27Z phoe: sauvin: yes, but shouldn't 2021-01-03T10:21:44Z phoe: it would define global variables from inside a local context 2021-01-03T10:21:48Z no-defun-allowed: So they aren't exactly globals per se. 2021-01-03T10:22:03Z no-defun-allowed: Yes, DEFUN, DEFPARAMETER and DEFVAR usually don't do what you want them to do, if you put them inside a function body. 2021-01-03T10:22:08Z sauvin: perl DOES have dynamically scoped variables, but there are very few circumstances under which their use encouraged. 2021-01-03T10:22:21Z phoe: see, it's similar in Lisp 2021-01-03T10:22:37Z phoe: you usually don't want dynamic variables, unless you *do* want them 2021-01-03T10:22:49Z no-defun-allowed: That is not so far off in Lisp; you use lexically scoped variables by default, but dynamic scoping is useful for cross-cutting "customization" of things. 2021-01-03T10:22:53Z phoe: for true non-dynamic globals, there's https://github.com/lmj/global-vars 2021-01-03T10:23:21Z sauvin: Yes, and i perl, I'd have to have some pretty convincing reason to use 'local', which means 'dynamic'. 2021-01-03T10:24:39Z sauvin: I'll look at that later. For now, many years spent swearing at the machine (and destroying more than one keyboard in the process), I tend to disfavour global variables. I just wind up tripping over them. 2021-01-03T10:25:02Z no-defun-allowed: For example, you can re-bind *standard-output* to send printed text somewhere else (provided it is printed to *standard-output*). 2021-01-03T10:26:28Z sauvin: Had to do that already. *default-external-format* defaults to utf-8, but trying to read a couple of files I have caused sbcl to puke, so I had to change that variable to ISO-mumble. 2021-01-03T10:26:52Z phoe: sauvin: sure, then use LET and friends as much as possible 2021-01-03T10:27:10Z no-defun-allowed: But I use a fair few global variables in my work, mostly to put weak hash tables somewhere, so that I can de-duplicate objects I use. 2021-01-03T10:27:28Z phoe: and use dynamic variables either for passing context information along your call stack, and almost only for that. 2021-01-03T10:28:28Z sauvin: I tend to prefer passing parameters. Dynamic variables (in my other-language experience) are just another morass. 2021-01-03T10:28:43Z sauvin: Just like globals. 2021-01-03T10:29:05Z phoe: most of the time they are, but they also allow for nice functionalities 2021-01-03T10:29:35Z phoe: (with-output-to-string (*standard-output*) ...) hijacks the output stream and returns everything that was printed as a string 2021-01-03T10:30:20Z sauvin: Is that something like $string = sprintf ( ... ) ? 2021-01-03T10:30:24Z phoe: (let ((*package* (find-package :keyword))) (prin1 x)) prints X with all symbols being fully qualified, so with all package prefixes 2021-01-03T10:30:31Z phoe: sauvin: not exactly 2021-01-03T10:30:37Z phoe: ... is allowed to be arbitrary code 2021-01-03T10:30:53Z phoe: it can contain functions which call functions which call functions which print to standard output 2021-01-03T10:31:16Z phoe: and, no, they aren't printing to standard output anymore; they're printing into the stream that collects stuff into a string 2021-01-03T10:31:30Z oni-on-ion: just symbols 2021-01-03T10:31:49Z sauvin: $string = sprintf ($fmt, $func1->($func2->($func3->($crap)))); 2021-01-03T10:32:52Z jonatack quit (Ping timeout: 260 seconds) 2021-01-03T10:32:52Z sauvin: Not sure how much I'm looking forward to lisp's packages, modules and OO. :\ 2021-01-03T10:32:55Z phoe: (defun foo () (princ :asdf)) (with-output-to-string (*standard-output*) (princ :qwer) (foo) (princ :zxcv)) 2021-01-03T10:32:56Z no-defun-allowed: I am aware that Haskell (or GHC maybe, who can tell the difference) has dynamic binding, so they're not totally useless. 2021-01-03T10:33:00Z joshu joined #lisp 2021-01-03T10:33:06Z phoe: ;; => "QWERASDFZXCV" 2021-01-03T10:33:15Z phoe: that's what it looks like in CL 2021-01-03T10:33:30Z phoe: the function FOO prints to standard output 2021-01-03T10:33:39Z no-defun-allowed: Packages and OOP in Lisp are pretty fun. 2021-01-03T10:33:41Z phoe: so we redirect the standard output elsewhere in code that calls FOO, and that works 2021-01-03T10:34:44Z Colleen quit (Remote host closed the connection) 2021-01-03T10:34:58Z jonatack joined #lisp 2021-01-03T10:35:12Z jonatack quit (Client Quit) 2021-01-03T10:35:30Z heisig joined #lisp 2021-01-03T10:35:51Z no-defun-allowed: If you think you aren't going to have fun learning something, it is going to be hard to have fun learning it. 2021-01-03T10:38:15Z beach keeps his thoughts to himself. 2021-01-03T10:39:26Z makomo joined #lisp 2021-01-03T10:39:34Z no-defun-allowed: At the very least, objects in Common Lisp are very different to that in other languages, such as Java and C++, and even different to that in the "real OOP" languages like Smalltalk and Self. 2021-01-03T10:40:01Z no-defun-allowed: So past struggles in those paradigms may or may not be representative of one's use of CLOS. 2021-01-03T10:43:16Z scymtym joined #lisp 2021-01-03T10:47:11Z frost-lab quit (Quit: Connection closed) 2021-01-03T10:48:39Z joshu quit (Remote host closed the connection) 2021-01-03T10:49:18Z jonatack joined #lisp 2021-01-03T10:51:16Z vaporatorius quit (Ping timeout: 256 seconds) 2021-01-03T10:57:02Z _whitelogger quit (Remote host closed the connection) 2021-01-03T10:57:51Z Colleen joined #lisp 2021-01-03T10:57:51Z Colleen quit (Remote host closed the connection) 2021-01-03T10:58:08Z ark quit (Disconnected by services) 2021-01-03T10:58:17Z ark joined #lisp 2021-01-03T10:58:21Z Colleen joined #lisp 2021-01-03T10:58:21Z Colleen quit (Remote host closed the connection) 2021-01-03T10:59:11Z _whitelogger joined #lisp 2021-01-03T11:00:13Z jonatack quit (Ping timeout: 264 seconds) 2021-01-03T11:00:20Z Colleen joined #lisp 2021-01-03T11:00:20Z Colleen quit (Remote host closed the connection) 2021-01-03T11:01:43Z jonatack joined #lisp 2021-01-03T11:01:50Z Colleen joined #lisp 2021-01-03T11:01:50Z Colleen quit (Remote host closed the connection) 2021-01-03T11:02:50Z Colleen joined #lisp 2021-01-03T11:02:50Z Colleen quit (Remote host closed the connection) 2021-01-03T11:03:53Z SpaceIgor2075 joined #lisp 2021-01-03T11:07:13Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-03T11:13:36Z v88m quit (Ping timeout: 240 seconds) 2021-01-03T11:15:23Z jonatack quit (Quit: jonatack) 2021-01-03T11:15:31Z okflo joined #lisp 2021-01-03T11:15:41Z jonatack joined #lisp 2021-01-03T11:15:43Z chrisb left #lisp 2021-01-03T11:18:48Z Lycurgus quit (Quit: Exeunt) 2021-01-03T11:20:00Z Colleen joined #lisp 2021-01-03T11:20:00Z Colleen quit (Remote host closed the connection) 2021-01-03T11:25:23Z nostoi quit (Quit: Verlassend) 2021-01-03T11:26:41Z igemnace joined #lisp 2021-01-03T11:27:20Z igemnace quit (Client Quit) 2021-01-03T11:34:09Z Colleen joined #lisp 2021-01-03T11:34:09Z Colleen quit (Remote host closed the connection) 2021-01-03T11:35:23Z beach quit (Remote host closed the connection) 2021-01-03T11:36:09Z Colleen joined #lisp 2021-01-03T11:36:09Z Colleen quit (Remote host closed the connection) 2021-01-03T11:39:44Z skapata quit (Remote host closed the connection) 2021-01-03T11:40:00Z beach joined #lisp 2021-01-03T11:41:42Z vaporatorius joined #lisp 2021-01-03T11:41:42Z vaporatorius quit (Changing host) 2021-01-03T11:41:42Z vaporatorius joined #lisp 2021-01-03T11:41:55Z vegansbane6 joined #lisp 2021-01-03T11:44:08Z random-nick joined #lisp 2021-01-03T11:45:02Z frodef` joined #lisp 2021-01-03T11:46:42Z dhil joined #lisp 2021-01-03T11:46:43Z shifty joined #lisp 2021-01-03T11:46:58Z frodef quit (Ping timeout: 272 seconds) 2021-01-03T11:48:10Z Colleen joined #lisp 2021-01-03T11:48:11Z Colleen quit (Remote host closed the connection) 2021-01-03T11:50:48Z hiroaki quit (Remote host closed the connection) 2021-01-03T11:51:01Z contrapunctus left #lisp 2021-01-03T11:51:10Z Colleen joined #lisp 2021-01-03T11:51:10Z Colleen quit (Remote host closed the connection) 2021-01-03T11:52:11Z edgar-rft joined #lisp 2021-01-03T11:52:23Z hiroaki joined #lisp 2021-01-03T11:54:02Z frgo quit (Remote host closed the connection) 2021-01-03T11:54:13Z refpga quit (Ping timeout: 264 seconds) 2021-01-03T11:54:29Z frgo joined #lisp 2021-01-03T11:55:05Z refpga joined #lisp 2021-01-03T11:58:10Z Colleen joined #lisp 2021-01-03T11:58:10Z Colleen quit (Remote host closed the connection) 2021-01-03T11:58:58Z liberliver joined #lisp 2021-01-03T11:59:54Z contrapunctus joined #lisp 2021-01-03T12:00:08Z Colleen joined #lisp 2021-01-03T12:00:08Z Colleen quit (Remote host closed the connection) 2021-01-03T12:00:34Z liberliver quit (Client Quit) 2021-01-03T12:02:09Z surabax joined #lisp 2021-01-03T12:11:07Z Colleen joined #lisp 2021-01-03T12:12:42Z joshcom joined #lisp 2021-01-03T12:16:23Z flazh1 quit (Ping timeout: 260 seconds) 2021-01-03T12:22:55Z flazh1 joined #lisp 2021-01-03T12:34:17Z kaftejiman joined #lisp 2021-01-03T12:41:32Z contrapunctus left #lisp 2021-01-03T12:46:46Z contrapunctus joined #lisp 2021-01-03T12:55:48Z contrapunctus left #lisp 2021-01-03T12:55:59Z ralt joined #lisp 2021-01-03T12:56:13Z contrapunctus joined #lisp 2021-01-03T13:08:18Z v_m_v quit (Remote host closed the connection) 2021-01-03T13:10:52Z heisig: If I had a nickel for every bug I introduced because I closed over a LOOP variable, thinking it would create a fresh closure for each iteration, I'd have have two nickels. Which isn't a lot, but it's weird that it happened twice. 2021-01-03T13:12:43Z generationhex joined #lisp 2021-01-03T13:18:49Z surabax_ joined #lisp 2021-01-03T13:21:43Z surabax quit (Ping timeout: 260 seconds) 2021-01-03T13:26:29Z joshcom quit (Quit: Leaving) 2021-01-03T13:26:32Z Bike joined #lisp 2021-01-03T13:28:36Z lucasb joined #lisp 2021-01-03T13:29:30Z surabax_ is now known as surabax 2021-01-03T13:48:49Z orivej quit (Ping timeout: 246 seconds) 2021-01-03T13:51:52Z contrapunctus left #lisp 2021-01-03T13:52:10Z contrapunctus joined #lisp 2021-01-03T13:55:21Z mrios22 left #lisp 2021-01-03T13:56:33Z isBEKaml joined #lisp 2021-01-03T13:56:50Z mrios22 joined #lisp 2021-01-03T13:59:57Z Colleen quit (Quit: Colleen) 2021-01-03T14:00:44Z Colleen joined #lisp 2021-01-03T14:13:14Z sauvin quit (Ping timeout: 256 seconds) 2021-01-03T14:14:26Z oxum quit (Quit: Leaving...) 2021-01-03T14:15:15Z shka_ quit (Quit: Konversation terminated!) 2021-01-03T14:20:12Z shka_ joined #lisp 2021-01-03T14:20:13Z amb007 quit (Read error: Connection reset by peer) 2021-01-03T14:20:30Z amb007 joined #lisp 2021-01-03T14:22:50Z frodef` quit (Ping timeout: 264 seconds) 2021-01-03T14:22:50Z amb007 quit (Read error: Connection reset by peer) 2021-01-03T14:23:19Z hiroaki quit (Ping timeout: 268 seconds) 2021-01-03T14:23:30Z amb007 joined #lisp 2021-01-03T14:27:04Z luckless quit (Remote host closed the connection) 2021-01-03T14:29:50Z xsperry joined #lisp 2021-01-03T14:30:04Z shifty quit (Ping timeout: 256 seconds) 2021-01-03T14:30:44Z shifty joined #lisp 2021-01-03T14:37:22Z gareppa joined #lisp 2021-01-03T14:39:16Z gareppa quit (Remote host closed the connection) 2021-01-03T14:45:09Z failproofshark joined #lisp 2021-01-03T14:54:54Z rumbler31 joined #lisp 2021-01-03T14:54:57Z pfdietz joined #lisp 2021-01-03T14:59:05Z shifty quit (Ping timeout: 240 seconds) 2021-01-03T14:59:37Z rumbler31 quit (Ping timeout: 264 seconds) 2021-01-03T15:00:10Z shifty joined #lisp 2021-01-03T15:04:47Z waleee-cl joined #lisp 2021-01-03T15:11:16Z frodef` joined #lisp 2021-01-03T15:14:29Z v_m_v joined #lisp 2021-01-03T15:16:20Z generationhex quit 2021-01-03T15:19:37Z notzmv joined #lisp 2021-01-03T15:27:10Z refpga quit (Read error: Connection reset by peer) 2021-01-03T15:28:28Z refpga joined #lisp 2021-01-03T15:34:58Z shifty quit (Ping timeout: 272 seconds) 2021-01-03T15:40:14Z makomo quit (Ping timeout: 264 seconds) 2021-01-03T15:47:34Z v88m joined #lisp 2021-01-03T15:54:53Z bitmapper joined #lisp 2021-01-03T15:55:00Z isBEKaml quit (Quit: leaving) 2021-01-03T15:55:43Z ralt quit (Quit: Connection closed for inactivity) 2021-01-03T15:56:41Z pfdietz: phoe: this is exercising the mutation tester, sanding off rough spots exposed by applying it to "real" code. 2021-01-03T15:56:50Z phoe: pfdietz: yes, I have guessed 2021-01-03T15:57:43Z phoe: thanks for the PR! 2021-01-03T15:58:25Z frodef` quit (Ping timeout: 264 seconds) 2021-01-03T15:58:36Z phoe: how are other projects faring in comparison? 2021-01-03T15:59:49Z pfdietz: Just starting this round. split-sequence looks good, no real bugs found so far, just some cleanliness tweaking. 2021-01-03T16:00:06Z phoe: was the (unless (<= start end) ...) a bug though? 2021-01-03T16:00:23Z pfdietz: Well, ok, one bug. 2021-01-03T16:00:27Z phoe: yes 2021-01-03T16:00:34Z phoe: (split-sequence:split-sequence 0 (list 1 0 2 0 3 0 4) :start 2 :end 0) is capable of blowing the heap 2021-01-03T16:01:42Z pfdietz: I applied it to fset sometime last year and found a number of problems, even in code that had been covered. 2021-01-03T16:02:21Z KREYREN quit (Remote host closed the connection) 2021-01-03T16:02:21Z ech quit (Write error: Connection reset by peer) 2021-01-03T16:02:22Z cantstanya quit (Write error: Connection reset by peer) 2021-01-03T16:02:22Z madage quit (Write error: Connection reset by peer) 2021-01-03T16:02:22Z gxt quit (Write error: Connection reset by peer) 2021-01-03T16:02:22Z Aurora_v_kosmose quit (Write error: Connection reset by peer) 2021-01-03T16:02:51Z pfdietz: But, as I said, this is more for shaking down the tester. I'm going to have a set of recommendations for testing framework writers too, to make their tests more useful here. 2021-01-03T16:03:09Z pfdietz: For example: an option to stop testing as soon as one failure is detected. 2021-01-03T16:04:19Z phoe: yes, this sounds very nice 2021-01-03T16:04:28Z phoe: so the issue can be fixed and then more fuzzing can happen 2021-01-03T16:04:37Z phoe: so unnecessary duplicates don't happen. 2021-01-03T16:04:42Z gko_ quit (Ping timeout: 256 seconds) 2021-01-03T16:05:01Z pfdietz: In this case, because once I kill a mutant I want to stop testing. No sense killing it again and again. 2021-01-03T16:05:10Z phoe: yes 2021-01-03T16:05:55Z pfdietz: Also, I would like to be able to extract a subset of a test suite (say, just the tests that somewhere call function FOO) and just run those. No sense running tests that don't touch a mutated function. 2021-01-03T16:06:22Z phoe: oh! can you do that automatically? tree-walking? code-walking? 2021-01-03T16:07:00Z pfdietz: It's easy to see which tests call FOO: instrument FOO, run the test suite. This assumes the tests have set some special variable that indicates which individual test is being run. 2021-01-03T16:07:32Z pfdietz: (setf (symbol-function 'foo) (instrument-it (symbol-function 'foo))) 2021-01-03T16:07:33Z phoe: I assume you also could try to call Dissect and figure that out from the call stack, somehow... but, yes 2021-01-03T16:07:52Z ralt joined #lisp 2021-01-03T16:08:04Z ech joined #lisp 2021-01-03T16:08:17Z gxt joined #lisp 2021-01-03T16:08:22Z pfdietz: Not sure that would work on generic functions, though. Maybe an around method, but what if one already exists. 2021-01-03T16:08:42Z Aurora_v_kosmose joined #lisp 2021-01-03T16:09:43Z cantstanya joined #lisp 2021-01-03T16:10:04Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-03T16:11:03Z Aurora_v_kosmose joined #lisp 2021-01-03T16:11:30Z madage joined #lisp 2021-01-03T16:11:47Z phoe: why wouldn't it work? 2021-01-03T16:11:48Z _death: with such a who-calls database (kinda like screamer maintains) you could have relevant tests running automatically after redefining a function.. 2021-01-03T16:12:12Z phoe: I assume you can always SETF FDEFINITION with some sorta funcallable instance that then calls the original FDEFINITION 2021-01-03T16:12:42Z phoe: or even with a closure that rebinds a variable and calls the closed-over function. 2021-01-03T16:13:32Z pfdietz: Suppose the code dynamically adds new methods? 2021-01-03T16:14:12Z pfdietz: No big deal though; in those cases just conservatively run all the tests. 2021-01-03T16:14:33Z phoe: oh, yes, I see 2021-01-03T16:16:02Z luckless joined #lisp 2021-01-03T16:16:14Z Krystof joined #lisp 2021-01-03T16:18:05Z __jrjsmrtn__ quit (Ping timeout: 240 seconds) 2021-01-03T16:21:08Z __jrjsmrtn__ joined #lisp 2021-01-03T16:29:34Z _death: sbcl has sb-introspect and others have their own interfaces (and then there's xref.lisp).. (swank:xref :callers "foo:bar") seems to work, but not a very convenient interface for CL programs 2021-01-03T16:29:46Z lotuseater joined #lisp 2021-01-03T16:30:43Z pfdietz: Anyway, what I was aiming for here was API in test frameworks to make this useful (running subsets of test, and knowing which test is running). 2021-01-03T16:31:52Z refpga quit (Remote host closed the connection) 2021-01-03T16:32:04Z refpga joined #lisp 2021-01-03T16:32:05Z refpga quit (Read error: Connection reset by peer) 2021-01-03T16:33:27Z renzhi joined #lisp 2021-01-03T16:38:30Z orivej joined #lisp 2021-01-03T16:41:03Z Colleen quit (Quit: Colleen) 2021-01-03T16:41:43Z Colleen joined #lisp 2021-01-03T16:41:43Z cantstanya quit (Ping timeout: 240 seconds) 2021-01-03T16:45:56Z cantstanya joined #lisp 2021-01-03T16:45:56Z frodef` joined #lisp 2021-01-03T16:47:25Z failproofshark quit (Quit: Lost terminal) 2021-01-03T16:47:45Z makomo joined #lisp 2021-01-03T16:50:37Z frodef` quit (Ping timeout: 264 seconds) 2021-01-03T16:54:35Z saganman quit (Quit: WeeChat 1.6) 2021-01-03T17:01:14Z skapata joined #lisp 2021-01-03T17:01:35Z _death: with a little patching the slime xref browser now works reasonably on sbcl 2021-01-03T17:06:02Z renzhi quit (Ping timeout: 264 seconds) 2021-01-03T17:08:27Z vutral joined #lisp 2021-01-03T17:14:29Z Colleen quit (Quit: Colleen) 2021-01-03T17:14:44Z Xach: oh lord, local-time is broken? 2021-01-03T17:15:03Z Xach: sbcl strikes again 2021-01-03T17:15:12Z luckless quit (Quit: luckless) 2021-01-03T17:15:14Z Colleen joined #lisp 2021-01-03T17:15:53Z luckless joined #lisp 2021-01-03T17:16:37Z Xach: i don't quite understand the location of the warning from http://report.quicklisp.org/2021-01-03/failure-report/local-time.html#local-time 2021-01-03T17:18:20Z Xach: ah, i see 2021-01-03T17:18:28Z Xach: https://github.com/dlowe-net/local-time/blob/master/src/local-time.lisp#L399 i think 2021-01-03T17:19:39Z _death: yeah.. looks like it tries to dolist on a vector 2021-01-03T17:23:24Z aeth: A fun error I've been getting is when SBCL 2.0.2 (in e.g. Gitlab CI) STYLE-WARNINGs that the implicit return value of NIL in a COND with no default clause is not of some numeric type that the rest of the code expects. But SBCL 2.0.8, which I actually use (and yes, I should upgrade), is a bit smarter and complains about deleting unreachable code in those unreachable, literally-impossible default branches. 2021-01-03T17:23:26Z Nilby joined #lisp 2021-01-03T17:24:13Z hiroaki joined #lisp 2021-01-03T17:24:48Z aeth: I suppose I should have an EFOO and CFOO version (like ECASE and CCASE) to those macros that generate CONDs so that the default branch is an error instead, since if you make it an error, it won't complain... except about deleting unreachable code, which can be safely hidden in a "(LOCALLY (DECLARE #+SBCL" with the right declaration. 2021-01-03T17:25:04Z pfdietz: Turn the last clause ( . ) into (t (assert ) . )? 2021-01-03T17:25:14Z orivej quit (Ping timeout: 264 seconds) 2021-01-03T17:25:33Z Xach file bug 2021-01-03T17:26:24Z phoe: SBCL: the greatest bane of lisp programmers and maintainers since CMU CL 2021-01-03T17:26:33Z pfdietz: I plan to use these warnings in the mutation tester. If I want to substitute Y for X, I can insert a (unless (eql x y) ...) and if it complains about unreachable code, I know that's an equivalent mutant. 2021-01-03T17:26:58Z phoe: if you enjoy lisp compilers that don't yell at you for things, you definitely shouldn't try sbcl 2021-01-03T17:27:13Z Nilby: Is there way to get sldb to automatically keep picking a restart? 2021-01-03T17:27:40Z phoe: automatically? like, in a loop? 2021-01-03T17:28:07Z Nilby: Yes, like next time it gets the same error. 2021-01-03T17:28:15Z phoe: I'd do that with handler-bind over invoke-restart around the signaling form in the REPL 2021-01-03T17:28:25Z phoe: but I don't know a SLDB solution, it any 2021-01-03T17:28:51Z hiroaki quit (Ping timeout: 272 seconds) 2021-01-03T17:30:46Z Nilby: Hmmm. I was hoping to do in without forethought. Like an easy way to blast through encoding errors. 2021-01-03T17:31:33Z orivej joined #lisp 2021-01-03T17:32:11Z phoe: handler-bind over invoke-restart sounds the best for me 2021-01-03T17:34:01Z SpaceIgor2075: I finished reading A Complete Idiot's Guide to Common Lisp Packages and I feel like an incomplete idiot 2021-01-03T17:34:13Z Nilby: phoe: Thanks. 2021-01-03T17:36:07Z rogersm joined #lisp 2021-01-03T17:37:28Z SpaceIgor2075: So, to make a new package, in newpackage.lisp I should write something like: (defpackage newpackage :export '("new-stuff")) (in-package newpackage) (defun newstuff () "New Stuff!!") 2021-01-03T17:37:37Z SpaceIgor2075: Did I get it right? 2021-01-03T17:37:58Z jurov joined #lisp 2021-01-03T17:41:12Z jurov_ quit (Ping timeout: 265 seconds) 2021-01-03T17:42:29Z Jeanne-Kamikaze joined #lisp 2021-01-03T17:42:42Z izh_ joined #lisp 2021-01-03T17:44:12Z sauvin joined #lisp 2021-01-03T17:54:07Z mindCrime joined #lisp 2021-01-03T17:54:11Z notzmv quit (Read error: No route to host) 2021-01-03T17:55:34Z notzmv joined #lisp 2021-01-03T17:56:55Z Nilby: SpaceIgor2075: pretty close, but I would say: (defpackage :newpackage (:use :cl) (:export #:new-stuff)) (in-package :newpackage) 2021-01-03T18:05:30Z phoe: SpaceIgor2075: DEFPACKAGE options are not quoted, and remember that strings respect case whereas symbols, by default, don't 2021-01-03T18:07:23Z izh_ quit (Quit: Leaving) 2021-01-03T18:12:34Z sauvin quit (Read error: Connection reset by peer) 2021-01-03T18:13:30Z hendursaga joined #lisp 2021-01-03T18:16:37Z sauvin joined #lisp 2021-01-03T18:21:46Z hnOsmium0001 joined #lisp 2021-01-03T18:22:01Z SpaceIgor2075: phoe: 1. why is :cl used instead of 'cl? 2. (:export #:new-stuff) has a # because new-stuff is a function, am i right? 2021-01-03T18:22:23Z phoe: SpaceIgor2075: actually the answer to both questions is one and the same 2021-01-03T18:22:34Z phoe: because of how Lisp works, the reader works before code is compiled 2021-01-03T18:22:56Z phoe: and writing FOO causes the reader to intern the symbol named "FOO" in the current package 2021-01-03T18:23:33Z phoe: when you evaluate a DEFPACKAGE, this can happen in literally any package, because usually only after a package is defined you use IN-PACKAGE to switch into it 2021-01-03T18:23:53Z phoe: so a DEFPACKAGE form that has unqualified symbols like FOO in it can intern unnecessary symbols into other packages. 2021-01-03T18:24:06Z phoe: so there are three ways to fix this issue 2021-01-03T18:24:14Z phoe: 1) :foo 2) #:foo 3) "FOO" 2021-01-03T18:24:26Z phoe: option 1) is to use keywords, which interns symbols into the KEYWORD package 2021-01-03T18:24:51Z phoe: which kiiinda sidesteps the problem but not really, because now symbols are interned into the KEYWORD package, which can produce unnecessary keywords 2021-01-03T18:25:11Z bluejaypop joined #lisp 2021-01-03T18:25:15Z phoe: option 3) is to use strings, which is permissible, but has issues if someone uses a different readtable case than the standard, upcasing one 2021-01-03T18:25:34Z phoe: option 2) is to use packageless symbols, which are interned nowhere 2021-01-03T18:26:01Z phoe: and I personally suggest to use #:foo for everything in DEFPACKAGE, including imports and uses and exports and package-local nicknames 2021-01-03T18:26:28Z phoe: so (defpackage #:newpackage (:use #:cl) (:export #:new-stuff)) (in-package #:newpackage) 2021-01-03T18:28:58Z SpaceIgor2075: phoe: thanks. So, #:stuff is equivalent to (make-symbol "STUFF")? 2021-01-03T18:29:07Z Nilby: phoe is such a great explainer, maybe should write a book. ;-) 2021-01-03T18:29:36Z phoe: SpaceIgor2075: almost equivalent 2021-01-03T18:29:43Z phoe: it's equivalent to #.(make-symbol "STUFF") 2021-01-03T18:29:47Z phoe: the #. denotes that it's done at read-time 2021-01-03T18:29:50Z phoe: Nilby: :( 2021-01-03T18:29:54Z phoe: again? come on 2021-01-03T18:30:18Z sauvin: What book did you write? 2021-01-03T18:30:21Z SpaceIgor2075: phoe: What's the name of the book? 2021-01-03T18:30:23Z _death: An Incomplete Idiot's Guide To CL Packages 2021-01-03T18:30:34Z phoe: _death: I burst into laughter, thank you 2021-01-03T18:30:37Z phoe: minion: tell sauvin about tclcs 2021-01-03T18:30:40Z minion: Sorry, I couldn't find anything in the database for ``tclcs''. 2021-01-03T18:30:48Z phoe: >:( 2021-01-03T18:30:51Z sauvin: tcl!? 2021-01-03T18:30:54Z sauvin runs away 2021-01-03T18:31:16Z SpaceIgor2075: tclhs? 2021-01-03T18:31:31Z phoe: minion: tell sauvin about tclcs 2021-01-03T18:31:31Z minion: sauvin: tclcs: The Common Lisp Condition System, https://www.apress.com/us/book/9781484261330 2021-01-03T18:31:33Z phoe: there 2021-01-03T18:33:34Z sauvin: Bookmarked. When I understand lisp a little better, I gonna grab that book. 2021-01-03T18:33:42Z phoe: thanks, hope that it serves you well 2021-01-03T18:34:48Z phoe: it seems that I've achieved two things with this book, one intended, one accidental 2021-01-03T18:35:12Z SpaceIgor2075: CL seems to be quite deep. Are there any books dedicated to other programming languages' condition systems? 2021-01-03T18:35:12Z phoe: the intended one was to write about the ideas, implementation, and use cases of the condition system 2021-01-03T18:35:42Z SpaceIgor2075: Or is it specific to CL that you can write a whole book on it's condition system? 2021-01-03T18:35:59Z phoe: the accidental one: I seem to have described how to implement a non-trivial piece of Common Lisp code, bit by bit, while testing it heavily in the REPL 2021-01-03T18:36:10Z phoe: SpaceIgor2075: other languages don't have condition systems in general 2021-01-03T18:36:18Z phoe: their exception handling routines are usually simpler, much simpler 2021-01-03T18:36:32Z phoe: one of my online lisp talks describes this a little 2021-01-03T18:36:57Z phoe: https://www.youtube.com/watch?v=V4P9lFK79hQ the first part 2021-01-03T18:37:53Z Nilby: If we just copy the irc logs and throw a few headings on, i feel like we'd have like 2 more phoe books pretty quick. 2021-01-03T18:38:20Z lucasb quit (Quit: Connection closed for inactivity) 2021-01-03T18:38:32Z sauvin: What, in a nutshell, _is_ the condition system? 2021-01-03T18:38:44Z SpaceIgor2075: Nilby: phoe may have a blog 2021-01-03T18:39:43Z v_m_v quit (Remote host closed the connection) 2021-01-03T18:39:59Z v_m_v joined #lisp 2021-01-03T18:41:04Z phoe: sauvin: a system of handling special situations happening in code, including errors 2021-01-03T18:41:11Z phoe: SpaceIgor2075: I do have a blog but it's not really populated 2021-01-03T18:41:29Z phoe: that idea of scraping IRC logs does sound kinda nice, when I think about it... 2021-01-03T18:42:23Z sauvin: I should imagine that if the S/N ratio here is high enough, browsing the logs would be a great tool for brainstorming all KINDS of random stuff. 2021-01-03T18:42:48Z phoe: #lisp is moderated rather heavily when it comes to off-topic discussion, so S/N should be high in general 2021-01-03T18:49:18Z bilal_ quit (Quit: Leaving) 2021-01-03T18:52:17Z Lord_of_Life_ joined #lisp 2021-01-03T18:53:00Z Lord_of_Life quit (Ping timeout: 256 seconds) 2021-01-03T18:53:39Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-03T18:55:05Z Colleen quit (Quit: Colleen) 2021-01-03T18:57:27Z aeth quit (Ping timeout: 260 seconds) 2021-01-03T18:58:55Z aeth joined #lisp 2021-01-03T19:00:27Z vaporatorius__ joined #lisp 2021-01-03T19:00:31Z SpaceIgor2075: Where can i learn about projects and asdf? When I create a project with quickproject i get a dir with project.asd project.lisp package.lisp; i want to know what's going on 2021-01-03T19:01:25Z vaporatorius quit (Ping timeout: 264 seconds) 2021-01-03T19:07:45Z Colleen joined #lisp 2021-01-03T19:09:47Z _death: https://stevelosh.com/blog/2018/08/a-road-to-common-lisp/ 2021-01-03T19:18:01Z andreyorst quit (Read error: Connection reset by peer) 2021-01-03T19:24:52Z Nilby quit (Read error: Connection reset by peer) 2021-01-03T19:26:17Z contrapunctus left #lisp 2021-01-03T19:26:59Z contrapunctus joined #lisp 2021-01-03T19:29:48Z birdwing quit (Ping timeout: 268 seconds) 2021-01-03T19:30:41Z SpaceIgor2075: Is CLtL2 worth reading for a newbie who read LoL? 2021-01-03T19:31:21Z lalilulelo joined #lisp 2021-01-03T19:31:30Z andreyorst joined #lisp 2021-01-03T19:36:35Z _death: yes 2021-01-03T19:36:51Z phoe: LoL, you mean Land of Lisp? 2021-01-03T19:36:54Z _death: just keep in mind that there are a few changes in the standard 2021-01-03T19:37:00Z contrapunctus left #lisp 2021-01-03T19:37:08Z phoe: asking because Let over Lambda is not really for newbies, if that's what you read 2021-01-03T19:37:21Z rogersm quit (Quit: Leaving...) 2021-01-03T19:37:37Z vutral quit (Quit: Connection closed for inactivity) 2021-01-03T19:38:08Z SpaceIgor2075: Land of Lisp, but i was planning to read Let over Lambda 2021-01-03T19:38:27Z SpaceIgor2075: (Lisp needs more LoLbooks) 2021-01-03T19:39:43Z SpaceIgor2075: _death: really, they changed the standsrd? I thought CL didn't change for decades 2021-01-03T19:39:56Z contrapunctus joined #lisp 2021-01-03T19:40:23Z _death: SpaceIgor2075: CLtL2 was written as the language was standardized 2021-01-03T19:40:47Z _death: SpaceIgor2075: in fact for a newbie, it may be better to first read a book like Practical Common Lisp first 2021-01-03T19:40:51Z phoe: importantly, CLtL2 was written before ANSI CL was finalized 2021-01-03T19:42:05Z luis quit (Ping timeout: 240 seconds) 2021-01-03T19:42:26Z SpaceIgor2075: phoe: Oh, now i get it. Is CLtL2 to ANSI CL like K&R C to ANSI C? 2021-01-03T19:44:30Z frodef` joined #lisp 2021-01-03T19:46:50Z _death: kind of, except K&R was a short guide and CLtL2 is more a sprawling creature that's between spec and guide 2021-01-03T19:47:52Z _death: a manual.. 2021-01-03T19:49:30Z IPmonger joined #lisp 2021-01-03T19:49:42Z hiroaki joined #lisp 2021-01-03T19:49:50Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-03T19:50:14Z matryoshka joined #lisp 2021-01-03T19:50:15Z junkicide joined #lisp 2021-01-03T19:50:46Z matryoshka quit (Client Quit) 2021-01-03T19:51:00Z ralt: I really wish lisp implementations didn't depend so much on glibc 2021-01-03T19:52:34Z jeosol quit (Remote host closed the connection) 2021-01-03T19:53:03Z rumbler31_ joined #lisp 2021-01-03T19:53:06Z luis joined #lisp 2021-01-03T19:54:33Z heisig: ralt: The people in #sicl are working on it :) 2021-01-03T19:56:12Z ebrasca joined #lisp 2021-01-03T19:58:57Z matryoshka joined #lisp 2021-01-03T20:02:16Z heisig quit (Ping timeout: 246 seconds) 2021-01-03T20:06:06Z shka_ quit (Ping timeout: 256 seconds) 2021-01-03T20:10:01Z VincentVega joined #lisp 2021-01-03T20:11:20Z VincentVega: Guys, is the funcall version slower here, and if yes is there a way not to repeat arg, while retaining performance? 2021-01-03T20:11:21Z VincentVega: (if b (f1 arg) (f2 arg)) 2021-01-03T20:11:26Z VincentVega: (funcall (if b 'f1 'f2) arg) 2021-01-03T20:11:48Z phoe: the two should be equivalent performancewise on a smart enough compiler 2021-01-03T20:11:56Z phoe: try comparing disassemblies 2021-01-03T20:12:18Z VincentVega: i see, ok! 2021-01-03T20:14:11Z bluejaypop left #lisp 2021-01-03T20:23:04Z cosimone joined #lisp 2021-01-03T20:24:59Z mankaev joined #lisp 2021-01-03T20:25:18Z mankaev quit (Client Quit) 2021-01-03T20:25:26Z mankaev joined #lisp 2021-01-03T20:25:54Z andreyorst quit (Remote host closed the connection) 2021-01-03T20:29:33Z phoe: does anyone know of an automated test suite for Flavors? 2021-01-03T20:30:07Z Colleen quit (Quit: Colleen) 2021-01-03T20:30:51Z mankaev_ quit (Quit: ZNC 1.7.4 - https://znc.in) 2021-01-03T20:31:16Z Colleen joined #lisp 2021-01-03T20:31:51Z adam4567 joined #lisp 2021-01-03T20:37:52Z andreyorst joined #lisp 2021-01-03T20:37:58Z hiroaki quit (Ping timeout: 246 seconds) 2021-01-03T20:38:21Z abhixec joined #lisp 2021-01-03T20:38:35Z junkicide quit (Ping timeout: 265 seconds) 2021-01-03T20:40:14Z v88m quit (Ping timeout: 272 seconds) 2021-01-03T20:42:49Z rumbler31_ quit (Ping timeout: 264 seconds) 2021-01-03T20:46:50Z sloanr joined #lisp 2021-01-03T20:50:26Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-03T20:51:09Z luis quit (Ping timeout: 265 seconds) 2021-01-03T20:54:56Z rumbler31_ joined #lisp 2021-01-03T20:58:21Z jw4 quit (Read error: Connection reset by peer) 2021-01-03T20:59:47Z jw4 joined #lisp 2021-01-03T21:00:30Z v88m joined #lisp 2021-01-03T21:02:14Z scymtym: fiddlerwoaroof: if you like linedit, would this be interesting for you: https://techfak.de/~jmoringe/linedit-1.ogv 2021-01-03T21:05:15Z phoe: is this another show of eclector wizardry that you are performing in front of us now? 2021-01-03T21:05:31Z phoe: I'm asking because I'm amazed 2021-01-03T21:06:26Z cg505- quit (Quit: ZNC 1.7.2+deb3 - https://znc.in) 2021-01-03T21:08:03Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-03T21:09:18Z cg505 joined #lisp 2021-01-03T21:09:41Z hendursaga joined #lisp 2021-01-03T21:11:36Z TMA joined #lisp 2021-01-03T21:13:43Z scymtym: phoe: yes, eclector-based highlighting. more or less the same thing that did the highlighting in the eclector presentation 2021-01-03T21:14:05Z phoe: scymtym: :D 2021-01-03T21:16:06Z Colleen quit (Quit: Colleen) 2021-01-03T21:17:46Z luckless quit (Quit: luckless) 2021-01-03T21:19:05Z luckless joined #lisp 2021-01-03T21:26:21Z luna_is_here quit (Ping timeout: 272 seconds) 2021-01-03T21:27:08Z luna_is_here joined #lisp 2021-01-03T21:27:38Z narimiran quit (Ping timeout: 264 seconds) 2021-01-03T21:31:23Z cosimone quit (Quit: cosimone) 2021-01-03T21:35:22Z luis joined #lisp 2021-01-03T21:36:02Z markasoftware: Is there any sort of library with more powerful generic functions? I want to be able to specialize on arbitrary conditions and on the current state of global variables 2021-01-03T21:36:20Z phoe: conditions, what do you mean? 2021-01-03T21:36:39Z phoe: you mean condition types? you already can do that, all CL implementations implement condition types as condition classes 2021-01-03T21:36:43Z markasoftware: I mean it in the true or false sense lol 2021-01-03T21:36:56Z phoe: oh; you can kinda already do that 2021-01-03T21:37:01Z markasoftware: Eg, use this method if the argument is an odd numbet 2021-01-03T21:37:21Z phoe: you can have a method specialized on NULL if you want to match NIL, and an unspecialized method for all other cases 2021-01-03T21:37:24Z no-defun-allowed: T for true objects, NULL for false (NIL), but that won't do predicate dispatch. 2021-01-03T21:37:29Z phoe: oh, like that... hmmm 2021-01-03T21:38:00Z no-defun-allowed: I think there were a few papers on "generalisers" and predicate dispatch in CLOS and/or MOP. 2021-01-03T21:41:51Z _death: there are libraries like contextl, filtered-functions, specializable, etc. 2021-01-03T21:48:40Z amb007 quit (Read error: Connection reset by peer) 2021-01-03T21:48:50Z amb007 joined #lisp 2021-01-03T21:48:56Z amb007 quit (Read error: Connection reset by peer) 2021-01-03T21:49:13Z v_m_v quit (Remote host closed the connection) 2021-01-03T21:49:16Z amb007 joined #lisp 2021-01-03T21:49:39Z GuerrillaMonkey joined #lisp 2021-01-03T21:51:13Z amb007 quit (Read error: Connection reset by peer) 2021-01-03T21:51:26Z amb007 joined #lisp 2021-01-03T21:51:41Z ym quit (Remote host closed the connection) 2021-01-03T21:52:18Z amb007 quit (Read error: Connection reset by peer) 2021-01-03T21:52:34Z Jeanne-Kamikaze quit (Ping timeout: 256 seconds) 2021-01-03T21:52:58Z amb007 joined #lisp 2021-01-03T21:55:37Z shifty joined #lisp 2021-01-03T21:57:02Z Krystof: https://arxiv.org/abs/1403.2765 e.g. 2021-01-03T21:57:23Z orivej quit (Ping timeout: 260 seconds) 2021-01-03T22:01:25Z shifty quit (Ping timeout: 264 seconds) 2021-01-03T22:03:09Z markasoftware: Very interesting. I'm sure I can take some combination of these ideas to do what I want. Thanks everyone! 2021-01-03T22:03:28Z vaporatorius joined #lisp 2021-01-03T22:03:29Z vaporatorius quit (Changing host) 2021-01-03T22:03:29Z vaporatorius joined #lisp 2021-01-03T22:06:16Z aeth: Well, this is a first. I had to introduce an ECASE= variation of the CASE= macro so I could satisfy both old SBCL (like in Gitlab CI) and new SBCL (like on my local machine). https://gitlab.com/zombie-raptor/zombie-raptor/-/commit/12bb5cc21a185988b72f7cc4da118f4dd992a286 2021-01-03T22:06:23Z vaporatorius__ quit (Ping timeout: 258 seconds) 2021-01-03T22:06:44Z aeth: The default, impossible path is an error in old SBCLs (no warning that it's possibly a NIL) and deleted as unreachable code (but without a compiler note) in new SBCLs. 2021-01-03T22:06:51Z vaporatorius__ joined #lisp 2021-01-03T22:07:07Z aeth: I've had to work around different implementations before, but working around different actively-used SBCLs is... something else. 2021-01-03T22:08:17Z specbot quit (Remote host closed the connection) 2021-01-03T22:08:17Z minion quit (Remote host closed the connection) 2021-01-03T22:08:30Z vaporatorius quit (Ping timeout: 256 seconds) 2021-01-03T22:09:24Z Krystof: aeth: we may not move fast, but we break things 2021-01-03T22:09:47Z Krystof: this is probably because case on small integer keys got an optimization a while back to convert to jump tables 2021-01-03T22:10:11Z Krystof: I'm not entirely surprised that this causes a change in the diagnostics emitted 2021-01-03T22:10:22Z aeth: Krystof: well, not case, but COND 2021-01-03T22:10:29Z mfiano: https://bugs.launchpad.net/sbcl/+bug/1909883 2021-01-03T22:10:46Z Krystof: if it's a cond that looks like the expansion of case, the same applies 2021-01-03T22:10:47Z mfiano: posted yesterday about DCE without notes, and also DCE without retval checking 2021-01-03T22:10:54Z aeth: And, yes, what happened is that it got smarter so that it was able to delete impossible branches 2021-01-03T22:11:13Z aeth: Perhaps because of that optimization, yes 2021-01-03T22:22:03Z madage quit (Ping timeout: 240 seconds) 2021-01-03T22:22:15Z rtoy joined #lisp 2021-01-03T22:22:49Z Oddity- joined #lisp 2021-01-03T22:23:01Z minion joined #lisp 2021-01-03T22:23:39Z specbot joined #lisp 2021-01-03T22:23:57Z mindCrime joined #lisp 2021-01-03T22:26:01Z thmprover joined #lisp 2021-01-03T22:27:24Z Oddity quit (Ping timeout: 268 seconds) 2021-01-03T22:37:35Z madage joined #lisp 2021-01-03T22:39:35Z okflo quit (Remote host closed the connection) 2021-01-03T22:49:18Z luis quit (Ping timeout: 260 seconds) 2021-01-03T22:49:44Z luis joined #lisp 2021-01-03T22:55:12Z pve quit (Quit: leaving) 2021-01-03T22:57:30Z karlosz joined #lisp 2021-01-03T23:00:44Z asarch joined #lisp 2021-01-03T23:02:21Z asarch: One very stupid question: once you have defined your new class *without* any accessor at all, e.g.: (defclass foo () ((bar :initform nil :initarg :bar))), can you later with inheritance define an accessor? In this case, an accessor for bar: (defclass spam (foo) ...)? 2021-01-03T23:02:25Z SpaceIgor2075 quit (Read error: Connection reset by peer) 2021-01-03T23:02:47Z asarch: *once you have defined your class with a slot... 2021-01-03T23:03:23Z SpaceIgor2075 joined #lisp 2021-01-03T23:03:40Z no-defun-allowed: Yes, but it's probably wiser to start with defining an accessor. 2021-01-03T23:03:43Z phoe: asarch: yes, you need to duplicate the slot form and add an accessor there 2021-01-03T23:03:58Z phoe: this accessor won't work for the superclass if you do it this way. 2021-01-03T23:04:08Z asarch: Or you have to (defgeneric bar ((spam))), (defmethod (setf bar) ((instance spam))), (defmethod bar ((instance spam)) ...)? 2021-01-03T23:04:33Z rumbler31_ quit (Ping timeout: 265 seconds) 2021-01-03T23:04:33Z phoe: not needed - but, again, this way is not really advised unless you have some use case for that 2021-01-03T23:04:44Z phoe: also you can't specialize in defgeneric 2021-01-03T23:04:48Z phoe: so, no double parens around spam 2021-01-03T23:05:50Z asarch: But, (defmethod (setf bar) ((instance spam) value) (setf (slot-value 'bar) value)), right? 2021-01-03T23:05:55Z jeosol joined #lisp 2021-01-03T23:06:00Z phoe: yes 2021-01-03T23:06:06Z asarch: I mean, that was the "short" version 2021-01-03T23:06:29Z _death: asarch: the value comes first 2021-01-03T23:06:45Z rumbler31_ joined #lisp 2021-01-03T23:07:04Z SpaceIgor2075 quit (Remote host closed the connection) 2021-01-03T23:07:06Z phoe: _death: oh right, good catch 2021-01-03T23:07:18Z asarch: Yeah, sorry, my mistake 2021-01-03T23:07:40Z VincentVega quit (Remote host closed the connection) 2021-01-03T23:08:37Z dhil quit (Ping timeout: 264 seconds) 2021-01-03T23:08:51Z asarch: So, 1) redefining the slot in the inherited class or 2) (defgeneric ...) and then (defmethod ...), right? 2021-01-03T23:10:06Z phoe: yes, but this looks weird to me; why would you only define an accessor on a subclass? 2021-01-03T23:10:25Z asarch: Do you know the GTK+ widget library? 2021-01-03T23:10:32Z phoe: yes, I do 2021-01-03T23:10:49Z phoe: I mean, I have heard of it, and used it in multiple applications, but not as a programmer 2021-01-03T23:11:51Z asarch: Well, in the Glade template you have a GtkTextView and to set the text you would need to: 2021-01-03T23:12:01Z asarch: (defmethod content ((instance editor)) 2021-01-03T23:12:11Z asarch: (let ((buffer (gtk-text-view-get-buffer (slot-value instance 'content)) 2021-01-03T23:12:26Z asarch: start-iter end-iter) 2021-01-03T23:12:37Z asarch: (setf start-iter (gtk-text-buffer-get-start-iter buffer)) 2021-01-03T23:12:38Z phoe: asarch: mind using a pastebin? 2021-01-03T23:12:41Z asarch: And so one 2021-01-03T23:12:47Z asarch: *so on 2021-01-03T23:12:48Z asarch: Sorry 2021-01-03T23:13:23Z asarch: If I would have content as slot value I couldn't do later: (setf (content instance) "blaaa") 2021-01-03T23:13:45Z asarch: I mean, as an accessor 2021-01-03T23:13:52Z phoe: the editor does not have an accessor for its content slot? 2021-01-03T23:14:06Z asarch: However, in order to abstract some operations, in the super class I just need it 2021-01-03T23:14:11Z asarch: Yeah 2021-01-03T23:14:24Z phoe: why? 2021-01-03T23:14:31Z asarch: ...without any accessor at all 2021-01-03T23:14:41Z asarch: Well, that was the solution I found :'-( 2021-01-03T23:14:59Z phoe: which library for accessing GTK are you using? 2021-01-03T23:15:10Z asarch: For every widget in the dialog in the Glade template, there is a slot value in the class that wraps its operation 2021-01-03T23:15:26Z asarch: cl-cffi-gtk 2021-01-03T23:15:46Z phoe: so this library only exposes slots as its standard interface, and does not provide accessors? 2021-01-03T23:16:39Z asarch: This library only provides C "primitives" functions like (setf (gtk-dialog-title my-dialog) "Hello, folks!") 2021-01-03T23:18:21Z asarch: So, if in the dialog there is a widget a la "Name: [_____________]" in the class that wraps it I could have a slot (name :initarg :name :initform nil) and then later I could set its initial handler with (setf (slot-value 'dialog name) (gtk-builder-get-object builder "name")) 2021-01-03T23:18:45Z shifty joined #lisp 2021-01-03T23:19:33Z asarch: So later with (defgeneric ...) and (defmethod ...) I could use it, e.g., to store its value in the model of the application: (add-data model (name dialog)) by doing the GTK+ primitives operations to extract the data from the widget 2021-01-03T23:20:23Z phoe: yes, I see 2021-01-03T23:20:44Z phoe: if it only exposes slots, I assume you could then depend on this behavior - and define your own generic function on the superclass 2021-01-03T23:20:53Z asarch: So I could write an "abstract" base class for this dialog to re-use it in later applications 2021-01-03T23:21:13Z phoe: (defmethod my-package:my-wrapper ((editor gtk:editor)) (slot-value editor 'gtk:contents)) 2021-01-03T23:21:16Z phoe: something like that 2021-01-03T23:21:18Z phoe: and then use your GF 2021-01-03T23:21:33Z phoe: this isn't C++, you can define new generic functions or methods on already existing classes 2021-01-03T23:21:55Z asarch: I see 2021-01-03T23:22:54Z asarch: Is there a book for pattern solutions in Common Lisp? 2021-01-03T23:23:09Z phoe: probably Common Lisp Recipes, maybe 2021-01-03T23:23:21Z phoe: it's less about patterns and more about tips and tricks though 2021-01-03T23:23:59Z fixing_auth_hold joined #lisp 2021-01-03T23:24:16Z asarch: CLOS is wonderful! It takes you one step far and beyond the rest 2021-01-03T23:27:26Z asarch: How could you know the statistics of SBCL REPL (memory available, uptime, etc)? 2021-01-03T23:27:47Z lalilulelo quit (Ping timeout: 260 seconds) 2021-01-03T23:27:58Z phoe: memory: CL:ROOM 2021-01-03T23:28:11Z phoe: uptime: query the OS possibly, or get-internal-run-time 2021-01-03T23:30:04Z asarch: Thank you! 2021-01-03T23:32:09Z asarch: I miss the book of Pattern Designs for Smalltalk... :'-( 2021-01-03T23:33:01Z no-defun-allowed: Design patterns are mostly unnecessary in Common Lisp. 2021-01-03T23:33:50Z no-defun-allowed: Norving claims 16 of 23 patterns from the book are much simpler in Common Lisp or Dylan 2021-01-03T23:35:56Z asarch: What would be the best solution for that in Common Lisp? Macros? 2021-01-03T23:36:03Z phoe: not always 2021-01-03T23:36:09Z phoe: some of them are simply built into the language 2021-01-03T23:36:21Z phoe: like the visitor pattern versus :before/:after/:around methods 2021-01-03T23:36:47Z no-defun-allowed: The presentation describes a few replacements. 2021-01-03T23:37:24Z scymtym: also, when people say "design patterns", they often mean design patterns in the context of object oriented design which has assigning responsibilities in the form of methods to classes at its cores. since common lisp classes don't have any associated behavior, the approach does not translate very well 2021-01-03T23:37:34Z phoe: ^ 2021-01-03T23:37:35Z no-defun-allowed: Slide 10 tells us gains are achieved mostly with first-class types, then first-class functions, then macros, then method combination, multiple dispatch and modules. 2021-01-03T23:38:07Z asarch: However, Common Lisp actually does everything (almost) with macros, doesn't it? Even (defclass ...) is a macross, isn't it? (accordingly with The Art of the Meta-Object Protocol book) 2021-01-03T23:38:14Z phoe: no 2021-01-03T23:38:31Z asarch: No? 2021-01-03T23:38:32Z phoe: DEFCLASS is a macro, but you can equivalently call ENSURE-CLASS which is not a macro 2021-01-03T23:38:34Z no-defun-allowed: Maybe, but most of the patterns can be solved with already existing syntax and forms. 2021-01-03T23:38:56Z phoe: it's a function! and actually DEFCLASS, if you read the MOP, should expand into a call to ENSURE-CLASS 2021-01-03T23:39:20Z phoe: the macro is just for nicer syntax and some compile-time trickery and compile-time validation. 2021-01-03T23:39:22Z no-defun-allowed: Specifically, using first-class types and functions, and method combination and multiple dispatch, which are a property of generic functions. 2021-01-03T23:40:15Z scymtym: special variables also solve some of the problems of parametrizing behavior or "injecting dependencies" 2021-01-03T23:41:45Z asarch: Is a meta-object protocol the same as a pattern design? 2021-01-03T23:41:49Z phoe: oh yes, java's famous Context and Dependency Injection (CDI), also known in lisp as dynamic variables 2021-01-03T23:41:57Z mrcom joined #lisp 2021-01-03T23:42:01Z phoe: asarch: nope, MOP describes how CLOS is implemented and works under the hood 2021-01-03T23:42:40Z asarch: However, you could also have your own MOP just like Perl via Moose has it, right? 2021-01-03T23:42:59Z phoe: I have no idea what Moose is or how it does things 2021-01-03T23:43:01Z Oladon joined #lisp 2021-01-03T23:43:22Z no-defun-allowed: Moose is built on Class::MOP, which is already in Perl. 2021-01-03T23:44:52Z frodef` quit (Ping timeout: 246 seconds) 2021-01-03T23:44:55Z asarch: That is not a "pattern design", right? 2021-01-03T23:45:03Z phoe: not really 2021-01-03T23:45:13Z _death: you could describe common solutions to problems as patterns the way the gang of four book describes them (problem statement, forces or constraints, implementation issues, etc.) 2021-01-03T23:45:15Z phoe: metaobject protocols are about tweaking the object systems 2021-01-03T23:45:21Z phoe: patterns are... what _death said 2021-01-03T23:46:16Z no-defun-allowed: I use the metaobject protocol to attach additional information to classes and instances, to change how instances are allocated, and things like that. Design patterns are what you do with instances. 2021-01-03T23:47:18Z asarch: I see 2021-01-03T23:47:26Z mfiano: design patterns are purported master programming advice passed on to unsuspecting novices in languages without macros 2021-01-03T23:47:39Z asarch: One is consequence of another 2021-01-03T23:48:39Z no-defun-allowed: But it's not only macros. And all of them could be done without a meta-object protocol. 2021-01-03T23:49:23Z scymtym: implementing a WITH-FOO macro as a function CALL-WITH-FOO and a minimal expander (with-foo (…) BODY) → (call-with-foo (lambda (…) BODY)) could be a proper common lisp pattern in the sense _death mentioned. the problem is too avoid code bloat and allow some redefinition of the macro's behavior without recompiling all uses 2021-01-03T23:49:37Z _death: the AMOP book says it presents a particular MOP (for CLOS), but that the idea could be implemented for other (possibly non-Lisp) object systems.. so it's possible to imagine a Metaobject Protocol language design pattern 2021-01-03T23:51:39Z asarch: One step further and beyond... 2021-01-03T23:51:45Z scymtym: regarding AMOP, ENSURE-THING-USING-THING could be considered a design pattern for creating and updating bindings in an environment 2021-01-03T23:51:46Z _death: then there are obvious architectural patterns like (rule) Production system or Blackboard system.. 2021-01-03T23:53:03Z frgo quit (Remote host closed the connection) 2021-01-03T23:53:32Z frgo joined #lisp 2021-01-03T23:56:23Z v88m quit (Ping timeout: 260 seconds) 2021-01-03T23:59:24Z sloanr` joined #lisp 2021-01-03T23:59:26Z _death: I'm also reminded of https://adeht.org/usenet-gems/ss-revisited.txt 2021-01-04T00:02:52Z v88m joined #lisp 2021-01-04T00:02:59Z sloanr quit (Ping timeout: 268 seconds) 2021-01-04T00:03:11Z dbotton joined #lisp 2021-01-04T00:08:02Z rgherdt quit (Ping timeout: 260 seconds) 2021-01-04T00:09:57Z GuerrillaMonkey quit (Quit: Leaving) 2021-01-04T00:17:37Z shifty quit (Ping timeout: 264 seconds) 2021-01-04T00:18:33Z shifty joined #lisp 2021-01-04T00:27:09Z sloanr`` joined #lisp 2021-01-04T00:28:33Z abhixec quit (Read error: Connection reset by peer) 2021-01-04T00:30:40Z sloanr` quit (Ping timeout: 256 seconds) 2021-01-04T00:30:43Z vaporatorius joined #lisp 2021-01-04T00:31:04Z Colleen joined #lisp 2021-01-04T00:33:49Z vaporatorius__ quit (Ping timeout: 264 seconds) 2021-01-04T00:37:49Z renzhi joined #lisp 2021-01-04T00:38:51Z abhixec joined #lisp 2021-01-04T00:43:38Z zaquest quit (Quit: Leaving) 2021-01-04T00:44:56Z zaquest joined #lisp 2021-01-04T00:55:11Z Oladon quit (Quit: Leaving.) 2021-01-04T00:57:12Z fiddlerwoaroof: I tend to think of DI more as "passing arguments to functions" than "dynamic variables" 2021-01-04T00:57:50Z fiddlerwoaroof: Spring's XML stuff or Guice might be more like dynamic variables, but those are both abominations 2021-01-04T00:59:54Z fiddlerwoaroof: One way to do DI in lisp is "defun over lambda" (defun (dep1 dep2) (lambda (&rest other-args) ...)) 2021-01-04T01:00:04Z fiddlerwoaroof: ... (defun foo ...) 2021-01-04T01:02:16Z fiddlerwoaroof: scymtym: that video is cool; my only objection is there's no code for me to try out... 2021-01-04T01:03:53Z sloanr``` joined #lisp 2021-01-04T01:03:56Z scymtym: fiddlerwoaroof: i can try to publish an initial version tomorrow. i just didn't want to put too much effort into a thing that i wouldn't use myself 2021-01-04T01:05:30Z fiddlerwoaroof: scymtym: yeah, makes sense, I have a "lisp-sandbox" repository on github for this sort of demo 2021-01-04T01:06:25Z scymtym: i will probably just push one eclector branch and one linedit branch 2021-01-04T01:06:37Z igemnace joined #lisp 2021-01-04T01:06:52Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-04T01:07:22Z scymtym: the highlighter is currently an eclector example that got a bit out of hand 2021-01-04T01:07:30Z sloanr`` quit (Ping timeout: 272 seconds) 2021-01-04T01:09:44Z fiddlerwoaroof: One thing that would be useful with eclector is a more intelligent way to diff CL code 2021-01-04T01:10:47Z dbotton joined #lisp 2021-01-04T01:11:38Z fiddlerwoaroof: git supports custom diff tools, and a syntax-aware diff for CL would be really helpful 2021-01-04T01:12:02Z scymtym: i believe pfdietz and colleagues have done that 2021-01-04T01:12:19Z rgherdt joined #lisp 2021-01-04T01:12:35Z shwouchk joined #lisp 2021-01-04T01:13:45Z fiddlerwoaroof: Interesting, I've looked for this every couple months and never run across an implementation that would work. 2021-01-04T01:14:55Z andreyorst quit (Quit: WeeChat 3.0) 2021-01-04T01:16:40Z igemnace quit (Remote host closed the connection) 2021-01-04T01:16:58Z Colleen quit (Remote host closed the connection) 2021-01-04T01:18:21Z miasuji joined #lisp 2021-01-04T01:19:29Z igemnace joined #lisp 2021-01-04T01:21:38Z skapata quit (Ping timeout: 264 seconds) 2021-01-04T01:26:27Z Jeanne-Kamikaze joined #lisp 2021-01-04T01:26:58Z luckless quit (Quit: luckless) 2021-01-04T01:27:22Z luckless joined #lisp 2021-01-04T01:28:23Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-04T01:29:20Z Colleen joined #lisp 2021-01-04T01:33:06Z skapata joined #lisp 2021-01-04T01:33:07Z dbotton joined #lisp 2021-01-04T01:33:48Z rgherdt quit (Ping timeout: 260 seconds) 2021-01-04T01:36:31Z Colleen quit (Quit: Colleen) 2021-01-04T01:37:40Z mfiano: Xach: did you see my message from yesterday? 2021-01-04T01:37:57Z wxie joined #lisp 2021-01-04T01:41:45Z Xach: mfiano: i'm not sure 2021-01-04T01:42:30Z mfiano: Xach: I was asking about your reecent octree usage. 2021-01-04T01:42:37Z Xach: mfiano: i did not see it 2021-01-04T01:42:59Z Xach: What would you like to know? 2021-01-04T01:43:28Z mfiano: I wanted to know if you used an existing library, or wrote an implementation yourself. I've spent the last 3 days writing a high performance octree for gamedev stuff, but there are a lot of corner cases my algorithm books don't cover, and invariants aren't holding :( 2021-01-04T01:44:15Z Xach: mfiano: ah. i wrote an implementation myself. i put the code on github. it is simplistic. i linked to the reference i followed (original was in javascript). i use it only for quantizing so its suitability for other uses might not be great. 2021-01-04T01:44:34Z Xach: https://github.com/xach/octree/blob/master/octree.lisp 2021-01-04T01:44:40Z mfiano: Thanks, I'll have a look 2021-01-04T01:45:14Z fiddlerwoaroof: phoe: I like using keywords for package and systemn names, so I get autocomplete for ql:quickload and in-package :) 2021-01-04T01:45:33Z fiddlerwoaroof: I probably should figure out how to make slime-company special-case these forms 2021-01-04T01:48:25Z phoe: fiddlerwoaroof: hmmm, I understand the idea 2021-01-04T01:49:08Z abhixec quit (Read error: Connection reset by peer) 2021-01-04T01:49:49Z abhixec joined #lisp 2021-01-04T01:52:58Z kaftejiman quit (Ping timeout: 246 seconds) 2021-01-04T01:54:55Z fiddlerwoaroof: Are there any libraries for mutation testing? 2021-01-04T01:55:34Z asarch quit (Remote host closed the connection) 2021-01-04T01:55:43Z ralt quit (Quit: Connection closed for inactivity) 2021-01-04T01:55:50Z fiddlerwoaroof: I have a library I'm working on where there are several "obvious" ways to generate new test cases from a passing test, and I'd like to generate three or four random assertions for each assertion I write 2021-01-04T01:58:11Z mfiano: proptesting? 2021-01-04T01:59:26Z fiddlerwoaroof: Not exactly 2021-01-04T01:59:32Z renzhi quit (Ping timeout: 268 seconds) 2021-01-04T02:00:14Z fiddlerwoaroof: Basically, if I have an assertion (is (= a (func b))), automatically rewriting it to an equivalent one like (is (= a (func2 (inv-func2 (func b))))) 2021-01-04T02:00:27Z fiddlerwoaroof: And rerunning the assertion 2021-01-04T02:01:23Z fiddlerwoaroof: (where func2 and inv-func2 are a function and its inverse) 2021-01-04T02:02:29Z random-nick quit (Ping timeout: 272 seconds) 2021-01-04T02:05:33Z Alfr_ quit (Remote host closed the connection) 2021-01-04T02:09:28Z Alfr joined #lisp 2021-01-04T02:11:29Z hsaziz joined #lisp 2021-01-04T02:13:09Z hsaziz quit (Client Quit) 2021-01-04T02:14:00Z hsaziz joined #lisp 2021-01-04T02:16:22Z charles` joined #lisp 2021-01-04T02:18:25Z abhixec quit (Quit: brb restarting) 2021-01-04T02:22:50Z shifty quit (Ping timeout: 264 seconds) 2021-01-04T02:23:02Z notzmv quit (Remote host closed the connection) 2021-01-04T02:24:32Z abhixec joined #lisp 2021-01-04T02:25:19Z fixing_auth_hold quit (Quit: Leaving) 2021-01-04T02:26:00Z thmprover: Uh, nconc is viewed as...bad form, right? In the sense that there's a better, more idiomatic way to do the same thing, correct? 2021-01-04T02:27:57Z aeth: depends 2021-01-04T02:28:29Z aeth: if it's nconc on something you've created locally without any literals (so no quote/quasiquote) then it's fine, but it's a microoptimization that might not make a difference 2021-01-04T02:28:53Z thmprover: Gotchya. 2021-01-04T02:28:58Z aeth: this is fine... (nconc (list 1 2 3) (list 4 5 6)) 2021-01-04T02:29:03Z aeth: this needs to be append... (append '(1 2 3) '(4 5 6)) 2021-01-04T02:29:19Z aeth: And if your list function could be used as a helper function in a macro, it has to be append, because source s-expressions are like the latter 2021-01-04T02:29:27Z aeth: at least, afaik. Your style guide may differ 2021-01-04T02:30:26Z akoana joined #lisp 2021-01-04T02:30:38Z aeth: thmprover: you might also want to consider this variant, because it's more even generic... (concatenate 'list '(1 2 3) '(4 5 6)) 2021-01-04T02:31:09Z thmprover: Hmm...that might work better, for what I'm doing. 2021-01-04T02:31:22Z aeth: that last one could take a vector or a string or (afaik) even a user-defined sequence if the implementation has extensible sequences. 2021-01-04T02:32:02Z semz quit (Ping timeout: 258 seconds) 2021-01-04T02:33:27Z thmprover: That's a great point, I'm almost certainly going to be working with user-defined sequences. Thanks :) 2021-01-04T02:41:56Z notzmv joined #lisp 2021-01-04T02:42:48Z surabax quit (Quit: Leaving) 2021-01-04T02:43:30Z rumbler31_ quit (Ping timeout: 265 seconds) 2021-01-04T02:45:10Z semz joined #lisp 2021-01-04T02:45:10Z semz quit (Changing host) 2021-01-04T02:45:10Z semz joined #lisp 2021-01-04T02:49:04Z abhixec quit (Remote host closed the connection) 2021-01-04T02:51:14Z fiddlerwoaroof: Sometimes you can re-think your algorithms to avoid appending 2021-01-04T02:52:39Z Stanley00 joined #lisp 2021-01-04T02:52:43Z fiddlerwoaroof: e.g. passing an adjustable vector around and vector-push-extending the new lists onto the vector 2021-01-04T02:53:34Z fiddlerwoaroof: And then just writing a version of map that takes such a vector and processes each list in the vector successively. 2021-01-04T02:53:52Z sgibber2018 joined #lisp 2021-01-04T03:01:27Z contrapunctus left #lisp 2021-01-04T03:01:41Z contrapunctus joined #lisp 2021-01-04T03:05:21Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-04T03:06:18Z notzmv quit (Read error: No route to host) 2021-01-04T03:09:45Z notzmv joined #lisp 2021-01-04T03:14:09Z miasuji quit (Remote host closed the connection) 2021-01-04T03:14:33Z miasuji joined #lisp 2021-01-04T03:16:40Z Stanley|00 joined #lisp 2021-01-04T03:18:58Z Stanley|00 quit (Read error: Connection reset by peer) 2021-01-04T03:19:25Z Stanley00 quit (Ping timeout: 264 seconds) 2021-01-04T03:19:28Z Stanley|00 joined #lisp 2021-01-04T03:19:39Z ebrasca quit (Remote host closed the connection) 2021-01-04T03:22:06Z loke[m]: Hello 2021-01-04T03:25:36Z hiroaki joined #lisp 2021-01-04T03:26:44Z no-defun-allowed: Hello loke. 2021-01-04T03:27:08Z loke[m]: no-defun-allowed I thought you were in the US? 2021-01-04T03:27:24Z no-defun-allowed: Nope. 2021-01-04T03:28:57Z Stanley|00 quit (Read error: Connection reset by peer) 2021-01-04T03:29:27Z Stanley00 joined #lisp 2021-01-04T03:31:32Z loke[m]: AU? 2021-01-04T03:31:39Z no-defun-allowed: Yes, Australia. 2021-01-04T03:37:28Z abhixec joined #lisp 2021-01-04T03:42:07Z shwouchk quit (Quit: Connection closed for inactivity) 2021-01-04T03:42:40Z dbotton joined #lisp 2021-01-04T03:44:57Z dbotton quit (Client Quit) 2021-01-04T03:52:16Z abhixec quit (Read error: Connection reset by peer) 2021-01-04T03:53:25Z contrapunctus left #lisp 2021-01-04T03:53:43Z contrapunctus joined #lisp 2021-01-04T03:54:15Z miasuji quit (Remote host closed the connection) 2021-01-04T03:54:42Z miasuji joined #lisp 2021-01-04T03:57:37Z abhixec joined #lisp 2021-01-04T04:02:38Z Alfr_ joined #lisp 2021-01-04T04:02:49Z beach: Good morning everyone! 2021-01-04T04:05:11Z Alfr quit (Ping timeout: 258 seconds) 2021-01-04T04:13:58Z Stanley|00 joined #lisp 2021-01-04T04:14:22Z Stanley00 quit (Disconnected by services) 2021-01-04T04:15:48Z Jeanne-Kamikaze quit (Remote host closed the connection) 2021-01-04T04:22:08Z fiddlerwoaroof: hi beach 2021-01-04T04:27:02Z mindCrime quit (Ping timeout: 258 seconds) 2021-01-04T04:41:16Z Jesin quit (Read error: Connection reset by peer) 2021-01-04T04:41:57Z Jesin joined #lisp 2021-01-04T04:46:52Z sgibber2018 quit (Ping timeout: 256 seconds) 2021-01-04T04:47:22Z Posterdati quit (Ping timeout: 256 seconds) 2021-01-04T04:49:31Z thmprover quit (Quit: ...and miles to go before I sleep.) 2021-01-04T04:52:51Z Bike quit (Quit: Lost terminal) 2021-01-04T04:58:02Z kagevf quit (Ping timeout: 272 seconds) 2021-01-04T05:00:46Z mrios22 quit (Ping timeout: 265 seconds) 2021-01-04T05:01:58Z aeth quit (Ping timeout: 246 seconds) 2021-01-04T05:03:06Z sloanr``` quit (Read error: Connection reset by peer) 2021-01-04T05:04:00Z aeth joined #lisp 2021-01-04T05:04:32Z kagevf joined #lisp 2021-01-04T05:06:10Z Posterdati joined #lisp 2021-01-04T05:09:12Z Alfr_ quit (Ping timeout: 258 seconds) 2021-01-04T05:09:19Z wxie quit (Ping timeout: 272 seconds) 2021-01-04T05:15:31Z wxie joined #lisp 2021-01-04T05:24:16Z shka_ joined #lisp 2021-01-04T05:25:32Z charles`: Why do default arguments for macros get evaluated? 2021-01-04T05:25:47Z beach: Er, what? 2021-01-04T05:26:31Z karlosz quit (Quit: karlosz) 2021-01-04T05:26:55Z beach: charles`: No macro arguments are evaluated. 2021-01-04T05:27:11Z beach: charles`: The entire macro form turn into a single argument of the macro function. 2021-01-04T05:27:54Z charles`: (defmacro test (&optional (a (+ 3 4))) 2021-01-04T05:27:54Z charles`: ,a) 2021-01-04T05:28:05Z charles`: (macroexpand '(test)) 2021-01-04T05:28:13Z no-defun-allowed: If you put the arguments into the form produced, they get evaluated again after macro-expansion _as per usual_. eg with (defmacro foo (&optional (x 'x)) `(1+ x)), (foo) will expand to (1+ x), which will eventually evaluate X. 2021-01-04T05:28:45Z no-defun-allowed: Yes, evaluating the default values in lambda lists is also normal. But you couldn't write ,a as there is no backquote (just a will suffice). 2021-01-04T05:28:46Z andreyorst joined #lisp 2021-01-04T05:29:03Z charles`: it is supposed to be `,a 2021-01-04T05:29:21Z no-defun-allowed: If you want to bind A to (+ 3 4) to put (+ 3 4) in the expansion, then quote it. 2021-01-04T05:29:40Z no-defun-allowed: `,a ≡ a 2021-01-04T05:30:25Z charles`: So I can't have unevaluated default arguments? 2021-01-04T05:30:52Z no-defun-allowed: You quote them, eg (defmacro test (&optional (a '(+ 3 4))) a) 2021-01-04T05:33:25Z charles`: I see, that is most unexpected 2021-01-04T05:34:19Z no-defun-allowed: I'm not sure how it's out of the ordinary, admittedly. 2021-01-04T05:37:24Z charles`: It makes sense if you call it a lambda list, but it if you call it the parameter list for a macro it is confusing. Someone would see that the default argument is quoted and might think that their argument should be quoted as well 2021-01-04T05:38:26Z no-defun-allowed: Lambda lists are lambda lists*, regardless of if I have a lambda list in DEFUN, DEFMACRO, DESTRUCTURING-BIND, MULTIPLE-VALUE-BIND, and so on. 2021-01-04T05:39:08Z no-defun-allowed: *Except that macros have extended lambda lists, with &environment and &whole from memory. 2021-01-04T05:39:13Z shifty joined #lisp 2021-01-04T05:39:59Z charles`: It certainly makes sense when put that way 2021-01-04T05:50:05Z xsperry quit (Remote host closed the connection) 2021-01-04T05:51:53Z xsperry joined #lisp 2021-01-04T05:53:10Z shifty quit (Ping timeout: 256 seconds) 2021-01-04T05:53:44Z shifty joined #lisp 2021-01-04T05:58:40Z ldbeth joined #lisp 2021-01-04T05:58:58Z ldbeth: good aftrenoon 2021-01-04T05:59:36Z no-defun-allowed: Hello ldbeth. 2021-01-04T06:03:01Z a0 joined #lisp 2021-01-04T06:03:51Z ldbeth: are there any projects implement aggressive optimizer/inliner/partial evaluator for a subset of CL? 2021-01-04T06:05:51Z no-defun-allowed: How aggressive is agressive? Most compilers will do some partial evaluation. 2021-01-04T06:07:46Z beach: Doing that kind of stuff in an implementation-independent way would imply source-to-source transformations, and that then becomes a mess when it comes to debugging, because source information would be in terms of the transformed code. 2021-01-04T06:08:07Z ldbeth: say given a (fib 45) it can unfold it to constant fixnum 2021-01-04T06:08:43Z beach: Stuff like that is undecidable in the general case. 2021-01-04T06:09:28Z no-defun-allowed: How long would you wait for (A 3 4), where A is the Ackermann function? 2021-01-04T06:09:32Z beach: ldbeth: Imagine that, instead of (fib 45) you said (ackermann 5 10) 2021-01-04T06:09:35Z beach: Heh. 2021-01-04T06:11:09Z beach: ldbeth: A large part of the art of partial evaluation has to do with choosing a decidable approximation of an otherwise undecidable domain. 2021-01-04T06:11:47Z miasuji quit (Ping timeout: 260 seconds) 2021-01-04T06:12:17Z ldbeth: Is it pratically feasible if unfolding aborts when the result exceeds biggest fixnum? 2021-01-04T06:12:34Z beach: Not good enough. 2021-01-04T06:13:10Z mfiano: How can you say the result scales linearly in a general case? 2021-01-04T06:13:13Z beach: Do the math. How long does it take for a modern processor to execute most-positive-fixnum iterations. 2021-01-04T06:13:36Z beach: Even if it scales linearly, that's not good enough. 2021-01-04T06:13:53Z mfiano: Right. 2021-01-04T06:14:16Z ldbeth: http://akrl.sdf.org/gccemacs.html#org0324e5b 2021-01-04T06:14:20Z vidak` quit (Read error: Connection reset by peer) 2021-01-04T06:14:43Z vidak` joined #lisp 2021-01-04T06:14:54Z ldbeth: It starts get me interested because GCC Emacs does better than CL on some trival benchmarks 2021-01-04T06:15:44Z andreyorst_ joined #lisp 2021-01-04T06:16:04Z beach: Trivial benchmarks usually don't provide any useful information. 2021-01-04T06:16:29Z ldbeth: GCC Elisp takes to run 0.00 fibn from elisp-benchmarks, and from the article it implies the fibn function get unfolded to a constant 2021-01-04T06:16:41Z mfiano: The speedups you see here should only be taken as very roughly indicative of the speedup you may see in real code. When in doubt, benchmark your particular domain on the hardware you intend to run it on. 2021-01-04T06:17:32Z ldbeth: I do realize that trivial benchmarks usually does not reflect pratical performance 2021-01-04T06:18:19Z beach: ldbeth: Also, no sane person would write a call to FIB with a constant value in production code. It would be a read-time evaluation. 2021-01-04T06:18:55Z Aurora_v_kosmose quit (Quit: Пока, мир.) 2021-01-04T06:19:08Z ldbeth: sure, in CL we can manually #. 2021-01-04T06:19:59Z beach: The only way I can see that result is if FIB is treated specially. 2021-01-04T06:20:15Z beach: If not, you should try it with the Ackermann function. 2021-01-04T06:20:44Z frost-lab joined #lisp 2021-01-04T06:21:33Z fiddlerwoaroof: ACL2 proves theorems in a total subset of CL, right? 2021-01-04T06:21:54Z ldbeth: fiddlerwoaroof: yes 2021-01-04T06:22:15Z ldbeth: but it can hardly be used to optimize "real" CL code 2021-01-04T06:22:31Z fiddlerwoaroof: Well, no one has tried yet :) 2021-01-04T06:23:03Z fiddlerwoaroof: There are other total languages that are trying to be useful: the Dhall expression language and Idris, for two 2021-01-04T06:23:28Z aeth: Write an optimizing compiler that detects when benchmark authors are trying to bench a naively-written Fibonacci number calculation and replace it at compile time with the explicit formula to get the Fibonacci number... 2021-01-04T06:24:29Z ldbeth: ACL2 mainly aims to hardware verification people, they have very different need from a "pratical" programming language 2021-01-04T06:24:54Z fiddlerwoaroof: I'm not dying that, I'm just saying it's an existence proof of what you asked for 2021-01-04T06:25:18Z fiddlerwoaroof: s/dying/denying/ 2021-01-04T06:27:03Z a0 quit (Ping timeout: 240 seconds) 2021-01-04T06:28:39Z fiddlerwoaroof: The subset of CL that ACL2 can prove theorems about can be aggressively partialy evaluated 2021-01-04T06:30:04Z pfdietz quit (Ping timeout: 245 seconds) 2021-01-04T06:30:11Z ldbeth: however GCC Emacs optimize the fib function written with setf as well as using tail recursion 2021-01-04T06:30:42Z ldbeth: an applicative subset is not comparable 2021-01-04T06:33:23Z fiddlerwoaroof: Does gccemacs implement a tracing JIT? 2021-01-04T06:34:12Z ldbeth: no, it precompiles ELisp files 2021-01-04T06:34:23Z akoana quit (Quit: leaving) 2021-01-04T06:34:50Z ldbeth: "Despite what the name suggest libgccjit is usable not just for making jitters but for any other kind of compiler." 2021-01-04T06:35:58Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-04T06:36:00Z Aurora_v_kosmose joined #lisp 2021-01-04T06:40:15Z Jesin quit (Read error: Connection reset by peer) 2021-01-04T06:42:38Z galex-713 quit (Ping timeout: 264 seconds) 2021-01-04T06:45:43Z narimiran joined #lisp 2021-01-04T06:54:19Z ldbeth quit (Ping timeout: 246 seconds) 2021-01-04T06:55:10Z quazimodo joined #lisp 2021-01-04T06:57:53Z [d] quit (Remote host closed the connection) 2021-01-04T07:02:16Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-04T07:02:54Z Aurora_v_kosmose joined #lisp 2021-01-04T07:05:34Z wxie quit (Remote host closed the connection) 2021-01-04T07:08:23Z ldbeth joined #lisp 2021-01-04T07:11:44Z wxie joined #lisp 2021-01-04T07:17:19Z ralt joined #lisp 2021-01-04T07:18:25Z imode quit (Ping timeout: 240 seconds) 2021-01-04T07:21:18Z birdwing joined #lisp 2021-01-04T07:22:14Z charles` quit (Ping timeout: 264 seconds) 2021-01-04T07:24:54Z Colleen joined #lisp 2021-01-04T07:29:53Z ldbeth quit (Read error: Connection reset by peer) 2021-01-04T07:30:06Z ldbeth joined #lisp 2021-01-04T07:30:10Z ldbeth left #lisp 2021-01-04T07:32:30Z oni-on-ion quit (Remote host closed the connection) 2021-01-04T07:41:10Z skapata quit (Remote host closed the connection) 2021-01-04T07:47:34Z Cymew joined #lisp 2021-01-04T07:47:35Z orivej joined #lisp 2021-01-04T07:51:55Z jprajzne joined #lisp 2021-01-04T07:55:32Z amb007 quit (Read error: Connection reset by peer) 2021-01-04T08:01:13Z amb007 joined #lisp 2021-01-04T08:03:20Z ym joined #lisp 2021-01-04T08:03:20Z amb007 quit (Read error: Connection reset by peer) 2021-01-04T08:03:28Z amb007 joined #lisp 2021-01-04T08:05:43Z shifty quit (Ping timeout: 246 seconds) 2021-01-04T08:06:24Z shifty joined #lisp 2021-01-04T08:06:28Z rogersm joined #lisp 2021-01-04T08:16:16Z rgherdt joined #lisp 2021-01-04T08:17:38Z rogersm quit (Quit: Leaving...) 2021-01-04T08:18:01Z andreyorst quit (Quit: WeeChat 3.0) 2021-01-04T08:18:01Z andreyorst_ is now known as andreyorst 2021-01-04T08:24:09Z frodef` joined #lisp 2021-01-04T08:24:32Z ex_nihilo joined #lisp 2021-01-04T08:26:05Z amb007 quit (Read error: Connection reset by peer) 2021-01-04T08:26:58Z amb007 joined #lisp 2021-01-04T08:27:02Z frodef`: beach: thanks for the link. 2021-01-04T08:27:58Z beach: Sure. Enjoy! :) 2021-01-04T08:28:12Z beach: We extracted the code to a library: Clostrum. 2021-01-04T08:28:17Z frodef`: beach: btw, is the general approach SICL to conceptually live "inside" or "outside" the parameters of CL? 2021-01-04T08:28:36Z beach: I am not sure I know what that means. 2021-01-04T08:28:37Z frodef`: beach: not sure how to describe it better... :) 2021-01-04T08:28:47Z beach: Example? 2021-01-04T08:29:49Z frodef`: do you thing of the CL environment as a "subsystem", or is the CL environment the "end goal"... 2021-01-04T08:29:55Z no-defun-allowed: To do things outside the scope of of Common Lisp? Well, sure, there's threads, atomics, weak values, networking, so on and so forth, which weren't always de-facto standard. So everyone lives outside Common Lisp. 2021-01-04T08:30:06Z no-defun-allowed: Oh, never mind. 2021-01-04T08:30:19Z frodef`: (sorry again for such a imprecise question, I'v obviously not thought it very well through.) 2021-01-04T08:30:31Z beach: frodef`: The goal is CLOSOS, if that answers the question. 2021-01-04T08:31:08Z beach: So yes, all the goodies that no-defun-allowed mentioned are needed. 2021-01-04T08:31:29Z frodef`: sure, like every CL implementation. 2021-01-04T08:32:14Z beach: I take it that doesn't answer your question, then. :( 2021-01-04T08:32:15Z no-defun-allowed: Having a good CL environment with as much stuff as possible would be the end goal to me. 2021-01-04T08:33:21Z beach: frodef`: I do want a conforming and strict Common Lisp implementation, but there is plenty of other functionality needed. And I also want to explore all the ways the standard allows in order to simplify the code. 2021-01-04T08:33:42Z no-defun-allowed: Or do you mean that the Lisp environment is a subsystem of a larger programming system, with an external editor, a profiler, a version control system, and other tools? 2021-01-04T08:34:12Z beach: Oh, that one! Yes, definitely a CLIM-based IDE is what I am aiming for. 2021-01-04T08:36:14Z MichaelRaskin joined #lisp 2021-01-04T08:36:18Z frodef`: how about a system that is "good" (i.e. "great!") and also just reasonably compatible with CL programs? 2021-01-04T08:36:49Z frodef`: no-defun-allowed: something like that I guess. 2021-01-04T08:36:51Z no-defun-allowed: I want to work on putting "modern" stuff like high performance IO and concurrent programming tools in Common Lisp, but in a way that doesn't completely mess up my programming style, and if I have to hack an implementation to get it to work, it will most likely be SICL when it's ready for that. 2021-01-04T08:37:08Z no-defun-allowed: I don't see SICL breaking compatibility in Common Lisp any time soon? 2021-01-04T08:37:35Z beach: frodef`: That is certainly an option, but I don't want that to be the only thing. I do want to create a good Common Lisp system for people who are currently Common Lisp programmers. 2021-01-04T08:38:24Z beach: frodef`: The problem is mainly that I am not smart enough to change the language. I just don't have the experience that the good people who wrote the standard did, even back then. 2021-01-04T08:41:19Z beach: no-defun-allowed: Exactly! 2021-01-04T08:42:03Z no-defun-allowed: The way I see it, making breaking changes not only leaves you with the pieces if something goes wrong, it leaves you with everything else which is now broken if everything goes right. 2021-01-04T08:42:13Z beach: frodef`: The first-class global environments is such a thing that it is transparent to conforming Common Lisp programs, but it gives a whole new tool if the programmer wants to go beyond the standard. 2021-01-04T08:42:47Z beach: no-defun-allowed: Very philosophical. :) 2021-01-04T08:43:03Z frodef`: beach: yup, seems a good idea. 2021-01-04T08:44:13Z beach: I am still not sure whether your question was answered, but I hope you have some more hints. What was the reason for your question? 2021-01-04T08:44:16Z no-defun-allowed: Although hardly related, I have this opinion after a discussion with my favourite co-author about "Why Turtl Switched From CL to JavaScript" , in which the author was mainly stuffed, because they began writing asynchronous code, and had to either patch in, or completely rewrite, all this synchronous stuff that already existed. 2021-01-04T08:44:53Z frodef`: beach: sure thanks, sorry again for being wishy-washy. 2021-01-04T08:46:06Z beach: No problem. But what was the reason? :) 2021-01-04T08:46:08Z frodef`: I do think CL have some warts and shortcomings. Warts like e.g. the sequence functions that I sometimes see as both awkward to use and incurs extra O(N) performance hits. 2021-01-04T08:46:55Z frodef`: beach: reason being general interest and trying to understand the SICL project, combined with my own related experience I guess. 2021-01-04T08:47:07Z beach: frodef`: Yes, I have seen hints about your opinions lately. 2021-01-04T08:48:36Z beach: frodef`: The reason for the SICL project is that I wanted to improve on implementations, but not the language (for which I am not smart enough), but the improvements I could see would be unacceptable to maintainers of existing implementations. 2021-01-04T08:48:43Z madage quit (Ping timeout: 240 seconds) 2021-01-04T08:49:03Z luckless quit (Ping timeout: 240 seconds) 2021-01-04T08:49:23Z Aurora_v_kosmose quit (Ping timeout: 240 seconds) 2021-01-04T08:49:36Z beach: frodef`: In particular, I want to improve on development and debugging tools. I am always amazed when I see how some people here think Emacs+SLIME represent the best development environment around, no matter the language. 2021-01-04T08:49:46Z frodef`: beach: right. 2021-01-04T08:50:08Z beach: I mean, calling the "SLIME debugger" a "debugger" is a joke. 2021-01-04T08:50:18Z beach: ... as my paper on debugging explains. 2021-01-04T08:50:19Z frodef`: beach: that brings me to antoher of my pet peevs, the lack of a recursive debugger/repl in SLIME. 2021-01-04T08:50:26Z frodef`: s/peeves 2021-01-04T08:50:33Z frodef`: ...isn't it? 2021-01-04T08:50:42Z phoe: recursive? what do you mean? 2021-01-04T08:50:46Z phoe: you can nest debuggers 2021-01-04T08:50:57Z phoe: and you can interact with the REPL while the debugger is open 2021-01-04T08:51:32Z frodef`: phoe: have you used ELI? 2021-01-04T08:51:36Z luckless joined #lisp 2021-01-04T08:51:46Z phoe: frodef`: nope. what is it like? 2021-01-04T08:51:47Z beach: frodef`: I don't consider "staring at a backtrace when things go wrong" a "debugger". I want to be able to set breakpoints without recompiling the code, and I want to be able to step from a breakpoint. 2021-01-04T08:52:24Z frodef`: beach: yes, that too. 2021-01-04T08:52:56Z Aurora_v_kosmose joined #lisp 2021-01-04T08:53:14Z frodef`: phoe: what I think is essential, is basically to be able to do this: ... 2021-01-04T08:53:21Z beach: And, if I run ASDF from the SLIME REPL, I get no presentations to click on, and I get compiler messages as text that I then have to manually match to the source code. 2021-01-04T08:53:41Z mfiano: Sly stickers, and breaking stickers, are a vast improvement over the SLIME debugging experience, and print traditional "print debugging". 2021-01-04T08:53:46Z frodef`: (let ((*dynamic-context* 'foo)) (invoke-debugger)) 2021-01-04T08:53:56Z frodef`: ..and get a new, usable REPL. 2021-01-04T08:54:10Z phoe: frodef`: oh, a new one, as opposed to reusing the old one? 2021-01-04T08:54:32Z phoe: because in slime, the old REPL then ends up in that new dynamic context 2021-01-04T08:54:38Z phoe: until you leave the debugger, that is 2021-01-04T08:55:05Z shifty quit (Ping timeout: 240 seconds) 2021-01-04T08:55:10Z beach: mfiano: If the underlying Common Lisp implementations can't set breakpoints, I think there are limits to the possible improvements. 2021-01-04T08:55:35Z beach: mfiano: But I haven't used Sly, so I don't know how much better it is. 2021-01-04T08:55:47Z frodef`: phoe: well, maybe slime even works the way it should, but the "debugger" buffer gives me a very strong impetus to "get out of here!" immediately. 2021-01-04T08:56:04Z mfiano: Indeed. You don't have to tell me. I have seen your talks. I'm just saying there are better alternatives/companions to the "SLIME Debugger" 2021-01-04T08:56:05Z shifty joined #lisp 2021-01-04T08:56:12Z beach: mfiano: I also seem to recall some people here mentioning features that are missing in Sly that I often use. 2021-01-04T08:56:23Z beach: mfiano: Ah, OK. 2021-01-04T08:56:26Z frodef`: phoe: maybe I should investigate slime more carefully.. :) 2021-01-04T08:56:34Z phoe: frodef`: I see and understand; still, the REPL buffer is still working even with the debugger open 2021-01-04T08:56:46Z phoe: you can minimize the buffer or keep it elsewhere while you REPL your way out of the error 2021-01-04T08:56:55Z mfiano: beach: Which features that you often use? 2021-01-04T08:57:02Z phoe: and only then hit some restart in the debugger window, or manually INVOKE-RESTART in the REPL to make it disappear 2021-01-04T08:57:17Z fiddlerwoaroof: frodef`: as far as the O(n) issues with sequence functions, most of those are solvable 2021-01-04T08:57:25Z beach: mfiano: I can't remember what it was. I just saw someone mention it as lacking is Sly, and I recognized that I used it. 2021-01-04T08:58:04Z beach: frodef`: So, I suggest that, instead of trying to improve the language, you use your experience and knowledge to help create a better development environment. 2021-01-04T08:58:05Z fiddlerwoaroof: The SERIES package is one example of a solution 2021-01-04T08:58:08Z mfiano: The only thing I can recall off hand that is lacking in Sly over SLIME, is a contrib for SBCL's statistical profiler. 2021-01-04T08:58:26Z beach: That doesn't ring a bell. 2021-01-04T08:58:34Z frodef`: beach: sure, trying to get up to speed again :) 2021-01-04T08:58:49Z beach: mfiano: Maybe I should just try Sly and let you know when I wanted something that is missing. 2021-01-04T08:58:51Z phoe: frodef`: there's an upcoming video where I show the basics of this thing off 2021-01-04T08:59:00Z beach: frodef`: Great! 2021-01-04T08:59:03Z fiddlerwoaroof: mfiano: is there slime-media in SLY? 2021-01-04T08:59:07Z phoe: it'll be available tomorrow evening and I'll post it on Reddit once it's made available 2021-01-04T08:59:24Z mfiano: Sly is forked off of SLIME with nothing really removed, just features added and bugs fixed that weren't in the interest of SLIME. Of course, there are probably some exceptions to this, which I cannot recall off hand. 2021-01-04T08:59:36Z frodef`: phoe: nice! "upcoming" as in "there's already a series of videos on related stuff"? 2021-01-04T08:59:36Z phoe: presentations 2021-01-04T08:59:51Z phoe: frodef`: yes 2021-01-04T08:59:54Z galex-713 joined #lisp 2021-01-04T08:59:58Z mfiano: In Sly, everything is a button and can be clicked on to inspect/further manipulate. 2021-01-04T09:00:05Z madage joined #lisp 2021-01-04T09:00:09Z mfiano: So no, no presentations. We have more useful buttons. 2021-01-04T09:00:24Z phoe: someone asked me for an interview about the Common Lisp condition system and it turned out to be an interview about Common Lisp in general 2021-01-04T09:00:40Z beach: Oh, nice! Who is "someone"? 2021-01-04T09:00:41Z phoe: and the video will go public tomorrow, showing off my majestic technical screensharing setup too 2021-01-04T09:00:59Z phoe: beach: you'll see 2021-01-04T09:01:01Z phoe: :D 2021-01-04T09:01:03Z beach: Heh, OK. 2021-01-04T09:05:36Z mfiano: One nice feature of Sly, is a function which can be used to send arbitrary data to the REPL from CL. I use this in a game engine to be able to cast a ray through 3-space where the mouse cursor is, and return a CLOS instance of the first object intersecting that raycast, so "mouse picking" in a projected 3-dimensional space. 2021-01-04T09:06:07Z liberliver joined #lisp 2021-01-04T09:06:27Z mfiano: But Stickers, as I've mentioned, is one of it's main selling points for me. 2021-01-04T09:06:45Z hendursa1 joined #lisp 2021-01-04T09:07:38Z frodef`: phoe: is there a link to said video series? 2021-01-04T09:07:40Z flip214: mfiano: is that a kind of dev env like Unity? 2021-01-04T09:08:35Z phoe: frodef`: https://www.youtube.com/playlist?list=PLTx-VKTe8yLyKtsZhfHbQ6N9u_5E5nbHK 2021-01-04T09:08:43Z mfiano: I have a game engine I've been working on for years, that takes a lot of inspiration from Unity (and fixes a lot of its mistakes [and admittedly creates more still]) 2021-01-04T09:08:59Z phoe: oh bother, the video is already there :O 2021-01-04T09:09:03Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-04T09:09:08Z phoe: even though it's unlisted! 2021-01-04T09:09:12Z frodef`: phoe: thanks! 2021-01-04T09:09:21Z phoe just broke the veil of silence 2021-01-04T09:09:37Z frodef`: phoe: why the veil/unlisting? 2021-01-04T09:10:28Z flip214: mfiano: I'd love to have something unity-like (but not too like it ;) in CL... that could enable quite a lot of quick game ideas 2021-01-04T09:10:42Z frodef`: phoe: oh.. the /series/ wasn't unlisted, I guess. 2021-01-04T09:10:44Z phoe: frodef`: it's scheduled for a minor premiere tomorrow. 2021-01-04T09:10:49Z phoe: yes, the playlist is public 2021-01-04T09:11:12Z phoe: and a public playlist can contain links to unlisted videos. 2021-01-04T09:11:28Z frodef`: phoe: right. thanks again. 2021-01-04T09:11:50Z a0 joined #lisp 2021-01-04T09:11:51Z phoe notifies the playlist owner and waits for the scolding 2021-01-04T09:14:01Z mfiano: Sadly my game engine is not documented yet, and aimed at professional-quality games, not quick prototypical projects. Its focus is on interactivity, thus removing the need for an "editor". For example, there is a rather complex DEFINE-PREFAB macro that can be used to describe arbitrary sub-trees that can be instantiated or spliced into other sub-trees to be instantiated with them. C-c C-c'ing any of 2021-01-04T09:14:02Z hsaziz quit (Ping timeout: 265 seconds) 2021-01-04T09:14:03Z mfiano: these as a game is running is an easy way to redefine large portions of the game. There is a DEFINE-* form for everything actually, including individual GLSL shader functions. 2021-01-04T09:15:04Z flip214: sounds cool! 2021-01-04T09:15:24Z frodef`: phoe video: "... why don't everybody do this if it has been known for a long time?", indeed. 2021-01-04T09:16:10Z no-defun-allowed: They're functional programmers, so they should know the answer. 2021-01-04T09:16:40Z no-defun-allowed: And, of course, they know the answer is because no one wrote a paper detailing the denotational semantics and underpinning by the lambda calculus or something like that. 2021-01-04T09:16:46Z shifty quit (Ping timeout: 246 seconds) 2021-01-04T09:17:28Z shifty joined #lisp 2021-01-04T09:18:48Z no-defun-allowed: (But actually, someone told me that without the presence of state, having the dynamic environment doesn't matter. Also, aren't they supposed to not have bugs or something? I'll stop now.) 2021-01-04T09:19:38Z flip214: mfiano: is it open source, per chance? 2021-01-04T09:19:55Z mfiano: flip214: The problem is it's a lot of work, as evidenced by working at it for about a decade now, and while it can be used to make games currently, it is still far from ready. The sad part is, even with a complete game engine that is general-purpose enough for the kind of game you want to make, game development is an even longer process. Just the playtest-tweak feedback loop could take a year or 2021-01-04T09:19:56Z mfiano: longer, and that's after all the game logic, assets, have allocated a lot of time. I wouldn't advice anyone to make an engine if that are looking to make a game, heh. 2021-01-04T09:20:32Z mfiano: Yes it is, but I wouldn't recommend using it yet, not that it'd make much sense, being such a large codebase and without documentation yet. 2021-01-04T09:20:45Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-04T09:21:08Z frodef`: no-defun-allowed: the idea that a software system should not be designed on the assumption that there are no bugs, seems to be lost. 2021-01-04T09:23:23Z Alfr joined #lisp 2021-01-04T09:24:27Z Alfr quit (Client Quit) 2021-01-04T09:25:13Z mfiano: It's quite a large project, and has been refactored several times, and I still wouldn't call it the nicest code I've written. Just the math support library is 15hloc and growing, which is quite a lot for Lisp. 2021-01-04T09:25:18Z Alfr joined #lisp 2021-01-04T09:25:27Z mfiano: 15kloc* 2021-01-04T09:27:16Z flip214: mfiano: well, make it a well-known project and hope for volunteers to help clean it up?! 2021-01-04T09:28:28Z shifty quit (Ping timeout: 272 seconds) 2021-01-04T09:28:40Z mfiano: My goal right now is to add some of the missing features that are absolutely needed, so that I can finalize its API and begin documenting it. Only then can I advertise or recommend its use 2021-01-04T09:29:24Z shifty joined #lisp 2021-01-04T09:30:52Z mfiano: I was prepared to give a talk on phoe's stream soon, but I decided against that, as I really want to stabilize it first (sorry phoe). 2021-01-04T09:32:13Z phoe: no problem, quality before quantity 2021-01-04T09:32:44Z mfiano: I might consider giving a theory talk on why I think CL is the best language for gamedev, but as far as demonstrating my project(s), I don't think that is a good idea. 2021-01-04T09:35:18Z frodef`: Is there really no way to add your own slime shortcuts? The comma commands, I mean. 2021-01-04T09:40:58Z phoe: frodef`: https://github.com/slime/slime/blob/fb12bac676ab51b75be19197e21ab4674479d627/contrib/slime-repl.el#L1491-L1493 2021-01-04T09:41:09Z phoe: that's the implementation for ,restart-inferior-lisp 2021-01-04T09:41:42Z phoe: see above for more examples 2021-01-04T09:42:12Z frodef`: phoe: right, thanks. 2021-01-04T09:46:43Z pve joined #lisp 2021-01-04T09:51:09Z beach: phoe: "VAR-ee-able", not "var-EYE-able" 2021-01-04T09:51:45Z phoe: beach: thanks, I'm trying to fix this :D 2021-01-04T09:52:30Z beach: Your written English is quite good, so I am aiming for perfection. :) 2021-01-04T09:53:51Z beach: "un-w-eye-nding" not "un-wind-ing" 2021-01-04T09:55:15Z phoe: I remember that one too 2021-01-04T09:56:06Z hsaziz joined #lisp 2021-01-04T09:58:11Z flip214: beach: +1, though I'm not sure how much improvement you can get (or expect) 2021-01-04T09:58:48Z beach: From what? 2021-01-04T10:00:21Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-04T10:00:30Z flip214: from people's speeches 2021-01-04T10:01:30Z Aurora_v_kosmose joined #lisp 2021-01-04T10:01:41Z beach: Like I said, phoe's written English is quite good, and he has only a few major quirks, so I think there is hope. :) 2021-01-04T10:02:37Z makomo quit (Ping timeout: 246 seconds) 2021-01-04T10:02:38Z beach: For speakers of German pronouncing English `v' as an English `w' I have much more work to do. :) 2021-01-04T10:02:39Z flip214: "only a few major quirks" would get me a MAJOR look from my daughter ;) 2021-01-04T10:03:45Z beach: I don't understand. 2021-01-04T10:05:33Z hiroaki quit (Remote host closed the connection) 2021-01-04T10:06:07Z hiroaki joined #lisp 2021-01-04T10:06:13Z andreyorst quit (Ping timeout: 264 seconds) 2021-01-04T10:06:48Z flip214: My daughter opines that I've committed some major faults in her (and her siblings) education, being too sincere or outright and similar stuff 2021-01-04T10:07:39Z beach: Ah, I see. 2021-01-04T10:07:44Z contrapunctus left #lisp 2021-01-04T10:08:00Z contrapunctus joined #lisp 2021-01-04T10:09:27Z contrapunctus left #lisp 2021-01-04T10:09:38Z shifty quit (Ping timeout: 272 seconds) 2021-01-04T10:09:45Z contrapunctus joined #lisp 2021-01-04T10:09:56Z shifty joined #lisp 2021-01-04T10:11:37Z orivej quit (Ping timeout: 264 seconds) 2021-01-04T10:12:15Z beach: flip214: I see huge differences in my students, with respect to the willingness to learn and to be humiliated and embarrassed (which is an essential part of learning). My estimate is that phoe prefers to learn and that he can deal with humiliation and embarrassment, especially since he knows me and my intentions. 2021-01-04T10:12:40Z beach: For your offspring, you need to tread carefully according to the attitude of each one. 2021-01-04T10:13:33Z frodef`: beach: differences in what direction? Or do you mean individual differences? 2021-01-04T10:14:03Z beach: Individual differences in attitude toward learning new stuff. 2021-01-04T10:14:33Z frodef`: right, at first I thought you meant an overall trend over the years. 2021-01-04T10:14:41Z beach: No, not at all. 2021-01-04T10:14:56Z frodef`: good :) 2021-01-04T10:16:15Z dhil joined #lisp 2021-01-04T10:21:08Z flip214: beach: most of that is just good-natured leg-pulling... and everything that we've done wrong it's too late to change now anyway ;) 2021-01-04T10:21:28Z beach: Sure. 2021-01-04T10:22:01Z beach: Also parents have a tendency to hugely exaggerate their influence on their children. 2021-01-04T10:26:11Z v3ga left #lisp 2021-01-04T10:26:51Z v3ga joined #lisp 2021-01-04T10:27:17Z aartaka joined #lisp 2021-01-04T10:27:51Z ralt: I personally think the "praise in public, blame in private" motto is not a too bad one 2021-01-04T10:28:14Z ralt: especially for things like correcting english, doing it in PM isn't too much of a chore, and would potentially avoid the off-topic in #lisp ;-) 2021-01-04T10:28:27Z beach: Point taken. 2021-01-04T10:29:24Z flip214: but then all the other people couldn't learn at the same time, increasing beach's work by a factor > 1! 2021-01-04T10:29:25Z aartaka quit (Read error: Connection reset by peer) 2021-01-04T10:29:38Z aartaka joined #lisp 2021-01-04T10:29:42Z MichaelRaskin quit (Ping timeout: 256 seconds) 2021-01-04T10:30:44Z aartaka_d joined #lisp 2021-01-04T10:34:25Z aartaka quit (Ping timeout: 264 seconds) 2021-01-04T10:35:20Z beach: phoe: This interview is an excellent exposure of Common Lisp to (I assume) people who did not yet know much of it. 2021-01-04T10:38:01Z phoe bows 2021-01-04T10:38:04Z phoe: hope that it works well 2021-01-04T10:39:22Z beach: At 52 minutes, that implementation is known as "shallow binding". 2021-01-04T10:39:58Z phoe: beach: thanks 2021-01-04T10:40:07Z phoe adds a note for second edition for TCLCS 2021-01-04T10:41:32Z frodef`: beach: do you have thread-safe shallow binding for sicl? 2021-01-04T10:41:35Z andreyorst joined #lisp 2021-01-04T10:41:52Z beach: My plan is to use deep binding. 2021-01-04T10:41:56Z hsaziz quit (Ping timeout: 272 seconds) 2021-01-04T10:42:06Z frodef`: ok 2021-01-04T10:42:37Z frodef`: it's an interesting problem I think. 2021-01-04T10:42:57Z beach: I am kind of the co-designer of the technique used by SBCL. :) 2021-01-04T10:43:31Z frodef`: beach: cool, do you have a pointer to info? 2021-01-04T10:43:55Z beach: Not really. It was designed together with dan_b some 20 years ago. 2021-01-04T10:44:26Z frodef`: ..an executive summary, then? :) 2021-01-04T10:44:28Z beach: I counted on him to do the real implementation work, which apparently he did. 2021-01-04T10:45:24Z beach: Number the symbols, or at least the ones that are bound. Provide a thread-specific slot in the thread object. Put old values on the stack. 2021-01-04T10:45:56Z beach: The thread object contains an array of slots, indexed by the symbol number. 2021-01-04T10:47:12Z beach: So access to a special variable is: Go to the thread object, and index the vector with the symbol number. 2021-01-04T10:47:47Z beach: Global values have to be handled specially. I forget what we came up with. 2021-01-04T10:49:22Z phoe: if the thread-specific slot is EQ to some unbound value, visit the thread-independent global value stored somewhere? 2021-01-04T10:49:32Z phoe: that's the first thing that comes to my mind 2021-01-04T10:49:49Z frodef`: beach: isn't that O(1)-ish shallow binding? 2021-01-04T10:50:02Z beach: Yes, that was the idea. 2021-01-04T10:50:12Z beach: Not cheap, but O(1). 2021-01-04T10:51:41Z beach: phoe: Not quite. The latest binding can be unbound which is valid. 2021-01-04T10:51:50Z beach: That's what PROGV does as I recall. 2021-01-04T10:52:20Z phoe: huh? can it make a variable unbound? 2021-01-04T10:52:44Z beach: Yes, I think the phrase is "binds it and then makes it unbound" or something like that. 2021-01-04T10:52:54Z phoe: > progv creates new dynamic variable bindings and executes each form using those bindings. Each form is evaluated in order. 2021-01-04T10:52:57Z phoe: clhs progv 2021-01-04T10:52:57Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_progv.htm 2021-01-04T10:53:24Z phoe: I don't think PROGV can ever make a dynavar unbound 2021-01-04T10:54:07Z phoe: which then means that the existence of *any* binding causes the variable to be bound 2021-01-04T10:54:10Z beach: If too few values are supplied, the remaining symbols are bound and then made to have no value" 2021-01-04T10:54:16Z beach: I didn't mean "unbind" 2021-01-04T10:54:22Z phoe: ...oh wait a second... 2021-01-04T10:54:23Z beach: I meant "made to have no value". 2021-01-04T10:54:42Z phoe: ...oh shit 2021-01-04T10:54:46Z phoe stares 2021-01-04T10:54:57Z phoe: I was completely unaware of this 2021-01-04T10:55:16Z phoe: oh well then, s/some unbound value/some marker value that is different from the unbound value/ 2021-01-04T10:55:28Z beach: So you can have a recent binding with no value shadowing a less recent one with a value. 2021-01-04T10:55:41Z beach: And SYMBOL-VALUE will then signal an error. 2021-01-04T10:55:53Z beach: Sure, that might work. 2021-01-04T10:56:44Z ralt: oooh 22:30 is actually an a-ha moment for me 2021-01-04T10:56:59Z makomo joined #lisp 2021-01-04T10:58:50Z SpaceIgor2075 joined #lisp 2021-01-04T11:00:59Z phoe: ralt: what exactly? 2021-01-04T11:01:17Z ralt: the fact that handlers are just functions that are called normally at this part of the stack 2021-01-04T11:01:55Z ralt: this makes it obvious why this is not unwinding the stack 2021-01-04T11:03:24Z makomo quit (Ping timeout: 258 seconds) 2021-01-04T11:04:08Z phoe: (with-shameless-plug (princ "that's a sneak-peek of the contents of TCLCS, if you ever decide to read it")) 2021-01-04T11:04:13Z beach: It is very simple. Yet, other languages haven't figured it out. 2021-01-04T11:04:18Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-04T11:04:45Z beach: phoe: I am currently reading it. I was given it for christmas. 2021-01-04T11:04:53Z phoe: beach: I know, you told me 2021-01-04T11:04:56Z beach: Oh. :( 2021-01-04T11:05:02Z beach: Memory! 2021-01-04T11:05:53Z phoe: no problem, I'm here to remind you :D 2021-01-04T11:05:58Z wxie quit (Ping timeout: 256 seconds) 2021-01-04T11:06:15Z beach: Good. Can I hire you full time to do that? 2021-01-04T11:07:01Z ralt: phoe: it has my name on it, I have to buy it anyway :P 2021-01-04T11:07:43Z beach: phoe: I don't know the interviewer, but I take it it's about functional programming, usually, yes? 2021-01-04T11:08:34Z phoe: ralt: :D 2021-01-04T11:08:46Z beach: But let me say this again. Excellent plug for Common Lisp. And the ease with which you manipulate the development environment is bound to impress them. 2021-01-04T11:09:04Z phoe: beach: yes, this person comes from the functional programming community and was interested by TCLCS and Lisp in general 2021-01-04T11:09:17Z beach: Great! 2021-01-04T11:09:17Z phoe: I mentioned to him that Lisp isn't really functional, but he wanted to discuss things anyway 2021-01-04T11:09:25Z beach: Yes, I see. 2021-01-04T11:09:25Z phoe: so, well, we discussed em 2021-01-04T11:21:20Z heisig joined #lisp 2021-01-04T11:23:18Z nullheroes joined #lisp 2021-01-04T11:24:14Z frodef` quit (Read error: Connection reset by peer) 2021-01-04T11:27:07Z makomo joined #lisp 2021-01-04T11:27:21Z frodef` joined #lisp 2021-01-04T11:28:44Z ralt: actually, how is a retry restart not going down the stack if it's just a normal function? 2021-01-04T11:28:57Z phoe: ralt: what do you mean, not going down the stack? 2021-01-04T11:29:08Z phoe: a restart is just a structure, it's a piece of data 2021-01-04T11:29:16Z ralt: restart handler, sorry 2021-01-04T11:29:18Z phoe: it has a restart function that can perform a non-local jump 2021-01-04T11:29:22Z phoe: that's all 2021-01-04T11:29:29Z varjag joined #lisp 2021-01-04T11:29:38Z ralt: what I mean is when you execute a function, you add a new entry to the stack 2021-01-04T11:29:54Z phoe: yes 2021-01-04T11:30:07Z ralt: if you execute a restart handler, and you pick "Retry", the naive way would be to call the function again 2021-01-04T11:30:12Z phoe: and then this entry on the stack can perform a GO or a RETURN-FROM or a THROW 2021-01-04T11:30:14Z ralt: which would add to the stack 2021-01-04T11:30:18Z phoe: and therefore unwind the stack 2021-01-04T11:30:22Z phoe: the whole magic of the condition system is because we have UNWIND-PROTECT and TAGBODY/GO/BLOCK/RETURN-FROM 2021-01-04T11:30:25Z ralt: ah, it's using a GO to unwind the stack 2021-01-04T11:30:40Z phoe: it can use any of the three 2021-01-04T11:30:49Z phoe: GO and RETURN-FROM are the most common 2021-01-04T11:31:03Z phoe: you could take a look at https://www.youtube.com/watch?v=V4P9lFK79hQ where I describe the topic - both halves of the video should be of interest to you 2021-01-04T11:31:31Z SpaceIgor2075 quit (Ping timeout: 246 seconds) 2021-01-04T11:36:08Z random-nick joined #lisp 2021-01-04T11:36:15Z vegansbane6 joined #lisp 2021-01-04T11:39:54Z flip214: phoe: the Hello-world example is on the SBCL20 shirts! 2021-01-04T11:40:07Z phoe: flip214: which example? 2021-01-04T11:40:15Z phoe: the tagbody one? 2021-01-04T11:40:50Z makomo quit (Ping timeout: 264 seconds) 2021-01-04T11:41:44Z galex-713 quit (Ping timeout: 258 seconds) 2021-01-04T11:41:56Z flip214: yeah 2021-01-04T11:43:16Z okflo joined #lisp 2021-01-04T11:43:40Z flip214: the example is not that great, or surprising, anyway... 2021-01-04T11:43:51Z phoe: surprising to whom exactly though 2021-01-04T11:44:17Z phoe: I've showed it to several people and the general reaction was either "wow you can do that in Lisp?" or "wow you can do BASIC in Lisp?" 2021-01-04T11:44:40Z phoe: so I'd count it as an eye-opener; a very trivial one, yes, but still 2021-01-04T11:45:25Z flip214: great, that's what I was aiming at 2021-01-04T11:46:01Z phoe: there are more contrived examples to be shown, including LOOP expansions (which I did in the video), but IMO it's important to start with something as simple as possible 2021-01-04T11:46:20Z frodef`` joined #lisp 2021-01-04T11:46:23Z phoe: and the tagbody hello world example is perfect for that 2021-01-04T11:47:16Z frodef` quit (Ping timeout: 246 seconds) 2021-01-04T11:47:37Z flip214: right! 2021-01-04T11:47:58Z flip214: and at least the previous generation (now in management) will find that familiar 2021-01-04T11:48:13Z shifty quit (Ping timeout: 265 seconds) 2021-01-04T11:48:13Z phoe: the "now in management" comment made me giggle 2021-01-04T11:52:38Z flip214: well, age-wise 2021-01-04T11:53:04Z frgo quit (Remote host closed the connection) 2021-01-04T11:53:08Z phoe: yes, I understood that 2021-01-04T11:53:31Z frgo joined #lisp 2021-01-04T11:54:33Z flip214: so we need to have some similar-to-python snippets for such videos in 20 years, when The Next Generation has taken over 2021-01-04T11:55:05Z galex-713 joined #lisp 2021-01-04T11:59:11Z Krystof: I like the optimism that the world will still exist in 20 years 2021-01-04T11:59:22Z Krystof: Happy New Year! 2021-01-04T11:59:41Z no-defun-allowed: If we don't do the impossible, we will be faced with the unthinkable. 2021-01-04T11:59:57Z no-defun-allowed: Doing the impossible requires some stubbornness though. 2021-01-04T12:00:59Z Krystof: and a good breakfast 2021-01-04T12:01:06Z flip214: Krystof: as I invested in having kids, it better not stop turning until that has paid off! 2021-01-04T12:01:25Z beach: Krystof: You too. 2021-01-04T12:01:37Z flip214: you can surely relate to that... 2021-01-04T12:01:57Z flip214: Krystof: so you're moving to France? 2021-01-04T12:03:14Z Krystof: what? No, not currently planning to 2021-01-04T12:03:39Z flip214: well, you talked about getting a good breakfast ;) 2021-01-04T12:04:34Z beach: French breakfast is horrible compared to English breakfast. 2021-01-04T12:04:58Z heisig: French breakfast is a cup of coffee and a cigarette. 2021-01-04T12:05:06Z flip214: really? I haven't been to the UK for more than switching between planes, but there's this joke about Canada... 2021-01-04T12:05:34Z beach: heisig: A croissant if you have been good. 2021-01-04T12:05:51Z ralt: And a pain au chocolat 2021-01-04T12:05:59Z beach: That would be OR. 2021-01-04T12:06:18Z beach: Besides, they are called "chocolatines" where I live. 2021-01-04T12:06:21Z ralt: No. And. I'm hungry for breakfast. 2021-01-04T12:07:06Z ralt: I live in another part of France, those calling it "chocolatine" are considered heathens around here :p 2021-01-04T12:07:58Z heisig: And thus, the channel derailed... 2021-01-04T12:08:11Z beach will stop now. 2021-01-04T12:08:34Z flip214: heisig: food always makes a good /topic 2021-01-04T12:09:13Z beach: flip214: I see you are set on starting two off-topic discussion with short intervals. 2021-01-04T12:10:19Z flip214: beach: oh, sorry. I'll shut up. 2021-01-04T12:10:26Z phoe: food is on-topic in #lispcafe! 2021-01-04T12:13:09Z ralt: beach is not over here tho 2021-01-04T12:14:30Z phoe: well, he should join, I'm kinda curious about French breakfasts but I don't want to make #lisp participants hungry by discussing foodstuffs here 2021-01-04T12:14:33Z phoe: :D 2021-01-04T12:20:01Z igemnace quit (Remote host closed the connection) 2021-01-04T12:25:07Z SpaceIgor2075 joined #lisp 2021-01-04T12:26:03Z varjag: anyone knows if there's a way to broadcast udp in lispworks, other than via ffi? 2021-01-04T12:26:04Z beach: *sigh* 2021-01-04T12:26:05Z Stanley|00 quit 2021-01-04T12:26:30Z SpaceIgor2075 quit (Remote host closed the connection) 2021-01-04T12:26:52Z SpaceIgor2075 joined #lisp 2021-01-04T12:27:23Z luckless quit (Ping timeout: 240 seconds) 2021-01-04T12:27:39Z orivej joined #lisp 2021-01-04T12:28:27Z luckless joined #lisp 2021-01-04T12:29:57Z SpaceIgor2075 quit (Remote host closed the connection) 2021-01-04T12:30:17Z SpaceIgor2075 joined #lisp 2021-01-04T12:30:38Z SpaceIgor2075 quit (Client Quit) 2021-01-04T12:31:12Z SpaceIgor2075 joined #lisp 2021-01-04T12:34:26Z SpaceIgor2075 quit (Remote host closed the connection) 2021-01-04T12:34:43Z SpaceIgor2075 joined #lisp 2021-01-04T12:37:00Z phoe: varjag: maybe HUG will know better 2021-01-04T12:37:46Z flip214: https://www.twitch.tv/elsconf/videos?filter=all says "ELSConf is offline" and there are no videos... are they somewhere else? 2021-01-04T12:38:40Z phoe: flip214: https://www.youtube.com/c/EuropeanLispSymposium/videos 2021-01-04T12:38:46Z phoe: twitch autodeletes videos after two weeks AFAIK 2021-01-04T12:38:52Z flip214: oh, okay. thanks! 2021-01-04T12:38:56Z frost-lab quit (Quit: Connection closed) 2021-01-04T12:39:45Z ralt: varjag: I think USOCKET allows you to use UDP sockets 2021-01-04T12:43:15Z frodef``: hi varjag 2021-01-04T12:44:26Z varjag: frodef``: hi, long time! 2021-01-04T12:44:38Z varjag: phoe: i asked there to no reply 2021-01-04T12:45:01Z varjag: ralt: udp broatcast doesn't work on lw via usocket 2021-01-04T12:45:36Z varjag: couldn't find anything in lw comm api either 2021-01-04T12:46:14Z varjag: oh well guess that means setsockopt via ffi or something 2021-01-04T12:46:54Z ralt: Maybe the implementation provided sockets rather than USOCKET will be helpful 2021-01-04T12:47:06Z ralt: E.g. I think sbcl provides setsockopt 2021-01-04T12:47:19Z varjag: that's the comm api yeah 2021-01-04T12:47:32Z varjag: com 2021-01-04T12:48:12Z varjag: but you're right it exposes setsockopt 2021-01-04T12:49:17Z ralt: At worst you have SOCKINT:: that is exposing pretty much everything via cffi 2021-01-04T12:49:59Z ralt: (an sbcl internal package) 2021-01-04T12:51:08Z ralt: I had to use it recently to do ancillary data with sockets, SOCKINT was already providing unexported symbols for msghdr structures 2021-01-04T12:52:14Z docl_ is now known as docl 2021-01-04T12:53:44Z varjag: right well, am using lispworks here so it's comm: 2021-01-04T12:54:09Z ralt: Ah, sorry, I've never used lispworks. 2021-01-04T12:54:48Z varjag: usocket's way of broadcast works fine on ccl and sbcl i think, so there's no need to fiddle 2021-01-04T13:00:31Z a0 quit (Remote host closed the connection) 2021-01-04T13:03:41Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-04T13:06:55Z uniminin joined #lisp 2021-01-04T13:07:08Z uniminin quit (Max SendQ exceeded) 2021-01-04T13:08:12Z uniminin joined #lisp 2021-01-04T13:08:57Z uniminin quit (Max SendQ exceeded) 2021-01-04T13:09:28Z uniminin joined #lisp 2021-01-04T13:10:35Z uniminin quit (Max SendQ exceeded) 2021-01-04T13:11:03Z uniminin joined #lisp 2021-01-04T13:12:24Z uniminin quit (Max SendQ exceeded) 2021-01-04T13:15:53Z surabax joined #lisp 2021-01-04T13:17:16Z galex-713 joined #lisp 2021-01-04T13:17:48Z makomo joined #lisp 2021-01-04T13:20:38Z SpaceIgor2075: Can I make executable fies with asdf? 2021-01-04T13:25:00Z SpaceIgor2075: * files 2021-01-04T13:25:15Z beach: There is a PROGRAM-OP in ASDF. 2021-01-04T13:25:25Z beach: But I suppose the Common Lisp implementation must allow it. 2021-01-04T13:25:48Z beach: It is explained in the ASDF manual. 2021-01-04T13:27:55Z SpaceIgor2075: Okay, thanks. Joining irc channels makes me forget that i can just rtfm indtead of asking basic questions :) 2021-01-04T13:29:21Z beach: Sure. 2021-01-04T13:29:31Z gko_ joined #lisp 2021-01-04T13:31:01Z Bike joined #lisp 2021-01-04T13:31:53Z phoe: SpaceIgor2075: check out Shinmera's Deploy 2021-01-04T13:32:01Z phoe: it makes making binaries easy, easier 2021-01-04T13:37:44Z MichaelRaskin joined #lisp 2021-01-04T13:39:56Z epony quit (Ping timeout: 240 seconds) 2021-01-04T13:41:14Z ralt: SpaceIgor2075: if your target is linux, I (biasedly) recommend linux-packaging 2021-01-04T13:42:06Z ralt: https://gitlab.com/ralt/linux-packaging 2021-01-04T13:42:10Z makomo quit (Read error: Connection reset by peer) 2021-01-04T13:42:58Z makomo joined #lisp 2021-01-04T13:43:41Z flip214: SpaceIgor2075: also, UIOP has a function for that 2021-01-04T13:44:41Z ralt: `sbcl --eval '(asdf:make :foo)'` is what you're supposed to use 2021-01-04T13:47:18Z cosimone joined #lisp 2021-01-04T13:51:39Z makomo quit (Read error: Connection reset by peer) 2021-01-04T13:55:33Z _whitelogger quit (Remote host closed the connection) 2021-01-04T13:56:08Z hendursa1 quit (Quit: hendursa1) 2021-01-04T13:56:30Z hendursaga joined #lisp 2021-01-04T13:57:10Z ebrasca joined #lisp 2021-01-04T13:57:42Z _whitelogger joined #lisp 2021-01-04T13:59:36Z saganman joined #lisp 2021-01-04T14:16:27Z wsinatra joined #lisp 2021-01-04T14:20:23Z pfdietz joined #lisp 2021-01-04T14:21:37Z dim: now I am wondering if this linux-packaging tool could be used with pgloader... 2021-01-04T14:22:14Z SpaceIgor2075: It seems my project name was so complicated i typed it with typos and asdf didn'r work. Tip for the future: don't use project names that are too complex 2021-01-04T14:24:21Z rumpelszn quit (Quit: ZNC 1.6.6+deb1ubuntu0.2 - http://znc.in) 2021-01-04T14:25:16Z shinohai: Interesting thread this morning, I've been looking into methods for producing binaries. linux-packaging tool looks neat but I just can't overcome my distaste for Docker to make it useful in my case. 2021-01-04T14:25:43Z SpaceIgor2075 quit (Read error: Connection reset by peer) 2021-01-04T14:25:47Z dim: docker is quite nice for dev/test environments really 2021-01-04T14:26:05Z SpaceIgor2075 joined #lisp 2021-01-04T14:26:13Z dim: for managing an easy to reproduce env to produce binaries, it looks pretty well suited for the task 2021-01-04T14:28:47Z shinohai: Producing actual *fully static* binary that will run irregardless of system still pipe dream I suppose. 2021-01-04T14:29:53Z frodef``: shinohai: what's the issue with Docker? 2021-01-04T14:31:04Z shinohai: frodef``: nothing I guess if that is one's bag. 2021-01-04T14:31:15Z notzmv quit (Remote host closed the connection) 2021-01-04T14:32:51Z SpaceIgo` joined #lisp 2021-01-04T14:32:52Z amb007 quit (Ping timeout: 260 seconds) 2021-01-04T14:32:55Z SpaceIgor2075 quit (Remote host closed the connection) 2021-01-04T14:35:43Z SpaceIgo` quit (Remote host closed the connection) 2021-01-04T14:35:55Z notzmv joined #lisp 2021-01-04T14:36:01Z SpaceIgor2075 joined #lisp 2021-01-04T14:43:38Z ex_nihilo_ joined #lisp 2021-01-04T14:45:42Z jasom quit (Ping timeout: 260 seconds) 2021-01-04T14:45:42Z selwyn quit (Ping timeout: 260 seconds) 2021-01-04T14:45:54Z selwyn joined #lisp 2021-01-04T14:46:17Z _whitelogger quit (Ping timeout: 260 seconds) 2021-01-04T14:46:17Z ex_nihilo quit (Ping timeout: 260 seconds) 2021-01-04T14:47:09Z jasom joined #lisp 2021-01-04T14:47:14Z epony joined #lisp 2021-01-04T14:48:15Z _whitelogger_ joined #lisp 2021-01-04T14:49:09Z gxt quit (Quit: WeeChat 3.0) 2021-01-04T14:49:20Z heisig quit (Quit: Leaving) 2021-01-04T14:50:43Z SpaceIgor2075: Should i use :depends-on (#:CL) in my asdf:defsystem? 2021-01-04T14:51:10Z dyelar joined #lisp 2021-01-04T14:51:27Z SpaceIgor2075: SBCL says ; Evaluation aborted on Component #:CL not found, required by # 2021-01-05T16:19:38Z solideogloria[m]: for some reason the prev-window function does not modify focus 2021-01-05T16:19:43Z solideogloria[m]: I can't figure out why 2021-01-05T16:19:56Z solideogloria[m]: it works when I don't use the function as you can see the commented code 2021-01-05T16:20:43Z charles` joined #lisp 2021-01-05T16:21:25Z davd33 joined #lisp 2021-01-05T16:21:54Z contrapunctus left #lisp 2021-01-05T16:22:11Z contrapunctus joined #lisp 2021-01-05T16:22:21Z Stanley00 joined #lisp 2021-01-05T16:23:29Z kaun_ left #lisp 2021-01-05T16:26:52Z Stanley00 quit (Ping timeout: 260 seconds) 2021-01-05T16:27:07Z galex-713 joined #lisp 2021-01-05T16:27:31Z contrapunctus left #lisp 2021-01-05T16:27:50Z contrapunctus joined #lisp 2021-01-05T16:29:54Z isBEKaml joined #lisp 2021-01-05T16:33:31Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-05T16:33:43Z galex-713_ joined #lisp 2021-01-05T16:34:35Z beach: solideogloria[m]: I am not sure what your problem is, but do you want remarks on that code? 2021-01-05T16:34:47Z waleee-cl joined #lisp 2021-01-05T16:35:18Z beach: solideogloria[m]: Oh, I think I see what you are asking. 2021-01-05T16:35:38Z beach: Setting focus inside prev-window will set the parameter of that function. 2021-01-05T16:35:53Z beach: solideogloria[m]: It works the same in almost all other programming languages. 2021-01-05T16:36:18Z beach: solideogloria[m]: But your code has other issues as well. 2021-01-05T16:36:56Z beach: To start with, you have a number of inexplicable blank lines. It is unusual for Common Lisp code to have blank lines inside a function. 2021-01-05T16:37:54Z beach: Then, you have an IF without an `else' branch. And since it is a form that is executed for side effect only, you should use WHEN instead. 2021-01-05T16:39:12Z phoe: solideogloria[m]: of course it modifies focus 2021-01-05T16:39:25Z phoe: your SETF calls modify the FOCUS local variable declared in line 1 of your paste 2021-01-05T16:39:47Z phoe: and likely nothing else 2021-01-05T16:39:50Z beach: Further, you are using EVENT as a Boolean in (WHEN EVENT....). In the LUV slides (page 13) by Norvig and Pitman, they explain that WHEN should be used only with Booleans, so I would write (UNLESS (NULL EVENT)...) instead. 2021-01-05T16:40:04Z beach: phoe: I think I just said that. 2021-01-05T16:40:12Z phoe: welp, yes 2021-01-05T16:40:14Z phoe hides 2021-01-05T16:40:55Z solideogloria[m]: The behaviour I expected was to modify the focus variable which events takes as an argument 2021-01-05T16:41:06Z phoe: you can't have that with a function 2021-01-05T16:41:15Z beach: solideogloria[m]: What programming language do you know that would work that way? 2021-01-05T16:41:33Z beach: Fortran I guess. 2021-01-05T16:41:48Z beach: And C++ if you have a & there. 2021-01-05T16:41:51Z solideogloria[m]: C ? 2021-01-05T16:42:07Z beach: solideogloria[m]: C doesn't work as you expected here. 2021-01-05T16:42:20Z phoe: either return a value that can then be set in EVENTS, or use a macro instead, or use a local variable that encompasses both of those functions 2021-01-05T16:42:36Z phoe: beach: it does, if you pass a pointer and do `*p = foo;` 2021-01-05T16:42:48Z solideogloria[m]: with pointers ofc 2021-01-05T16:42:59Z beach: phoe: But this code doesn't pass a pointer. 2021-01-05T16:43:04Z phoe: beach: yes 2021-01-05T16:43:09Z phoe: that's why it's not working :D 2021-01-05T16:43:39Z phoe: they could pass in a locative though, if they like this programming style 2021-01-05T16:43:58Z phoe: pass in a (lambda (x) (setf focus x)) with the FOCUS from EVENTS 2021-01-05T16:44:04Z phoe: and then funcall it with the value they want 2021-01-05T16:44:44Z solideogloria[m]: I could just write the setf in the event case at that point 2021-01-05T16:44:45Z beach: solideogloria[m]: Furthermore, (= focus 0) can be expressed as (zerop focus) which is more specific. And there is a general rule in programming that you should use the most specific construct that will do the job. 2021-01-05T16:45:05Z solideogloria[m]: 30, and still retain transparency. In one of my previous iterations, I had &rest and &key ..., in the lambdalist 2021-01-05T17:50:23Z jeosol: then it can start to get very hairy ... 2021-01-05T17:51:43Z gko_ quit (Ping timeout: 260 seconds) 2021-01-05T17:52:25Z attila_lendvai quit (Ping timeout: 264 seconds) 2021-01-05T17:52:43Z aeth: jeosol: Try using a component-based design? So instead of one object with 30 slots have one object with 6 slots that each contain an object with 5 slots? 2021-01-05T17:52:46Z jackdaniel: jeosol: create a function 2021-01-05T17:53:01Z jackdaniel: i.e (defun initialize-slot (name) (case name (foo 42) (bar 13))) 2021-01-05T17:53:19Z akoana joined #lisp 2021-01-05T17:53:24Z jackdaniel: then (defclass xxx ((foo :initform (initialize-slot 'foo)) (bar :initform (initialize-slot 'bar)))) 2021-01-05T17:53:36Z jackdaniel: you may redefine the function later to provide different default values 2021-01-05T17:54:01Z jackdaniel: (unless you depend on the object itself, then initialize instance is of course the way) 2021-01-05T17:54:06Z jeosol: aeth: good point. something similar was suggested early when i started from comp.lang.lisp (maybe it was you). I have used that in certain places and significantly reduced the slots number, 2021-01-05T17:54:23Z aeth: I don't use c.l.l, but components are trendy. 2021-01-05T17:54:24Z jeosol: It's like a car, where tires, wheel, etc, can be their own objects. 2021-01-05T17:55:43Z moon-child: c.l.l? 2021-01-05T17:55:48Z moon-child: presumably not comp.lang.lisp? 2021-01-05T17:56:34Z jeosol: jackdaniel: thanks for that. So in the function initialize-slot will essentially, have as many slots as I have right? 2021-01-05T17:56:51Z aeth: moon-child: sorry, I thought it was clear from context, i.e. ... from comp.lang.lisp (maybe it was [aeth]) ... I don't use c.l.l... 2021-01-05T17:56:54Z jeosol: moon-child: yes, I was referring to comp.lang.lisp and I think that's what aeth meant 2021-01-05T17:57:08Z jackdaniel: jeosol: that's up to you, it is the function you define 2021-01-05T17:57:17Z jeosol: ok. 2021-01-05T17:57:29Z jackdaniel: you may i.e provide otherwise clause that initializes the slot to : 2021-01-05T17:57:30Z rogersm_ quit 2021-01-05T17:57:43Z jackdaniel: (using my "case" example) 2021-01-05T17:58:10Z jackdaniel: you could also define your own slot class, but that would be overkill given that you can use initform that way 2021-01-05T18:02:56Z rogersm quit (Quit: Leaving...) 2021-01-05T18:03:38Z jeosol: jackdaniel: thank you for the suggestions 2021-01-05T18:04:38Z jackdaniel: sure 2021-01-05T18:04:45Z jeosol: Has anyone used/ or is using esrap reader? not sure dim is here 2021-01-05T18:04:56Z dim: I am 2021-01-05T18:05:06Z jeosol: basically, I'll like to go from a file of input data and then create my final object 2021-01-05T18:05:17Z jeosol: dim: hi 2021-01-05T18:05:20Z dim: been a long time I didn't hack esrap related things though, last time was a full Oracle PLSQL parser ;-) 2021-01-05T18:05:41Z jeosol: I remember, you pointed me over from comp.lang.lisp to look at pgloader code for an example 2021-01-05T18:06:01Z dim: sounds like the kind of thing I would do yes 2021-01-05T18:06:05Z jeosol: haha 2021-01-05T18:06:38Z jeosol: dim: well you did. 2021-01-05T18:08:40Z dim: hehe, well, did you find what you wanted to? 2021-01-05T18:09:01Z jeosol: dim: the pgloader example is still the best one to go to? 2021-01-05T18:09:13Z VincentVega: "In the LUV slides (page 13) by Norvig and Pitman, they explain that WHEN should be used only with Booleans, so I would write (UNLESS (NULL EVENT)...) " 2021-01-05T18:09:22Z VincentVega: beach: they make that particular suggestion w/ regards to AND/OR, not WHEN. (when smth ...) as a nil guard feels like a no-brainer, an idiom. Why be unnecessarily verbose, since it's only a question of preference? 2021-01-05T18:09:29Z dim: it's the only one I know well enough to comment, other examples might be better suited to your use case 2021-01-05T18:10:17Z jeosol: dim: I have a file for a 3rd partly software that I'd like to read and create objects as I read the file. Some of the objects are intermediate slots to a large final objects. For now, I do this process by hand, hence my large lambdalist question earlier 2021-01-05T18:10:54Z dim: well then you might find pgloader parsers useful indeed 2021-01-05T18:11:03Z jeosol: dim: I'd have to go back to it. The 3rd party software file uses include files, i.e., one file includes another file. I am thinking, I should first expand the whole thing, and then use esrap 2021-01-05T18:11:09Z jackdaniel: jeosol: here is another example (https://gitlab.common-lisp.net/ecl/ecrepl/-/blob/master/c18-syntax-reader.lisp) -- and here is more finished version with the preprocessor written by scymtym (https://github.com/scymtym/language.c) 2021-01-05T18:11:47Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-05T18:12:07Z dim: https://github.com/dimitri/pgloader/blob/master/src/parsers/parse-pgpass.lisp this one is a simple one, jeosol ; to get started 2021-01-05T18:14:20Z abhixec quit (Ping timeout: 272 seconds) 2021-01-05T18:14:31Z jeosol: jackdaniel, dim: thanks guys. These examples should help me figure things out. 2021-01-05T18:17:23Z ralt: dim: hey, long time no see 2021-01-05T18:17:34Z dim: hey ralt ! 2021-01-05T18:18:29Z dim: your distribution project looked nice, I might have to find it again and try it with pgloader... best would be to hook-it up somehow with GitHub and some CI system to produce binaries for a choice of platforms automatically, I suppose 2021-01-05T18:18:35Z dim: I wish I had time to invest in that 2021-01-05T18:19:16Z ralt: Yup, the gitlab repo has a CI example for that 2021-01-05T18:19:33Z pfdietz: I had a use for defglobal in sbcl, as a counter accessed by atomic-incf. Much faster than using explicit locks. 2021-01-05T18:23:12Z varjag joined #lisp 2021-01-05T18:23:24Z VincentVega: pfdietz: you mean atomic-incf requires the variable to be global? 2021-01-05T18:24:02Z moon-child: aeth: oh, duh, I need to read better :P 2021-01-05T18:25:06Z pfdietz: I wanted a single counter, regardless of threading. 2021-01-05T18:27:44Z VincentVega: ah i see 2021-01-05T18:31:59Z amberglint quit (Quit: Leaving) 2021-01-05T18:32:53Z dhil quit (Quit: Leaving) 2021-01-05T18:33:08Z sauvin quit (Read error: Connection reset by peer) 2021-01-05T18:35:22Z vmmenon joined #lisp 2021-01-05T18:36:22Z rpg joined #lisp 2021-01-05T18:37:37Z mister_m joined #lisp 2021-01-05T18:41:00Z Lord_of_Life quit (Read error: Connection reset by peer) 2021-01-05T18:41:57Z Lord_of_Life joined #lisp 2021-01-05T18:48:13Z rumbler31_ quit (Ping timeout: 264 seconds) 2021-01-05T18:52:50Z akoana quit (Quit: leaving) 2021-01-05T18:54:58Z Lord_of_Life_ joined #lisp 2021-01-05T18:56:37Z Lord_of_Life quit (Ping timeout: 246 seconds) 2021-01-05T18:56:37Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-05T18:58:47Z varjagg joined #lisp 2021-01-05T19:00:56Z varjag quit (Ping timeout: 240 seconds) 2021-01-05T19:03:18Z varjagg is now known as varjag 2021-01-05T19:04:18Z rumbler31_ joined #lisp 2021-01-05T19:06:05Z saturn2 quit (Ping timeout: 240 seconds) 2021-01-05T19:12:23Z luckless quit (Ping timeout: 240 seconds) 2021-01-05T19:15:02Z luckless joined #lisp 2021-01-05T19:15:25Z notzmv quit (Remote host closed the connection) 2021-01-05T19:15:39Z hi_im_buggy quit (Quit: WeeChat 3.0) 2021-01-05T19:22:19Z heisig: Is there a somewhat portable Lisp library for emitting memory barriers? 2021-01-05T19:23:37Z Bike: do any lisps besides sbcl have that? 2021-01-05T19:23:46Z heisig: I don't know. 2021-01-05T19:24:35Z heisig: I am trying to implement an algorithm based on a reference implementation in Java and I'm struggling to translate 'volatile' slots. 2021-01-05T19:25:06Z clone_of_saturn joined #lisp 2021-01-05T19:30:50Z Bike: i'm not sure any implementations actually have something like volatile slots 2021-01-05T19:31:07Z Bike: which... iirc are modified sequentially consistently? i haven't stared at the JSR in a while 2021-01-05T19:32:13Z Bike: right yeah. 2021-01-05T19:32:36Z Bike: there's cas sometimes but not a way to mark reads and writes as necessarily atomic 2021-01-05T19:32:37Z liberliver quit (Ping timeout: 264 seconds) 2021-01-05T19:33:42Z Bike: if there is a cas you could assume that it's SC and use it for both reads and writes, but that's kind of stupid looking 2021-01-05T19:34:27Z Lycurgus joined #lisp 2021-01-05T19:36:47Z clone_of_saturn is now known as saturn2 2021-01-05T19:41:56Z nicktick quit (Ping timeout: 240 seconds) 2021-01-05T19:42:31Z freshmaker666 is now known as greeb 2021-01-05T19:43:31Z makomo joined #lisp 2021-01-05T19:44:22Z varjag quit (Remote host closed the connection) 2021-01-05T19:44:34Z varjag joined #lisp 2021-01-05T19:44:52Z miasuji joined #lisp 2021-01-05T19:45:06Z heisig: Bike: Good idea, I'll give that a try. Maybe I can hide the CAS instructions behind wrapped slot readers and writers. 2021-01-05T19:46:04Z makomo quit (Client Quit) 2021-01-05T19:48:52Z abhixec joined #lisp 2021-01-05T19:51:27Z cosimone quit (Quit: cosimone) 2021-01-05T19:52:02Z makomo joined #lisp 2021-01-05T19:52:27Z makomo quit (Client Quit) 2021-01-05T19:52:51Z mrios22 quit (Ping timeout: 265 seconds) 2021-01-05T19:53:12Z makomo joined #lisp 2021-01-05T19:57:12Z alandipert: is the issue here that typical CL thread conventions are per-thread bindings? and lack of a primitive like volatile to denote a mutable value across threads? 2021-01-05T19:59:59Z Bike: it's not really related to dynamic variables. 2021-01-05T20:00:00Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:00:08Z amb007 joined #lisp 2021-01-05T20:00:37Z Bike: i mean it is a little, but it's a deeper issue. the order of things across threads but outside of locks is not defined. 2021-01-05T20:00:48Z heisig: alandipert: I want to implement a fast, lock-free work-stealing deque so I need to enforce some ordering between slot reads and writes. 2021-01-05T20:01:10Z ebrasca quit (Remote host closed the connection) 2021-01-05T20:01:11Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:01:16Z Bike: languages like java and C++ have spent a lot of effort writing standards for these "atomic" operations that we haven't 2021-01-05T20:01:52Z moon-child: yeah memory model spec was a big effort. And they still didn't even get it right :P 2021-01-05T20:01:53Z amb007 joined #lisp 2021-01-05T20:02:14Z Bike: it is funny seeing all the C++ stuff that's like "there's also memory_order_consume. you shouldn't use it since it's broken" 2021-01-05T20:02:16Z lucasb quit (Quit: Connection closed for inactivity) 2021-01-05T20:02:25Z moon-child: (that's more on c&c++ side; idk if there was anything wrong with java's memory model) 2021-01-05T20:02:35Z pfdietz: In the code I was referring to, in non-sbcl lisps explicit locks were used to access a slot with class allocation (which is a kind of non-special global). 2021-01-05T20:02:49Z sunset_NOVA joined #lisp 2021-01-05T20:02:49Z Bike: i think java is fine. it also doesn't have sub-sequential-consistency like C++ does. 2021-01-05T20:03:01Z Bike: abandoning sequential consistency drops you straight into hell 2021-01-05T20:03:54Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:04:05Z heisig: I just wrote a macro to generate custom slot accessors, such that a memory barrier is emitted before each read, and after each write. That seems to have solved my problem. 2021-01-05T20:04:48Z amb007 joined #lisp 2021-01-05T20:05:24Z terrorjack quit (Ping timeout: 268 seconds) 2021-01-05T20:07:35Z rogersm joined #lisp 2021-01-05T20:09:14Z frodef joined #lisp 2021-01-05T20:09:15Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:09:46Z andreyorst joined #lisp 2021-01-05T20:09:58Z amb007 joined #lisp 2021-01-05T20:11:07Z alandipert: i've only every studied java but they have the advantage of defining thread semantics, vs the endless bolting-on that seems to happen with c++ (my perception from a distance, nowhere near an expert at c++ myself) 2021-01-05T20:11:52Z izh_ joined #lisp 2021-01-05T20:11:56Z alandipert: and my perception of CL is that it was carefully designed to accommodate likely designs without specifying any 2021-01-05T20:12:10Z moon-child: alandipert: c11 and c++11 got a proper memory model, like java 2021-01-05T20:12:44Z Bike: the lisp standard has no mention of threads or particular preparation for them whatsoever. bordeaux threads puts in some effort but nothing for atomics, and i don't think it actually defines a model anyway 2021-01-05T20:12:59Z terrorjack joined #lisp 2021-01-05T20:13:30Z alandipert wonders about the origin of the per-thread binding semantic 2021-01-05T20:14:09Z Bike: that was something they agreed on when they came up with bordeaux threads, is my understanding 2021-01-05T20:14:32Z Bike: where "they" means whatever group that did that. it's more recent than the standard 2021-01-05T20:14:39Z vmmenon quit (Quit: Leaving) 2021-01-05T20:14:42Z makomo quit (Quit: WeeChat 2.9) 2021-01-05T20:15:03Z makomo joined #lisp 2021-01-05T20:15:25Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:15:36Z ralt: I would've thought the per-implementation thread APIs came before bordeaux threads 2021-01-05T20:15:44Z amb007 joined #lisp 2021-01-05T20:16:05Z Bike: they do, yes, but there is a gulf between implementing something and defining the semantics for it. 2021-01-05T20:16:28Z moon-child: presumably there is at least *some* relationship between the spec and the preceding implementations, though; no? 2021-01-05T20:17:22Z ralt: the spec makes zero mentions of threads afaik 2021-01-05T20:17:23Z Bike: sure, but you can write code without fully defining all semantics for it. i expect that in at least a few implementations, before they were bordeaux threads "conformant" they hadn't put in any thought into how dynamic bindings interacted with threads 2021-01-05T20:17:33Z moon-child: ralt: I mean bordeaux 2021-01-05T20:17:58Z Bike: i don't think any lisp implementation currently defines what happens if you modify/read data from multiple threads simultaneously, or even says that doing so is undefined 2021-01-05T20:18:00Z makomo quit (Client Quit) 2021-01-05T20:18:38Z Bike: several implementations have atomic operations including CAS but i don't think they have models of how they work 2021-01-05T20:18:48Z makomo joined #lisp 2021-01-05T20:18:55Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:20:04Z abhixec quit (Ping timeout: 256 seconds) 2021-01-05T20:21:10Z amb007 joined #lisp 2021-01-05T20:21:14Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:21:15Z makomo quit (Client Quit) 2021-01-05T20:21:42Z makomo joined #lisp 2021-01-05T20:22:00Z Lycurgus quit (Quit: Exeunt) 2021-01-05T20:22:20Z amb007 joined #lisp 2021-01-05T20:22:24Z Bike: i mean really you have to define concepts like simultaneity. there are ones that are broadly accepted, of course, but it's good to be specific 2021-01-05T20:23:14Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:24:08Z alandipert: i suppose thread-local bindings don't require one to approach simultaneity, since the mutation is per thread? 2021-01-05T20:24:12Z makomo quit (Client Quit) 2021-01-05T20:24:18Z alandipert: whereas something like volatile definitely does 2021-01-05T20:24:42Z amb007 joined #lisp 2021-01-05T20:24:54Z Bike: yeah, it's fairly easy to define the semantics if you just have threads and locks 2021-01-05T20:26:37Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:26:43Z Bike: the dynamic binding stuff kind of isn't related to execution order. if you bind a dynamic variable in a thread, whatever value it had globally is irrelevant, so whether the binding happens before or after modifications of the global value from other threads is irrelevant 2021-01-05T20:27:00Z amb007 joined #lisp 2021-01-05T20:27:14Z Bike: before or after or during 2021-01-05T20:29:01Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:29:19Z amb007 joined #lisp 2021-01-05T20:30:18Z luckless quit (Quit: luckless) 2021-01-05T20:31:09Z luckless joined #lisp 2021-01-05T20:31:09Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:32:01Z amb007 joined #lisp 2021-01-05T20:34:25Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:35:10Z amb007 joined #lisp 2021-01-05T20:39:22Z surabax_ joined #lisp 2021-01-05T20:39:22Z amb007 quit (Read error: Connection reset by peer) 2021-01-05T20:40:35Z birdwing joined #lisp 2021-01-05T20:40:35Z amb007 joined #lisp 2021-01-05T20:40:53Z amberglint__ joined #lisp 2021-01-05T20:42:44Z surabax quit (Ping timeout: 256 seconds) 2021-01-05T20:42:49Z amberglint__ quit (Client Quit) 2021-01-05T20:44:26Z surabax_ quit (Ping timeout: 256 seconds) 2021-01-05T20:44:48Z rogersm quit (Remote host closed the connection) 2021-01-05T20:46:51Z birdwing quit (Ping timeout: 272 seconds) 2021-01-05T20:47:48Z abhixec joined #lisp 2021-01-05T20:50:22Z andreyorst quit (Ping timeout: 246 seconds) 2021-01-05T20:52:42Z todun joined #lisp 2021-01-05T20:54:48Z abhixec quit (Read error: Connection reset by peer) 2021-01-05T20:55:49Z pyc_ joined #lisp 2021-01-05T20:55:56Z pyc quit (Quit: ZNC 1.7.2+deb3 - https://znc.in) 2021-01-05T20:56:57Z benjamindc joined #lisp 2021-01-05T20:58:36Z jw4 quit (Read error: Connection reset by peer) 2021-01-05T21:00:29Z jw4 joined #lisp 2021-01-05T21:00:49Z anticrisis joined #lisp 2021-01-05T21:07:55Z cosimone joined #lisp 2021-01-05T21:08:39Z andreyorst joined #lisp 2021-01-05T21:10:55Z bendersteed quit (Read error: Connection reset by peer) 2021-01-05T21:11:17Z jonathan| quit (Quit: fBNC - https://bnc4free.com) 2021-01-05T21:11:41Z jonathan| joined #lisp 2021-01-05T21:15:21Z cosimone quit (Quit: cosimone) 2021-01-05T21:17:55Z miasuji quit (Ping timeout: 265 seconds) 2021-01-05T21:19:52Z sunset_NOVA quit (Quit: Leaving) 2021-01-05T21:21:08Z cyraxjoe quit (Ping timeout: 260 seconds) 2021-01-05T21:25:19Z wsinatra quit (Quit: WeeChat 3.0) 2021-01-05T21:27:43Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-05T21:28:08Z narimiran quit (Ping timeout: 260 seconds) 2021-01-05T21:31:29Z luckless quit (Quit: luckless) 2021-01-05T21:33:10Z luckless joined #lisp 2021-01-05T21:33:41Z hendursaga joined #lisp 2021-01-05T21:34:53Z skapata joined #lisp 2021-01-05T21:38:19Z Jesin joined #lisp 2021-01-05T21:43:38Z karlosz joined #lisp 2021-01-05T21:45:39Z rogersm joined #lisp 2021-01-05T21:50:37Z rogersm quit (Ping timeout: 264 seconds) 2021-01-05T21:53:13Z ebrasca joined #lisp 2021-01-05T21:57:04Z andreyorst quit (Quit: WeeChat 3.0) 2021-01-05T21:58:26Z neirac quit (Quit: Leaving) 2021-01-05T22:00:49Z aartaka quit (Read error: Connection reset by peer) 2021-01-05T22:00:58Z jeosol quit (Remote host closed the connection) 2021-01-05T22:01:07Z aartaka joined #lisp 2021-01-05T22:09:37Z izh_ quit (Quit: Leaving) 2021-01-05T22:10:06Z scymtym_ joined #lisp 2021-01-05T22:10:10Z scymtym_ quit (Read error: Connection reset by peer) 2021-01-05T22:10:27Z VincentVega quit (Remote host closed the connection) 2021-01-05T22:10:42Z zacts joined #lisp 2021-01-05T22:10:46Z zacts quit (Client Quit) 2021-01-05T22:11:18Z scymtym quit (Ping timeout: 260 seconds) 2021-01-05T22:13:17Z abhixec joined #lisp 2021-01-05T22:16:45Z scymtym joined #lisp 2021-01-05T22:17:05Z frodef: Is there a functional equivalent to OR already defined in CL? 2021-01-05T22:17:57Z pve: frodef: like SOME? 2021-01-05T22:18:47Z frodef: pve: yes, except with the "same" syntax as or, i.e an &rest arglist instead of a list argument. 2021-01-05T22:19:03Z phoe: frodef: (a:curry #'some #'identity) 2021-01-05T22:19:14Z phoe: oh, wait, also with #'apply 2021-01-05T22:19:22Z phoe: there's nothing built-in. 2021-01-05T22:19:41Z frodef: suppose not, but thanks. 2021-01-05T22:21:19Z jeosol joined #lisp 2021-01-05T22:23:24Z notzmv joined #lisp 2021-01-05T22:33:54Z etimmons: ralt: shinohai: My current patch for static executables and explanation are at https://www.timmons.dev/posts/static-executables-with-sbcl.html 2021-01-05T22:34:13Z etimmons: thanks for helping motivate me to finally get a personal site up and running 2021-01-05T22:34:48Z phoe crossposts to /r/Common_Lisp 2021-01-05T22:34:56Z ralt: and there was much rejoicing 2021-01-05T22:35:22Z White_Flame: frodef: (defun or-func (&rest args) (loop for arg in args when arg return arg)) ? 2021-01-05T22:35:40Z White_Flame: you can shortcut because all the args have been evaluated before the call 2021-01-05T22:36:18Z frodef: White_Flame: sure, or (some 'identity args) 2021-01-05T22:36:36Z frodef: .. or (loop for arg in args thereis arg) 2021-01-05T22:36:51Z White_Flame: yeah, lots of options. I thought SOME was out 2021-01-05T22:37:00Z White_Flame should sleep more ;) 2021-01-05T22:37:04Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-05T22:37:18Z shinohai: etimmons: Thank you very much, will read now. 2021-01-05T22:37:39Z frodef: White_Flame: nah, just figured there might be some or-func equivalent I'd missed. 2021-01-05T22:38:43Z aartaka quit (Ping timeout: 260 seconds) 2021-01-05T22:43:24Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-05T22:44:48Z _death: there can't be a straightforward functional equivalent since OR also passes along multiple values 2021-01-05T22:45:11Z phoe: there can be one, you simply ignore non-primary values 2021-01-05T22:45:17Z phoe: as with all function arguments 2021-01-05T22:46:33Z rogersm joined #lisp 2021-01-05T22:46:54Z miasuji joined #lisp 2021-01-05T22:49:46Z benjamindc quit (Remote host closed the connection) 2021-01-05T22:50:02Z benjamindc joined #lisp 2021-01-05T22:50:05Z zaquest quit (Quit: Leaving) 2021-01-05T22:50:46Z rogersm quit (Ping timeout: 246 seconds) 2021-01-05T22:51:12Z todun quit (Quit: todun) 2021-01-05T22:58:34Z dbotton joined #lisp 2021-01-05T22:58:36Z ralt: etimmons: isn't libdl available at runtime if you link against musl? 2021-01-05T22:59:18Z etimmons: "Sort of" it's a shim that does nothing but return errors (assuming you're statically linking) 2021-01-05T22:59:43Z ralt: annoying 2021-01-05T22:59:46Z moon-child: doesn't musl have its own dynamic linker? Why couldn't they leverage that and link it in too? 2021-01-05T23:01:00Z ralt: etimmons: so I if understand correctly, your patches are essentially (1) make --without-os-provides-dlopen work, and (2) provide this script to dump the lisp image's symbols to a file that you can then compile sbcl with? 2021-01-05T23:01:52Z etimmons: I think one of the reasons is that musl doesn't have a lot of interdependencies between the different libc components and it's very likely that static linking will prune chunks of libc 2021-01-05T23:02:21Z etimmons: And they don't want to deal with reloading those pieces dynamically if a library you later dlopen requires them 2021-01-05T23:02:32Z etimmons: ralt: correct 2021-01-05T23:02:59Z ralt: it's annoying to have to compile sbcl separately for every app :/ 2021-01-05T23:03:44Z Steeve joined #lisp 2021-01-05T23:04:48Z etimmons: I know... I think there could be a path forward, though. It'd require relaxing the requirement that build ids match between the runtime and core and rejiggering the code to gracefully fail in the presence of the stub libdl 2021-01-05T23:05:01Z rumbler31_ quit (Ping timeout: 264 seconds) 2021-01-05T23:05:31Z etimmons: Or you could be overzealous with the libraries you link into the runtime (and overpopulate the linkage table) 2021-01-05T23:05:54Z etimmons: and then only rebuild the runtime when you want to shake out the unused symbols 2021-01-05T23:06:38Z ralt: can't you build a custom runtime from sbcl one's? 2021-01-05T23:06:54Z ralt: so you don't touch sbcl.core et al, you just increment from there? 2021-01-05T23:07:23Z cantstanya quit (Ping timeout: 240 seconds) 2021-01-05T23:07:30Z rumbler31_ joined #lisp 2021-01-05T23:07:50Z dbotton quit (Quit: Leaving) 2021-01-05T23:09:26Z etimmons: Potentially. One thing in the way of that right now is you probably want to develop with :os-provides-dlopen, which can't be present when you build the static runtime. And rebuilding the runtime will change its build ID and it will reject your development core 2021-01-05T23:10:11Z imode joined #lisp 2021-01-05T23:10:37Z ralt: no I mean making the runtime into a separate file altogether 2021-01-05T23:11:02Z pve quit (Quit: leaving) 2021-01-05T23:11:24Z cantstanya joined #lisp 2021-01-05T23:11:54Z etimmons: I don't think I understand what you're suggesting 2021-01-05T23:12:37Z ralt: I think we're talking past each other, yes 2021-01-05T23:13:15Z ralt: what's "your development core"? 2021-01-05T23:13:18Z ralt: the sbcl.core file? 2021-01-05T23:14:23Z varjag quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-05T23:15:02Z etimmons: In my ideal world we'd develop like normal with a dynamic SBCL runtime and then save-lisp-and-die (with :executable nil) that's my "development core" 2021-01-05T23:15:25Z etimmons: we'd then have a script that pulls the linkage info directly from the core and builds a static runtime 2021-01-05T23:16:02Z ralt: can you provide a stub dlopen() that looks in the static linkage table? 2021-01-05T23:16:14Z etimmons: and then the static runtime would load the "development core" so we don't have to compile the lisp code twice 2021-01-05T23:21:37Z etimmons: Hmmmmm. Probably. I get some feedback early on that was basically "don't build with :os-provides-dlopen and then stub out dlopen" 2021-01-05T23:21:56Z etimmons: But that stub was a no-op. Perhaps a severely restricted but still functional dlopen/dlsym would get a better reception 2021-01-05T23:23:19Z ralt: What I'm thinking is that if the fake dlopen() looks in a static table, and you can dump this static table with save-lisp-and-die, then you solve the problem, no? 2021-01-05T23:24:29Z ralt: I'm not sure if what I'm saying makes sense 2021-01-05T23:24:43Z ralt: Probably input from sbcl devs would be better. 2021-01-05T23:25:22Z ralt: hmmm 2021-01-05T23:25:35Z etimmons: Yes, but save-lisp-and-die can only dump the symbol names. You'll still need a core relink (and recompile of a single file) to get the other half of that table 2021-01-05T23:25:37Z etimmons: s/core relink/runtime relink/ 2021-01-05T23:26:31Z ralt: actually 2021-01-05T23:26:37Z ralt: there's this sbcl.o file you can build 2021-01-05T23:27:18Z ralt: it has all the symbols 2021-01-05T23:28:07Z ralt: if you link it with the runtime, you end up with a static binary that supposedly has all the symbols and the other half of the table 2021-01-05T23:28:45Z ralt: but the current problem is that dlopen() will fail because it's the stub 2021-01-05T23:29:05Z etimmons: Isn't sbcl.o the runtime? 2021-01-05T23:29:37Z sjl quit (Ping timeout: 246 seconds) 2021-01-05T23:30:55Z ralt: is it? I'm not sure anymore now. https://www.irccloud.com/pastebin/Vq3qdldG/ 2021-01-05T23:31:44Z mindCrime joined #lisp 2021-01-05T23:32:27Z etimmons: I'm definitely not a C developer (thank goodness) so it's definitely possible I'm missing something, but I don't see any way to support both dynamically loading foreign libs and creating a static executable without a relink of the runtime at a minimum. 2021-01-05T23:33:08Z luckless quit (Quit: luckless) 2021-01-05T23:33:10Z etimmons: Yep, sbcl.o is simply the runtime linked together into an object file 2021-01-05T23:34:57Z luckless joined #lisp 2021-01-05T23:35:33Z ralt: I'm not much of a C dev either, but as I understand it, you can do e.g. `gcc -static my-dynamic-runtime sbcl.o -o static-runtime`, no? as long as `my-dynamic-runtime` has a dlopen() that looks in itself first? 2021-01-05T23:37:54Z etimmons: Looking back at some of my other early feedback, there may be a way to reuse the core between the dynamic and static runtimes, so the Lisp code wouldn't have to be recompiled at least 2021-01-05T23:38:18Z ralt: do you have a link to that sbcl-devel thread? 2021-01-05T23:39:21Z gingerale quit (Ping timeout: 244 seconds) 2021-01-05T23:40:07Z etimmons: https://sourceforge.net/p/sbcl/mailman/sbcl-devel/thread/87d06ro5ok.fsf%40rocinante.timmons.dev/#msg37020648 2021-01-05T23:41:35Z etimmons: and https://sourceforge.net/p/sbcl/mailman/sbcl-devel/thread/20200713200236.22507-1-etimmons%40mit.edu/#msg37060573 2021-01-05T23:41:59Z etimmons: But I now have to run for dinner! 2021-01-05T23:42:01Z luckless quit (Quit: luckless) 2021-01-05T23:42:14Z luckless joined #lisp 2021-01-05T23:47:14Z ralt: as I understand it, the problem is that the symbols are actually linked into the executable with gcc, but sbcl insists on loading them for its linkage table, and is not succeeding because it uses dlopen(). In my naive mind, it means that making reinit() use another way in the case of static builds to find the symbol should be the right way. 2021-01-05T23:47:28Z rogersm joined #lisp 2021-01-05T23:51:00Z ralt: and maybe it doesn't even need a linkage table on the C side if it's a static binary. 2021-01-05T23:51:22Z Steeve quit (Quit: end) 2021-01-05T23:52:01Z rogersm quit (Ping timeout: 246 seconds) 2021-01-05T23:58:35Z ralt: ok yeah, prefilling the table is what the shrinkwrap stuff is about 2021-01-05T23:58:45Z mathrick quit (Ping timeout: 272 seconds) 2021-01-05T23:58:55Z ralt: which is what you wanted to avoid because of arm 2021-01-05T23:59:08Z mathrick joined #lisp 2021-01-06T00:05:43Z cyraxjoe joined #lisp 2021-01-06T00:06:16Z gingerale joined #lisp 2021-01-06T00:11:21Z etimmons: I can pretty much guarantee that the devs would object to removing the linkage table. They just purged the last arches that didn't use it. 2021-01-06T00:12:20Z mathrick quit (Remote host closed the connection) 2021-01-06T00:12:26Z ralt: I meant conditionally, based on the staticness 2021-01-06T00:12:47Z etimmons: Are you objecting most to recompiling the lisp code, the runtime, or both? 2021-01-06T00:13:54Z ralt: I'm mostly annoyed by having to recompile sbcl for every different app. 2021-01-06T00:13:57Z mathrick joined #lisp 2021-01-06T00:14:54Z etimmons: Because I think the reader conditionals in the lisp code for os-provides-dl* could be replaced with runtime checks for dlsym in the linkage table. I suspect that would be enough to make the core reusable, so long as you're careful when you rebuild the runtime. 2021-01-06T00:15:46Z ralt: Basically the ideal experience is that you apt-get install sbcl and then you (asdf:make :foo) and it builds your static binary 2021-01-06T00:16:23Z ralt: And we can make enough automation in e.g. cffi or asdf wrappers or upstream 2021-01-06T00:16:35Z etimmons: I think that's possible, so long as sbcl.o is present. 2021-01-06T00:16:54Z ralt: right, sbcl.o is a requirement 2021-01-06T00:16:59Z ralt: That's ok 2021-01-06T00:17:11Z ralt: Although right now it's not built by default... 2021-01-06T00:19:45Z ralt: Anyway, exciting times 2021-01-06T00:19:50Z etimmons: I think if we can get rid of the need for :os-provides-dl* in the lisp code, your vision becomes much more feasible. 2021-01-06T00:19:59Z ralt: I gotta go now, have a good evening 2021-01-06T00:20:07Z etimmons: Thanks, you too 2021-01-06T00:22:17Z rgherdt quit (Ping timeout: 260 seconds) 2021-01-06T00:24:55Z orivej quit (Ping timeout: 246 seconds) 2021-01-06T00:26:01Z random-nick quit (Ping timeout: 264 seconds) 2021-01-06T00:37:54Z dabr joined #lisp 2021-01-06T00:39:16Z frodef quit (Ping timeout: 246 seconds) 2021-01-06T00:43:58Z karlosz quit (Quit: karlosz) 2021-01-06T00:48:30Z benjamindc quit (Remote host closed the connection) 2021-01-06T00:48:56Z dabr left #lisp 2021-01-06T00:50:19Z Xach: win 3 2021-01-06T00:55:25Z gaqwas quit (Ping timeout: 264 seconds) 2021-01-06T00:58:25Z abhixec quit (Ping timeout: 264 seconds) 2021-01-06T01:04:34Z dabr joined #lisp 2021-01-06T01:05:37Z ck_: (the command more commonly known as tic-tac-toe) 2021-01-06T01:05:48Z Xach: etimmons: welcome to jurassic park 2021-01-06T01:05:52Z benjamindc joined #lisp 2021-01-06T01:10:24Z mrcom quit (Ping timeout: 265 seconds) 2021-01-06T01:11:02Z mrcom joined #lisp 2021-01-06T01:11:54Z benjamindc quit (Remote host closed the connection) 2021-01-06T01:12:10Z benjamindc joined #lisp 2021-01-06T01:15:40Z imode quit (Ping timeout: 246 seconds) 2021-01-06T01:18:28Z nicktick joined #lisp 2021-01-06T01:20:04Z mrcom quit (Ping timeout: 265 seconds) 2021-01-06T01:30:33Z troydm quit (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) 2021-01-06T01:30:35Z wxie joined #lisp 2021-01-06T01:30:47Z mrcom joined #lisp 2021-01-06T01:33:29Z imode joined #lisp 2021-01-06T01:34:45Z mrcom_ joined #lisp 2021-01-06T01:35:32Z mrcom quit (Ping timeout: 265 seconds) 2021-01-06T01:38:01Z dabr quit (Ping timeout: 264 seconds) 2021-01-06T01:42:11Z abhixec joined #lisp 2021-01-06T01:42:12Z benjamindc quit (Ping timeout: 260 seconds) 2021-01-06T01:42:57Z troydm joined #lisp 2021-01-06T01:46:57Z saturn2 quit (Quit: WeeChat 1.0.1) 2021-01-06T01:47:32Z clone_of_saturn joined #lisp 2021-01-06T01:47:41Z clone_of_saturn is now known as saturn2 2021-01-06T01:48:16Z rogersm joined #lisp 2021-01-06T01:52:36Z rogersm quit (Ping timeout: 240 seconds) 2021-01-06T02:00:51Z dbotton joined #lisp 2021-01-06T02:07:19Z benjamindc joined #lisp 2021-01-06T02:07:54Z luckless quit (Quit: luckless) 2021-01-06T02:08:14Z luckless joined #lisp 2021-01-06T02:10:14Z benjamindc quit (Remote host closed the connection) 2021-01-06T02:10:35Z benjamindc joined #lisp 2021-01-06T02:12:46Z benjamindc quit (Remote host closed the connection) 2021-01-06T02:13:11Z benjamindc joined #lisp 2021-01-06T02:18:37Z benjamindc quit (Ping timeout: 260 seconds) 2021-01-06T02:18:44Z dbotton: So my project CLOG - The Common Lisp Omnificent GUI is coming along well. It binds all the browser objects (window, screen, document, etc.) and all the connectivity needed for HTML (supports getter and setters for general properties and styles, binding events on elements etc.) 2021-01-06T02:18:44Z dbotton: There is still much left before I can do some cool demos, ie direct creation of forms, canvas, multi media stuff etc. 2021-01-06T02:18:44Z dbotton: In particular if anyone has the time can comment on the code base so far if have some time. 2021-01-06T02:18:44Z dbotton: clog-connection that package is the glue between browser and the lisp interface which is contained in package clog which the rest of the code is in (files divide up functionality and various CLOS objects). 2021-01-06T02:19:34Z dbotton: https://github.com/rabbibotton/clog 2021-01-06T02:21:49Z benjamindc joined #lisp 2021-01-06T02:23:39Z dbotton: The idea behind it is you can do full local GUIs that are cross platform by just setting up a project in electron (which gives you a browser window in a native app on win, osx, linix etc) or various projects on ios android etc and all use the same lisp code base and you easily can use the same app for the web. 2021-01-06T02:26:04Z dbotton: The idea works well and I've used it for years for my projects in Ada, this is a Common Lisp rewrite which so far is much easier to write GUIs in. 2021-01-06T02:26:32Z benjamindc quit (Ping timeout: 260 seconds) 2021-01-06T02:26:50Z saturn2: interesting... 2021-01-06T02:29:24Z dbotton: If have time let me know what can improve the code base 2021-01-06T02:29:32Z dbotton: I am about 1/2 way done 2021-01-06T02:30:09Z dbotton: The rest is just tedious work on creating various elements in Lisp 2021-01-06T02:30:10Z saturn2: on first glance, it looks like there is a lot of very repetitive code that could use more abstraction 2021-01-06T02:30:17Z semz quit (Ping timeout: 260 seconds) 2021-01-06T02:31:21Z dbotton: Perhaps but there are small changes here and there that prevent much but open to hear where and what to do 2021-01-06T02:37:23Z scymtym_ joined #lisp 2021-01-06T02:37:40Z etimmons: Xach: Awesome, thanks! 2021-01-06T02:37:48Z dbotton: (Meaning the some of the binding to styles and properties have various nuances) 2021-01-06T02:38:13Z benjamindc joined #lisp 2021-01-06T02:38:35Z scymtym_ quit (Remote host closed the connection) 2021-01-06T02:38:37Z scymtym quit (Ping timeout: 246 seconds) 2021-01-06T02:38:58Z scymtym joined #lisp 2021-01-06T02:42:37Z saturn2: you can write a macro that accepts these nuances as parameters, so you can write (define-style foo :this-nuance (a b c) :that-nuance (x y z)) instead of copying and pasting the same code many times 2021-01-06T02:42:38Z benjamindc quit (Ping timeout: 264 seconds) 2021-01-06T02:42:43Z rpg quit (Ping timeout: 265 seconds) 2021-01-06T02:43:49Z semz joined #lisp 2021-01-06T02:43:50Z semz quit (Changing host) 2021-01-06T02:43:50Z semz joined #lisp 2021-01-06T02:44:57Z pfdietz: What might be done with code generators in other languages is done in Common Lisp with macros. The macros can perform arbitrary computations at macroexpansion time. For example, one could write a parser generator and implement it in a macro. 2021-01-06T02:47:09Z dbotton: This I know, I just wanted to write code already, rather than spend time yet on macros. I've written a number while learning the language 2021-01-06T02:47:29Z dbotton: But for sure will refactor the code with them later 2021-01-06T02:48:04Z aeth: yeah 2021-01-06T02:48:07Z aeth: I do the same. 2021-01-06T02:48:25Z aeth: Write it plain and simple, and then see where macros can make sense. 2021-01-06T02:48:35Z nij joined #lisp 2021-01-06T02:48:41Z aeth: Plus, it's fun removing a 1000+ lines of code 2021-01-06T02:48:57Z nij: Someone mentioned stumpwm for me a few weeks ago. I'm on it now and I love it. Thank you <3 2021-01-06T02:49:10Z moon-child: yeah but 2021-01-06T02:49:21Z moon-child: wouldn't it be even nicer if you didn't have to write those 1k oc in the first place? 2021-01-06T02:49:21Z dbotton: I actually look forward to it on this code, would have saved much time typing to start with it, but my macro foo not good enough yet 2021-01-06T02:49:25Z aeth: moon-child: coffee 2021-01-06T02:49:53Z aeth: moon-child: Often coffee makes me just write, with quality not really relevant. Then I can clean it up later. 2021-01-06T02:50:11Z aeth: Rarely, I code myself into a giant mess that I have to rewrite, but that was like 3-4 times total. 2021-01-06T02:50:19Z pfdietz: (1) produce a limited prototype, (2) identify common patterns and macroize, (3) finish filling out the prototype, now using the macros. 2021-01-06T02:50:27Z miasuji quit (Ping timeout: 260 seconds) 2021-01-06T02:50:44Z aeth: yeah 2021-01-06T02:50:48Z dbotton: For sure moon-child but like I said I wanted to code asap :) 2021-01-06T02:50:54Z aeth: pfdietz: You abstract before you finish, definitely. 2021-01-06T02:51:56Z dbotton: I need certain tools for my ideas like CLOG 2021-01-06T02:52:37Z dbotton: And cleaning up this code will also help me get the macro experience I need cleaning it up 2021-01-06T02:54:07Z dbotton: Like I said before I wish I started on lisp a good 20 years ago 2021-01-06T02:56:06Z rpg joined #lisp 2021-01-06T02:58:20Z ralt quit (Quit: Connection closed for inactivity) 2021-01-06T02:58:58Z dbotton: Once done with CLOG have some Visual Basic "style" tools I'd like to make with CLOG for lisp. 2021-01-06T02:59:27Z dbotton: I estimate should be done with CLOG in a few more weeks 2021-01-06T03:00:08Z dbotton: (At least first version before refactoring, etc) 2021-01-06T03:08:53Z nij: Anyone knows how to control stumpwm from the repl (slime or sly @@), if possible? 2021-01-06T03:10:36Z rumbler31_ quit (Ping timeout: 240 seconds) 2021-01-06T03:16:37Z vutral joined #lisp 2021-01-06T03:18:33Z benjamindc joined #lisp 2021-01-06T03:18:59Z dbotton: b 2021-01-06T03:22:05Z aeth: nij: yes 2021-01-06T03:22:08Z akoana joined #lisp 2021-01-06T03:22:27Z aeth: nij: I think you can start a swank server via the execute-a-command command 2021-01-06T03:22:47Z nij: aeth: Thanks for the keyword! 2021-01-06T03:23:02Z nij: Any promising terminal emulator written in Lisp?! 2021-01-06T03:24:22Z aeth: A terminal + a POSIX shell is a nice project for someone to do. 2021-01-06T03:24:52Z benjamindc quit (Ping timeout: 260 seconds) 2021-01-06T03:26:34Z aeth: nij: https://github.com/stumpwm/stumpwm/wiki/Hacking-StumpWM 2021-01-06T03:26:53Z edgar-rft quit (Quit: Leaving) 2021-01-06T03:29:17Z aeth: nij: There's an outside chance that |3b| might have something like a terminal emulator in CL... 2021-01-06T03:29:32Z aeth: iirc |3b| has run Emacs in OpenGL before, which is harder 2021-01-06T03:33:47Z pfdietz: Is there an s-expression editor in CL, like the old sedit in Interlisp? 2021-01-06T03:33:47Z mfiano: plisp has uncursed. |3b| has 3bst 2021-01-06T03:36:36Z benjamindc joined #lisp 2021-01-06T03:37:29Z wxie1 joined #lisp 2021-01-06T03:38:01Z wxie quit (Ping timeout: 264 seconds) 2021-01-06T03:38:02Z wxie1 is now known as wxie 2021-01-06T03:41:28Z luckless quit (Quit: luckless) 2021-01-06T03:41:54Z luckless joined #lisp 2021-01-06T03:45:17Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-06T03:48:57Z rogersm joined #lisp 2021-01-06T03:51:58Z imode1 joined #lisp 2021-01-06T03:52:45Z imode1 quit (Client Quit) 2021-01-06T03:53:20Z imode quit (Ping timeout: 256 seconds) 2021-01-06T03:53:24Z rogersm quit (Ping timeout: 256 seconds) 2021-01-06T03:53:40Z imode joined #lisp 2021-01-06T03:54:06Z pfdietz quit (Remote host closed the connection) 2021-01-06T03:54:50Z Oladon joined #lisp 2021-01-06T03:55:50Z nij: aeth: What does it mean by a "CL port" of st? 2021-01-06T03:59:11Z MetaYan: nij: From the README at https://github.com/3b/3bst : "CL port of the terminal emulation part of st (http://st.suckless.org/)" 2021-01-06T04:00:06Z nij: Yes, this is what I'm curious about. 2021-01-06T04:00:17Z nij: What is a "CL port" of xyz? 2021-01-06T04:00:19Z MetaYan: Ah, I misunderstood your question. 2021-01-06T04:00:45Z nij: Is it a program written in CL that mimicks st? 2021-01-06T04:01:06Z nij: Or is it st but allows users to control/config it in the lang CL? 2021-01-06T04:01:32Z Alfr_ joined #lisp 2021-01-06T04:03:19Z zaquest joined #lisp 2021-01-06T04:04:33Z MetaYan: nij: It looks like a rewrite in CL. So ported to CL sounds right. 2021-01-06T04:05:16Z nij: I see. 2021-01-06T04:05:22Z Alfr quit (Ping timeout: 265 seconds) 2021-01-06T04:05:27Z Jesin quit (Read error: Connection reset by peer) 2021-01-06T04:06:15Z waleee-cl: seems to miss dependencies that would allow it to run outside of a host terminal? 2021-01-06T04:07:06Z aeth: oh... 2021-01-06T04:07:23Z aeth: Interesting. A minimalist C program, probably not to hard to mechanically translate and then clean up if the license is nice. 2021-01-06T04:07:30Z beach: Good morning everyone! 2021-01-06T04:07:47Z aeth: I did suspect |3b| was running emacs via a ported terminal 2021-01-06T04:08:34Z aeth: Probably wouldn't be too hard to port other such programs 2021-01-06T04:08:48Z aeth: I think the Java community loves to do this sort of thing. 2021-01-06T04:17:23Z beach: VincentVega: Minimal verbosity is not the main objective of maintainability. But one is "minimal surprise to the maintainer". To Norvig and Pitman, that "idiom" is surprising, and I agree with them. The value is not a Boolean, yet it is tested as if it were. 2021-01-06T04:17:23Z beach: The NIL value is not a Boolean, it is a "default value", and it should be obvious from the code that this is what is meant, i.e. (UNLESS ( VALUE) ...) In this case the predicate happens to be NULL. 2021-01-06T04:19:23Z notzmv quit (Remote host closed the connection) 2021-01-06T04:19:42Z notzmv joined #lisp 2021-01-06T04:23:10Z miasuji joined #lisp 2021-01-06T04:28:42Z skapata quit (Ping timeout: 260 seconds) 2021-01-06T04:29:56Z skapata joined #lisp 2021-01-06T04:32:19Z dbotton joined #lisp 2021-01-06T04:35:38Z troydm quit (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) 2021-01-06T04:36:45Z troydm joined #lisp 2021-01-06T04:36:47Z galex-713_ quit (Ping timeout: 272 seconds) 2021-01-06T04:42:56Z wxie quit (Ping timeout: 240 seconds) 2021-01-06T04:43:13Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2021-01-06T04:45:26Z galex-713 joined #lisp 2021-01-06T04:49:52Z Iolo quit (Quit: ZNC 1.7.5+deb4 - https://znc.in) 2021-01-06T04:49:58Z rogersm joined #lisp 2021-01-06T04:52:15Z mathrick quit (Ping timeout: 265 seconds) 2021-01-06T04:52:41Z mathrick joined #lisp 2021-01-06T04:52:59Z Iolo joined #lisp 2021-01-06T04:54:25Z rogersm quit (Ping timeout: 246 seconds) 2021-01-06T05:00:01Z gabot quit (Ping timeout: 246 seconds) 2021-01-06T05:05:37Z abhixec quit (Ping timeout: 246 seconds) 2021-01-06T05:18:41Z karlosz joined #lisp 2021-01-06T05:19:53Z gko_ joined #lisp 2021-01-06T05:22:22Z miasuji quit (Remote host closed the connection) 2021-01-06T05:22:43Z Bike quit (Quit: Lost terminal) 2021-01-06T05:24:54Z wxie joined #lisp 2021-01-06T05:27:00Z benjamindc quit (Remote host closed the connection) 2021-01-06T05:35:13Z sm2n_ is now known as sm2n 2021-01-06T05:44:01Z Oladon quit (Quit: Leaving.) 2021-01-06T05:45:49Z orivej joined #lisp 2021-01-06T05:45:52Z jprajzne quit (Quit: Leaving.) 2021-01-06T05:46:03Z abhixec joined #lisp 2021-01-06T05:48:19Z narimiran joined #lisp 2021-01-06T06:02:38Z abhixec quit (Quit: Lost terminal) 2021-01-06T06:04:58Z wxie quit (Ping timeout: 260 seconds) 2021-01-06T06:06:02Z notzmv quit (Ping timeout: 264 seconds) 2021-01-06T06:13:10Z gko_ quit (Ping timeout: 272 seconds) 2021-01-06T06:15:21Z wxie joined #lisp 2021-01-06T06:23:10Z dbotton quit (Quit: Leaving) 2021-01-06T06:24:16Z aartaka joined #lisp 2021-01-06T06:27:12Z karlosz quit (Quit: karlosz) 2021-01-06T06:33:53Z mrios22 joined #lisp 2021-01-06T06:34:04Z ym quit (Quit: Leaving) 2021-01-06T06:34:12Z Bahman quit (Remote host closed the connection) 2021-01-06T06:37:20Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-06T06:37:59Z mrios22: Hi, I have a question about ASDF. Yesterday (asdf:load-system :myproject) worked fine in SLIME. I rebooted my computer, and now ASDF cannot find :myproject. The files for :myproject are in the local-projects directory of quicklisp, so I thought ASDF would be able to find them. I'm new to creating projects and using asdf. Is there anything obvious that I am missing? Thanks. 2021-01-06T06:38:48Z beach: You may want to do (ql:register-local-projects) (once) before calling ASDF. 2021-01-06T06:39:05Z mrios22: beach, thank you, I will try that. 2021-01-06T06:39:10Z beach: I can't explain why it worked yesterday and not today, though. 2021-01-06T06:40:18Z mrios22: It's possible that I had loaded every file in the project into my inferior lisp so ASDF had no trouble finding all of the symbols I was asking it to look for. 2021-01-06T06:40:32Z beach: Yes, that would be one possible explanation. 2021-01-06T06:42:33Z mrios22: beach -- the (ql:register-local-projects) command worked after I restarted my inferior common lisp process in slime. However, I'll have to do this every time I start SLIME. The solution is to never shut off my computer :) 2021-01-06T06:42:51Z dbotton joined #lisp 2021-01-06T06:42:59Z beach: No, once should do. 2021-01-06T06:43:29Z beach: Next time you start a new image, all your .asd files should be known to ASDF. 2021-01-06T06:43:56Z mrios22: That's curious. I did (ql:register-local-projects), restarted my inferior lisp, and then tried (asdf:load-system :myproject). I got the same error that I got before. 2021-01-06T06:44:08Z beach: That's very strange. 2021-01-06T06:44:14Z beach: I have no explanation for that. 2021-01-06T06:44:21Z mrios22: Then I did (ql:register-local-projects). After that, my asdf:load-system worked. 2021-01-06T06:44:43Z beach: Maybe the place where Quicklisp stores this information is not writable? 2021-01-06T06:44:49Z beach: I am making wild guesses here. 2021-01-06T06:45:06Z mrios22: Let me check my home directory to see what the flags are. 2021-01-06T06:45:43Z wxie quit (Ping timeout: 246 seconds) 2021-01-06T06:46:24Z mrios22: Everything in my ~/quicklisp directory seems to be writeable. 2021-01-06T06:46:47Z beach: I am afraid I don't know where Quicklisp stores this information. 2021-01-06T06:47:01Z mrios22: In any case, I should get to work. Thanks for the advice. 2021-01-06T06:47:22Z beach: Sure. Sorry I wasn't able to give more help. 2021-01-06T06:47:52Z mrios22: No need to apologize, your advice saved me a lot of trouble and frustration :) Thank you. 2021-01-06T06:47:53Z Stanley00 joined #lisp 2021-01-06T06:48:04Z beach: Sure. Good luck! 2021-01-06T06:49:12Z makomo joined #lisp 2021-01-06T06:50:43Z rogersm joined #lisp 2021-01-06T06:50:44Z wxie joined #lisp 2021-01-06T06:51:40Z sauvin joined #lisp 2021-01-06T06:55:10Z rogersm quit (Ping timeout: 246 seconds) 2021-01-06T07:00:56Z kaftejiman_ joined #lisp 2021-01-06T07:02:10Z kaftejiman quit (Ping timeout: 246 seconds) 2021-01-06T07:02:14Z jprajzne joined #lisp 2021-01-06T07:04:37Z mathrick quit (Ping timeout: 246 seconds) 2021-01-06T07:05:01Z mathrick joined #lisp 2021-01-06T07:12:12Z pankajsg joined #lisp 2021-01-06T07:12:43Z ralt joined #lisp 2021-01-06T07:13:25Z mindCrime quit (Ping timeout: 240 seconds) 2021-01-06T07:13:50Z varjag joined #lisp 2021-01-06T07:19:17Z mindCrime joined #lisp 2021-01-06T07:34:24Z ebrasca quit (Remote host closed the connection) 2021-01-06T07:34:57Z fitzsim quit (Read error: Connection reset by peer) 2021-01-06T07:42:20Z Nilby joined #lisp 2021-01-06T07:46:17Z galex-713 quit (Read error: Connection reset by peer) 2021-01-06T07:51:38Z rogersm joined #lisp 2021-01-06T07:53:09Z frost-lab joined #lisp 2021-01-06T07:54:19Z wxie1 joined #lisp 2021-01-06T07:55:12Z lottaquestions_ joined #lisp 2021-01-06T07:55:14Z lottaquestions quit (Ping timeout: 264 seconds) 2021-01-06T07:56:23Z rogersm quit (Ping timeout: 260 seconds) 2021-01-06T07:56:53Z wxie quit (Ping timeout: 265 seconds) 2021-01-06T07:56:54Z wxie1 is now known as wxie 2021-01-06T07:59:34Z amb007 quit (Read error: Connection reset by peer) 2021-01-06T08:00:03Z frodef joined #lisp 2021-01-06T08:00:48Z amb007 joined #lisp 2021-01-06T08:01:28Z anticrisis quit (Read error: Connection reset by peer) 2021-01-06T08:01:34Z beach: I uploaded a new (still very preliminary) version of my paper on call-site optimization: http://metamodular.com/SICL/call-site-optimization.pdf 2021-01-06T08:01:35Z beach: As usual, I would appreciate any remarks, in particular remarks indicating that the explanation is not good enough. But also, if someone has information on other types of call-site optimization no matter the programming language, please let me know. 2021-01-06T08:01:58Z beach: There are now some figures as well that might help communicating the idea. 2021-01-06T08:07:07Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-06T08:08:38Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-06T08:09:02Z mrios22 quit (Ping timeout: 264 seconds) 2021-01-06T08:12:29Z rgherdt joined #lisp 2021-01-06T08:14:59Z galex-713 joined #lisp 2021-01-06T08:16:33Z andreyorst joined #lisp 2021-01-06T08:17:09Z lottaquestions_ quit (Quit: Konversation terminated!) 2021-01-06T08:17:40Z lottaquestions_ joined #lisp 2021-01-06T08:18:13Z frodef plan to read beach's paper soonish. 2021-01-06T08:18:17Z ggoes quit (Ping timeout: 260 seconds) 2021-01-06T08:19:09Z beach: Thanks. I appreciate it. 2021-01-06T08:19:36Z beach: It subsumes your technique with multiple entry points according to the number of arguments, for instance. 2021-01-06T08:23:20Z sunset_NOVA joined #lisp 2021-01-06T08:26:07Z ggoes joined #lisp 2021-01-06T08:27:52Z frodef: beach: sounds interesting, now I just need to get my printer to connect to the network, sigh. 2021-01-06T08:28:17Z beach: I see. I hate that kind of stuff. 2021-01-06T08:29:01Z frodef: now add: the wiring up in the crawlspace, which is now at -15 degrees... 2021-01-06T08:29:38Z frodef: ...so if I have any comments for you later, I hope you /really/ appreciate them ;-) 2021-01-06T08:29:53Z beach: Heh, yes, I understand. 2021-01-06T08:30:11Z beach: Where do you live these days? I didn't realize it was that cold. 2021-01-06T08:30:30Z frodef: there was just a substantial temperature drop in oslo. 2021-01-06T08:30:37Z beach: Oh, wow. 2021-01-06T08:34:26Z splittist: phoe's interview on 47degrees (47signals? 47syscalls?) was great. The interviewer was engaging - staying out of the way, but giving nice reaction shots. I was surprised to see rainbow parens, for some reason. 2021-01-06T08:34:50Z jonathan| quit (Ping timeout: 264 seconds) 2021-01-06T08:38:16Z beach: I agree it was very good. 2021-01-06T08:43:10Z gaqwas joined #lisp 2021-01-06T08:43:10Z gaqwas quit (Changing host) 2021-01-06T08:43:10Z gaqwas joined #lisp 2021-01-06T08:46:34Z liberliver joined #lisp 2021-01-06T08:52:04Z jonathan| joined #lisp 2021-01-06T08:52:36Z rogersm joined #lisp 2021-01-06T08:54:04Z pyc_ is now known as pyc 2021-01-06T08:54:15Z pyc quit (Changing host) 2021-01-06T08:54:16Z pyc joined #lisp 2021-01-06T08:57:13Z rogersm quit (Ping timeout: 264 seconds) 2021-01-06T08:59:52Z ex_nihilo joined #lisp 2021-01-06T09:00:32Z aartaka quit (Ping timeout: 256 seconds) 2021-01-06T09:02:14Z pve joined #lisp 2021-01-06T09:05:43Z Stanley00 quit (Ping timeout: 246 seconds) 2021-01-06T09:05:48Z nicktick quit (Ping timeout: 260 seconds) 2021-01-06T09:06:08Z frodef quit (Ping timeout: 256 seconds) 2021-01-06T09:07:01Z dim: typo alert: “This optimization was introduced by Gerd Moellmann in 2002, and has since been includes also in SBCL” <-- includes/included 2021-01-06T09:07:17Z beach: Thanks. 2021-01-06T09:08:23Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-06T09:08:32Z beach: Fixed! 2021-01-06T09:10:17Z dim: wow that's a nice round-trip latency ;-) 2021-01-06T09:10:31Z beach: Heh, thanks! 2021-01-06T09:11:10Z dim: I like what I'm reading so far, it makes me feel like I'm smart enough to understand what you're talking about ;-) also I wonder if boa-constructors belong to the topic in some ways? 2021-01-06T09:12:10Z beach: Oh, didn't think of those. I'll have a look. Thanks for the hint. They may fall into the same category as MAKE-INSTANCE. 2021-01-06T09:13:02Z beach: I am thinking that, with this technique, Common Lisp could have function calls as fast as (or faster than) those in static programming languages. 2021-01-06T09:13:19Z beach: Doesn't dynamic linking require at least one indirection for function calls? 2021-01-06T09:13:28Z beach: I know access to global variables does. 2021-01-06T09:13:51Z dim: tyop-of-a-kind alert: “but it crucially allows us” -- try using “and” instead of “but”, if the meaning of the sentence is kept, then you certainly would better use “and” 2021-01-06T09:14:59Z beach: I'll add an "also" instead. 2021-01-06T09:15:05Z beach: That's more like what I meant. 2021-01-06T09:15:26Z dim: dynamic linking would do that yeah, and it's a complete mess (in C at least) if you ever load more than once, or if you can't find the symbol the code expects to find... openssl in particular is a trouble maker in that space, the CFFI bindings for CL are a constant hurdle 2021-01-06T09:15:55Z dim: the proof reader of my book often replaced and/also with “moreover” which I ended-up liking a lot 2021-01-06T09:16:46Z beach: OK, that's a good hint. Thanks. 2021-01-06T09:17:01Z dim: also I think a part of what you're talking about in your paper would be typically implemented in C like systems by the linker phase of compilation, right? 2021-01-06T09:17:46Z beach: I think link-time optimization is a kludge to compensate for the lack of information resulting from separate compilation, yes. 2021-01-06T09:18:04Z dim: I mean each .c file is used to produce a .o object file, with a map of function entry-points, and then the linker's job is to concatenate them all together and edit a new “global” map of entry points for the final binary, at least that's my understanding 2021-01-06T09:18:31Z beach: Traditional static languages have really made a mess of everything, just because they insist on making us believe that we are programming slow machines without an operating system. 2021-01-06T09:18:54Z dim: ahah that's a good one 2021-01-06T09:19:40Z dim: or maybe because Unix was meant as a quite dumbed down OS to boot (not as complex as the Multics beast) and then became the standard expectation for an OS layer? 2021-01-06T09:19:45Z beach: We (Common Lisp programmers) are lucky in that we always have the entire code for the system immediately available. We now just have to take advantage of that fact. 2021-01-06T09:20:27Z beach: Unix was meant to be as large a subset as possible of Multics that would also run on a PDP-11. 2021-01-06T09:20:34Z beach: Or was it PDP 8? 2021-01-06T09:20:47Z dim: I began to understand what Stallman meant with the 4 rights of the GPL when I started hacking Emacs Lisp, that's where I first had that experience you're alluding to I suppose 2021-01-06T09:21:27Z beach: I don't see the relation, sorry. 2021-01-06T09:21:35Z dim: I mean having the whole “system” code available and easily recompiled at run-time makes it obvious that you want to have the right to study and edit the code 2021-01-06T09:21:43Z beach: Ah, yes, I see. 2021-01-06T09:23:30Z dim: when using Unix and say “apt install tmux” or whatever software, if you want to look at the code you need to “apt source tmux” and that needs a specific source entry in your sources list, and then if you want to edit the code and recompile it you need “apt-get build-dep tmux” and then with debian you actually have a good chance you can build your custom program, thanks debian, and still it is quite complex 2021-01-06T09:23:49Z dim: in Emacs and then in Common Lisp, you just C-. on the symbol and hack away, C-c C-c, and benefit now 2021-01-06T09:23:53Z beach: I should re-read my (signed) copy of "Linkers and Loaders". If there is an indirection for function calls, I can include that fact in the paper. 2021-01-06T09:24:26Z beach: Sure. But that's not quite what I meant. I meant that we don't have separate compilation. 2021-01-06T09:24:50Z mathrick quit (Ping timeout: 256 seconds) 2021-01-06T09:24:51Z dim: I though we had compilation units of sorts? 2021-01-06T09:25:12Z beach: But they don't start with an empty global environment the way C and C++ do. 2021-01-06T09:25:14Z mathrick joined #lisp 2021-01-06T09:25:48Z beach: And once they are loaded into the system, they are present just like the rest of the system, and can be transformed, since we have the compiler available at run-time. 2021-01-06T09:26:53Z beach: Before link-time optimization, those languages had to fill up the environment using includes for each compilation, and they have to produce object code without knowing the rest of the system. 2021-01-06T09:27:13Z dim: ah yeah, the empty global env and the #include and pre-processor thing still makes me sad/mad 2021-01-06T09:28:20Z VincentVega joined #lisp 2021-01-06T09:28:30Z Nilby: When I ran lisp on a pdp8 it was the whole OS booted off a floopy. But then the pdp8 was also a desk. 2021-01-06T09:28:53Z phoe: splittist: I love rainbow parens 2021-01-06T09:29:57Z VincentVega quit (Remote host closed the connection) 2021-01-06T09:31:35Z splittist: phoe: interesting 2021-01-06T09:31:42Z Nilby: phoe: thanks for the awesome talk on 47˚, you made me realize i didn't have a retry restart in my repl. 2021-01-06T09:35:37Z phoe: Nilby: gasp! what REPL do you use? 2021-01-06T09:36:42Z phoe: splittist: my eyes react very well to colors, rainbow parens give me additional depth information, especially with this six-color palette that I got used to after some years 2021-01-06T09:36:53Z phoe: but that's already the category of personal lifehacks 2021-01-06T09:37:00Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-06T09:37:23Z Nilby: phoe: a crappy one i wrote, gasp 2021-01-06T09:37:46Z phoe: oh! so you can add the restart yourself easily 2021-01-06T09:38:00Z Nilby: i did :) 2021-01-06T09:38:04Z phoe: :D 2021-01-06T09:38:41Z Nilby: but 'retry it is actually in sb-ext 2021-01-06T09:39:00Z phoe: actually, it can be in any package you want or need 2021-01-06T09:39:20Z phoe: you can fetch the symbol itself via restart-name if needed 2021-01-06T09:40:05Z phoe: if you use string= for comparing restart names, then you can match FOO:RETRY, BAR:RETRY, SB-EXT:RETRY, and what else 2021-01-06T09:40:18Z phoe: e.g. the slime debugger doesn't show packages of restart names 2021-01-06T09:41:14Z Nilby: I guess I could change the debugger not to show package names. Now that I'm further in the video, I see you wrote your own debugger too. 2021-01-06T09:41:16Z andreyorst_ joined #lisp 2021-01-06T09:41:31Z ex_nihilo_ joined #lisp 2021-01-06T09:41:37Z phoe: https://github.com/phoe/portable-condition-system 2021-01-06T09:44:26Z ex_nihilo quit (Ping timeout: 264 seconds) 2021-01-06T09:46:47Z phoe: spice it up with trivial-custom-debugger and you can install a custom debugger mostly anywhere 2021-01-06T09:47:57Z beach: phoe: Do you have any feedback from people other than Common Lisp programmers on the video? 2021-01-06T09:48:08Z beach: I had to leave early, so I didn't see the end of the chat. 2021-01-06T09:48:43Z beach: I mean, I don't know what crowd was to be expected, given the topic, and the "channel". 2021-01-06T09:49:00Z phoe: beach: not much, but it was good overall 2021-01-06T09:49:11Z beach: Great! 2021-01-06T09:49:33Z phoe: glad to have the video out there so it can pick up on popularity in an asynchronous manner. 2021-01-06T09:53:31Z rogersm joined #lisp 2021-01-06T09:56:08Z kaftejiman_ quit (Remote host closed the connection) 2021-01-06T09:58:13Z ralt: dim: fyi this came out yesterday https://www.timmons.dev/posts/static-executables-with-sbcl.html 2021-01-06T09:58:15Z hendursaga joined #lisp 2021-01-06T09:58:25Z rogersm quit (Ping timeout: 264 seconds) 2021-01-06T09:58:41Z dim: thanks! 2021-01-06T09:59:06Z beach: ralt: Can you give a quick explanation of the purpose of this work, other than putting SBCL inside the kernel? 2021-01-06T09:59:39Z ralt: beach: this one is unrelated to the kernel, see the first paragraph under "Background" 2021-01-06T09:59:52Z beach: Thanks! 2021-01-06T09:59:54Z ralt: and it's done by etimmons, not me :) 2021-01-06T10:00:14Z beach: Yes, I know. But you mentioned that the work is related. 2021-01-06T10:01:08Z dim: the context I have for such tools in general is how to deliver an application binary to users who don't care that it's been written in Common Lisp 2021-01-06T10:01:16Z beach: ralt: OK, got it. Thanks! 2021-01-06T10:01:27Z beach: Makes sense. 2021-01-06T10:01:38Z ralt: dim: that's exactly why I pinged you, given pgloader 2021-01-06T10:01:39Z dim: we seem in the CL community to be quite hermetic, we seem to avoid delivering what we do to people who are not CL users/hackers themselves 2021-01-06T10:01:55Z beach: ... but then they are all going to complain that "Hello world!" takes tens of megabytes. 2021-01-06T10:01:58Z dim: we're missing a lot of infra to make it simple to use software written in CL as a non-CL or a non-programmer end user 2021-01-06T10:02:06Z ralt: agreed. that's why I made linux-packaging. 2021-01-06T10:02:16Z dim: beach: not anymore, see Go builds and Rust and others, people are getting used to it 2021-01-06T10:02:25Z beach: Oh, good! :) 2021-01-06T10:02:29Z dim: ralt: +1, thanks for that, I need to dive into it someday 2021-01-06T10:02:54Z ralt: dim: to be fair, Go and Rust builds are a couple of MBs, not tens :P 2021-01-06T10:02:58Z pve quit (Ping timeout: 260 seconds) 2021-01-06T10:03:03Z ralt: but yes, people care less. 2021-01-06T10:03:12Z dim: well then compare to docker images maybe 2021-01-06T10:03:36Z ralt: hehehe 2021-01-06T10:03:48Z pve joined #lisp 2021-01-06T10:04:08Z dim: I am nowadays working on a tool named pg_auto_failover, written in C, the main binary is 1MB large, and the minimum docker image based on debian that I could make is around 280MB 2021-01-06T10:04:45Z ralt: does pg work in alpine those days? 2021-01-06T10:04:59Z ralt: alpine docker images are ~6MB iirc 2021-01-06T10:05:22Z ik` joined #lisp 2021-01-06T10:05:38Z dim: yeah I could use alpine too, but then it's not the same libc and reasons-reasons, I did not 2021-01-06T10:05:56Z ralt: fair enough 2021-01-06T10:06:58Z ik` quit (Remote host closed the connection) 2021-01-06T10:07:11Z ralt: speaking of postgresql, I recently (a few months ago) found out about multicorn 2021-01-06T10:07:26Z ralt: I so want to redo it with ECL. 2021-01-06T10:08:08Z ralt: maybe you could rewrite pg_auto_failover in Lisp :P 2021-01-06T10:26:38Z Stanley00 joined #lisp 2021-01-06T10:27:29Z gaqwas quit (Remote host closed the connection) 2021-01-06T10:27:58Z mathrick quit (Ping timeout: 256 seconds) 2021-01-06T10:28:23Z mathrick joined #lisp 2021-01-06T10:28:35Z ljavorsk joined #lisp 2021-01-06T10:33:46Z frost-lab quit (Quit: Connection closed) 2021-01-06T10:33:55Z ljavorsk quit (Ping timeout: 246 seconds) 2021-01-06T10:34:47Z attila_lendvai joined #lisp 2021-01-06T10:34:47Z attila_lendvai quit (Changing host) 2021-01-06T10:34:47Z attila_lendvai joined #lisp 2021-01-06T10:35:02Z quazimodo quit (Read error: Connection reset by peer) 2021-01-06T10:35:13Z j0nd0e joined #lisp 2021-01-06T10:42:19Z frost-lab joined #lisp 2021-01-06T10:48:49Z mathrick quit (Ping timeout: 264 seconds) 2021-01-06T10:49:13Z mathrick joined #lisp 2021-01-06T10:52:25Z andreyorst_ quit (Ping timeout: 264 seconds) 2021-01-06T10:52:47Z wxie quit (Ping timeout: 268 seconds) 2021-01-06T10:54:29Z rogersm joined #lisp 2021-01-06T10:54:58Z saganman joined #lisp 2021-01-06T10:58:24Z vutral quit (Quit: Connection closed for inactivity) 2021-01-06T10:59:17Z rogersm quit (Ping timeout: 260 seconds) 2021-01-06T11:02:13Z dim: my colleagues and the Postgres community at large would not appreciate that, even Python was out: we want to make it dead simple to install and use the product, and focus on having the same set of dependencies (build and run-time) as Postgres itself 2021-01-06T11:02:58Z random-nick joined #lisp 2021-01-06T11:04:02Z ljavorsk joined #lisp 2021-01-06T11:07:25Z mathrick quit (Ping timeout: 264 seconds) 2021-01-06T11:08:25Z quazimodo joined #lisp 2021-01-06T11:10:22Z pyc: I am using SBCL. I don't need to install Quicklisp to get "uiop". Am I right about this? (require "uiop") seems to work for me. Is this guaranteed to work in any SBCL implementation? 2021-01-06T11:10:48Z mathrick joined #lisp 2021-01-06T11:10:53Z phoe: pyc: SBCL bundles ASDF and UIOP 2021-01-06T11:11:06Z gaqwas joined #lisp 2021-01-06T11:11:06Z gaqwas quit (Changing host) 2021-01-06T11:11:06Z gaqwas joined #lisp 2021-01-06T11:11:09Z pyc: phoe: thanks! 2021-01-06T11:11:47Z phoe: but there's a question of which version it bundles! 2021-01-06T11:12:00Z pyc: phoe: how do I figure the version number? 2021-01-06T11:12:23Z ralt: (asdf:asdf-version) I think? 2021-01-06T11:12:24Z jackdaniel: mind that not putting "uiop" in :depends-on of your system may break executables that are not produced with save-lisp-and-die 2021-01-06T11:13:02Z jackdaniel: also fact that it is preloaded means, that if you want to bundle uiop with your sources, you must download it manually (because asdf won't complain that the system is not present, hence quicklisp won't download it) 2021-01-06T11:17:11Z sunset_NOVA quit (Ping timeout: 258 seconds) 2021-01-06T11:18:41Z mankaev quit (Ping timeout: 268 seconds) 2021-01-06T11:18:46Z VincentVega joined #lisp 2021-01-06T11:19:33Z dim: ralt: do you know if the method outlined in https://www.timmons.dev/posts/static-executables-with-sbcl.html would be compliant with static-linking openssl and sqlite, and maybe other code? 2021-01-06T11:20:30Z fc2020apt[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:30Z dieggsy quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:31Z arichiardi[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:31Z quanta[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:31Z cairn quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:32Z psebcc[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:32Z Gnuxie[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:32Z ThaEwat quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:32Z malaclyps_ quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:33Z DanielCheng[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:33Z MrtnDk[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:34Z katco quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:35Z raamdev[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:35Z infra_red[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:35Z santiagopim[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:35Z kaisyu[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:36Z solideogloria[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:36Z dmiles[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:36Z loke[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:36Z etimmons quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:36Z jonas[m]1 quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:36Z zstest3[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:39Z amb007 quit (Ping timeout: 266 seconds) 2021-01-06T11:20:40Z exit70[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:40Z even4void[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:41Z ckoz[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:41Z susam quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:20:43Z dim: ralt: I would also like to see PL/CL same way we have PL/Python in Postgres ; and I think it's going to be more complex, because ideally we might want to have a single CL image running in the background in the Postgres process tree, and each Postgres backend would have its own CL thread that can communicate with the central image application / objects 2021-01-06T11:21:08Z emys[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:21:08Z clar[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:21:08Z ms[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:21:09Z keizerrijk[m] quit (Quit: Bridge terminating on SIGTERM) 2021-01-06T11:22:17Z aartaka joined #lisp 2021-01-06T11:23:37Z mathrick quit (Ping timeout: 264 seconds) 2021-01-06T11:24:01Z mathrick joined #lisp 2021-01-06T11:24:19Z v88m quit (Ping timeout: 246 seconds) 2021-01-06T11:25:13Z ljavorsk quit (Ping timeout: 260 seconds) 2021-01-06T11:29:56Z amb007 joined #lisp 2021-01-06T11:30:20Z dmiles[m] joined #lisp 2021-01-06T11:30:25Z dabr joined #lisp 2021-01-06T11:30:48Z andreyorst_ joined #lisp 2021-01-06T11:33:52Z ljavorsk joined #lisp 2021-01-06T11:34:51Z VincentVega: beach: I think it's just the reality of the language and how you accept it. A value in question is treated in boolean terms: as nil or non-nil. That non-nil happens to be treated as t is just the fact of the language. Quirky? Maybe. Surprising? Even newcomers are doing it. 2021-01-06T11:35:01Z VincentVega: beach: And the nature of a surprise is, you see it once, and it isn't a surprise anymore. 2021-01-06T11:35:15Z VincentVega: beach: Moreover, I would say that judging lisp code with its custom dsls based on the surprise factor is a bit unfair in the first place. I will go as far as to say it is counter to lisp's philosophy. Macros let you get succinctness. If succinctness buys you power of expression at the cost of immediate understandability, then you just learn how a 2021-01-06T11:35:16Z VincentVega: construct works and that's a positive tradeoff in the long run. 2021-01-06T11:35:24Z VincentVega: beach: "The NIL value is not a Boolean": not what the hyperspec says "The type boolean contains the symbols t and nil, which represent true and false, respectively." 2021-01-06T11:37:37Z mathrick quit (Ping timeout: 246 seconds) 2021-01-06T11:38:26Z mathrick joined #lisp 2021-01-06T11:39:04Z phoe: VincentVega: it's not a question of what the language accepts but a question of what the programmer expects 2021-01-06T11:40:14Z VincentVega: phoe: yes, this is what I account for 2021-01-06T11:40:19Z phoe: NIL is a symbol, a boolean, a list, a sequence, and a T all at once, and code that provides appropriate operations on that help fix the resulting confusion 2021-01-06T11:42:26Z ljavorsk quit (Ping timeout: 246 seconds) 2021-01-06T11:42:44Z VincentVega: I don't think there's any confusion there. It's a question of habit. 2021-01-06T11:43:44Z VincentVega: My point is, if a programmer writes in a language, then a programmer has to come to terms with what a language can do if he doesn't want to be working against it. 2021-01-06T11:45:54Z Nilby: Lisp seems to make it so I'm only really working against myself (and time and physics). 2021-01-06T11:46:18Z phoe: yes, and there's also the question of the social layer atop a language 2021-01-06T11:46:25Z VincentVega: I mean, would you seriously prefer (or (null a) (null b) (null c)) to (and a b c)? 2021-01-06T11:47:01Z phoe: depends on context :D 2021-01-06T11:47:25Z phoe: the social layer is why e.g. some C++ projects disallow exceptions even though they're, in theory, a part of standard C++ 2021-01-06T11:47:26Z jackdaniel: stylistic suggestions from norvig's style guide are just that - suggestions 2021-01-06T11:47:54Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-06T11:47:55Z amb007 quit (Read error: Connection reset by peer) 2021-01-06T11:48:05Z jackdaniel: VincentVega: you may find this amusing: https://ashwinram.org/1986/01/28/a-short-ballad-dedicated-to-the-growth-of-programs/ 2021-01-06T11:48:31Z amb007 joined #lisp 2021-01-06T11:48:43Z VincentVega: suggestions can be unfounded at times 2021-01-06T11:48:47Z VincentVega: thanks I'll read it 2021-01-06T11:49:42Z Oddity- quit (Ping timeout: 260 seconds) 2021-01-06T11:49:55Z jmercouris: I'm using this library: https://github.com/andy128k/cl-gobject-introspection 2021-01-06T11:49:56Z VincentVega: phoe: if there's any social layer to this issue it all, I am pretty sure that you will find a lot more (when value ...)'s than unless nulls 2021-01-06T11:49:58Z jackdaniel: most remarks I've found in the norvig's document had a very good rationale behind them - you may disagree, still you should take it into consideration 2021-01-06T11:50:02Z Oddity joined #lisp 2021-01-06T11:50:10Z jmercouris: I'm looking at the example at the very top " (gir:nget *gtk* "WindowType" :toplevel)" 2021-01-06T11:50:33Z jmercouris: how do they know that WindowType exists? Is there a way to list the arguments that 'new for class Window accepts? 2021-01-06T11:51:00Z frodef joined #lisp 2021-01-06T11:51:24Z even4void[m] joined #lisp 2021-01-06T11:51:24Z cairn joined #lisp 2021-01-06T11:51:24Z psebcc[m] joined #lisp 2021-01-06T11:51:24Z emys[m] joined #lisp 2021-01-06T11:51:24Z loke[m] joined #lisp 2021-01-06T11:51:25Z susam joined #lisp 2021-01-06T11:51:25Z katco joined #lisp 2021-01-06T11:51:25Z exit70[m] joined #lisp 2021-01-06T11:51:25Z MrtnDk[m] joined #lisp 2021-01-06T11:51:25Z ms[m] joined #lisp 2021-01-06T11:51:25Z santiagopim[m] joined #lisp 2021-01-06T11:51:25Z quanta[m] joined #lisp 2021-01-06T11:51:25Z etimmons joined #lisp 2021-01-06T11:51:25Z Gnuxie[m] joined #lisp 2021-01-06T11:51:25Z infra_red[m] joined #lisp 2021-01-06T11:51:25Z malaclyps_ joined #lisp 2021-01-06T11:51:25Z kaisyu[m] joined #lisp 2021-01-06T11:51:25Z dieggsy joined #lisp 2021-01-06T11:51:26Z raamdev[m] joined #lisp 2021-01-06T11:51:26Z ThaEwat joined #lisp 2021-01-06T11:51:27Z tolko-zhenshiny[ joined #lisp 2021-01-06T11:51:30Z DanielCheng[m] joined #lisp 2021-01-06T11:51:30Z arichiardi[m] joined #lisp 2021-01-06T11:51:31Z clar[m] joined #lisp 2021-01-06T11:51:31Z jonas[m]2 joined #lisp 2021-01-06T11:51:31Z ckoz[m] joined #lisp 2021-01-06T11:51:32Z solideogloria[m] joined #lisp 2021-01-06T11:51:32Z keizerrijk[m] joined #lisp 2021-01-06T11:51:33Z zstest3[m] joined #lisp 2021-01-06T11:51:33Z VincentVega: jackdaniel: i am not criticizing their whole document, i haven't read it, just this one thing i happened to see mentioned here yesterday 2021-01-06T11:51:59Z jmercouris: nget-desc? 2021-01-06T11:52:37Z jackdaniel: I'm not saying you do, I'm suggesting that you may benefit from reading rationale behind this particular one thing (and then disagree :) I personally agree with you, that there is no harm in writing (when foo …) 2021-01-06T11:52:50Z jackdaniel: that said I find myself usually using (when-let … …) 2021-01-06T11:55:20Z VincentVega: If I saw the rationale on it, I would've read it, just seemed like a slide with bullet-points to me. But yes, I'll probably be reading up on it : ) 2021-01-06T11:57:32Z jackdaniel: I've got curious myself and tried to find this particular advice in the document, but I've failed. the only part is that you should be specific (and, or for boolean value only, when/unless for statements, if for expressions and cond for multi-branch statement/expression 2021-01-06T11:59:20Z VincentVega: I see. As for and/or thing, by the way, the (and (numberp x) (cos x)) isn't even a real example unless cos can suddenly yield a nil. 2021-01-06T11:59:40Z VincentVega: like, common, they made this stuff up, just for the sake of a slide 2021-01-06T12:01:02Z jackdaniel: I saw code like this, the first clause in and is to ensure the proper type, and the second is called for the value 2021-01-06T12:01:21Z v3ga: ... 2021-01-06T12:01:30Z jackdaniel: i.e (let ((name (and window (window-name "foo"))) …) 2021-01-06T12:01:44Z jmercouris: s/common/come on 2021-01-06T12:01:56Z VincentVega: actually yes, thinking about it, (and condition (error ..)) i did a couple of times too. well, fine. 2021-01-06T12:02:46Z jackdaniel: my example should be if, and your example should be when :) 2021-01-06T12:03:12Z jackdaniel: either way, time to get to double buffering in mcclim, see you later 2021-01-06T12:03:36Z VincentVega: the need for specificity of when/if i do agree with 2021-01-06T12:03:45Z VincentVega: yeah, c ya : ) 2021-01-06T12:06:13Z igemnace quit (Remote host closed the connection) 2021-01-06T12:07:13Z Stanley00 quit 2021-01-06T12:11:02Z mankaev joined #lisp 2021-01-06T12:15:57Z mankaev quit (Ping timeout: 272 seconds) 2021-01-06T12:16:02Z vegansbane6 joined #lisp 2021-01-06T12:16:11Z ralt: dim not sure about openssl, etimmons might know. For sqlite I don't see it as hard, at worse you can compile it as part of your build. 2021-01-06T12:17:11Z ralt: I did that here https://gitlab.com/ralt/ballish if you look at the .asd file 2021-01-06T12:18:22Z ralt: (so it's already doable with asdf:static-program-op) 2021-01-06T12:20:13Z ralt: The lisp in postgres thing is interesting... I wonder if you need pl/lisp at all. 2021-01-06T12:20:32Z surabax joined #lisp 2021-01-06T12:20:34Z ralt: Like what if it exposes a swank server 2021-01-06T12:21:53Z mankaev joined #lisp 2021-01-06T12:23:48Z ralt: This sounds like doable pretty quickly with ECL even 2021-01-06T12:28:12Z etimmons: dim: I have used that method with openssl. Haven't yet extensively tested it, but no issues so far. 2021-01-06T12:30:05Z nij left #lisp 2021-01-06T12:32:10Z FennecCode quit (Quit: IRCNow and Forever!) 2021-01-06T12:32:30Z beach: VincentVega: You keep referring to language semantics, whereas I am talking about software engineering and maintainability. As you know if you are a professional programmer, the language you should use for good maintainability is a tiny subset of the semantically acceptable language. 2021-01-06T12:33:46Z beach: VincentVega: But I guess you must have way more experience than Pitman and Norvig. I certainly don't, so I rely on their wisdom go guide things like that. 2021-01-06T12:34:44Z beach: What phoe also said. 2021-01-06T12:37:17Z matryoshka quit (Ping timeout: 260 seconds) 2021-01-06T12:37:34Z matryoshka joined #lisp 2021-01-06T12:39:48Z beach: Also, even though I have seen constructs such as (WHEN EVENT ...) more than once, I am still not only surprised when I see such a construct. I have to pause several seconds to figure out what it means. So I seem to correspond to the people they are referring to in their document. 2021-01-06T12:39:50Z imode quit (Ping timeout: 256 seconds) 2021-01-06T12:40:37Z dbotton joined #lisp 2021-01-06T12:40:37Z aartaka quit (Read error: Connection reset by peer) 2021-01-06T12:42:12Z beach: VincentVega: You are of course free to write whatever you like. But when people show their code here in order to get feedback on it, I will continue to point out that such constructs are considered not so great in the eyes of highly experienced and very knowledgeable programmers such as Norvig and Pitman. 2021-01-06T12:42:24Z dim: etimmons: thanks, might try it sometime! 2021-01-06T12:43:18Z j0nd0e quit (Ping timeout: 272 seconds) 2021-01-06T12:43:27Z jackdaniel: beach: I've mentioned that above that I couldn't find that particular advice in the document, do you happen to remember the page it could be found on? 2021-01-06T12:43:51Z beach: That precise example is probably not in there. 2021-01-06T12:44:42Z jackdaniel: OK 2021-01-06T12:44:45Z beach: But I know that the reason I jump when I see it is the same reason I jump when I see the (counter-) examples on page 13. 2021-01-06T12:45:04Z gko_ joined #lisp 2021-01-06T12:45:45Z edgar-rft joined #lisp 2021-01-06T12:45:52Z skapata quit (Remote host closed the connection) 2021-01-06T12:46:28Z jackdaniel: it could be argued (and that would be still not contradict the document), that using generalized booleans as a test in whend/unless is still specific; I gather that you disagree with that 2021-01-06T12:46:37Z jackdaniel: s/whend/when/ 2021-01-06T12:47:12Z phoe: when/unless are a bit less affected by NOT NULL than e.g. IF and COND 2021-01-06T12:47:40Z phoe: because (when/unless (not (null x)) ...) == (unless/when (null x) ...) 2021-01-06T12:47:53Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-06T12:49:34Z ralt: jmercouris: I would assume you'd need to look at gobject docs 2021-01-06T12:49:50Z beach: Here is how I see that particular example. A function is called that can return an event or a default value that is not an event. You want to do something only when an event is returned. You then have two choices. You check whether you have an event and you say (WHEN (EVENTP EVENT) ...) or something similar, or you check for the default and you say (UNLESS (DEFAULT-VALUE-P EVENT) ...). It is a coincidence that DEFAULT-VALUE-P and 2021-01-06T12:49:50Z beach: NULL happen to be the same in this case. 2021-01-06T12:50:46Z andreyorst_ quit (Ping timeout: 246 seconds) 2021-01-06T12:51:00Z beach: Yet another way of seeing it is to notice how much you have to change your code if the function did not return NIL as the default value but instead, say :NOT-AN-EVENT. 2021-01-06T12:51:32Z ralt: jmercouris: sorry, gtk docs https://valadoc.org/gtk+-3.0/Gtk.WindowType.html 2021-01-06T12:51:47Z rumbler31_ joined #lisp 2021-01-06T12:51:48Z matijja``` is now known as matijja 2021-01-06T12:53:59Z beach: The opinion that can be summarized as "anything the language specification allows is OK to write" is very strange to me. Perhaps someone did not say it that literally, but many of the opinions I see boil down to that. 2021-01-06T12:54:46Z chrpape quit (Remote host closed the connection) 2021-01-06T12:54:48Z VincentVega: beach: On the contrary, I mostly based my opinion on the philosophy behind the language + the fact that while succinctness costs you "surprise", the surprise wears off. 2021-01-06T12:55:16Z rogersm joined #lisp 2021-01-06T12:55:16Z VincentVega: beach: Appeal to authority? Man, no need to get all caustic about it : ) 2021-01-06T12:55:46Z beach: Not authority. Experience. 2021-01-06T12:55:58Z jackdaniel: I agree that when you may be specific with eventp it is clearly better; by mentioning generalized booleans I've meant a difference between (when (not (null X)) …) versus (when X …) 2021-01-06T12:56:00Z VincentVega: right 2021-01-06T12:56:01Z beach: I am not going to continue this argument, because I have said what I want so many times in the past. It is getting boring. 2021-01-06T12:56:09Z VincentVega: agreed there 2021-01-06T12:56:30Z beach: jackdaniel: The alternative is (unless (null X) ...) not (when (not (null X))). 2021-01-06T12:56:36Z jackdaniel: VincentVega: I recommend you to read some SICL code written by beach - it is very clearly written and easy to read; that may be a good indicator that it is not appeal to authority but rather a practical advice 2021-01-06T12:56:47Z jackdaniel: beach: ah, OK 2021-01-06T12:58:06Z v88m joined #lisp 2021-01-06T13:00:24Z rogersm quit (Ping timeout: 272 seconds) 2021-01-06T13:01:17Z VincentVega: jackdaniel: I hear you. 2021-01-06T13:11:39Z jmercouris: ralt: thanks Florian, that's what I've been doing 2021-01-06T13:11:48Z jmercouris: ralt: just wondering if there was a built-in introspection mechansim for listing... 2021-01-06T13:12:23Z jmercouris: I've had luck with slime-inspect-presentation-at-point on the result of (gir:nget *gtk* "Xyz" 'method) 2021-01-06T13:12:44Z jmercouris: (gir:nget *gtk* "Xyz" 'method) returns a closure of all things :-D 2021-01-06T13:14:14Z attila_lendvai quit (Quit: Leaving) 2021-01-06T13:18:13Z flazh1 quit (Ping timeout: 264 seconds) 2021-01-06T13:21:09Z frost-lab quit (Quit: Connection closed) 2021-01-06T13:21:45Z flazh1 joined #lisp 2021-01-06T13:23:16Z quazimodo quit (Remote host closed the connection) 2021-01-06T13:24:01Z dabr quit (Ping timeout: 246 seconds) 2021-01-06T13:28:05Z phoe6 joined #lisp 2021-01-06T13:28:52Z quazimodo joined #lisp 2021-01-06T13:33:26Z dbotton joined #lisp 2021-01-06T13:39:49Z rogersm joined #lisp 2021-01-06T13:45:31Z bitmapper_ joined #lisp 2021-01-06T13:47:40Z dbotton_ joined #lisp 2021-01-06T13:48:04Z saganman quit (Quit: WeeChat 1.6) 2021-01-06T13:48:08Z dbotton__ joined #lisp 2021-01-06T13:49:45Z dbotton quit (Ping timeout: 240 seconds) 2021-01-06T13:49:50Z dbotton__ quit (Client Quit) 2021-01-06T13:50:24Z v_m_v joined #lisp 2021-01-06T13:50:41Z Bike joined #lisp 2021-01-06T13:52:13Z dbotton_ quit (Ping timeout: 272 seconds) 2021-01-06T13:52:24Z pyc: just like there is uiop:read-file-string is there an equivalent of uiop:write-file-string? 2021-01-06T13:53:36Z mrios22 joined #lisp 2021-01-06T13:55:03Z bitmapper_ is now known as bitmapper 2021-01-06T13:55:27Z phoe: alexandria:write-string-into-file 2021-01-06T13:56:46Z phoe: there's uiop:call-with-output-file 2021-01-06T13:57:25Z phoe: I assume you can (call-with-output-file pathname (alexandria:curry #'princ string)) 2021-01-06T13:57:37Z gareppa joined #lisp 2021-01-06T13:58:40Z gareppa quit (Remote host closed the connection) 2021-01-06T13:58:58Z v_m_v quit (Remote host closed the connection) 2021-01-06T13:59:12Z Xach uses setf for that sometimes 2021-01-06T13:59:22Z v_m_v joined #lisp 2021-01-06T13:59:24Z phoe: setf? 2021-01-06T13:59:32Z Xach: (setf (file-contents file) data) or similar 2021-01-06T14:00:10Z phoe: there is no #'(SETF UIOP:READ-FILE-STRING) though 2021-01-06T14:00:20Z phoe: hmmm 2021-01-06T14:00:33Z Xach: Very true. I define my own as needed. 2021-01-06T14:02:50Z ralt: Never thought of using setf for that 2021-01-06T14:04:14Z v_m_v quit (Ping timeout: 264 seconds) 2021-01-06T14:04:56Z wsinatra joined #lisp 2021-01-06T14:06:01Z Xach: i remember the discussion of a unix interface that did stuff like (setf (uid user) 42) and did the work underneath to update the system to reflect what's desired, rather than getting hung up on what might be possible only through simple operations 2021-01-06T14:06:03Z pyc: alexandria does not be present in SBCL but uiop is present. does alexandria need to be installed separately? 2021-01-06T14:06:11Z Xach: pyc: yes 2021-01-06T14:06:16Z pyc: thanks 2021-01-06T14:06:43Z Xach: UIOP is a separate library that is provided with sbcl, but alexandria is a separate library that is not 2021-01-06T14:07:18Z ralt: Well for file operations I'm rather concerned on memory usage 2021-01-06T14:07:30Z ralt: You know, memory is typically much more bounded than disk 2021-01-06T14:07:46Z Xach: setting the file contents is much simpler than changing a user uid but it did inspire me to think about presenting straightforward interfaces to possibly complex and multi-step operations. 2021-01-06T14:07:51Z ralt: For (uid user) that's actually a pretty good idea 2021-01-06T14:08:29Z ralt: In my abstraction world, a file is a stream, and you can't setf a stream 2021-01-06T14:08:39Z Xach: and also that SETF doesn't have to mutate a binding or an in-memory thing 2021-01-06T14:09:38Z phoe: (setf pi 3.2d0) ;; for Lisp code running in Indiana 2021-01-06T14:09:57Z Xach: ralt: a disk is a two dimensional array of bits, 8 by 8,796,093,022,208! 2021-01-06T14:10:50Z phoe: ralt: (defclass file () ...) (defmethod contents ((file)) ...) (defmethod (setf contents) (new-value (file file)) ...) 2021-01-06T14:11:23Z phoe: in this world, a file is an instance, and you can call a generic function with it as an argument 2021-01-06T14:11:44Z ralt: Yes, sure. My point is just that typically, you don't fit all your disk in your memory, so it's easier to treat files as streams 2021-01-06T14:12:04Z phoe: why fit them in memory 2021-01-06T14:12:21Z phoe: or rather 2021-01-06T14:12:28Z phoe: why need to fit one kind of memory in another kind of memory 2021-01-06T14:12:34Z ralt: If you do a setf content, it means you have content in-memory 2021-01-06T14:12:37Z phoe: no 2021-01-06T14:12:46Z phoe: it means whatever #'(setf content) does under the hood 2021-01-06T14:13:04Z ralt: Of course, you don't _have to_ 2021-01-06T14:13:15Z phoe: that's encapsulation - you don't need to care whether the real stuff is in RAM, hard disk, over the network, or hand-calligraphied onto a piece of paper 2021-01-06T14:13:24Z ralt: Just like you don't have to have a disk bigger than your ram 2021-01-06T14:13:32Z ralt: I'm talking about the typical case, though 2021-01-06T14:13:55Z phoe: all you care is that #'CONTENTS returns it for you as a string and that #'(SETF CONTENTS), after accepting a string, modifies the state of this thing so that future calls to #'CONTENTS return the new string 2021-01-06T14:14:02Z phoe: s/all you care/all you need to care/ 2021-01-06T14:14:04Z ralt: You made me remember something fun 2021-01-06T14:14:25Z ralt: Encapsulation is great until reality comes down to punch you in the face 2021-01-06T14:15:11Z phoe: I'm not saying that encapsulating all the things is a good idea 2021-01-06T14:15:26Z phoe: I'm just saying that SETF is not required to operate solely on RAM contents 2021-01-06T14:15:41Z phoe: or even solely on the contents of your machine's volatile and non-volatile memory 2021-01-06T14:15:46Z dabr joined #lisp 2021-01-06T14:17:25Z phoe: I imagine that you could (setf (system::cpu-fan-speed 0) 300) to set the fan speed of the 0th fan of your machine to 300 RPM 2021-01-06T14:17:25Z Nilby: a lot of setf'able OS things require root, I haven't fixed the forker yet, and I don't even know how to do it on windows. 2021-01-06T14:18:18Z aartaka joined #lisp 2021-01-06T14:18:22Z phoe: all you need to do on Windows is to exploit your way into kernelspace and then use it to kexec() Linux 2021-01-06T14:18:30Z phoe hides 2021-01-06T14:20:31Z Nilby: if wsl was default installed, i'd consider it 2021-01-06T14:21:06Z dim: it's available by default in the windows store on all windows 10 devices, I think, right? 2021-01-06T14:22:13Z waleee-cl joined #lisp 2021-01-06T14:28:58Z thecoffemaker quit (Ping timeout: 260 seconds) 2021-01-06T14:32:57Z thecoffemaker joined #lisp 2021-01-06T14:34:54Z quazimodo quit (Read error: Connection reset by peer) 2021-01-06T14:35:44Z rogersm quit (Remote host closed the connection) 2021-01-06T14:36:01Z rogersm joined #lisp 2021-01-06T14:36:30Z rogersm quit (Remote host closed the connection) 2021-01-06T14:41:28Z fitzsim joined #lisp 2021-01-06T14:54:12Z sunset_NOVA joined #lisp 2021-01-06T14:58:39Z cosimone joined #lisp 2021-01-06T14:59:03Z pfdietz joined #lisp 2021-01-06T15:02:02Z pfdietz quit (Remote host closed the connection) 2021-01-06T15:02:20Z nicktick joined #lisp 2021-01-06T15:06:47Z pfdietz joined #lisp 2021-01-06T15:22:50Z luni joined #lisp 2021-01-06T15:26:09Z luckless quit (Quit: luckless) 2021-01-06T15:26:36Z luckless joined #lisp 2021-01-06T15:29:59Z andreyorst_ joined #lisp 2021-01-06T15:34:46Z phoe6 quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-01-06T15:36:55Z luckless quit (Quit: luckless) 2021-01-06T15:37:11Z luckless joined #lisp 2021-01-06T15:37:23Z rogersm joined #lisp 2021-01-06T15:41:54Z sjl joined #lisp 2021-01-06T15:42:18Z rogersm quit (Ping timeout: 256 seconds) 2021-01-06T15:42:47Z akoana left #lisp 2021-01-06T15:46:25Z andreyorst_ quit (Ping timeout: 264 seconds) 2021-01-06T15:49:35Z alexcutie quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-06T15:54:59Z dabr quit (Quit: WeeChat 3.0) 2021-01-06T15:56:26Z makomo quit (Changing host) 2021-01-06T15:56:26Z makomo joined #lisp 2021-01-06T15:57:29Z makomo quit (Quit: WeeChat 2.9) 2021-01-06T15:57:50Z makomo joined #lisp 2021-01-06T15:58:18Z miasuji joined #lisp 2021-01-06T15:59:28Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-06T16:00:34Z makomo quit (Client Quit) 2021-01-06T16:04:17Z makomo joined #lisp 2021-01-06T16:05:03Z matryoshka joined #lisp 2021-01-06T16:07:33Z andreyorst_ joined #lisp 2021-01-06T16:13:42Z ex_nihilo_ quit (Ping timeout: 260 seconds) 2021-01-06T16:19:16Z _jrjsmrtn joined #lisp 2021-01-06T16:20:02Z __jrjsmrtn__ quit (Ping timeout: 265 seconds) 2021-01-06T16:27:20Z ex_nihilo joined #lisp 2021-01-06T16:29:52Z gko_ quit (Ping timeout: 246 seconds) 2021-01-06T16:33:07Z notzmv joined #lisp 2021-01-06T16:38:17Z rogersm joined #lisp 2021-01-06T16:42:56Z rogersm quit (Ping timeout: 256 seconds) 2021-01-06T16:47:13Z mrios22 quit (Ping timeout: 260 seconds) 2021-01-06T16:49:06Z rumbler31_ quit (Ping timeout: 256 seconds) 2021-01-06T16:50:07Z notzmv quit (Remote host closed the connection) 2021-01-06T16:54:53Z notzmv joined #lisp 2021-01-06T16:58:19Z [d] joined #lisp 2021-01-06T16:59:41Z hnOsmium0001 joined #lisp 2021-01-06T17:02:03Z chrpape joined #lisp 2021-01-06T17:02:59Z VincentVega quit (Ping timeout: 245 seconds) 2021-01-06T17:09:31Z ym joined #lisp 2021-01-06T17:13:21Z stzsch quit (Read error: Connection reset by peer) 2021-01-06T17:16:08Z rumbler31_ joined #lisp 2021-01-06T17:17:41Z stzsch joined #lisp 2021-01-06T17:18:53Z contrapunctus left #lisp 2021-01-06T17:20:52Z contrapunctus joined #lisp 2021-01-06T17:21:43Z sunset_NOVA quit (Quit: Leaving) 2021-01-06T17:25:03Z dyelar quit (Quit: Leaving.) 2021-01-06T17:26:07Z j0nd0e joined #lisp 2021-01-06T17:26:10Z varjag quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-06T17:29:01Z failproofshark joined #lisp 2021-01-06T17:29:18Z nij joined #lisp 2021-01-06T17:31:30Z failproofshark: i apologize if this has been asked before but is there an html parsing library for CL similar to python's beautiful soup? 2021-01-06T17:32:01Z failproofshark: i asked in #lispweb before but i'm not sure if it was answered as I had to log out before a reply was given (and I don't know if that channel has readable logs) 2021-01-06T17:34:32Z ecm joined #lisp 2021-01-06T17:34:58Z phoe: failproofshark: XML parsers exist 2021-01-06T17:35:02Z phoe: I use Plump 2021-01-06T17:35:25Z ecm: failproofshark: you can use any xml parser for html parsing 2021-01-06T17:35:32Z phoe: it seems to do what you want... you can then use e.g. lquery to inspect the resulting DOM 2021-01-06T17:35:58Z ecm: plump is nice, haven't looked into any other ones 2021-01-06T17:37:33Z kaftejiman joined #lisp 2021-01-06T17:40:13Z nij left #lisp 2021-01-06T17:40:34Z luni quit (Quit: Connection closed) 2021-01-06T17:42:24Z travv0: I’ll “third” the plump recommendation 2021-01-06T17:48:02Z ecm quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-06T17:48:24Z liberliver quit (Quit: liberliver) 2021-01-06T17:50:52Z vaporatorius__ quit (Read error: Connection reset by peer) 2021-01-06T17:52:22Z notzmv quit (Remote host closed the connection) 2021-01-06T17:52:37Z vaporatorius__ joined #lisp 2021-01-06T17:52:40Z notzmv joined #lisp 2021-01-06T17:53:52Z [d] quit (Ping timeout: 246 seconds) 2021-01-06T17:58:37Z anticrisis joined #lisp 2021-01-06T17:58:58Z j0nd0e quit (Ping timeout: 260 seconds) 2021-01-06T17:59:48Z Jesin joined #lisp 2021-01-06T18:03:45Z makomo quit (Quit: WeeChat 2.9) 2021-01-06T18:05:13Z j0nd0e joined #lisp 2021-01-06T18:05:25Z andreyorst_ quit (Ping timeout: 246 seconds) 2021-01-06T18:06:35Z jasom: failproofshark I don't know if it has readable logs either, but I said "plump" in that channel after you logged out just in case 2021-01-06T18:10:14Z kaftejiman_ joined #lisp 2021-01-06T18:12:16Z kaftejiman quit (Ping timeout: 240 seconds) 2021-01-06T18:23:37Z dbotton joined #lisp 2021-01-06T18:24:14Z surabax_ joined #lisp 2021-01-06T18:25:50Z rpg joined #lisp 2021-01-06T18:28:07Z surabax quit (Ping timeout: 260 seconds) 2021-01-06T18:28:23Z nij` joined #lisp 2021-01-06T18:29:27Z nij`: I try to customize stumpwm, but get stuck while I'm importing packages into my config. The error is given here.. https://bpa.st/BXOA 2021-01-06T18:29:28Z v88m quit (Read error: Connection reset by peer) 2021-01-06T18:30:29Z phoe: well, the error is self-explaining 2021-01-06T18:30:43Z phoe: something is trying to load an ASD file and that file doesn't exist 2021-01-06T18:30:46Z nij`: Yeah, but when I interact with it from SLIME, it doesn't happen @@ 2021-01-06T18:31:26Z Nilby quit (Read error: Connection reset by peer) 2021-01-06T18:31:54Z phoe: hmmmm 2021-01-06T18:32:12Z phoe: (asdf:system-source-directory :cl-unicode) 2021-01-06T18:32:15Z phoe: what does it say in slime? 2021-01-06T18:33:26Z nij`: #P"/home/nij/.+PLUGS/Local/.quicklisp/dists/quicklisp/software/cl-unicode-20190521-git/" 2021-01-06T18:34:59Z v88m joined #lisp 2021-01-06T18:35:05Z phoe: so it correctly resolves the system location 2021-01-06T18:35:13Z phoe: whereas stumpwm doesn't 2021-01-06T18:35:23Z phoe: I wonder why 2021-01-06T18:35:38Z pankajsg quit (Ping timeout: 256 seconds) 2021-01-06T18:37:00Z skapata joined #lisp 2021-01-06T18:37:19Z nij`: cl-launch.asd is the only file presented in /usr/share/common-lisp/systems 2021-01-06T18:39:03Z rogersm joined #lisp 2021-01-06T18:39:04Z v88m quit (Read error: Connection reset by peer) 2021-01-06T18:39:36Z phoe: likely your stumpwm doesn't have the Quicklisp ASDF directories configured 2021-01-06T18:39:45Z phoe: don't know how exactly to solve it 2021-01-06T18:42:44Z v88m joined #lisp 2021-01-06T18:42:45Z abhixec joined #lisp 2021-01-06T18:43:13Z rogersm quit (Ping timeout: 246 seconds) 2021-01-06T18:44:38Z nij` is now known as nij 2021-01-06T18:48:35Z ex_nihilo quit (Quit: Leaving) 2021-01-06T18:48:58Z kaftejiman_ quit (Remote host closed the connection) 2021-01-06T18:51:42Z kaftejiman joined #lisp 2021-01-06T18:53:08Z travv0: nij if I remember correctly, I had that same error way back when I first set up stumpwm. when I’m back at a computer I’ll check my config to see if I can tell what I did to get it working 2021-01-06T18:53:42Z nij: travv0: phoe: thank you folks :D 2021-01-06T18:55:55Z Lord_of_Life_ joined #lisp 2021-01-06T18:57:53Z Lord_of_Life quit (Ping timeout: 260 seconds) 2021-01-06T18:57:54Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-06T18:58:25Z scymtym quit (Ping timeout: 264 seconds) 2021-01-06T19:02:05Z jasom: Someone on reddit asked about mixing C++ and Lisp, with the example of doing a GUI in C++. I couldn't quickly find a simple example, so I wrote one: https://git.sr.ht/~jasom/qt-lisp-gui/tree 2021-01-06T19:02:12Z nij: I used pacman to get stumpwm, and this seems to be why. 2021-01-06T19:02:34Z nij: I will remove it and compile from scratch. 2021-01-06T19:02:48Z rogersm joined #lisp 2021-01-06T19:02:56Z jasom: nij: no need to do that, you can just load setup.lisp in your stumpwm config, right? 2021-01-06T19:03:05Z nij: Yeah I think so @@ 2021-01-06T19:03:16Z j0nd0e quit (Ping timeout: 240 seconds) 2021-01-06T19:03:23Z mindCrime joined #lisp 2021-01-06T19:03:57Z nij: lemme try 2021-01-06T19:05:37Z v88m quit (Ping timeout: 264 seconds) 2021-01-06T19:06:30Z nij: jasom: do you mean (load "/home/nij/.quicklisp/setup.lisp")? (ps my quicklisp root is $HOME/.quicklisp) 2021-01-06T19:08:24Z jasom: nij: yup 2021-01-06T19:08:37Z nij: I did that @@ but it doesnt' work 2021-01-06T19:12:14Z nij: I think the way that will resolve everything is to understand how sbcl and quicklisp really work. 2021-01-06T19:12:27Z nij: Any account with details? 2021-01-06T19:12:57Z Fade: in your environment, what is the value of $SBCL_HOME ? 2021-01-06T19:12:58Z nij: I have been relying on my package manager too much, and it's only going to kill more of my time. I want to start learning from scratch. 2021-01-06T19:13:21Z nij: Fade: It outputs nothing. 2021-01-06T19:13:31Z nij: $ echo $SBCL_HOME => "" 2021-01-06T19:13:49Z Fade: do you have an .sbclrc? 2021-01-06T19:14:20Z jasom: oh, I just looked at the error message; you'll need to reinitialize the ASDF package registry probably 2021-01-06T19:14:42Z jasom: nij: https://common-lisp.net/project/asdf/asdf.html#Configuring-ASDF-to-find-your-systems 2021-01-06T19:14:44Z nij: Yep! file content is here: https://bpa.st/ZNZA 2021-01-06T19:14:45Z Fade: anyhow, we discussed this in #stumpwm 2021-01-06T19:15:53Z nij: OK. It seems I need to read the manuals of ASDF, quicklisp, and sbcl. 2021-01-06T19:16:24Z Fade: well, your stump was built in the system directories, and it's using a lot of pathing from that environment. 2021-01-06T19:16:34Z nij: Yeah. It's all messed up. 2021-01-06T19:16:36Z Fade: I've never tried doing it that way. 2021-01-06T19:16:44Z nij: Nope. I shouldn't have. 2021-01-06T19:16:48Z sunset_NOVA joined #lisp 2021-01-06T19:16:59Z Fade: but your quicklisp setup is also non-standard, so you have many moving pieces at odds with each other. 2021-01-06T19:17:14Z nij: Yeah. I should move my stuff out from $HOME. 2021-01-06T19:17:26Z Fade: well... 2021-01-06T19:17:27Z nij: $HOME is only for programs' configs. 2021-01-06T19:17:36Z nij: I just wanted it to look clean @@ 2021-01-06T19:17:43Z Fade: i dunno if that's the takeaway I'd take, but it's your time and system. :) 2021-01-06T19:17:47Z Fade: bbl 2021-01-06T19:17:57Z nij: :D Thanks Fade 2021-01-06T19:20:55Z sauvin quit (Read error: Connection reset by peer) 2021-01-06T19:23:22Z oni-on-ion joined #lisp 2021-01-06T19:29:25Z mindCrime quit (Ping timeout: 246 seconds) 2021-01-06T19:30:22Z scymtym joined #lisp 2021-01-06T19:38:32Z miasuji quit (Ping timeout: 256 seconds) 2021-01-06T19:39:18Z v88m joined #lisp 2021-01-06T19:41:20Z v88m quit (Read error: Connection reset by peer) 2021-01-06T19:43:35Z mindCrime joined #lisp 2021-01-06T19:45:57Z nij quit (Remote host closed the connection) 2021-01-06T19:46:41Z v88m joined #lisp 2021-01-06T19:48:05Z jeosol quit (Remote host closed the connection) 2021-01-06T19:50:34Z luckless quit (Remote host closed the connection) 2021-01-06T19:51:14Z aartaka quit (Read error: Connection reset by peer) 2021-01-06T19:51:25Z luckless joined #lisp 2021-01-06T19:54:35Z surabax_ is now known as surabax 2021-01-06T20:05:51Z sxmx quit (Remote host closed the connection) 2021-01-06T20:05:54Z aartaka joined #lisp 2021-01-06T20:06:50Z sxmx joined #lisp 2021-01-06T20:09:56Z v_m_v joined #lisp 2021-01-06T20:10:11Z andreyorst_ joined #lisp 2021-01-06T20:11:37Z pve quit (Quit: leaving) 2021-01-06T20:12:45Z luni joined #lisp 2021-01-06T20:13:46Z rogersm quit (Quit: Leaving...) 2021-01-06T20:17:26Z aartaka quit (Read error: Connection reset by peer) 2021-01-06T20:18:14Z failproofshark: thanks ill try out plump! 2021-01-06T20:18:30Z rumbler31 joined #lisp 2021-01-06T20:19:01Z aartaka joined #lisp 2021-01-06T20:23:27Z failproofshark quit (Quit: Lost terminal) 2021-01-06T20:23:33Z rumbler31 quit (Remote host closed the connection) 2021-01-06T20:26:51Z andreyorst quit (Remote host closed the connection) 2021-01-06T20:26:52Z andreyorst_ is now known as andreyorst 2021-01-06T20:28:38Z Steeve joined #lisp 2021-01-06T20:39:48Z rogersm joined #lisp 2021-01-06T20:39:53Z imode joined #lisp 2021-01-06T20:43:24Z Duuqnd joined #lisp 2021-01-06T20:44:38Z rogersm quit (Ping timeout: 260 seconds) 2021-01-06T20:45:24Z frgo joined #lisp 2021-01-06T20:46:55Z FennecCode joined #lisp 2021-01-06T20:47:10Z heisig quit (Quit: Leaving) 2021-01-06T20:49:01Z narimiran quit (Quit: leaving) 2021-01-06T20:51:08Z aorst joined #lisp 2021-01-06T20:53:23Z andreyorst quit (Ping timeout: 260 seconds) 2021-01-06T20:58:35Z jw4 quit (Read error: Connection reset by peer) 2021-01-06T20:59:19Z FennecCode quit (Quit: IRCNow and Forever!) 2021-01-06T21:00:45Z jw4 joined #lisp 2021-01-06T21:12:19Z v_m_v quit (Remote host closed the connection) 2021-01-06T21:12:25Z dilated_dinosaur quit (Ping timeout: 240 seconds) 2021-01-06T21:12:48Z rumbler31 joined #lisp 2021-01-06T21:15:26Z dilated_dinosaur joined #lisp 2021-01-06T21:15:52Z frgo quit 2021-01-06T21:16:52Z rumbler31 quit (Ping timeout: 246 seconds) 2021-01-06T21:20:23Z miasuji joined #lisp 2021-01-06T21:20:33Z etimmons: ralt: I have a second version of the patch that requires only a relink of the runtime to make it static and the core can be shared between the dynamic and static runtimes 2021-01-06T21:20:56Z etimmons: I'll post it once I test it a bit more. But it's passing smoke tests at the moment 2021-01-06T21:20:59Z ralt: wooo 2021-01-06T21:21:03Z ralt: amazing 2021-01-06T21:26:07Z bilegeek joined #lisp 2021-01-06T21:34:30Z sunset_NOVA quit (Quit: Leaving) 2021-01-06T21:39:41Z FennecCode joined #lisp 2021-01-06T21:43:53Z amerigo joined #lisp 2021-01-06T21:45:43Z Cesdo joined #lisp 2021-01-06T21:46:00Z Cesdo: Hi all 2021-01-06T21:46:27Z euandreh joined #lisp 2021-01-06T21:46:31Z wsinatra quit (Quit: WeeChat 3.0) 2021-01-06T21:47:42Z amb007 quit (Read error: Connection reset by peer) 2021-01-06T21:48:00Z amb007 joined #lisp 2021-01-06T21:48:15Z frodef: hello 2021-01-06T21:50:14Z Cesdo: Merry Christmas to everyone! 2021-01-06T21:51:02Z frodef: Cesdo: a bit early, isn't it? :) 2021-01-06T21:51:39Z Cesdo: No, it's 12:51 am already 2021-01-06T21:52:05Z Cesdo: 7 January starts) 2021-01-06T21:52:18Z frodef: early in the year..? 2021-01-06T21:55:42Z lotuseater: oh maybe it's celebrated there on 7th January 2021-01-06T21:55:45Z Cesdo: frodef: I don't know where are you from, but I'm from Russia. We have Russian Orthodox Church, and we celebrate Christmas every 7 January) 2021-01-06T21:56:11Z Cesdo: lotuseater: yeah! 2021-01-06T21:56:13Z fe[nl]ix: oh yes, the Eastern Christmas 2021-01-06T21:56:19Z lotuseater: then Merry Christmas to you too Cesdo :) 2021-01-06T21:56:41Z karlosz joined #lisp 2021-01-06T21:56:44Z Cesdo: lotuseater: thanks)) 2021-01-06T21:57:19Z lotuseater: i had something like that in mind, here in Germany we call it "Heilige drei Könige", the day when the wise men arrived at Bethlehem 2021-01-06T21:58:25Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-06T21:58:25Z amb007 quit (Read error: Connection reset by peer) 2021-01-06T21:58:41Z frodef: Cesdo: I see, merry christmas then! 2021-01-06T21:59:04Z aindilis` joined #lisp 2021-01-06T21:59:18Z aindilis quit (Ping timeout: 260 seconds) 2021-01-06T21:59:19Z amb007 joined #lisp 2021-01-06T21:59:20Z Cesdo: lotuseater: oh, it's interesting)) 2021-01-06T21:59:26Z moon-child: happy boxing day y'all! 2021-01-06T21:59:39Z frodef: Cesdo: here we wrapped up christmas about two weeks ago :) 2021-01-06T21:59:45Z Cesdo: frodef: thanks) 2021-01-06T22:01:27Z Cesdo: frodef: where are you from? 2021-01-06T22:02:24Z Cesdo: moon-child: Is English football paid to watch in your country? 2021-01-06T22:02:49Z moon-child: I have no idea 2021-01-06T22:03:24Z frodef: Cesdo: norway 2021-01-06T22:05:21Z Cesdo: moon-child: Ehm... Boxing-day is in English Premier League, isn't it? 2021-01-06T22:05:24Z jasom: frodef: Last day of christmas here for Lutherans; Latin-rite Catholics get 3 more days 2021-01-06T22:05:53Z moon-child: Cesdo: idk in england but in canada boxing day is just the day after christmas 2021-01-06T22:06:38Z Cesdo: frodef: Oh, Linus was born not far from your country)) 2021-01-06T22:07:41Z Cesdo: moon-child: oh, it's interesting. Why it's called boxing day?? 2021-01-06T22:08:20Z Cesdo: moon-child: I thought, you're football fan)) 2021-01-06T22:08:41Z jasom: Cesdo: OED says it's because servants would receive a Christmas box. 2021-01-06T22:08:53Z frodef: Cesdo: closer to yours, actually.. 2021-01-06T22:09:16Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-06T22:10:14Z lotuseater: so now we had just two of some slightly offtopic stuff: religion and sports :) 2021-01-06T22:10:52Z lotuseater: now politics and it's complete. but some quote states "Common Lisp is not art, it's politics." 2021-01-06T22:11:45Z ralt: I mean 2021-01-06T22:12:02Z ralt: just open any news channel if you want some politics 2021-01-06T22:12:03Z luni quit (Quit: Connection closed) 2021-01-06T22:12:20Z ralt: you know, with people breaking into the Capitol in Washington, DC 2021-01-06T22:12:45Z fiddlerwoaroof: Can someone help me with some Javascript? 2021-01-06T22:12:48Z fiddlerwoaroof: :) 2021-01-06T22:12:53Z lotuseater: no I'm not much into it, too wibbli-wobbly-tiny-winy 2021-01-06T22:13:01Z fe[nl]ix: all off-topic :) 2021-01-06T22:13:09Z lotuseater: fiddlerwoaroof: same with JS :D 2021-01-06T22:13:14Z fe[nl]ix: let's return to Lispy things 2021-01-06T22:15:09Z miasuji quit (Read error: Connection reset by peer) 2021-01-06T22:16:03Z miasuji joined #lisp 2021-01-06T22:16:12Z scymtym quit (Ping timeout: 260 seconds) 2021-01-06T22:17:37Z luis quit (Ping timeout: 264 seconds) 2021-01-06T22:17:51Z luis joined #lisp 2021-01-06T22:24:19Z leilamag joined #lisp 2021-01-06T22:27:28Z miasuji quit (Remote host closed the connection) 2021-01-06T22:27:41Z miasuji joined #lisp 2021-01-06T22:30:54Z dbotton joined #lisp 2021-01-06T22:33:25Z vutral_ joined #lisp 2021-01-06T22:37:29Z _whitelogger quit (Remote host closed the connection) 2021-01-06T22:37:53Z andreyorst joined #lisp 2021-01-06T22:39:02Z andreyor1 joined #lisp 2021-01-06T22:39:05Z aorst quit (Ping timeout: 240 seconds) 2021-01-06T22:39:39Z _whitelogger joined #lisp 2021-01-06T22:40:36Z rogersm joined #lisp 2021-01-06T22:42:28Z andreyorst quit (Ping timeout: 260 seconds) 2021-01-06T22:44:55Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-06T22:45:12Z rogersm quit (Ping timeout: 256 seconds) 2021-01-06T22:47:33Z miasuji quit (Remote host closed the connection) 2021-01-06T22:47:46Z miasuji joined #lisp 2021-01-06T22:50:01Z rumbler31_ quit (Ping timeout: 264 seconds) 2021-01-06T23:00:17Z random-nick quit (Ping timeout: 260 seconds) 2021-01-06T23:08:37Z sjl quit (Ping timeout: 264 seconds) 2021-01-06T23:09:33Z aindilis` quit (Remote host closed the connection) 2021-01-06T23:11:11Z aindilis joined #lisp 2021-01-06T23:13:49Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-06T23:14:45Z matryoshka joined #lisp 2021-01-06T23:15:01Z miasuji quit (Remote host closed the connection) 2021-01-06T23:15:29Z miasuji joined #lisp 2021-01-06T23:16:06Z matryoshka quit (Client Quit) 2021-01-06T23:16:33Z rumbler31_ joined #lisp 2021-01-06T23:19:24Z save-lisp-or-die left #lisp 2021-01-06T23:25:49Z matryoshka joined #lisp 2021-01-06T23:28:28Z White_Flame: beach: interesting paper. My musing along such lines in the past was to have multiple entry points into the function, but that explodes out in too many combinations to optimize for 2021-01-06T23:29:20Z White_Flame: customizing it per use is probably much more practical. It could be advantageous for cache purposes to have multiple call sites share the same thunk, though that would make it a call instead of jump 2021-01-06T23:30:38Z miasuji quit (Ping timeout: 264 seconds) 2021-01-06T23:32:14Z White_Flame: btw, I thought the concept itself was very easily presented in the paper, but again that could be because I've spent time thinking about this in the past as well 2021-01-06T23:34:55Z phoe: I know that beach was exploring the concept of multiple entry points 2021-01-06T23:37:11Z White_Flame: I also enjoyed the "We would like to thank." Nice simple blanket statement ;) 2021-01-06T23:37:18Z phoe: :D 2021-01-06T23:37:26Z phoe: I giggled at that, too 2021-01-06T23:41:35Z rogersm joined #lisp 2021-01-06T23:46:10Z rogersm quit (Ping timeout: 256 seconds) 2021-01-06T23:48:16Z Steeve quit (Quit: end) 2021-01-06T23:49:07Z frodef quit (Ping timeout: 246 seconds) 2021-01-06T23:50:52Z kaftejiman quit (Ping timeout: 246 seconds) 2021-01-06T23:55:32Z igemnace joined #lisp 2021-01-06T23:55:36Z Xach left #lisp 2021-01-06T23:57:40Z scymtym joined #lisp 2021-01-07T00:00:06Z grobe0ba has set away! (auto away after idling [15 min]) [Log:ON] .gz. 2021-01-07T00:00:13Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-07T00:01:09Z cosimone quit (Quit: cosimone) 2021-01-07T00:03:57Z quazimodo joined #lisp 2021-01-07T00:07:55Z galex-713 joined #lisp 2021-01-07T00:08:11Z leilamag quit (Remote host closed the connection) 2021-01-07T00:09:53Z trocado joined #lisp 2021-01-07T00:10:28Z andreyor1 quit (Quit: WeeChat 3.0) 2021-01-07T00:10:58Z pfdietz quit (Remote host closed the connection) 2021-01-07T00:13:22Z rgherdt quit (Ping timeout: 256 seconds) 2021-01-07T00:16:30Z quazimodo quit (Remote host closed the connection) 2021-01-07T00:18:19Z rumbler31 joined #lisp 2021-01-07T00:18:42Z quazimodo joined #lisp 2021-01-07T00:23:01Z rumbler31 quit (Ping timeout: 264 seconds) 2021-01-07T00:26:24Z abhixec quit (Read error: Connection reset by peer) 2021-01-07T00:30:51Z abhixec joined #lisp 2021-01-07T00:31:14Z Duuqnd quit (Remote host closed the connection) 2021-01-07T00:33:40Z quazimodo quit (Remote host closed the connection) 2021-01-07T00:35:01Z quazimodo joined #lisp 2021-01-07T00:39:38Z Cesdo quit (Read error: Connection reset by peer) 2021-01-07T00:45:53Z dbotton joined #lisp 2021-01-07T00:46:31Z akoana joined #lisp 2021-01-07T00:51:24Z perrier-jouet quit (Quit: WeeChat 3.0) 2021-01-07T01:06:42Z dyelar joined #lisp 2021-01-07T01:11:54Z orivej quit (Ping timeout: 272 seconds) 2021-01-07T01:20:54Z dyelar quit (Quit: Leaving.) 2021-01-07T01:21:02Z nicktick quit (Ping timeout: 256 seconds) 2021-01-07T01:28:05Z jeosol joined #lisp 2021-01-07T01:29:13Z ralt quit (Quit: Connection closed for inactivity) 2021-01-07T01:42:21Z rogersm joined #lisp 2021-01-07T01:44:16Z gaqwas quit (Ping timeout: 246 seconds) 2021-01-07T01:46:56Z rogersm quit (Ping timeout: 256 seconds) 2021-01-07T01:49:25Z v88m quit (Ping timeout: 264 seconds) 2021-01-07T02:01:11Z surabax quit (Quit: Leaving) 2021-01-07T02:15:33Z v88m joined #lisp 2021-01-07T02:17:52Z [d] joined #lisp 2021-01-07T02:24:13Z torbo joined #lisp 2021-01-07T02:24:42Z gaqwas joined #lisp 2021-01-07T02:24:42Z gaqwas quit (Changing host) 2021-01-07T02:24:42Z gaqwas joined #lisp 2021-01-07T02:29:22Z semz quit (Ping timeout: 260 seconds) 2021-01-07T02:32:20Z gaqwas quit (Ping timeout: 272 seconds) 2021-01-07T02:34:50Z mason left #lisp 2021-01-07T02:34:52Z torbo quit (Ping timeout: 272 seconds) 2021-01-07T02:38:56Z contrapunctus left #lisp 2021-01-07T02:39:13Z abhixec quit (Ping timeout: 246 seconds) 2021-01-07T02:39:40Z contrapunctus joined #lisp 2021-01-07T02:42:03Z contrapunctus left #lisp 2021-01-07T02:42:37Z semz joined #lisp 2021-01-07T02:42:49Z contrapunctus joined #lisp 2021-01-07T02:43:14Z rogersm joined #lisp 2021-01-07T02:48:13Z rogersm quit (Ping timeout: 264 seconds) 2021-01-07T02:48:13Z contrapunctus left #lisp 2021-01-07T02:48:39Z quazimodo quit (Remote host closed the connection) 2021-01-07T02:51:11Z abhixec joined #lisp 2021-01-07T02:54:44Z contrapunctus joined #lisp 2021-01-07T02:58:08Z contrapunctus left #lisp 2021-01-07T02:58:34Z perrier-jouet joined #lisp 2021-01-07T02:58:52Z contrapunctus joined #lisp 2021-01-07T02:59:26Z contrapunctus left #lisp 2021-01-07T03:01:28Z contrapunctus joined #lisp 2021-01-07T03:03:01Z amerigo quit (Quit: Connection closed for inactivity) 2021-01-07T03:03:39Z contrapunctus left #lisp 2021-01-07T03:04:55Z vutral_ quit (Quit: Connection closed for inactivity) 2021-01-07T03:05:29Z contrapunctus joined #lisp 2021-01-07T03:09:03Z cantstanya quit (Ping timeout: 240 seconds) 2021-01-07T03:10:00Z contrapunctus left #lisp 2021-01-07T03:11:21Z cantstanya joined #lisp 2021-01-07T03:11:59Z contrapunctus joined #lisp 2021-01-07T03:13:36Z karlosz quit (Quit: karlosz) 2021-01-07T03:18:48Z contrapunctus left #lisp 2021-01-07T03:18:53Z dbotton quit (Quit: Leaving) 2021-01-07T03:22:53Z rpg quit (Ping timeout: 272 seconds) 2021-01-07T03:22:55Z contrapunctus joined #lisp 2021-01-07T03:26:52Z abhixec quit (Quit: leaving) 2021-01-07T03:31:35Z Stanley00 joined #lisp 2021-01-07T03:59:32Z wxie joined #lisp 2021-01-07T04:01:46Z contrapunctus left #lisp 2021-01-07T04:02:30Z contrapunctus joined #lisp 2021-01-07T04:03:05Z Alfr joined #lisp 2021-01-07T04:03:11Z beach: Good morning everyone! 2021-01-07T04:05:12Z Alfr_ quit (Ping timeout: 256 seconds) 2021-01-07T04:16:40Z beach: White_Flame: Thanks. It is probably not worthwhile to attempt to share snippets. I mean, the way things work now is that all call sites essentially do the same thing with duplicated code. 2021-01-07T04:17:34Z sword865 joined #lisp 2021-01-07T04:23:50Z aartaka quit (Ping timeout: 256 seconds) 2021-01-07T04:26:10Z mrios22 joined #lisp 2021-01-07T04:32:05Z contrapunctus left #lisp 2021-01-07T04:32:21Z contrapunctus joined #lisp 2021-01-07T04:33:56Z mtd_ joined #lisp 2021-01-07T04:34:00Z mindCrime joined #lisp 2021-01-07T04:36:45Z jprajzne quit (Quit: Leaving.) 2021-01-07T04:37:48Z contrapunctus left #lisp 2021-01-07T04:39:07Z contrapunctus joined #lisp 2021-01-07T04:40:54Z contrapunctus left #lisp 2021-01-07T04:41:06Z contrapunctus joined #lisp 2021-01-07T04:43:59Z rogersm joined #lisp 2021-01-07T04:45:56Z Bike quit (Quit: Lost terminal) 2021-01-07T04:48:49Z rogersm quit (Ping timeout: 264 seconds) 2021-01-07T05:07:25Z wxie quit (Ping timeout: 240 seconds) 2021-01-07T05:11:25Z contrapunctus left #lisp 2021-01-07T05:11:36Z contrapunctus joined #lisp 2021-01-07T05:20:53Z torbo joined #lisp 2021-01-07T05:20:58Z torbo quit (Remote host closed the connection) 2021-01-07T05:38:51Z contrapunctus left #lisp 2021-01-07T05:39:14Z contrapunctus joined #lisp 2021-01-07T05:40:47Z wxie joined #lisp 2021-01-07T05:44:55Z rogersm joined #lisp 2021-01-07T05:47:44Z pankajsg joined #lisp 2021-01-07T05:48:01Z contrapunctus left #lisp 2021-01-07T05:48:13Z contrapunctus joined #lisp 2021-01-07T05:49:24Z rogersm quit (Ping timeout: 256 seconds) 2021-01-07T05:59:19Z contrapunctus left #lisp 2021-01-07T05:59:38Z contrapunctus joined #lisp 2021-01-07T06:08:20Z abhixec joined #lisp 2021-01-07T06:15:14Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-07T06:15:38Z jrm quit (Read error: Connection reset by peer) 2021-01-07T06:15:44Z jrm2 joined #lisp 2021-01-07T06:16:21Z jrm2 is now known as jrm 2021-01-07T06:21:57Z zaquest quit (Quit: Leaving) 2021-01-07T06:27:02Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-07T06:32:24Z oni-on-ion quit (Quit: Quit) 2021-01-07T06:34:52Z mindCrime joined #lisp 2021-01-07T06:42:50Z sauvin joined #lisp 2021-01-07T06:45:49Z rogersm joined #lisp 2021-01-07T06:46:34Z zaquest joined #lisp 2021-01-07T06:50:00Z akoana quit (Quit: leaving) 2021-01-07T06:50:11Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-07T06:50:37Z rogersm quit (Ping timeout: 264 seconds) 2021-01-07T06:56:36Z stargazesparkle joined #lisp 2021-01-07T06:57:03Z stargazesparkle: Hello there 2021-01-07T06:59:02Z jprajzne joined #lisp 2021-01-07T07:01:05Z beach: Hello stargazesparkle. 2021-01-07T07:01:41Z contrapunctus left #lisp 2021-01-07T07:01:49Z contrapunctus joined #lisp 2021-01-07T07:02:06Z beach: stargazesparkle: Are you new here? I don't recognize your nick. 2021-01-07T07:02:20Z contrapunctus: stargazesparkle: General Kenobi! 😏 2021-01-07T07:06:51Z stargazesparkle: I know it is late but if someone could look over the file that I am about to link to and clue me in as to why it throws the error I am going to link? 2021-01-07T07:06:51Z stargazesparkle: Code: https://github.com/StargazeSparkle/spellcheck/blob/main/src/mediawiki.lisp 2021-01-07T07:06:51Z stargazesparkle: Error: https://gist.github.com/StargazeSparkle/1b94a91ce6cfcd582650ce11e91a00e1 2021-01-07T07:07:20Z stargazesparkle: beach yes I am new both to CL and to IRC and I am not entirely sure that I know what it is that I am doing 2021-01-07T07:07:21Z beach: Late? 2021-01-07T07:07:31Z stargazesparkle: Sorry I live in the US 2021-01-07T07:09:26Z beach: That error seems to be specific to Drakma, so I guess you need someone who knows it. 2021-01-07T07:09:54Z beach: stargazesparkle: And your code has a very strange layout. 2021-01-07T07:10:18Z stargazesparkle: I don't know still how lisp actually... works 2021-01-07T07:10:36Z stargazesparkle: I am just trying to piece things together from bits and pieces that I can find online 2021-01-07T07:10:56Z beach: It might not be a good idea to learn it by using an advanced library, but that's just what I think. 2021-01-07T07:11:35Z stargazesparkle: Is http stuff considered advanced? 2021-01-07T07:12:19Z beach: Well, it's a third-party library that seems to be using standard classes and generic functions, so it is not newbie material exactly. 2021-01-07T07:13:06Z beach: So I see at least one problem... 2021-01-07T07:13:40Z beach: You probably expect USERNAME in ("lgname" . USERNAME) to be the value of the variable. 2021-01-07T07:13:57Z beach: But, you are quoting the entire list '(("action" ...)), so it is not evaluated. 2021-01-07T07:14:12Z beach: Therefore you have the symbol USERNAME rather than the value of it as a variable. 2021-01-07T07:14:36Z stargazesparkle: Ooooh 2021-01-07T07:14:51Z beach: So, yes, if you don't yet know how quoting works, this kind of application could be a tad too advanced. 2021-01-07T07:15:21Z stargazesparkle: I can use a quasiquote to remedy this can't I 2021-01-07T07:15:34Z beach: Probably, yes. 2021-01-07T07:15:44Z stargazesparkle: `(("action" . ,username)) 2021-01-07T07:16:04Z beach: Yeah, something like that. 2021-01-07T07:16:41Z stargazesparkle: Hmm... I just got a new laptop so I will have to figure out how to install lisp on it but as soon as I do I will give that a go and see if it works as I expect it to. 2021-01-07T07:16:51Z skapata quit (Remote host closed the connection) 2021-01-07T07:17:09Z beach: You also need to work on the layout of your code if you plan to expose it for feedback. 2021-01-07T07:17:34Z stargazesparkle: I don't know how to lay it out better 2021-01-07T07:17:51Z beach: You use Emacs+SLIME and it will do it for you. 2021-01-07T07:17:53Z stargazesparkle: I looked at some stuff on github to see the file structure and tried to copy it as much as I could 2021-01-07T07:18:22Z beach: Your indentation is not conventional, and you have strange spaces everywhere. 2021-01-07T07:18:50Z beach: And you have a useless PROGN in your DEFUN body. 2021-01-07T07:18:51Z stargazesparkle: Oh yeah I uh... tried to mimic how paredit handles clojure 2021-01-07T07:18:57Z beach: DEFUN has an implicit PROGN. 2021-01-07T07:19:03Z stargazesparkle: O 2021-01-07T07:19:53Z stargazesparkle: I don't use emacs I must confess 2021-01-07T07:20:00Z beach: I am sorry to hear that. 2021-01-07T07:20:01Z stargazesparkle: I have been using visual studio code 2021-01-07T07:20:13Z beach: Then you will probably hate your experience with Common Lisp. 2021-01-07T07:20:30Z stargazesparkle: Well it sort of has been... progressing 2021-01-07T07:20:40Z stargazesparkle: I am getting somewhere that is for sure 2021-01-07T07:21:24Z stargazesparkle: Emacs might be worth a second look 2021-01-07T07:21:26Z mfiano: Common Lisp is not a language you just type, though. 2021-01-07T07:21:29Z beach: So Common Lisp programmers rely on indentation to understand the structure of the code. If your indentation is off, a person reading your code can not easily understand the code, so I for one stop reading. 2021-01-07T07:21:42Z mfiano: It is designed for interactive use. And that interactive environment, is Emacs. 2021-01-07T07:21:53Z beach: stargazesparkle: You are essentially asking people to count parentheses in order to help you. 2021-01-07T07:22:17Z rumbler31_ quit (Ping timeout: 272 seconds) 2021-01-07T07:22:29Z stargazesparkle: I will try to get better at the formatting 2021-01-07T07:22:56Z stargazesparkle: I was laying it out in a way that I thought was clearer but I guess that is not the case 2021-01-07T07:23:12Z mfiano: That's not the way to get better at Common Lisp. 2021-01-07T07:23:46Z stargazesparkle: I am not entirely sure how to get better at common lisp truth be told 2021-01-07T07:24:10Z mfiano: Emacs does the formatting for you, and the formatting depends on the running state of the image. Emacs is your interaction with that image. 2021-01-07T07:24:13Z beach: stargazesparkle: Well, you see, if you do that manually and you make a single mistake, like the lack of one space before (mediawiki...., then the person reading your code can not trust the indentation. 2021-01-07T07:24:34Z rumbler31_ joined #lisp 2021-01-07T07:24:42Z ravndal quit (Quit: WeeChat 3.0) 2021-01-07T07:24:55Z frost-lab joined #lisp 2021-01-07T07:24:56Z mfiano: Common Lisp isn't just another language to type and send to a compiler. Emacs hooks into the language itself. 2021-01-07T07:25:12Z beach: stargazesparkle: That person will react by thinking that you probably did the layout manually, so in order to really understand the code, he or she would have to count parentheses, which is a lot of work, and very error prone. 2021-01-07T07:25:56Z stargazesparkle: So you basically have to use emacs 2021-01-07T07:26:46Z mfiano: Anywhere SLIME or Sly runs will have basic support, but for the full interactive experience, SLIME or Sly for Emacs is the only way to go 2021-01-07T07:26:50Z ravndal joined #lisp 2021-01-07T07:27:31Z mfiano: There is just no other way. CL is a very different language 2021-01-07T07:27:38Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-07T07:28:41Z ex_nihilo joined #lisp 2021-01-07T07:30:43Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-07T07:30:57Z stargazesparkle: How is spacemacs? 2021-01-07T07:31:18Z stargazesparkle: Can I get that and configure it for common lisp? 2021-01-07T07:31:21Z ex_nihilo quit (Remote host closed the connection) 2021-01-07T07:31:27Z mfiano: THat is just Emacs, so why not 2021-01-07T07:32:29Z hendursaga joined #lisp 2021-01-07T07:34:13Z stargazesparkle: So if I open my project in emacs will it automatically fix my formatting? 2021-01-07T07:34:25Z ex_nihilo joined #lisp 2021-01-07T07:34:27Z stargazesparkle: Or is there a command that I have to run first 2021-01-07T07:34:51Z ex_nihilo quit (Remote host closed the connection) 2021-01-07T07:35:09Z ex_nihilo joined #lisp 2021-01-07T07:35:39Z mfiano: No 2021-01-07T07:35:47Z beach: Yeah, you can do C-x h and then C-M-\ or so I think. My fingers know it, but not my brain. 2021-01-07T07:35:48Z mfiano: You must install SLIME or Sly and connect to the process 2021-01-07T07:37:02Z stargazesparkle: What uh 2021-01-07T07:37:07Z charles` quit (Ping timeout: 260 seconds) 2021-01-07T07:37:08Z stargazesparkle: What process am I connecting to 2021-01-07T07:37:13Z mfiano: Indentation of macros requires that the definitions of such macros be loaded into the image, and Sly/SLIME connected to that image. 2021-01-07T07:37:17Z mfiano: M-x slime 2021-01-07T07:37:56Z mfiano: I suggest reading the SLIME (or Sly) manual. 2021-01-07T07:37:56Z beach: stargazesparkle: Seriously, it is worth the effort. You have an interactive command loop (the REPL) and all kinds of support from the Common Lisp system this way. Like I said, without such support, you will not like your experience with the language. 2021-01-07T07:38:31Z mfiano: You will be like the countless others that quit without properly learning the language. 2021-01-07T07:38:51Z mfiano: Speaking of, you should probably read PRactical Common Lisp (free book) before you try writing Common Lisp code. 2021-01-07T07:39:33Z stargazesparkle: If I end up quitting common lisp I will still probably stick with clojure 2021-01-07T07:39:39Z stargazesparkle: But I would like to give it a fair shot 2021-01-07T07:40:19Z beach: Try to watch some YouTube video. Look for "live coding common lisp". 2021-01-07T07:40:27Z beach: You'll get an idea of how people work. 2021-01-07T07:40:54Z stargazesparkle: I am just so used to the whole write code, compile code, run code mentality 2021-01-07T07:41:05Z stargazesparkle: The idea of interactive coding is so... foreign 2021-01-07T07:41:09Z beach: That's not how we do it, for good reasons. 2021-01-07T07:41:37Z mfiano: Clojure doesn't have an interactive inspector, debugger, the condition system, or CLOS...all very important things for interactive live coding. 2021-01-07T07:42:23Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-07T07:42:48Z beach: Try https://www.youtube.com/watch?v=xzTH_ZqaFKI 2021-01-07T07:42:54Z beach: I hope I got the link right. 2021-01-07T07:43:41Z andreyorst joined #lisp 2021-01-07T07:44:17Z mfiano: Ah a classic 2021-01-07T07:46:43Z rogersm joined #lisp 2021-01-07T07:50:43Z narimiran joined #lisp 2021-01-07T07:51:04Z rogersm quit (Ping timeout: 246 seconds) 2021-01-07T07:51:46Z charles` joined #lisp 2021-01-07T07:53:55Z hendursaga joined #lisp 2021-01-07T07:58:13Z rgherdt joined #lisp 2021-01-07T07:58:21Z ralt joined #lisp 2021-01-07T07:58:45Z beach: stargazesparkle: Did you check the link? 2021-01-07T07:59:04Z stargazesparkle: Oh! I think I may have gotten slime set up 2021-01-07T07:59:12Z beach: Great! 2021-01-07T07:59:19Z stargazesparkle: How uh 2021-01-07T07:59:26Z stargazesparkle: Do I eval an s-expression? 2021-01-07T07:59:46Z beach: In the REPL, just type it followed by RET. 2021-01-07T07:59:56Z beach: In a source buffer, type C-c C-c. 2021-01-07T08:00:44Z beach: With slime, you would typically (depending on your screen) have one REPL window and at least one source buffer, side by side. 2021-01-07T08:01:19Z stargazesparkle: Yeah that is the case here 2021-01-07T08:01:23Z beach: As the video shows, you would then write code in the source buffer and hit C-c C-c to load the code into your Common Lisp system. 2021-01-07T08:01:35Z beach: Or you can switch to the REPL window and type expressions. 2021-01-07T08:04:44Z stargazesparkle: Okay that makes sense 2021-01-07T08:04:47Z mankaev quit (Ping timeout: 260 seconds) 2021-01-07T08:05:32Z stargazesparkle: Should I be putting all of my code in the one buffer and then saving that as a file? 2021-01-07T08:05:45Z fiddlerwoaroof: stargazesparkle: that's more or less what I do starting out 2021-01-07T08:06:18Z phoe: stargazesparkle: yes, I then C-c C-c new/modified forms that I type out 2021-01-07T08:06:25Z phoe: and occasionally interact with the repl 2021-01-07T08:06:39Z stargazesparkle: Oh that is a name that seems familiar to me 2021-01-07T08:06:50Z stargazesparkle: I don't know why though 2021-01-07T08:06:54Z fiddlerwoaroof: stargazesparkle: I'm also a bit surprised. Calva in VSCode implements a very similar workflow for Clojure (CIDER is the emacs equivalent) 2021-01-07T08:06:59Z phoe: name? 2021-01-07T08:07:04Z stargazesparkle: Your name 2021-01-07T08:07:05Z stargazesparkle: Phoe 2021-01-07T08:07:13Z phoe: huh! hmmm 2021-01-07T08:07:35Z stargazesparkle: fiddlerwoaroof: Yes it does I didn't know that this was basically the same 2021-01-07T08:07:49Z fiddlerwoaroof: It's roughly the same idea: connect to a repl, send code over 2021-01-07T08:08:03Z stargazesparkle: Okay that's a far less confusing proposition 2021-01-07T08:08:48Z fiddlerwoaroof: I wrote Clojure professionally for a year or two and it was very similar, except the JVM makes it a bit tricky to redefine certain things and do things like loading libraries on the fly 2021-01-07T08:09:02Z stargazesparkle: phoe: did you provoke the ire of someone? I think I remember seeing some github thing recently about some cl revivaland I could have sworn that phoe was a name dropped. 2021-01-07T08:10:19Z stargazesparkle: I would be writing clojure rn too but on w10 something that calva relies on is borked so nrepl doesn't work and so I thought to revisit this project which lead me to looking for help which lead me to being directed here which lead to me installing emacs 2021-01-07T08:10:21Z stargazesparkle: lol 2021-01-07T08:10:25Z contrapunctus left #lisp 2021-01-07T08:10:28Z fiddlerwoaroof: Phoe is the #1 threat to CL, I believe 2021-01-07T08:10:37Z contrapunctus joined #lisp 2021-01-07T08:10:45Z phoe: stargazesparkle: yes, I did 2021-01-07T08:11:09Z stargazesparkle: I don't know anything about you but all that I can say is, sorry you have to deal with that 2021-01-07T08:11:09Z phoe: and I'd rather discuss it on query or #lispcafe rather than here since it's considered off-topic for a good reason :D 2021-01-07T08:11:16Z stargazesparkle: Okie 2021-01-07T08:11:42Z stargazesparkle: I... need to go look up what nickserv is first before I can join that channel 2021-01-07T08:12:15Z phoe: nickserv is a part of Freenode infrastructure that allows one to register their nick, so no one can impersonate them. to get help on it, do /msg NickServ help 2021-01-07T08:12:34Z contrapunctus left #lisp 2021-01-07T08:12:49Z fiddlerwoaroof: Something like /msg NickServ register 2021-01-07T08:14:50Z contrapunctus joined #lisp 2021-01-07T08:19:50Z contrapunctus left #lisp 2021-01-07T08:20:02Z contrapunctus joined #lisp 2021-01-07T08:22:49Z bjorkint0sh quit (Remote host closed the connection) 2021-01-07T08:23:08Z bjorkint0sh joined #lisp 2021-01-07T08:27:11Z frodef joined #lisp 2021-01-07T08:32:40Z Cymew joined #lisp 2021-01-07T08:45:22Z varjag joined #lisp 2021-01-07T08:48:31Z pyx joined #lisp 2021-01-07T08:48:46Z pyx quit (Client Quit) 2021-01-07T08:50:32Z aartaka joined #lisp 2021-01-07T08:59:49Z liberliver joined #lisp 2021-01-07T09:05:58Z harlchen joined #lisp 2021-01-07T09:06:18Z hendursa1 joined #lisp 2021-01-07T09:07:07Z mankaev joined #lisp 2021-01-07T09:08:23Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-07T09:18:45Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-07T09:20:26Z charles` quit (Ping timeout: 264 seconds) 2021-01-07T09:21:09Z mrios22 quit (Read error: Connection reset by peer) 2021-01-07T09:27:32Z luckless quit (Quit: luckless) 2021-01-07T09:27:41Z anticrisis quit (Read error: Connection reset by peer) 2021-01-07T09:28:14Z todun joined #lisp 2021-01-07T09:28:31Z mindCrime joined #lisp 2021-01-07T09:36:02Z _whitelogger quit (Remote host closed the connection) 2021-01-07T09:36:12Z charles` joined #lisp 2021-01-07T09:38:10Z _whitelogger joined #lisp 2021-01-07T09:47:30Z rogersm joined #lisp 2021-01-07T09:49:22Z random-nick joined #lisp 2021-01-07T09:52:00Z rogersm quit (Ping timeout: 256 seconds) 2021-01-07T10:08:20Z todun quit (Quit: todun) 2021-01-07T10:10:56Z datajerk quit (Ping timeout: 240 seconds) 2021-01-07T10:11:49Z raoul joined #lisp 2021-01-07T10:12:11Z pve joined #lisp 2021-01-07T10:13:14Z andreyorst_ joined #lisp 2021-01-07T10:14:38Z datajerk joined #lisp 2021-01-07T10:15:20Z orivej joined #lisp 2021-01-07T10:16:30Z gaqwas joined #lisp 2021-01-07T10:16:30Z gaqwas quit (Changing host) 2021-01-07T10:16:30Z gaqwas joined #lisp 2021-01-07T10:18:30Z Duuqnd joined #lisp 2021-01-07T10:23:43Z realdea8 joined #lisp 2021-01-07T10:26:37Z wxie quit (Ping timeout: 264 seconds) 2021-01-07T10:40:31Z lowryder quit (Ping timeout: 272 seconds) 2021-01-07T10:42:01Z lowryder joined #lisp 2021-01-07T10:45:43Z aeth quit (Ping timeout: 246 seconds) 2021-01-07T10:47:42Z aeth joined #lisp 2021-01-07T10:52:14Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-07T10:54:00Z heisig joined #lisp 2021-01-07T10:57:43Z realdea8 quit (Remote host closed the connection) 2021-01-07T11:07:20Z paul0 joined #lisp 2021-01-07T11:08:49Z Stanley00 quit 2021-01-07T11:08:56Z pankajsg quit (Ping timeout: 240 seconds) 2021-01-07T11:15:33Z refpga joined #lisp 2021-01-07T11:36:30Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-07T11:38:23Z hendursa1 quit (Ping timeout: 240 seconds) 2021-01-07T11:39:13Z andreyorst_ quit (Ping timeout: 264 seconds) 2021-01-07T11:39:15Z hineios9 joined #lisp 2021-01-07T11:39:36Z hineios quit (Ping timeout: 256 seconds) 2021-01-07T11:39:37Z hineios9 is now known as hineios 2021-01-07T11:44:43Z cantstanya quit (Ping timeout: 240 seconds) 2021-01-07T11:47:46Z amb007 quit (Read error: Connection reset by peer) 2021-01-07T11:48:15Z rogersm joined #lisp 2021-01-07T11:48:18Z amb007 joined #lisp 2021-01-07T11:52:31Z cantstanya joined #lisp 2021-01-07T11:52:36Z rogersm quit (Ping timeout: 240 seconds) 2021-01-07T11:52:55Z andreyorst_ joined #lisp 2021-01-07T11:53:59Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-07T11:55:26Z bilegeek quit (Quit: Leaving) 2021-01-07T12:06:11Z vegansbane6 joined #lisp 2021-01-07T12:10:23Z galex-713 joined #lisp 2021-01-07T12:12:19Z gko_ joined #lisp 2021-01-07T12:14:26Z Lycurgus joined #lisp 2021-01-07T12:14:37Z Xach joined #lisp 2021-01-07T12:15:16Z cosimone joined #lisp 2021-01-07T12:18:14Z varjag quit (Quit: ERC (IRC client for Emacs 26.3)) 2021-01-07T12:18:50Z madage quit (Remote host closed the connection) 2021-01-07T12:22:50Z nicktick joined #lisp 2021-01-07T12:22:58Z surabax joined #lisp 2021-01-07T12:29:50Z hendursa1 joined #lisp 2021-01-07T12:31:27Z edgar-rft quit (Read error: Connection reset by peer) 2021-01-07T12:32:20Z edgar-rft joined #lisp 2021-01-07T12:41:53Z imode quit (Ping timeout: 260 seconds) 2021-01-07T12:49:51Z skapata joined #lisp 2021-01-07T13:02:02Z hendursa1 quit (Remote host closed the connection) 2021-01-07T13:02:30Z SpaceIgor2075 joined #lisp 2021-01-07T13:04:36Z andreyorst_ quit (Quit: andreyorst_) 2021-01-07T13:06:07Z neirac joined #lisp 2021-01-07T13:07:55Z andreyorst_ joined #lisp 2021-01-07T13:09:15Z aartaka quit (Read error: Connection reset by peer) 2021-01-07T13:09:33Z aartaka joined #lisp 2021-01-07T13:11:40Z aartaka quit (Read error: Connection reset by peer) 2021-01-07T13:12:25Z aartaka joined #lisp 2021-01-07T13:19:47Z aartaka_d joined #lisp 2021-01-07T13:20:07Z aartaka quit (Read error: Connection reset by peer) 2021-01-07T13:21:26Z Bike joined #lisp 2021-01-07T13:23:44Z madage joined #lisp 2021-01-07T13:28:07Z hendursa1 joined #lisp 2021-01-07T13:28:37Z gaqwas quit (Remote host closed the connection) 2021-01-07T13:37:56Z andreyorst_ quit (Ping timeout: 240 seconds) 2021-01-07T13:37:57Z aartaka_d quit (Read error: Connection reset by peer) 2021-01-07T13:47:00Z wsinatra joined #lisp 2021-01-07T13:47:35Z msk quit (Remote host closed the connection) 2021-01-07T13:48:00Z msk joined #lisp 2021-01-07T13:48:54Z rogersm joined #lisp 2021-01-07T13:53:37Z rogersm quit (Ping timeout: 264 seconds) 2021-01-07T13:56:07Z makomo joined #lisp 2021-01-07T14:03:28Z gaqwas joined #lisp 2021-01-07T14:03:29Z gaqwas quit (Changing host) 2021-01-07T14:03:29Z gaqwas joined #lisp 2021-01-07T14:05:02Z frost-lab quit (Quit: Connection closed) 2021-01-07T14:12:27Z rpg joined #lisp 2021-01-07T14:12:58Z bitmapper joined #lisp 2021-01-07T14:15:36Z v88m quit (Ping timeout: 240 seconds) 2021-01-07T14:17:22Z Nilby joined #lisp 2021-01-07T14:18:46Z refpga` joined #lisp 2021-01-07T14:19:33Z attila_lendvai joined #lisp 2021-01-07T14:20:41Z skapate joined #lisp 2021-01-07T14:21:01Z skapata is now known as Guest57823 2021-01-07T14:21:01Z skapate is now known as skapata 2021-01-07T14:23:26Z refpga quit (Ping timeout: 256 seconds) 2021-01-07T14:24:05Z Guest57823 quit (Ping timeout: 272 seconds) 2021-01-07T14:29:17Z semz: Should library functions that are part of the public interface contain type declarations for parameters? 2021-01-07T14:30:24Z semz: I remember asking about the type declaration part of Norvig&Pitman in the past and getting "``if you know the type'' means ``if you can guarantee the type''" as a response, but just randomly stumbled over such declarations in alexandria 2021-01-07T14:33:09Z Lycurgus quit (Quit: Exeunt) 2021-01-07T14:36:24Z sword865 quit (Quit: Connection closed for inactivity) 2021-01-07T14:37:23Z Bike: it's true that putting in a declaration doesn't necessarily constitute an actual check, and code might behave badly if declarations are violated 2021-01-07T14:37:54Z Bike: like in iota. i see. 2021-01-07T14:38:26Z Bike: of course you could also take this to mean the programmer is responsible for making sure the functions are not called with invalid arguments. 2021-01-07T14:39:18Z frodef: it's a bit strange really to have a "safe" language where you can just promise away the safety. 2021-01-07T14:39:32Z jackdaniel: sbcl actually puts check-type on declare type 2021-01-07T14:39:48Z jackdaniel: but it is not mandated by the spec 2021-01-07T14:40:25Z Nilby: semz: Yes. But "should" is a stronger word than I would use. I usually put off declarations until the code is very stable. I usually do what I call "note driven declarations". I turn on optimization in sbcl and try to make as many notes disappear as possible. 2021-01-07T14:40:26Z jackdaniel: so the portable safe way is (declare …) (check-type …) ,@body 2021-01-07T14:40:53Z jackdaniel: I think 2021-01-07T14:41:02Z varjag joined #lisp 2021-01-07T14:41:59Z phoe: in pure theory the portable safe way is to avoid DECLARE because if you even call a function with a wrong argument then it is not said that execution will reach the CHECK-TYPE statement 2021-01-07T14:42:15Z phoe: the mere act of calling a function while violating a type definition is enough to invoke undefined behavior 2021-01-07T14:42:19Z semz: yeah CCL will happily fault on (inspect (funcall (lambda (x) (declare (type fixnum x)) (+ x 3)) nil)) for instance 2021-01-07T14:42:25Z jackdaniel: phoe: yes, you are right 2021-01-07T14:42:52Z phoe: but, in practice, in safe code this should signal a type error 2021-01-07T14:43:08Z perrier-jouet quit (Quit: WeeChat 3.0) 2021-01-07T14:43:14Z flip214: doesn't a CHECK-TYPE get the arg declaration automatically? ISTR that this works in SBCL?! 2021-01-07T14:43:25Z phoe: yes, but that is SBCL-specific 2021-01-07T14:43:42Z jackdaniel: flip214: we are discussing what is mandated by the standard, sbcl is most likely safe :) 2021-01-07T14:43:52Z flip214: *DERIVE-FUNCTION-TYPES* is what I'm talking about 2021-01-07T14:44:00Z flip214: well, just _make_ that a standard ;) 2021-01-07T14:44:04Z jackdaniel: phoe: in practice, in safe code, declare per se should not signal an error 2021-01-07T14:44:09Z phoe: CLtL3 resumes 2021-01-07T14:44:13Z phoe: jackdaniel: yes 2021-01-07T14:44:14Z semz: it should and does, see the infamous (+ 0 nil) where ~every impl signals type error even though it's undefined even in safe mode, but with declarations it usually blows up in my experience 2021-01-07T14:44:30Z semz: and badly so 2021-01-07T14:44:42Z jackdaniel: semz: how (+ 0 nil) is undefined? 2021-01-07T14:45:18Z semz: http://www.lispworks.com/documentation/HyperSpec/Body/f_pl.htm 2021-01-07T14:45:34Z semz: note the "*might* signal", which means it may not signal even in safe code 2021-01-07T14:45:50Z frodef: (declare foo) (check-type foo) should/could compile to just (declare foo), no? Meaning the promise in the declaration means the check-type can be type-inferred away. 2021-01-07T14:45:53Z phoe: http://www.lispworks.com/documentation/HyperSpec/Body/01_db.htm 2021-01-07T14:45:53Z jackdaniel: seems pretty defined to me 2021-01-07T14:45:59Z phoe: " This means that the situation has undefined consequences; however, if an error is signaled, it is of the specified type. For example, ``open might signal an error of type file-error.''" 2021-01-07T14:46:13Z phoe: so an implementation is allowed to signal an error, but it may also print unicorns to the screen 2021-01-07T14:46:34Z phoe: that's not a strong "should signal an error" 2021-01-07T14:46:40Z jackdaniel: uhm, correct 2021-01-07T14:46:43Z phoe: (+ 0 nil) ;=> 42 on a conforming implementation 2021-01-07T14:46:55Z phoe: and that's... troublesome, but in practice in safe code no one really does this 2021-01-07T14:47:02Z semz: you'd have to be insane to not signal there in safe code 2021-01-07T14:47:04Z phoe: s/on a/allowed on a/ 2021-01-07T14:47:13Z semz: but with libraries the situation is a bit different than with the core language 2021-01-07T14:47:28Z semz: hence the question 2021-01-07T14:48:23Z flip214: perhaps alexandria should provide a defun* that takes types, and generates _both_ DECLARE and CHECK-TYPE ... some of that might be optimized away 2021-01-07T14:49:13Z quazimodo joined #lisp 2021-01-07T14:49:51Z rogersm joined #lisp 2021-01-07T14:50:45Z Nilby: (handler-case (+ 0 nil) (simple-type-error () (format t "🦄🦄🦄!~%"))) 2021-01-07T14:51:29Z _death: I remember the ITA guys had a define-strict-function operator.. 2021-01-07T14:53:16Z frodef: flip214: seems to me you'd want just the check-type, not the declare. 2021-01-07T14:53:33Z _death: I would say alexandria should not be innovative with interfaces (and besides, it could use some work on implementation..) 2021-01-07T14:54:24Z flip214: frodef: the check-type alone might not be visible when getting function information via SWANK 2021-01-07T14:54:45Z flip214: _death: merge requests welcome! (sorry, very stereotypical answer) 2021-01-07T14:54:49Z rogersm quit (Ping timeout: 265 seconds) 2021-01-07T14:56:03Z perrier-jouet joined #lisp 2021-01-07T14:58:24Z perrier-jouet quit (Client Quit) 2021-01-07T14:59:03Z madage quit (Ping timeout: 240 seconds) 2021-01-07T15:00:28Z _death: maybe if it was on github or some other site that doesn't require "two-factor authentication" for such a thing.. 2021-01-07T15:01:13Z phoe: I need to write a post about how to easily set an OTP client on Linux, or andOTP on Android, in order to swiftly log into clnet 2021-01-07T15:04:14Z rpg is now known as rpg_away 2021-01-07T15:04:38Z waleee-cl joined #lisp 2021-01-07T15:04:58Z rogersm joined #lisp 2021-01-07T15:07:43Z frodef: I don't suppose Eric Schulte is here? I'm trying to use elf.lisp... 2021-01-07T15:07:44Z madage joined #lisp 2021-01-07T15:11:15Z perrier-jouet joined #lisp 2021-01-07T15:11:53Z dyelar joined #lisp 2021-01-07T15:13:25Z quazimodo quit (Ping timeout: 264 seconds) 2021-01-07T15:13:40Z quazimodo joined #lisp 2021-01-07T15:13:44Z _death: frodef: he's sometimes here 2021-01-07T15:14:36Z makomo quit (Ping timeout: 256 seconds) 2021-01-07T15:17:19Z cosimone quit (Quit: cosimone) 2021-01-07T15:24:28Z makomo joined #lisp 2021-01-07T15:25:23Z madage quit (Ping timeout: 240 seconds) 2021-01-07T15:26:59Z sjl joined #lisp 2021-01-07T15:29:26Z liberliver quit (Ping timeout: 272 seconds) 2021-01-07T15:29:50Z flip214: _death: like https://github.com/phmarek/alexandria? 2021-01-07T15:30:40Z madage joined #lisp 2021-01-07T15:30:50Z _death: do you take PRs there? 2021-01-07T15:31:22Z rogersm quit (Remote host closed the connection) 2021-01-07T15:32:07Z aartaka joined #lisp 2021-01-07T15:32:11Z flip214: I might if there were any 2021-01-07T15:33:03Z _death: cool.. then I might have a small patch on the weekend 2021-01-07T15:33:03Z aartaka_d joined #lisp 2021-01-07T15:33:07Z aartaka quit (Read error: Connection reset by peer) 2021-01-07T15:33:08Z aartaka_d quit (Read error: Connection reset by peer) 2021-01-07T15:33:27Z aartaka joined #lisp 2021-01-07T15:33:27Z flip214: np 2021-01-07T15:35:26Z charles` quit (Ping timeout: 264 seconds) 2021-01-07T15:36:58Z liberliver joined #lisp 2021-01-07T15:37:39Z aartaka quit (Read error: Connection reset by peer) 2021-01-07T15:37:39Z rogersm joined #lisp 2021-01-07T15:38:25Z Bike: anyone ever put custom methods on update-instance-for-different-class? 2021-01-07T15:39:46Z liberliver1 joined #lisp 2021-01-07T15:40:07Z flip214: I played around with that, but stopped as there was no queue of these function calls 2021-01-07T15:40:39Z flip214: Ie. when changing a class 3 times and _then_ touching an old instance, the "intermediate" 3 "update" functions were not called 2021-01-07T15:41:04Z phoe: Bike: why do you ask? 2021-01-07T15:41:07Z liberliver quit (Ping timeout: 246 seconds) 2021-01-07T15:41:07Z liberliver1 is now known as liberliver 2021-01-07T15:41:17Z Bike: i don't understand. when you change-class u-i-f-d-c needs to be called immediately. It's not like finalization or something. 2021-01-07T15:41:46Z phoe: yes, it must be called immediately 2021-01-07T15:41:57Z phoe: that's unlike class finalization or instance obsoletion 2021-01-07T15:42:04Z Bike: phoe: i'm considering an optimization for change-class that would make it work faster when there are no u-i-f-d-c methods but slower if there are and wondering if anybody at all could conceivably care. 2021-01-07T15:42:15Z phoe: I thought you'd be doing that 2021-01-07T15:42:22Z phoe: there would be no need to copy the instance then, would it? 2021-01-07T15:42:39Z Bike: yeah. it would be possible to not cons. 2021-01-07T15:42:53Z Bike: well, work faster in limited circumstances, i should say 2021-01-07T15:43:00Z phoe: yes, that would be a good use case for heavy change-class users 2021-01-07T15:43:10Z phoe: mfiano would be one, if they used clasp 2021-01-07T15:43:17Z phoe: s/they/he/ 2021-01-07T15:43:26Z phoe: maybe you could him for his code, try to run it on clasp as a performance benchmark 2021-01-07T15:43:32Z Bike: this optimization could be put in other implementations, conceivably 2021-01-07T15:43:33Z phoe: he does a ton of class changing in one game engine of his. 2021-01-07T15:44:02Z Bike: i don't have much understanding of how change-class is actually used. it's a little rare. we use it a lot in cleavir but maybe not in usual ways, i don't know. 2021-01-07T15:45:47Z flip214: ah sorry, I was testing UPDATE-INSTANCE-FOR-REDEFINED-CLASS 2021-01-07T15:46:11Z Bike: ahh yeah okay. 2021-01-07T15:46:42Z aartaka joined #lisp 2021-01-07T15:48:31Z phoe: I remember beach has use cases for it in SICL, but I don't know if these would be performance heavy 2021-01-07T15:49:55Z v88m joined #lisp 2021-01-07T15:51:22Z rogersm quit (Remote host closed the connection) 2021-01-07T15:51:40Z rogersm joined #lisp 2021-01-07T15:52:08Z rogersm quit (Remote host closed the connection) 2021-01-07T15:53:27Z Bike: in sicl rather than cleavir? hmmm. 2021-01-07T15:53:43Z Bike: ah, yeah, i do see some. 2021-01-07T15:54:27Z beach: Might be in HIR-to-MIR or MIR-to-LIR so same use case as in Cleavir. 2021-01-07T15:54:28Z beach: No? 2021-01-07T15:54:46Z Bike: yeah. it also looks like there are some in the code generator, and with the environments. 2021-01-07T15:56:49Z Bike: karlosz found that the optimization i've already done (which doesn't involve what i'm asking about) reduced consing when compiling asdf by 6%, which i'd say means cleavir uses it pretty heavily 2021-01-07T15:57:18Z Bike: compared to my previous experience of change-class, anyway, which is nobody using it 2021-01-07T15:57:32Z Xach: i use change-class so much! 2021-01-07T15:58:12Z Bike: the particular extra optimization i'm thinking of here would only come into play when the source and destination classes have the same slots (because then the instance doesn't need new slot storage) 2021-01-07T15:58:18Z Bike: cleavir does that sometimes, don't know about other uses 2021-01-07T15:58:25Z flazh1 quit (Ping timeout: 264 seconds) 2021-01-07T15:59:43Z Bike: i think it is a little counterintuitive how change-class sounds like a pure mutation that won't cons, but that isn't generally true 2021-01-07T15:59:57Z hnOsmium0001 joined #lisp 2021-01-07T16:00:11Z keyehzy joined #lisp 2021-01-07T16:00:48Z beach: Right. In general the size of the instance will change. 2021-01-07T16:01:37Z frodef: _death: do you know his nick? 2021-01-07T16:03:07Z _death: frodef: eschulte 2021-01-07T16:04:56Z fitzsim quit (Quit: ERC (IRC client for Emacs 27.1.50)) 2021-01-07T16:07:30Z phoe: beach: does it change? 2021-01-07T16:07:38Z phoe: (defclass a () ()) (defclass b (a) ()) 2021-01-07T16:07:53Z phoe: change-classing from A to B or from B to A, does it change instance size? 2021-01-07T16:08:02Z Bike: not really. 2021-01-07T16:08:26Z beach: Not in that case. Which is why I said "in general" rather than "always". 2021-01-07T16:08:37Z phoe: I understand that in general it *may* change if the resulting slot vectors are of different sizes 2021-01-07T16:08:49Z phoe: in my dictionary "will" implies it's usually the case 2021-01-07T16:08:53Z beach: That's what I meant by "in general", yes. 2021-01-07T16:08:57Z phoe: OK, I understand now 2021-01-07T16:09:08Z Bike: if you want a more specific definition, they need to have sets of slots with the same names. if the implementation is a little fancier types on the slots are relevant as well. 2021-01-07T16:09:12Z rpg_away: Bike: I also use change-class a lot, but often unconsciously 2021-01-07T16:09:37Z Bike: i suppose they don't actually need the same names either 2021-01-07T16:09:56Z wsinatra quit (Ping timeout: 240 seconds) 2021-01-07T16:10:28Z Bike: as long as the slot storage is the same the values in it can just be reshuffled appropriately. 2021-01-07T16:11:12Z _Ark_ joined #lisp 2021-01-07T16:11:17Z ark quit (Ping timeout: 260 seconds) 2021-01-07T16:12:49Z wsinatra joined #lisp 2021-01-07T16:13:14Z mindCrime joined #lisp 2021-01-07T16:13:47Z ebrasca joined #lisp 2021-01-07T16:28:23Z dbotton joined #lisp 2021-01-07T16:33:35Z dbotton_ joined #lisp 2021-01-07T16:35:00Z frodef: is (when foo (progn ...)) a thing? Why would anyone consistently do that? 2021-01-07T16:35:04Z pfdietz joined #lisp 2021-01-07T16:36:55Z pfdietz: Slime has suddenly stopped working for me when I have the Cisco anyconnect client enabled. Socket error in "bind": 99 (Cannot assign requested address) 2021-01-07T16:36:58Z dbotton quit (Ping timeout: 260 seconds) 2021-01-07T16:37:11Z pfdietz: I wonder if this is an ipv6 problem 2021-01-07T16:37:26Z beach: frodef: Nobody would do that. 2021-01-07T16:41:30Z pfdietz: Turning off ipv6 does not fix it. 2021-01-07T16:41:47Z flip214: frodef: a macro perhaps? 2021-01-07T16:42:32Z frodef: flip214: nope, plain code. I suspect it's beginner code. 2021-01-07T16:42:36Z flip214: pfdietz: cisco anyconnect prohibits any other communication 2021-01-07T16:42:53Z pfdietz: This used to work. 2021-01-07T16:42:57Z flip214: perhaps you can explicitly connect to 127.0.0.1 instead of the local ip? not sure whether that's allowed, though 2021-01-07T16:43:00Z beach: frodef: Only some 10 hours ago, we saw (defun fff (...) (progn ...)) so it is not that surprising I guess. 2021-01-07T16:45:09Z flip214: well, (WHEN (condition) (PROGN ...)) is just the literal translation of "IF (condition) { ... }", and people get told not to forget the {} else they'll be burned 2021-01-07T16:45:29Z flip214: burned or eaten, by big, hungry BUGS 2021-01-07T16:46:00Z flip214: so the (DEFUN ... (PROGN ...)) isn't that surprising either.... "int foo() {}" has the {} too 2021-01-07T16:46:28Z frodef: flip214: seems plausible. 2021-01-07T16:46:51Z asarch joined #lisp 2021-01-07T16:50:34Z _death: it could be debugging debris, by way of putting a bunch of forms into a single form that can be easily #+nil'd 2021-01-07T16:51:13Z _death: although with WHEN it may be easily to disable the condition 2021-01-07T16:51:20Z _death: *easier 2021-01-07T16:51:21Z flip214: _death: plausible for DEFUN, but the WHEN could also be disabled at one location 2021-01-07T16:51:24Z luckless joined #lisp 2021-01-07T16:51:36Z flip214: #+(or) (WHEN ....) 2021-01-07T16:51:55Z _death: then again, the condition may have side effects :d 2021-01-07T16:51:57Z refpga` quit (Read error: Connection reset by peer) 2021-01-07T16:52:48Z flip214: right 2021-01-07T16:53:00Z rogersm joined #lisp 2021-01-07T16:53:07Z flip214 ... so the only sure way is to nuke the PROGN from orbit 2021-01-07T16:55:39Z _death: btw, I never bother with #+(or) or #-(and).. I guess these persnickety ways belong to a time where such "commented out" code was more acceptable to "check in" or even just to "save in the file" (to be backed up later this week using tape) 2021-01-07T16:57:10Z _death: then you'd care for some New Implementation of Lisp which may actually see the code 2021-01-07T16:57:19Z flip214: well, if you have (FORMAT ...) spread out, disabling a few of them temporarily until debugging needs them again works for me 2021-01-07T16:57:30Z rogersm quit (Ping timeout: 256 seconds) 2021-01-07T16:58:25Z _death: flip214: well, if I wanted to solve that using features, I'd have #+my-library-debug 2021-01-07T16:58:49Z pfdietz quit (Ping timeout: 245 seconds) 2021-01-07T16:59:53Z rogersm joined #lisp 2021-01-07T17:00:07Z asarch quit (Quit: Leaving) 2021-01-07T17:00:39Z quazimodo quit (Remote host closed the connection) 2021-01-07T17:01:48Z flazh1 joined #lisp 2021-01-07T17:02:20Z quazimodo joined #lisp 2021-01-07T17:04:14Z liberliver quit (Quit: liberliver) 2021-01-07T17:08:03Z jetsuo joined #lisp 2021-01-07T17:11:59Z andreyorst_ joined #lisp 2021-01-07T17:14:32Z ex_nihilo quit (Quit: Leaving) 2021-01-07T17:15:08Z SAL9000 quit (Quit: WeeChat 2.7.1) 2021-01-07T17:15:43Z v_m_v joined #lisp 2021-01-07T17:18:45Z liberliver joined #lisp 2021-01-07T17:19:33Z Cymew quit (Ping timeout: 260 seconds) 2021-01-07T17:20:01Z andreyorst_ quit (Ping timeout: 264 seconds) 2021-01-07T17:20:03Z Jesin quit (Quit: Leaving) 2021-01-07T17:21:08Z SAL9000 joined #lisp 2021-01-07T17:22:33Z Steeve joined #lisp 2021-01-07T17:22:45Z liberliver quit (Ping timeout: 240 seconds) 2021-01-07T17:22:57Z dbotton_ quit (Quit: Leaving) 2021-01-07T17:23:38Z frodef quit (Ping timeout: 260 seconds) 2021-01-07T17:26:03Z dionysius joined #lisp 2021-01-07T17:26:33Z Jesin joined #lisp 2021-01-07T17:26:43Z dionysius left #lisp 2021-01-07T17:27:38Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-07T17:30:22Z Nilby quit (Ping timeout: 256 seconds) 2021-01-07T17:30:23Z liberliver joined #lisp 2021-01-07T17:30:35Z liberliver quit (Client Quit) 2021-01-07T17:31:45Z rpg_away quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-07T17:34:05Z rpg joined #lisp 2021-01-07T17:34:06Z amb007 quit (Read error: Connection reset by peer) 2021-01-07T17:34:20Z [d]_ joined #lisp 2021-01-07T17:34:44Z amb007 joined #lisp 2021-01-07T17:35:28Z [d] quit (Ping timeout: 272 seconds) 2021-01-07T17:36:15Z SpaceIgor2075: Is reading CL Cookbok after Land of Lisp a good choice for a newbie? 2021-01-07T17:36:39Z cosimone joined #lisp 2021-01-07T17:38:36Z mindCrime joined #lisp 2021-01-07T17:39:51Z Cthulhux`: don't read 2021-01-07T17:39:54Z Cthulhux`: learn by writing code. 2021-01-07T17:39:58Z Cthulhux`: jm2c 2021-01-07T17:40:04Z andreyorst_ joined #lisp 2021-01-07T17:40:39Z rogersm quit (Remote host closed the connection) 2021-01-07T17:40:59Z jackdaniel: even better, learn by writing code while fixing issues in open source libraries ,) 2021-01-07T17:41:53Z neirac left #lisp 2021-01-07T17:41:55Z White_Flame: once you read 1 book, you should be good to read basically any other book teaching CL 2021-01-07T17:42:15Z White_Flame: but yeah, write code based on what you know already, and start learning how to read the CLHS to be able to look things up 2021-01-07T17:42:18Z Xach: I like learning by reading code and reading books, and writing code is also helpful. 2021-01-07T17:42:38Z SpaceIgor2075: Cthulhux`, jackdaniel: in my case this advice is really helpful, i think i read and think too much instead of just writing te code 2021-01-07T17:43:17Z White_Flame: and flood #clschool with any silly question you happen to have. Better to hash things through rather than muddle on unknowns forever 2021-01-07T17:43:38Z amb007 quit (Ping timeout: 256 seconds) 2021-01-07T17:43:47Z amb007 joined #lisp 2021-01-07T17:43:51Z SpaceIgor2075: Thanks everybody for the advice 2021-01-07T17:43:53Z jackdaniel: these are not exclusive or options - you may still educate yourself with books 2021-01-07T17:44:25Z White_Flame: symbols/packages are usually the biggest hangup when initially learning 2021-01-07T17:44:32Z White_Flame: and then wrapping your head around macros as you get further along 2021-01-07T17:45:22Z White_Flame: sometimes those issues take a bit of time to "click", no matter how good the book/explanation 2021-01-07T17:50:37Z gko_ quit (Ping timeout: 246 seconds) 2021-01-07T17:50:46Z dyelar quit (Quit: Leaving.) 2021-01-07T17:51:47Z SpaceIgor2075 quit (Read error: Connection reset by peer) 2021-01-07T17:52:00Z SpaceIgor2075 joined #lisp 2021-01-07T17:53:40Z SpaceIgor2075 quit (Read error: Connection reset by peer) 2021-01-07T17:53:56Z SpaceIgor2075 joined #lisp 2021-01-07T17:54:13Z andreyorst_ quit (Ping timeout: 264 seconds) 2021-01-07T17:54:38Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-07T17:55:22Z notzmv quit (Ping timeout: 256 seconds) 2021-01-07T17:55:41Z karlosz joined #lisp 2021-01-07T18:00:06Z frodef joined #lisp 2021-01-07T18:02:32Z birdwing joined #lisp 2021-01-07T18:06:11Z karlosz quit (Remote host closed the connection) 2021-01-07T18:06:48Z karlosz joined #lisp 2021-01-07T18:06:55Z karlosz quit (Read error: Connection reset by peer) 2021-01-07T18:07:35Z karlosz joined #lisp 2021-01-07T18:14:14Z vegansbane6 quit (Ping timeout: 256 seconds) 2021-01-07T18:15:16Z kaftejiman joined #lisp 2021-01-07T18:17:17Z vegansbane6 joined #lisp 2021-01-07T18:17:30Z pfdietz joined #lisp 2021-01-07T18:26:33Z specbot quit (Remote host closed the connection) 2021-01-07T18:26:33Z minion quit (Remote host closed the connection) 2021-01-07T18:27:32Z minion joined #lisp 2021-01-07T18:27:32Z specbot joined #lisp 2021-01-07T18:27:44Z andreyorst` joined #lisp 2021-01-07T18:27:46Z andreyorst` quit (Read error: Connection reset by peer) 2021-01-07T18:28:22Z andreyorst` joined #lisp 2021-01-07T18:28:23Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:28:58Z andreyorst` joined #lisp 2021-01-07T18:29:02Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:29:39Z andreyorst` joined #lisp 2021-01-07T18:29:41Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:30:16Z andreyorst` joined #lisp 2021-01-07T18:30:19Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:30:56Z andreyorst` joined #lisp 2021-01-07T18:30:58Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:31:33Z andreyorst` joined #lisp 2021-01-07T18:31:36Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:32:14Z andreyorst` joined #lisp 2021-01-07T18:32:15Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:32:49Z andreyorst` joined #lisp 2021-01-07T18:32:52Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:33:28Z andreyorst` joined #lisp 2021-01-07T18:33:31Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:34:04Z andreyorst` joined #lisp 2021-01-07T18:34:09Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:34:44Z andreyorst` joined #lisp 2021-01-07T18:34:48Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:35:08Z amb007 quit (Read error: Connection reset by peer) 2021-01-07T18:35:24Z andreyorst` joined #lisp 2021-01-07T18:35:26Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:35:29Z amb007 joined #lisp 2021-01-07T18:36:04Z andreyorst` joined #lisp 2021-01-07T18:36:05Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:36:35Z ljavorsk joined #lisp 2021-01-07T18:36:41Z andreyorst` joined #lisp 2021-01-07T18:36:43Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:37:19Z andreyorst` joined #lisp 2021-01-07T18:37:22Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:37:56Z andreyorst` joined #lisp 2021-01-07T18:38:00Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:38:12Z SpaceIgor2075 quit (Remote host closed the connection) 2021-01-07T18:38:33Z andreyorst` joined #lisp 2021-01-07T18:38:39Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:39:13Z andreyorst` joined #lisp 2021-01-07T18:39:17Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:39:32Z varjag quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-07T18:39:53Z andreyorst` joined #lisp 2021-01-07T18:39:56Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:40:32Z andreyorst` joined #lisp 2021-01-07T18:40:34Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:41:12Z andreyorst` joined #lisp 2021-01-07T18:41:13Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:41:28Z rogersm joined #lisp 2021-01-07T18:41:47Z andreyorst` joined #lisp 2021-01-07T18:41:51Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:42:26Z andreyorst` joined #lisp 2021-01-07T18:42:30Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:43:08Z andreyorst` joined #lisp 2021-01-07T18:43:08Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:43:41Z andreyorst` joined #lisp 2021-01-07T18:43:47Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:44:19Z andreyorst` joined #lisp 2021-01-07T18:44:25Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:44:58Z andreyorst` joined #lisp 2021-01-07T18:45:04Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:45:40Z andreyorst` joined #lisp 2021-01-07T18:45:42Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:45:45Z rogersm quit (Ping timeout: 240 seconds) 2021-01-07T18:46:18Z andreyorst` joined #lisp 2021-01-07T18:46:21Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:46:56Z andreyorst` joined #lisp 2021-01-07T18:46:59Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:47:34Z andreyorst` joined #lisp 2021-01-07T18:47:38Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:48:12Z andreyorst` joined #lisp 2021-01-07T18:48:16Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:48:53Z andreyorst` joined #lisp 2021-01-07T18:48:55Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:50:23Z andreyorst` joined #lisp 2021-01-07T18:50:25Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:51:00Z andreyorst` joined #lisp 2021-01-07T18:51:03Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:51:36Z quazimodo quit (Ping timeout: 240 seconds) 2021-01-07T18:51:38Z andreyorst` joined #lisp 2021-01-07T18:51:42Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:52:17Z andreyorst` joined #lisp 2021-01-07T18:52:20Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:52:34Z cosimone quit (Quit: cosimone) 2021-01-07T18:52:53Z andreyorst` joined #lisp 2021-01-07T18:52:59Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:53:18Z charles` joined #lisp 2021-01-07T18:53:34Z andreyorst` joined #lisp 2021-01-07T18:53:37Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:54:15Z andreyorst` joined #lisp 2021-01-07T18:54:16Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:54:51Z andreyorst` joined #lisp 2021-01-07T18:54:54Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:55:30Z andreyorst` joined #lisp 2021-01-07T18:55:31Z andreyorst_ joined #lisp 2021-01-07T18:55:33Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:55:59Z andreyorst quit (Quit: WeeChat 3.0) 2021-01-07T18:55:59Z andreyorst_ is now known as andreyorst 2021-01-07T18:56:09Z andreyorst` joined #lisp 2021-01-07T18:56:11Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:56:47Z andreyorst` joined #lisp 2021-01-07T18:56:50Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:56:52Z Lord_of_Life_ joined #lisp 2021-01-07T18:57:24Z andreyorst` joined #lisp 2021-01-07T18:57:28Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:58:05Z andreyorst` joined #lisp 2021-01-07T18:58:07Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:58:41Z andreyorst` joined #lisp 2021-01-07T18:58:45Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:58:59Z abhixec quit (Remote host closed the connection) 2021-01-07T18:59:01Z Lord_of_Life quit (Ping timeout: 264 seconds) 2021-01-07T18:59:02Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-07T18:59:22Z andreyorst` joined #lisp 2021-01-07T18:59:24Z andreyorst` quit (Remote host closed the connection) 2021-01-07T18:59:29Z andreyorst quit (Client Quit) 2021-01-07T18:59:57Z andreyorst` joined #lisp 2021-01-07T19:00:02Z andreyorst` quit (Remote host closed the connection) 2021-01-07T19:00:37Z andreyorst` joined #lisp 2021-01-07T19:00:38Z charles` quit (Ping timeout: 264 seconds) 2021-01-07T19:00:41Z andreyorst` quit (Remote host closed the connection) 2021-01-07T19:01:16Z andreyorst` joined #lisp 2021-01-07T19:01:19Z andreyorst` quit (Remote host closed the connection) 2021-01-07T19:01:32Z andreyorst joined #lisp 2021-01-07T19:01:55Z andreyorst` joined #lisp 2021-01-07T19:01:58Z andreyorst` quit (Remote host closed the connection) 2021-01-07T19:02:32Z andreyorst` joined #lisp 2021-01-07T19:02:36Z andreyorst` quit (Remote host closed the connection) 2021-01-07T19:02:46Z andreyorst quit (Client Quit) 2021-01-07T19:03:12Z andreyorst` joined #lisp 2021-01-07T19:03:15Z andreyorst` quit (Remote host closed the connection) 2021-01-07T19:03:20Z andreyorst joined #lisp 2021-01-07T19:03:36Z hendursa1 quit (Remote host closed the connection) 2021-01-07T19:03:50Z andreyorst` joined #lisp 2021-01-07T19:03:53Z andreyorst` quit (Remote host closed the connection) 2021-01-07T19:04:00Z andreyorst is now known as andreyorst` 2021-01-07T19:04:24Z jw4 left #lisp 2021-01-07T19:04:30Z hendursa1 joined #lisp 2021-01-07T19:05:21Z sauvin quit (Remote host closed the connection) 2021-01-07T19:05:44Z fitzsim joined #lisp 2021-01-07T19:07:15Z notzmv joined #lisp 2021-01-07T19:08:32Z andreyorst` quit (Quit: andreyorst`) 2021-01-07T19:09:03Z andreyorst joined #lisp 2021-01-07T19:09:04Z gabot joined #lisp 2021-01-07T19:10:09Z abhixec joined #lisp 2021-01-07T19:11:37Z frodef quit (Ping timeout: 264 seconds) 2021-01-07T19:23:01Z ljavorsk quit (Ping timeout: 246 seconds) 2021-01-07T19:25:19Z galex-713 quit (Read error: Connection reset by peer) 2021-01-07T19:26:29Z galex-713 joined #lisp 2021-01-07T19:26:57Z nij joined #lisp 2021-01-07T19:27:11Z nij: Anyone uses Nyxt as your main browser :) ? 2021-01-07T19:28:10Z greeb: had never heard of nyxt but I'm not extremely interested 2021-01-07T19:28:17Z greeb: I'm now*** 2021-01-07T19:28:31Z nij: lol completely different meaning 2021-01-07T19:29:28Z greeb: yeah haha 2021-01-07T19:30:14Z nij: It's super cute. Still trying to find its weakness. 2021-01-07T19:30:16Z amb007 quit (Read error: Connection reset by peer) 2021-01-07T19:30:33Z IPmonger_ joined #lisp 2021-01-07T19:31:05Z amb007 joined #lisp 2021-01-07T19:31:29Z IPmonger quit (Ping timeout: 258 seconds) 2021-01-07T19:33:01Z greeb: surf is the only browser I regularly use that's like this, but I'm always looking for any excuse to use Lisp, and a browser seems like an especially good excuse 2021-01-07T19:33:01Z nij: greeb: are you truin git out? 2021-01-07T19:33:14Z greeb: I just cloned repo, yeah 2021-01-07T19:33:22Z nij: greeb: emacs, nyxt, stumpwm.. 2021-01-07T19:33:39Z greeb: I'm a heathen. slimv, surf, dwm 2021-01-07T19:33:44Z greeb: :x 2021-01-07T19:33:49Z narimiran quit (Ping timeout: 264 seconds) 2021-01-07T19:35:11Z narimiran joined #lisp 2021-01-07T19:35:51Z greeb: oh stumpwm comes from ratpoison? that's cool 2021-01-07T19:37:22Z amb007 quit (Read error: Connection reset by peer) 2021-01-07T19:38:04Z amb007 joined #lisp 2021-01-07T19:38:32Z nij` joined #lisp 2021-01-07T19:40:08Z nij quit (Ping timeout: 256 seconds) 2021-01-07T19:40:56Z vegansbane6 quit (Ping timeout: 256 seconds) 2021-01-07T19:41:20Z nij` is now known as nij 2021-01-07T19:42:46Z amb007 quit (Read error: Connection reset by peer) 2021-01-07T19:43:45Z amb007 joined #lisp 2021-01-07T19:45:18Z trocado quit (Ping timeout: 265 seconds) 2021-01-07T19:53:40Z rogersm joined #lisp 2021-01-07T19:53:45Z vegansbane6 joined #lisp 2021-01-07T19:57:50Z mankaev quit (Read error: Connection reset by peer) 2021-01-07T19:58:02Z mankaev joined #lisp 2021-01-07T19:58:30Z imode joined #lisp 2021-01-07T19:59:42Z v_m_v quit (Remote host closed the connection) 2021-01-07T20:00:00Z v_m_v joined #lisp 2021-01-07T20:02:49Z pve quit (Quit: leaving) 2021-01-07T20:06:46Z nicktick quit (Ping timeout: 246 seconds) 2021-01-07T20:09:14Z stargazesparkle: Does anyone know if slime can restructure a file? If so, what is the command? 2021-01-07T20:10:19Z contrapunctus: stargazesparkle: restructure? I think you want redshank for that sort of thing (...but does anyone even use that?) 2021-01-07T20:10:40Z stargazesparkle: I don't know someone said my formatting was shit and that I should fix it 2021-01-07T20:10:49Z stargazesparkle: And I want to know if there is an automated way to do that 2021-01-07T20:11:05Z vegansbane6 quit (Ping timeout: 240 seconds) 2021-01-07T20:11:19Z contrapunctus: stargazesparkle: oh. smartparens or paredit. A single command will indent a top-level form. 2021-01-07T20:12:27Z contrapunctus: stargazesparkle: these don't add or remove newlines, though. 2021-01-07T20:13:33Z rogersm quit (Quit: Leaving...) 2021-01-07T20:14:02Z aartaka quit (Read error: Connection reset by peer) 2021-01-07T20:14:08Z aartaka_d joined #lisp 2021-01-07T20:14:15Z _death: if you mean reindent, you can C-x h C-M-\ 2021-01-07T20:16:13Z amb007 quit (Read error: Connection reset by peer) 2021-01-07T20:16:32Z amb007 joined #lisp 2021-01-07T20:18:24Z dbotton joined #lisp 2021-01-07T20:18:24Z amb007 quit (Read error: Connection reset by peer) 2021-01-07T20:19:06Z amb007 joined #lisp 2021-01-07T20:19:22Z vegansbane6 joined #lisp 2021-01-07T20:21:13Z frodef joined #lisp 2021-01-07T20:23:15Z luni joined #lisp 2021-01-07T20:23:16Z aartaka_d quit (Ping timeout: 256 seconds) 2021-01-07T20:23:49Z birdwing quit (Ping timeout: 272 seconds) 2021-01-07T20:27:16Z andreyorst quit (Quit: WeeChat 3.0) 2021-01-07T20:27:36Z andreyorst joined #lisp 2021-01-07T20:33:58Z aartaka joined #lisp 2021-01-07T20:36:28Z vegansbane6 quit (Ping timeout: 256 seconds) 2021-01-07T20:39:35Z vegansbane6 joined #lisp 2021-01-07T20:42:14Z rogersm joined #lisp 2021-01-07T20:42:34Z jetsuo quit (Remote host closed the connection) 2021-01-07T20:42:34Z vutral_ joined #lisp 2021-01-07T20:44:22Z pfdietz: Xach: I wonder how many quicklisp systems are acceptably licensed, if one includes all the dependencies they have. It doesnt take many bad apples to spoil things. 2021-01-07T20:45:44Z nij left #lisp 2021-01-07T20:47:01Z rogersm quit (Ping timeout: 264 seconds) 2021-01-07T20:53:01Z aartaka quit (Ping timeout: 264 seconds) 2021-01-07T20:58:53Z phoe: That would actually make a good graph, or something. 2021-01-07T20:59:45Z Xach: pfdietz: acceptable means different things to different people 2021-01-07T20:59:53Z Xach: ok, my clhs lookup page has been fixed, at long last 2021-01-07T21:00:07Z Xach: fewer than 10 characters updated and it is back online. 2021-01-07T21:03:52Z v_m_v quit (Remote host closed the connection) 2021-01-07T21:03:55Z aartaka joined #lisp 2021-01-07T21:04:01Z pfdietz: Here, I mean "a company can use these without running into trouble". L(L)GPL, not GPL, and not "vague words that aren't a license". 2021-01-07T21:09:13Z fiddlerwoaroof: phoe: I'm not sure I agree with that read of the standard for + 2021-01-07T21:09:47Z fiddlerwoaroof: It could be read as "It might signal a type error" that is, you can't rely on + not signalling 2021-01-07T21:10:01Z fiddlerwoaroof: and then "when one of the arguments is not a number" specifies when it does signal a type-error 2021-01-07T21:10:13Z fiddlerwoaroof: s/when/if/ 2021-01-07T21:10:21Z dbotton: I have a more interesting demo of the start of my CLOG project, a little video game that will play on mobile or desktop browsers. http://office.botton.com:8080 - the source is at https://github.com/rabbibotton/clog/blob/main/tutorial/07-tutorial.lisp 2021-01-07T21:10:37Z fiddlerwoaroof: this would mean that (+ a b) might signal but (+ 0 nil) is specified to signal 2021-01-07T21:11:35Z dbotton: I'll leave it up a day or so, hoping to see if it errors out at all 2021-01-07T21:12:13Z frodef quit (Ping timeout: 246 seconds) 2021-01-07T21:13:36Z vegansbane6 quit (Ping timeout: 240 seconds) 2021-01-07T21:14:15Z fiddlerwoaroof: dbotton: I think it works for me, the click-targetting seems a bit inaccurate 2021-01-07T21:14:43Z dbotton: You expect to kill Darth easy :) 2021-01-07T21:14:52Z miasuji joined #lisp 2021-01-07T21:15:02Z dbotton: On iPhones easier 2021-01-07T21:15:18Z fiddlerwoaroof: Browsers disabled moving the mouse pointer, but if they hadn't I'd want an aimbot` 2021-01-07T21:15:22Z fiddlerwoaroof: :) 2021-01-07T21:15:39Z dbotton: Well this is just a tutorial 2021-01-07T21:16:18Z dbotton: Once I finish up the canvas code for 2d graphics I'll make something more interesting 2021-01-07T21:16:34Z fiddlerwoaroof: Yeah, I'm joking 2021-01-07T21:16:46Z dbotton: My main need though is for the form and text code for the larger project 2021-01-07T21:18:57Z dbotton: CLOG is really nice for teaching multithreaded programming. 2021-01-07T21:19:29Z phoe: fiddlerwoaroof: yes, it can't rely on it 2021-01-07T21:19:36Z phoe: but it is allowed to 2021-01-07T21:19:44Z fiddlerwoaroof: that's not how I read the standard 2021-01-07T21:19:54Z phoe: code that depends on (= (+ 0 nil) 42) is allowed to be conforming but not portable 2021-01-07T21:20:00Z fiddlerwoaroof: The might doesn't apply to the situation where one of the arugments is not a number 2021-01-07T21:20:07Z phoe: why not? 2021-01-07T21:20:08Z phoe: clhs + 2021-01-07T21:20:08Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/a_pl.htm 2021-01-07T21:20:14Z fiddlerwoaroof: The might there just means that + might in some circumstances signal a type-error 2021-01-07T21:20:19Z phoe: "Might signal type-error if some argument is not a number." 2021-01-07T21:20:33Z phoe: the "might" *literally* applies to the situation where one of the arguments is not a number 2021-01-07T21:20:39Z fiddlerwoaroof: Yeah "Might signal type-error (if some argument is not a number)" 2021-01-07T21:20:45Z fiddlerwoaroof: Is how I'd read that 2021-01-07T21:20:57Z phoe: and "might signal" means that an implementation is allowed to not signal 2021-01-07T21:21:02Z phoe: so it may do whatever instead 2021-01-07T21:21:03Z narimiran quit (Ping timeout: 260 seconds) 2021-01-07T21:21:53Z fiddlerwoaroof: I'd read it like this if I ask can this form (+ a b) signal any conditions? 2021-01-07T21:21:56Z aartaka quit (Ping timeout: 240 seconds) 2021-01-07T21:21:57Z fiddlerwoaroof: The answer is "it might" 2021-01-07T21:21:59Z fiddlerwoaroof: When? 2021-01-07T21:22:06Z fiddlerwoaroof: When one of the arguments is not a number 2021-01-07T21:22:21Z fiddlerwoaroof: The English is ambiguous 2021-01-07T21:22:31Z phoe: no, that is "should signal an error" 2021-01-07T21:22:42Z phoe: clhs 1.4.2 2021-01-07T21:22:42Z specbot: Error Terminology: http://www.lispworks.com/reference/HyperSpec/Body/01_db.htm 2021-01-07T21:22:46Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-07T21:22:55Z phoe: this clearly describes the difference between "should" and "might" 2021-01-07T21:23:12Z phoe: in RFC terms, "should" means that safe code MUST signal and unsafe code SHOULD signal 2021-01-07T21:23:16Z fiddlerwoaroof: Hmm, maybe that's right 2021-01-07T21:23:18Z fiddlerwoaroof: http://www.lispworks.com/documentation/HyperSpec/Body/01_db.htm 2021-01-07T21:23:27Z phoe: whereas "might" means that safe and unsafe code alike MAY signal but also MAY do whatever 2021-01-07T21:24:25Z hendursa1 quit (Quit: hendursa1) 2021-01-07T21:24:42Z hendursaga joined #lisp 2021-01-07T21:24:52Z ym quit (Quit: Leaving) 2021-01-07T21:25:38Z dbotton joined #lisp 2021-01-07T21:26:00Z wsinatra quit (Quit: WeeChat 3.0) 2021-01-07T21:27:12Z dbotton quit (Remote host closed the connection) 2021-01-07T21:31:12Z phoe: (and if it signals, then it must be of the given type) 2021-01-07T21:34:40Z attila_lendvai quit (Ping timeout: 256 seconds) 2021-01-07T21:35:45Z edgar-rft: hmm, if there is *no* argument, is it then not a number? 2021-01-07T21:36:02Z phoe: I don't think + can accept "no argument" 2021-01-07T21:36:09Z phoe: zero values are coerced into a NIL 2021-01-07T21:37:01Z edgar-rft: (0) => 0, at least in SBCL 2021-01-07T21:37:17Z phoe: (0)? that's an illegal function call though 2021-01-07T21:37:29Z edgar-rft: sorry, I meant (+) => 0 2021-01-07T21:37:38Z phoe: oh, + is well behaved with zero arguments 2021-01-07T21:37:45Z phoe: because it accepts a &rest which may be empty 2021-01-07T21:38:15Z Alfr: edgar-rft, sum of numbers, empty sum => 0 2021-01-07T21:39:02Z Duuqnd quit (Remote host closed the connection) 2021-01-07T21:39:33Z edgar-rft: yes, but the question was: as you can see there are *no* arguments, are they numbers? 2021-01-07T21:39:53Z phoe: is what exactly numbers 2021-01-07T21:40:02Z phoe: + accepts N arguments, and all of them must be numbers 2021-01-07T21:40:03Z Alfr: edgar-rft, all arguments (admittedly none in that case) are numbers. 2021-01-07T21:40:05Z phoe: 0 arguments, 0 problems 2021-01-07T21:40:45Z dbotton joined #lisp 2021-01-07T21:41:05Z Bike: no arguments = no non-numbers. 2021-01-07T21:41:30Z Alfr: edgar-rft, or for type-error to trigger, there'd have to exist an argument which is not a number, see Exceptional Situations. 2021-01-07T21:41:57Z Bike: something something existential import. 2021-01-07T21:42:12Z vegansbane6 joined #lisp 2021-01-07T21:44:11Z edgar-rft: MIGHT-BE-NUMBER-P :-) 2021-01-07T21:45:14Z fiddlerwoaroof: So, now we need a TRIVIAL-NUMERIC-OPERATIONS library, I think 2021-01-07T21:46:37Z Alfr: fiddlerwoaroof, that'd end up a cesspool. 2021-01-07T21:47:05Z vegansbane6 quit (Ping timeout: 240 seconds) 2021-01-07T21:48:20Z Alfr: fiddlerwoaroof, as long as you stick to rationals all is quite well within clhs, but once you start dabbling with floats all bets are off. 2021-01-07T21:48:37Z fiddlerwoaroof: It's just all the CL stuff with deterministic behavior 2021-01-07T21:49:12Z fiddlerwoaroof: Yeah, floats are interesting in CL. 2021-01-07T21:51:46Z fiddlerwoaroof: I have a library that relies a lot on composing lambdas 2021-01-07T21:52:41Z fiddlerwoaroof: Are there any tricks to get implementations to inline lambdas and/or not allocate a bunch of closures? 2021-01-07T21:53:30Z fiddlerwoaroof: I've sort of idly thought about switching to a code generator and calling COMPILE, which would solve some problems and create others. 2021-01-07T21:54:59Z vegansbane6 joined #lisp 2021-01-07T21:57:56Z heisig quit (Quit: Leaving) 2021-01-07T22:01:56Z vegansbane6 quit (Ping timeout: 240 seconds) 2021-01-07T22:02:21Z frodef joined #lisp 2021-01-07T22:16:10Z vegansbane6 joined #lisp 2021-01-07T22:17:10Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-07T22:18:58Z miasuji quit (Remote host closed the connection) 2021-01-07T22:19:25Z miasuji joined #lisp 2021-01-07T22:23:46Z trocado joined #lisp 2021-01-07T22:25:41Z yonkunas quit (Quit: Connection closed for inactivity) 2021-01-07T22:27:05Z dbotton quit (Quit: Leaving) 2021-01-07T22:27:59Z rpg joined #lisp 2021-01-07T22:39:07Z miasuji quit (Remote host closed the connection) 2021-01-07T22:39:29Z miasuji joined #lisp 2021-01-07T22:40:24Z lowryder quit (Ping timeout: 256 seconds) 2021-01-07T22:42:28Z lowryder joined #lisp 2021-01-07T22:43:03Z rogersm joined #lisp 2021-01-07T22:47:46Z rogersm quit (Ping timeout: 256 seconds) 2021-01-07T22:47:51Z luni quit (Quit: Connection closed) 2021-01-07T22:59:42Z pillton joined #lisp 2021-01-07T23:01:07Z stargazesparkle: So I have slime and I have emacs 2021-01-07T23:01:18Z stargazesparkle: And I have an ASD 2021-01-07T23:01:35Z stargazesparkle: How do I then load my project into emacs so that I can access it from the repl? 2021-01-07T23:02:24Z moon-child: (asdf:load-system :whatever) from the repl 2021-01-07T23:02:32Z stargazesparkle: I keep seeing slime-asdf as a package that is supposed to be able to load the system HOWEVER it is not included with slime and I cannot find it in package-install 2021-01-07T23:02:36Z stargazesparkle: o 2021-01-07T23:02:36Z Alfr: stargazesparkle, asdf:load-asd or link it somewhere asdf looks for it, then asdf:load-system . 2021-01-07T23:02:39Z stargazesparkle: Let me try that 2021-01-07T23:02:51Z White_Flame: it needs to be in a known path though 2021-01-07T23:03:11Z moon-child: Alfr: linking works ok for sbcl, but not ccl 2021-01-07T23:03:12Z stargazesparkle: The known path would be ~/common-lisp right? 2021-01-07T23:03:19Z moon-child: (haven't tried other impls, but it doesn't work universally) 2021-01-07T23:03:23Z White_Flame: asdf:*central-registry* 2021-01-07T23:03:24Z rpg: stargazesparkle: If you load "slime-fancy" then you will get slime-asd 2021-01-07T23:03:30Z White_Flame: however, easier to set up is to use quicklisp around it instead 2021-01-07T23:03:44Z rpg: stargazesparkle: Yes, putting your system into ~/common-lisp/ will make it findable. 2021-01-07T23:03:45Z stargazesparkle: I have quicklisp 2021-01-07T23:03:59Z Alfr: moon-child, oh really? Didn't encounter the problem yet, but thanks for the heads up. :) 2021-01-07T23:04:16Z rpg: If you have quicklisp, you can put your system in local-projects subdirectory of the ql install directory. 2021-01-07T23:04:27Z stargazesparkle: I... 2021-01-07T23:04:28Z White_Flame: or link from there 2021-01-07T23:04:32Z stargazesparkle: Uh need to find that stuff 2021-01-07T23:04:40Z stargazesparkle: I don't actually know where any of this installed 2021-01-07T23:04:56Z White_Flame: cd ~/quicklisp/local-projects 2021-01-07T23:04:59Z stargazesparkle: I know where ~/emacs.d is 2021-01-07T23:05:02Z White_Flame: ln -s ~/...my project/ 2021-01-07T23:05:20Z White_Flame: (ql:quickload :my-project-name) 2021-01-07T23:05:34Z stargazesparkle: Okay here let me try something that I think will work 2021-01-07T23:07:59Z paul0 quit (Quit: Leaving) 2021-01-07T23:08:19Z stargazesparkle: Okay that worked 2021-01-07T23:08:24Z White_Flame: cool 2021-01-07T23:08:47Z stargazesparkle: Do I have to reload my entire project to play with changes or only the s-expressions that I add/change 2021-01-07T23:08:48Z White_Flame: it's a few steps removed from bog standard lisp, but basically how the cool kids work today 2021-01-07T23:08:59Z White_Flame: depends 2021-01-07T23:09:33Z White_Flame: generally, if you recompile a function, the next time it's called it will use the new version 2021-01-07T23:09:47Z White_Flame: (unless it's inlined, or if it's directly referenced from teh same compilation unit, etc etc) 2021-01-07T23:10:04Z White_Flame: C-c C-k (recompiling/loading the entire current .lisp file) is generally an appropriate command to use 2021-01-07T23:10:32Z White_Flame: take care around defvar vs defparameter, and any toplevel closures 2021-01-07T23:11:01Z White_Flame: eg (let ((count 0)) (defun next () (incf count))) will reset the counter on reloading the file 2021-01-07T23:14:55Z aeth: White_Flame: you can fix that with macros 2021-01-07T23:15:31Z White_Flame: sure 2021-01-07T23:15:54Z aeth: i.e. add a hidden accessor function to the closure (or use multiple return values or something) and use that to initialize the "initial" COUNT on recompilation to something else. 2021-01-07T23:16:06Z karlosz quit (Quit: karlosz) 2021-01-07T23:16:28Z aeth: i.e. if FBOUNDP at macro time, then call it take the old value, otherwise default to 0 2021-01-07T23:16:42Z aeth: just make sure not to do side effects 2021-01-07T23:17:23Z aeth: s/call it take the old/call it to take the old/ 2021-01-07T23:17:57Z aeth: so in that particular example you would have to add another function, to avoid the side effect 2021-01-07T23:20:44Z aeth: This is ultra niche, but it's one of the coolest things you can do because the macro is conceptually simple, but what it does is very clever. 2021-01-07T23:22:50Z dwts quit (Ping timeout: 256 seconds) 2021-01-07T23:23:12Z dwts joined #lisp 2021-01-07T23:30:42Z vutral_ quit (Quit: Connection closed for inactivity) 2021-01-07T23:31:25Z makomo quit (Ping timeout: 264 seconds) 2021-01-07T23:32:26Z SAL9000 quit (Quit: WeeChat 2.9) 2021-01-07T23:33:31Z hendursaga quit (Remote host closed the connection) 2021-01-07T23:34:19Z hendursaga joined #lisp 2021-01-07T23:35:49Z stargazesparkle: White_Flame: tyvm 2021-01-07T23:35:59Z stargazesparkle: I am starting to... understand more wtf I am doing 2021-01-07T23:36:16Z stargazesparkle: I like how at the bottom of emacs when I type a function or whatever it gives me information about it 2021-01-07T23:36:40Z rgherdt quit (Ping timeout: 256 seconds) 2021-01-07T23:38:05Z thmprover joined #lisp 2021-01-07T23:42:03Z lotuseater: stargazesparkle: oh yes really helpful 2021-01-07T23:43:56Z rogersm joined #lisp 2021-01-07T23:48:25Z rogersm quit (Ping timeout: 240 seconds) 2021-01-07T23:51:16Z stargazesparkle: Is there a way to export all symbols from a package so that I can test them in the repl? 2021-01-07T23:51:36Z stargazesparkle: I know of (:export) but I have to list everything off by hand 2021-01-07T23:54:13Z phoe: in-package 2021-01-07T23:54:19Z phoe: I'd just switch to the package in question instead 2021-01-07T23:54:28Z stargazesparkle: Oh that... 2021-01-07T23:54:32Z stargazesparkle: Makes sense 2021-01-07T23:54:49Z stargazesparkle: idk why I didn't think to do that 2021-01-07T23:56:22Z sjl quit (Ping timeout: 246 seconds) 2021-01-07T23:57:25Z random-nick quit (Ping timeout: 246 seconds) 2021-01-07T23:58:42Z miasuji quit (Remote host closed the connection) 2021-01-07T23:59:00Z miasuji joined #lisp 2021-01-08T00:04:02Z andreyorst quit (Remote host closed the connection) 2021-01-08T00:04:33Z White_Flame: nothing you do on the repl will ever damage your source code, so hack away 2021-01-08T00:04:56Z White_Flame: when you restart-inferior-lisp, you can reload clean from source, and any droppings your repl stuff left in the package will be gone 2021-01-08T00:05:16Z White_Flame: (well, barring issuing file commands etc from the repl, obv) 2021-01-08T00:09:55Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-08T00:12:44Z dbotton joined #lisp 2021-01-08T00:20:14Z abhixec quit (Quit: leaving) 2021-01-08T00:23:38Z gaqwas quit (Ping timeout: 260 seconds) 2021-01-08T00:25:08Z Steeve quit (Quit: end) 2021-01-08T00:25:33Z frost-lab joined #lisp 2021-01-08T00:26:40Z fiddlerwoaroof: stargazesparkle: C-c ~ switches the repl to the same package as your current buffer 2021-01-08T00:26:54Z karlosz joined #lisp 2021-01-08T00:26:56Z fiddlerwoaroof: C-c x exports the symbol at the cursor from the current package 2021-01-08T00:33:00Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-08T00:35:27Z SAL9000 joined #lisp 2021-01-08T00:36:19Z abhixec joined #lisp 2021-01-08T00:43:32Z harlchen quit (Quit: WeeChat 3.0) 2021-01-08T00:43:45Z karlosz quit (Quit: karlosz) 2021-01-08T00:44:42Z frost-lab quit (Quit: Connection closed) 2021-01-08T00:44:53Z rogersm joined #lisp 2021-01-08T00:49:34Z rogersm quit (Ping timeout: 246 seconds) 2021-01-08T00:51:37Z miasuji quit (Remote host closed the connection) 2021-01-08T00:51:49Z frodef quit (Ping timeout: 264 seconds) 2021-01-08T00:52:02Z miasuji joined #lisp 2021-01-08T00:55:55Z nicktick joined #lisp 2021-01-08T00:56:30Z frost-lab joined #lisp 2021-01-08T00:57:04Z rpg joined #lisp 2021-01-08T00:57:15Z ralt quit (Quit: Connection closed for inactivity) 2021-01-08T01:02:58Z anticrisis joined #lisp 2021-01-08T01:03:13Z bjorkint0sh quit (Quit: Leaving) 2021-01-08T01:08:46Z zaquest quit (Remote host closed the connection) 2021-01-08T01:11:35Z zaquest joined #lisp 2021-01-08T01:11:40Z miasuji quit (Remote host closed the connection) 2021-01-08T01:12:04Z miasuji joined #lisp 2021-01-08T01:12:13Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-08T01:24:39Z bilegeek joined #lisp 2021-01-08T01:27:00Z rumbler31_ quit (Ping timeout: 256 seconds) 2021-01-08T01:27:49Z mankaev quit (Ping timeout: 272 seconds) 2021-01-08T01:31:43Z miasuji quit (Remote host closed the connection) 2021-01-08T01:32:09Z miasuji joined #lisp 2021-01-08T01:41:19Z dbotton quit (Quit: Leaving) 2021-01-08T01:42:03Z wxie joined #lisp 2021-01-08T01:45:45Z rogersm joined #lisp 2021-01-08T01:47:54Z dilated_dinosaur quit (Ping timeout: 256 seconds) 2021-01-08T01:50:33Z rogersm quit (Ping timeout: 260 seconds) 2021-01-08T01:51:31Z orivej quit (Ping timeout: 246 seconds) 2021-01-08T01:51:38Z miasuji quit (Ping timeout: 264 seconds) 2021-01-08T01:51:49Z miasuji joined #lisp 2021-01-08T01:53:53Z rumbler31_ joined #lisp 2021-01-08T01:56:41Z stargazesparkle: I just made a radical fucking connection 2021-01-08T01:57:01Z stargazesparkle: Common Lisp works sort of similar to SmallTalk in how it's a system 2021-01-08T01:59:24Z surabax quit (Quit: Leaving) 2021-01-08T02:00:50Z Misha_B joined #lisp 2021-01-08T02:03:51Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-08T02:04:14Z notzmv quit (Remote host closed the connection) 2021-01-08T02:04:49Z notzmv joined #lisp 2021-01-08T02:05:13Z bjorkintosh joined #lisp 2021-01-08T02:05:53Z kaftejiman quit (Remote host closed the connection) 2021-01-08T02:06:05Z Gnuxie[m]: If it weren't a system it'd be a bag of shit 2021-01-08T02:07:37Z Gnuxie[m]: It's very fortunate 2021-01-08T02:10:31Z aeth: Smalltalk and Common Lisp are very close languages. 2021-01-08T02:11:48Z miasuji quit (Remote host closed the connection) 2021-01-08T02:12:14Z miasuji joined #lisp 2021-01-08T02:14:12Z devon joined #lisp 2021-01-08T02:16:52Z devon: What are your favorite COMPOSE and CURRY implementations? Hard to believe they're not in the standard. 2021-01-08T02:16:57Z aeth: Smalltalk takes images a bit further than CL does. CL takes OOP a bit further than Smalltalk does. This is amusing because it's Smalltalk that's known for its OOP. 2021-01-08T02:17:46Z aeth: devon: Alexandria's is probably the most common 2021-01-08T02:22:32Z dilated_dinosaur joined #lisp 2021-01-08T02:27:52Z semz quit (Ping timeout: 260 seconds) 2021-01-08T02:28:01Z contrapunctus left #lisp 2021-01-08T02:30:20Z notzmv quit (Remote host closed the connection) 2021-01-08T02:30:34Z notzmv joined #lisp 2021-01-08T02:31:12Z contrapunctus joined #lisp 2021-01-08T02:31:14Z dbotton joined #lisp 2021-01-08T02:31:51Z miasuji quit (Remote host closed the connection) 2021-01-08T02:32:18Z miasuji joined #lisp 2021-01-08T02:34:23Z karlosz joined #lisp 2021-01-08T02:34:58Z quazimodo joined #lisp 2021-01-08T02:36:43Z karlosz quit (Client Quit) 2021-01-08T02:38:37Z rumbler31_ quit (Ping timeout: 264 seconds) 2021-01-08T02:41:06Z mindCrime joined #lisp 2021-01-08T02:41:27Z semz joined #lisp 2021-01-08T02:42:25Z raoul quit (Quit: WeeChat 3.0) 2021-01-08T02:43:33Z notzmv quit (Remote host closed the connection) 2021-01-08T02:47:05Z ebrasca quit (Remote host closed the connection) 2021-01-08T02:49:56Z miasuji quit (Remote host closed the connection) 2021-01-08T02:50:09Z imode quit (Ping timeout: 265 seconds) 2021-01-08T02:50:19Z miasuji joined #lisp 2021-01-08T02:54:22Z loke[m]: devon alexandria is pretty much a standard library. 2021-01-08T02:55:34Z Bike: alexandria's has that interesting multiple-value-call trick 2021-01-08T03:04:03Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-08T03:04:25Z Oladon joined #lisp 2021-01-08T03:05:16Z rumbler31_ joined #lisp 2021-01-08T03:06:44Z v88m quit (Ping timeout: 256 seconds) 2021-01-08T03:07:37Z v88m joined #lisp 2021-01-08T03:09:58Z v88m quit (Read error: Connection reset by peer) 2021-01-08T03:10:29Z v88m joined #lisp 2021-01-08T03:12:12Z imode joined #lisp 2021-01-08T03:12:22Z fiddlerwoaroof: Alexandria has a handy compiler-macro for it too 2021-01-08T03:14:03Z fiddlerwoaroof: I like using a macro to alias • to ALEXANDRIA:COMPOSE 2021-01-08T03:14:23Z imode quit (Client Quit) 2021-01-08T03:19:59Z dddddd quit (Remote host closed the connection) 2021-01-08T03:21:36Z dbotton joined #lisp 2021-01-08T03:22:14Z dbotton quit (Client Quit) 2021-01-08T03:30:10Z contrapunctus left #lisp 2021-01-08T03:30:47Z contrapunctus joined #lisp 2021-01-08T03:32:03Z jprajzne quit (Quit: Leaving.) 2021-01-08T03:32:42Z dddddd joined #lisp 2021-01-08T03:39:26Z bitmapper joined #lisp 2021-01-08T03:39:38Z Jeanne-Kamikaze joined #lisp 2021-01-08T03:44:26Z miasuji quit (Ping timeout: 264 seconds) 2021-01-08T03:44:45Z miasuji joined #lisp 2021-01-08T03:46:32Z rogersm joined #lisp 2021-01-08T03:51:42Z rogersm quit (Ping timeout: 272 seconds) 2021-01-08T03:52:08Z Stanley00 joined #lisp 2021-01-08T03:56:38Z mrios22 joined #lisp 2021-01-08T04:02:03Z Alfr_ joined #lisp 2021-01-08T04:02:23Z beach: Good morning everyone! 2021-01-08T04:03:37Z mrios22: Good morning! 2021-01-08T04:04:25Z keyehzy quit (Ping timeout: 264 seconds) 2021-01-08T04:04:42Z Alfr quit (Ping timeout: 260 seconds) 2021-01-08T04:08:42Z anticrisis quit (Read error: Connection reset by peer) 2021-01-08T04:09:34Z dddddd quit (Ping timeout: 256 seconds) 2021-01-08T04:10:30Z dddddd joined #lisp 2021-01-08T04:20:10Z imode joined #lisp 2021-01-08T04:20:53Z __jrjsmrtn__ joined #lisp 2021-01-08T04:21:03Z _jrjsmrtn quit (Ping timeout: 260 seconds) 2021-01-08T04:23:39Z Jeanne-Kamikaze quit (Quit: Leaving) 2021-01-08T04:23:56Z mindCrime quit (Ping timeout: 240 seconds) 2021-01-08T04:23:58Z notzmv joined #lisp 2021-01-08T04:37:54Z stargazesparkle: I still don't understand wtf a macro is 2021-01-08T04:38:37Z beach: It is an ordinary function that takes Common Lisp code and returns Common Lisp code. 2021-01-08T04:38:40Z beach: Nothing else. 2021-01-08T04:39:04Z stargazesparkle: O 2021-01-08T04:39:08Z stargazesparkle: Wait 2021-01-08T04:39:10Z stargazesparkle: Hmm 2021-01-08T04:39:18Z beach: So it allows you to invent new syntax; new "special operators" if you like, by expressing new operators in terms of existing ones. 2021-01-08T04:39:44Z stargazesparkle: So it's like an automatic copy and paste sort of into existing code 2021-01-08T04:40:11Z mfiano: Macros are basically for two things: syntactic abstractions and evaluation control. 2021-01-08T04:40:21Z beach: I hadn't thought if it like that, but that's sort of accurate. 2021-01-08T04:40:23Z mfiano: If you need to create new syntax, or defer evaluation 2021-01-08T04:41:14Z beach: stargazesparkle: Another way of viewing it, is that you can program the compiler to recognize new syntax, because the compiler will expand a form with your new operator. That is the reason we don't have to wait for CL21, CL24, etc, in order to get new functionality. 2021-01-08T04:41:20Z beach: The application programmer can do it . 2021-01-08T04:41:46Z stargazesparkle: I'm struggling to think of an example of that 2021-01-08T04:41:53Z Nilby joined #lisp 2021-01-08T04:42:30Z stargazesparkle: Would arrow macros be considered new syntax 2021-01-08T04:42:38Z mfiano: For example, you can't re-implement `AND` as a function, because of its short-circuiting behavior. Function arguments are evaluated before application. 2021-01-08T04:42:38Z beach: That's what I said. 2021-01-08T04:42:44Z beach: Oh, arrow macros 2021-01-08T04:42:45Z beach: ? 2021-01-08T04:43:09Z mfiano: stargazesparkle: Yes 2021-01-08T04:43:24Z stargazesparkle: (-> 1 (+ 2 3) #'1+ 1+ (lambda (x) (+ x 1)) (1+)) 2021-01-08T04:43:39Z beach: Not sure what that means, but it looks like new syntax to me. 2021-01-08T04:43:45Z mfiano: beach: Arrow macros are a clojurism to remove nesting. 2021-01-08T04:43:53Z beach: I see. 2021-01-08T04:43:57Z stargazesparkle: Ye 2021-01-08T04:44:03Z beach: stargazesparkle: New syntax is whenever you have an opeartor that does not behave like a function. 2021-01-08T04:44:13Z stargazesparkle: Hmm 2021-01-08T04:44:18Z mfiano: (-> 1 (+ 2 3) #'1+) ; => (1+ (+ 1 2 3)) 2021-01-08T04:44:21Z mfiano: or something like that 2021-01-08T04:44:29Z stargazesparkle: Yes 2021-01-08T04:45:14Z mfiano: -> sends the preceding return value as the first argument to the unevaluated s-expression to construct a new s-expression, then evaluates it and repeats it down the chain 2021-01-08T04:45:27Z beach: Oh, the number of things #lisp participants are expected to master: Clojure, Python, JavaScript, Java, C#, all possible editors and IDEs, json, web stuff... 2021-01-08T04:45:32Z Bike quit (Quit: Lost terminal) 2021-01-08T04:45:38Z Oladon quit (Quit: Leaving.) 2021-01-08T04:46:22Z stargazesparkle: Yes 2021-01-08T04:46:38Z stargazesparkle: And because you have mastered them all you have been incredibly helpful 2021-01-08T04:47:29Z rogersm joined #lisp 2021-01-08T04:47:32Z stargazesparkle: However, I use the arrow-macros library on quicklisp because it is nice to do those threading things 2021-01-08T04:48:45Z mrios22: I have seen people use let* as a way to get threading-macro-like behavior. Some readers may find the progression to be clearer when it is written that way. 2021-01-08T04:49:07Z beach: stargazesparkle: So [and this goes for almost any language, really] a function evaluates all of its arguments before the function is invoked. You can write new functions in almost any language, like C, Java, etc. 2021-01-08T04:49:16Z mfiano: You can't use LET for threading macros. only to a very limited extent 2021-01-08T04:49:36Z beach: stargazesparkle: But if you want a new construct that doesn't behave like that, in most languages, you have to wait for the new standard. 2021-01-08T04:49:40Z stargazesparkle: I also use let* to break up nesting 2021-01-08T04:49:50Z miasuji quit (Ping timeout: 264 seconds) 2021-01-08T04:49:56Z beach: stargazesparkle: In Common Lisp, you use macros in situations like that. 2021-01-08T04:49:58Z notzmv quit (Remote host closed the connection) 2021-01-08T04:50:16Z stargazesparkle: That makes sense 2021-01-08T04:50:44Z beach: Now macros have a bad reputation because of the way they were implemented in C. 2021-01-08T04:50:54Z notzmv joined #lisp 2021-01-08T04:51:16Z beach: String transformation does not allow you to do the things you need for your new construct to integrate with the rest of the language. 2021-01-08T04:51:48Z beach: But Common Lisp macros are not string transformations. They rely on the fact that Common Lisp code has a standardized representation in memory. 2021-01-08T04:52:26Z rogersm quit (Ping timeout: 265 seconds) 2021-01-08T04:53:00Z beach: So Common Lisp macros are way more powerful than C macros, and they integrate completely with the rest of the language. So completely, in fact, that many standard Common Lisp operators are specified to be macros. 2021-01-08T04:54:26Z mfiano: Even languages that have AST reflection like Rust, Nim, or Julia, it's pretty laughable how painful it is to write a macro not being homoiconic. Though, for some reason, Julia (a python-like-syntax language) calls itself homoiconic... 2021-01-08T04:54:48Z beach: Good point, yes. 2021-01-08T04:55:38Z mfiano: Some newer languages that have true macros with painful AST node construction call themselves homoiconic because of that. I don't get it. 2021-01-08T04:55:40Z wxie quit (Ping timeout: 272 seconds) 2021-01-08T04:58:16Z beach: mfiano: I am often surprised to see people come here with their homegrown language that they desperately want to be "a Lisp". Maybe that "homoiconicity" phenomenon is a similar one. 2021-01-08T04:58:28Z recalloc joined #lisp 2021-01-08T04:58:33Z mfiano: Wikipedia: A language is homoiconic if a program written in it can be manipulated as data using the language, and thus the program's internal representation can be inferred just by reading the program itself. 2021-01-08T04:58:38Z Nilby: When I programmed in C, I used macros like I use them in Lisp, but it was just far far more painful, since it crreates clashing syntax, and the only operations you have are substitution and limited concatenation. The emacs and clisp C code are examples of such trouble. 2021-01-08T04:58:40Z mfiano: I don't particularly agree with that definition 2021-01-08T04:59:13Z beach: Yeah, that's not quite enough is it. 2021-01-08T05:02:02Z beach: stargazesparkle: Here is a small example (of an existing macro). Suppose I want an IF with no `else' branch, and an implicit PROGN, so that I can write (when (< x y) (print x) (print y)). 2021-01-08T05:02:08Z beach: stargazesparkle: Clearly, it is not possible to write WHEN as a function, because the PRINT forms would always be evaluated then. So I can write a macro like this (defmacro when (test &body) (list 'if test (cons 'progn body))) 2021-01-08T05:02:21Z thmprover quit (Quit: This parting was well made) 2021-01-08T05:02:57Z beach: stargazesparkle: When I write (when (< x y) (print x) (print y)) the compiler turns it into (if (< x y) (progn (print x) (print y))). 2021-01-08T05:03:11Z ppbitb joined #lisp 2021-01-08T05:03:31Z stargazesparkle: Won't that cause problems since the expanded macro has an if with only one branch? 2021-01-08T05:03:47Z mfiano: beach: like i said, laughable: https://gist.github.com/mfiano/d2258e1a8f42a93c04ad9e1f11c45a87 2021-01-08T05:03:50Z beach: That happens to be an acceptable form of IF. 2021-01-08T05:04:10Z beach: stargazesparkle: But I could have added a NIL to the `else' branch. 2021-01-08T05:04:27Z stargazesparkle: Interesting 2021-01-08T05:04:34Z beach: mfiano: Holy crap! 2021-01-08T05:05:01Z mfiano: Now image writing a practical macro completely with quoting and unquoting 2021-01-08T05:05:04Z mfiano: imagine* 2021-01-08T05:05:05Z beach: stargazesparkle: (defmacro when (test &body) (list 'if test (cons 'progn body) nil)) 2021-01-08T05:06:23Z beach: mfiano: Laughable indeed! Why do they never learn? 2021-01-08T05:06:34Z wxie joined #lisp 2021-01-08T05:06:39Z mfiano: I know a lot of these newer languages that try to be like Lisp fairly well, and it is enough to know that I don't ever want to use them. 2021-01-08T05:07:18Z saturn2: it's a really bizarre phenomenon, people who refuse to use lisp trying to mimic lisp 2021-01-08T05:07:31Z beach: saturn2: Exactly! 2021-01-08T05:07:54Z beach: Like I often say, people go to a lot of trouble to avoid learning Common Lisp. 2021-01-08T05:08:10Z mfiano: There's more languages than there were Linux distribution's 20 years ago, because their authors haven't experienced Lisp, or were poorly educated about Lisp in school as usual. 2021-01-08T05:09:19Z beach: Yes, education is to blame for a lot of it. 2021-01-08T05:09:21Z v88m quit (Ping timeout: 265 seconds) 2021-01-08T05:09:59Z beach: We (me and idurand) managed to teach Common Lisp to 120 undergraduates per year for 15 years or so, so I can say I did my part. 2021-01-08T05:10:23Z Nilby: Even when you have a Lisp-like language and only take away the homoiconicity, like in Dylan, the macro system becomes pretty crazy. Although Dylan is nearly the most sensible approach I can think of. 2021-01-08T05:10:24Z notzmv quit (Remote host closed the connection) 2021-01-08T05:10:26Z beach: Our "lectures" were done at the REPL. 2021-01-08T05:11:11Z notzmv joined #lisp 2021-01-08T05:12:18Z mfiano: I would say Julia would be the cloest language to one I would want to use, but still far away from wanting to use it. 2021-01-08T05:12:19Z Nilby: Sometime I feel like all CS/math lectures should be taught at a REPL. 2021-01-08T05:12:57Z beach: Nilby: Maybe not "all", but yes, I see your point. 2021-01-08T05:14:43Z notzmv quit (Remote host closed the connection) 2021-01-08T05:15:15Z mfiano: One thing that disappoints me is how professors insist on just using Microsoft Notepad or similar for learning CL. 2021-01-08T05:15:27Z mfiano: Didn't we just have a visitor yesterday that insisted on not using Emacs? 2021-01-08T05:15:52Z heisig joined #lisp 2021-01-08T05:16:25Z mfiano: It disappoints me because we don't have any books that instruct one should be using SLIME/Sly. They all start by introducing the syntax, which I feel is very wrong, because it gives a false impression. 2021-01-08T05:16:46Z stargazesparkle: Yeah that visitor was me 2021-01-08T05:16:52Z stargazesparkle: And now I have spacemacs 2021-01-08T05:17:33Z matryoshka` joined #lisp 2021-01-08T05:17:40Z matryoshka quit (Read error: Connection reset by peer) 2021-01-08T05:18:15Z stargazesparkle: Does let have an implicit progn? 2021-01-08T05:18:15Z mfiano: After all, one of the biggest criticisms are the parentheses, but newcomers don't understand that they don't have to count/balance them with the proper tools utilized. 2021-01-08T05:18:52Z stargazesparkle: (I use paredit) 2021-01-08T05:19:07Z mfiano: and they have no idea about the other introspection tools working with the image instead of sending text to a compiler. 2021-01-08T05:21:11Z mfiano: The sentence structure was completely messed up in that last message, but I think you get the point. Back to code 2021-01-08T05:22:16Z mankaev joined #lisp 2021-01-08T05:24:11Z karlosz joined #lisp 2021-01-08T05:24:19Z scymtym_ joined #lisp 2021-01-08T05:25:22Z scymtym quit (Ping timeout: 246 seconds) 2021-01-08T05:27:02Z mrios22: stargazesparkle: I think it has an implicit progn. You can check by writing one and doing a macro expansion. 2021-01-08T05:27:34Z beach: stargazesparkle: Yes, LET has an implicit PROGN. 2021-01-08T05:27:42Z beach: clhs let 2021-01-08T05:27:42Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_let_l.htm 2021-01-08T05:28:19Z mrios22: (let ((n 1) (m 2)) (format t "Is this an implicit progn?~&") (format t "So far it looks like an implicit progn~&") (+ n m)) 2021-01-08T05:28:27Z beach: stargazesparkle: See that form*? That means that you can put any number of forms there. 2021-01-08T05:28:48Z mrios22: stargazesparkle: That's my bargain basement check :) 2021-01-08T05:30:08Z mrios22: I have a question about test suites like 5am. If I want to use the tests to check the non-exported functions in my lisp files, then how do I do that? Or does the test suite have access to the non-exported functions in a package? 2021-01-08T05:30:37Z stargazesparkle: From what I gather 2021-01-08T05:30:46Z stargazesparkle: You could (in-package) your tests 2021-01-08T05:30:47Z beach: mrios22: Just use package::symbol. 2021-01-08T05:31:11Z mrios22: beach: fantastic, that was what I was looking for. 2021-01-08T05:31:19Z ppbitb left #lisp 2021-01-08T05:31:30Z mrios22: Thank you. I'm still pretty new to this 2021-01-08T05:31:50Z beach: That will change, don't worry. 2021-01-08T05:33:24Z remby joined #lisp 2021-01-08T05:33:34Z remby: help me pick a lisp 2021-01-08T05:33:57Z mrios22: remby: what do you need? What are you interested in? 2021-01-08T05:34:19Z mrios22: remby: Chances are that people on this channel will recommend Common Lisp because it can more or less do everything that you need. 2021-01-08T05:34:32Z remby: jit, small binary size, can build on various distros and unix 2021-01-08T05:35:03Z remby: I mean lisp compiler 2021-01-08T05:35:17Z remby: I think I'm in the common lisp channel right? 2021-01-08T05:36:24Z mrios22: remby: well, if you are looking for the ability to compile individual functions and files quickly, then Common Lisp can do that. I don't know anything about small or large binary sizes, sorry. And as far as I can tell, Common Lisp will work on any unix or linux that is out there. Most people here use sbcl as their common lisp compiler/interpreter. If you look up SBCL, you can figure out which platforms it operates on. 2021-01-08T05:36:42Z mrios22: remby: This is a common-lisp oriented channel, as far as I can tell. 2021-01-08T05:37:55Z mrios22: remby: you might want to take a look at Scheme as well. There are many implementations. My first lisp was Scheme. If you would like to learn about Lisp, CS, and scheme, you can read "The Structure and Interpretation of Computer Programs." It's free online. 2021-01-08T05:38:15Z remby: I've been trying out various schemes 2021-01-08T05:38:43Z remby: ran into a few issues with chicken so I decided to see what the common lisp scene was like 2021-01-08T05:39:08Z mrios22: remby: I ended up using Common Lisp as my main lisp because Common Lisp has standardization and quicklisp. 2021-01-08T05:39:43Z remby: you finished sicp? 2021-01-08T05:40:30Z mrios22: remby: Scheme is wonderful, but the implementation and library fragmentation scares me. Quicklisp is a library/package manager for Common Lisp implementations. I've never seen a library management system that is easy and convenient as ql. The author and maintainer of the quicklisp system, Xach, hangs out here and answers questions. 2021-01-08T05:40:46Z mrios22: remby: yes, I finished it, and my mind will be permanently altered (in a good way)! 2021-01-08T05:40:57Z remby: that's amazing 2021-01-08T05:41:04Z remby: I can't even fathom that 2021-01-08T05:41:27Z remby: there is fragmentation but that wasn't the main issue for me 2021-01-08T05:42:02Z remby: I guess I'm just looking for a reliable compiler 2021-01-08T05:43:05Z mrios22: With all languages the main question is "can it help me do what I need to do and be helpful rather than a huge hinderance, and can I think in this language without too much trouble" -- so Scheme can be good for some things and CL better for others. For example, if I ever needed to make use of continuations, I would work with Scheme. 2021-01-08T05:43:35Z remby: they aren't in common lisp? 2021-01-08T05:43:51Z mrios22: remby: People on this channel tend to be big fans of SBCL as a compiler. I switched from Clojure and Scheme to CL because SBCL is such a helpful and powerful compiler. 2021-01-08T05:44:24Z remby: hmm 2021-01-08T05:44:34Z pillton quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-08T05:44:37Z mrios22: remby: Some libraries have implemented continuations. CL is so powerful that you can implement something like continuations. I'm not an expert, you probably should talk to phoe about this, but I think you can implement continuations using the CL condition system. 2021-01-08T05:44:50Z remby: what wait? 2021-01-08T05:45:09Z mrios22: remby: The Weblocks library implemented continuations so they could have a continuation-based web platform. 2021-01-08T05:45:13Z remby: how even 2021-01-08T05:45:30Z remby: that's nutty 2021-01-08T05:46:05Z jonatack quit (Ping timeout: 240 seconds) 2021-01-08T05:46:42Z mrios22: remby: That's a level of wizardry that's beyond me, honestly! I don't know how to implement continuations. At times I feel like I barely understand them. I think people in CL land avoid continuations for several reasons: they're hard to implement, hard to understand, and usually you can get away with not using them. A Scheme expert named Oleg once wrote an article talking about how continuations are probably not a good idea. Let me see 2021-01-08T05:46:42Z mrios22: if I can find the link for you. 2021-01-08T05:47:27Z mrios22: remby: http://okmij.org/ftp/continuations/ 2021-01-08T05:47:48Z remby: oh this guy 2021-01-08T05:47:53Z remby: has a lot of notes :P 2021-01-08T05:48:02Z jonatack joined #lisp 2021-01-08T05:48:08Z remby: thanks 2021-01-08T05:48:14Z remby: how long did sicp take? 2021-01-08T05:48:22Z stargazesparkle: Is a LET inside of a LET a bad practice? Or should I use setq to redefine a declared variable? 2021-01-08T05:48:26Z rogersm joined #lisp 2021-01-08T05:48:36Z mrios22: remby: several months. Some ideas I didn't understand until a year later! 2021-01-08T05:48:56Z remby: I see 2021-01-08T05:49:00Z mfiano: You should never use SETQ, not even anywhere else. 2021-01-08T05:49:06Z stargazesparkle: O 2021-01-08T05:49:13Z mfiano: For additional bindings, just add more bindings to the same LET. 2021-01-08T05:49:15Z stargazesparkle: What about setting a global variable? 2021-01-08T05:49:28Z mrios22: remby: it's like a mathematics textbook. Read it slowly, do the exercises, let your mind expand to the right dimensions before you continue XD 2021-01-08T05:49:42Z stargazesparkle: Well what if I need to do some processing before needing another binding 2021-01-08T05:49:50Z mfiano: Global variables are a code smell. Avoid them whenever possible. Common Lisp's "globals" are not true globals anyway, as they have a stack of bindings of their own. 2021-01-08T05:50:49Z stargazesparkle: Ex. I need to get a RESPONSE. That response may have a TOKEN. I want to do some branching if it doesn't have a TOKEN and some if it does. That does processing requires me to get another RESPONSE. 2021-01-08T05:50:55Z mfiano: That's what functions are for, no? 2021-01-08T05:50:56Z mrios22: remby: Back to your original question -- I'd try out SBCL and your favorite scheme implementation, and check out Clojure too. After some hacking you'll figure out what is best for your needs. :) I settled on Common Lisp because I feel like it has the best of all worlds and the people on this IRC are very nice and helpful. Have fun -- I need to get on the road :) 2021-01-08T05:51:22Z mfiano: (let* ((a (do-something)) (b (do-something-to-a a))) ..) 2021-01-08T05:51:40Z remby: yeah, thanks 2021-01-08T05:51:42Z remby: cya 2021-01-08T05:51:46Z stargazesparkle: Er... maybe better if I just post what I am working with 2021-01-08T05:53:13Z rogersm quit (Ping timeout: 260 seconds) 2021-01-08T05:53:14Z oni-on-ion joined #lisp 2021-01-08T05:53:23Z stargazesparkle: https://gist.github.com/StargazeSparkle/9a1bac1a5fc48fcc735973471977c08f#file-spellcheck-lisp-L51 2021-01-08T05:55:01Z stargazesparkle: That line there I need to work with that response 2021-01-08T05:55:34Z stargazesparkle: Should I do another let to bind it or is there a way for me to create a nil binding in the first let and then set the value later if I need it 2021-01-08T05:57:55Z karlosz quit (Quit: karlosz) 2021-01-08T05:58:16Z mrios22 quit (Ping timeout: 246 seconds) 2021-01-08T06:09:14Z beach: remby: Contrary to what mrios22 said, you can't implement first-class continuation in portable Common Lisp. 2021-01-08T06:09:50Z remby: beach: so is this done is a special compiler? 2021-01-08T06:10:29Z beach: It is usually not done. 2021-01-08T06:10:39Z beach: And when it is, you get only limited continuations. 2021-01-08T06:11:29Z beach: But first-class continuations are problematic for Common Lisp in general. Stuff like files that close and exit points that might expire. 2021-01-08T06:13:05Z fiddlerwoaroof: stargazesparkle: if the variables reference each other, you can use LET* 2021-01-08T06:13:17Z fiddlerwoaroof: clhs let* 2021-01-08T06:13:18Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_let_l.htm 2021-01-08T06:13:22Z stargazesparkle: I need to maybe bind later 2021-01-08T06:13:29Z stargazesparkle: I know about let* 2021-01-08T06:13:38Z rumbler31_ quit (Ping timeout: 265 seconds) 2021-01-08T06:14:06Z stargazesparkle: But I need an if in between bindings because I can't continue if I don't get an expected value 2021-01-08T06:14:07Z fiddlerwoaroof: Ah, yeah there I'd just do another let 2021-01-08T06:14:07Z beach: stargazesparkle: There is no simple rule about nesting LETs, using LET*, and using SETQ/SETF. Each one has its use in particular situations. 2021-01-08T06:14:08Z pp joined #lisp 2021-01-08T06:16:05Z beach: remby: Contrary to what mrios22 said, SBCL does not fulfill your requirement for small executables. 2021-01-08T06:16:11Z rumbler31_ joined #lisp 2021-01-08T06:16:29Z remby: hrm 2021-01-08T06:16:35Z remby: the jit too? 2021-01-08T06:16:43Z beach: remby: You may want to look into ECL instead for that. Then, I don't understand the obsession with small executables now that people stuff entire operating systems inside a "container". 2021-01-08T06:16:57Z beach: remby: I don't understand your question. 2021-01-08T06:17:18Z remby: does any common lisp compiler provide a jit? 2021-01-08T06:17:37Z flazh1 quit (Ping timeout: 264 seconds) 2021-01-08T06:17:39Z beach: remby: I don't think so. Why do you need it? 2021-01-08T06:17:40Z fiddlerwoaroof: Depends what you mean by "jit" 2021-01-08T06:17:56Z remby: hot code to native 2021-01-08T06:18:08Z fiddlerwoaroof: SBCL compiles everything to native 2021-01-08T06:18:22Z remby: I don't need one, I just want one :P 2021-01-08T06:18:25Z fiddlerwoaroof: stargazesparkle: I added a comment with one possibility 2021-01-08T06:18:27Z narimiran joined #lisp 2021-01-08T06:18:30Z remby: fiddlerwoaroof: ah 2021-01-08T06:19:03Z fiddlerwoaroof: stargazesparkle: If the "else" side of your IF is just going to be NIL, you might consider using WHEN instead 2021-01-08T06:19:06Z sauvin joined #lisp 2021-01-08T06:19:45Z beach: minion: Memo for mrios22: Try to avoid giving advice about subject you don't know. 2021-01-08T06:19:46Z minion: Remembered. I'll tell mrios22 when he/she/it next speaks. 2021-01-08T06:20:17Z stargazesparkle: fiddlerwoaroof: I am going to add error information there 2021-01-08T06:21:13Z aeth: it took way too long for someone to point out LET* 2021-01-08T06:21:13Z stargazesparkle: Say I have '((1 2) (3 4)) and '(5 6) how do I produce '((1 2) (3 4) (5 6))? 2021-01-08T06:21:29Z beach: clhs append 2021-01-08T06:21:29Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_append.htm 2021-01-08T06:21:41Z beach: (append x (list y)) 2021-01-08T06:21:44Z stargazesparkle: LET* won't work here btw 2021-01-08T06:21:51Z stargazesparkle: I tried to use cons 2021-01-08T06:21:53Z beach: Sure it will. 2021-01-08T06:21:54Z stargazesparkle: Because I am dumb 2021-01-08T06:22:12Z remby: cons will not work there 2021-01-08T06:22:34Z beach: (let* ((x '((1 2) (3 4))) (y '(5 6)) (z (append x (list y)))) ...) 2021-01-08T06:22:49Z galex-713 joined #lisp 2021-01-08T06:22:52Z stargazesparkle: That is not what I was talking about :P 2021-01-08T06:23:20Z remby: '(((1 2) (3 4)) (5 6)) 2021-01-08T06:23:32Z fiddlerwoaroof: stargazesparkle: I'm not sure if I have enough information to answer the question, what are you trying to do in the gist :) 2021-01-08T06:23:37Z stargazesparkle: append works great 2021-01-08T06:23:54Z beach: It usually does, yes. 2021-01-08T06:25:13Z remby: does anyone know where or if sbcl is used in prod? 2021-01-08T06:25:19Z beach: It is. 2021-01-08T06:25:20Z stargazesparkle: I am sending an http request that may or may not result in a token. If I get a token I need to send that token back in another http request. If when I do that it may or may not give me another token. If I do not get the first token then I need to return an error message because I cannot proceed further. 2021-01-08T06:25:21Z remby: just curious 2021-01-08T06:25:23Z remby: oh 2021-01-08T06:25:25Z beach: By Google for instance. 2021-01-08T06:25:32Z remby: wha, woah 2021-01-08T06:25:33Z skapata quit (Remote host closed the connection) 2021-01-08T06:26:12Z beach: Google bought ITS which used SBCL for it's main product, an airline route thing. 2021-01-08T06:26:42Z White_Flame: I've deployed it to the largest nuclear power plant in the western hemisphere 2021-01-08T06:26:59Z fiddlerwoaroof: White_Flame: cool 2021-01-08T06:27:29Z fiddlerwoaroof: It's also been into space 2021-01-08T06:27:52Z stargazesparkle: lispworks gets the credit for the Hubble Telescope iirc 2021-01-08T06:27:56Z fiddlerwoaroof: http://www.flownet.com/gat/jpl-lisp.html 2021-01-08T06:28:06Z remby: wow 2021-01-08T06:28:09Z beach: remby: Don't get too excited. It is easy to think that a company is a homogeneous thing. In reality, companies consist of people, so the people who used to work for ITS probably got "bought up" with the company. That doesn't mean that Google as a whole has a policy of using SBCL. 2021-01-08T06:28:15Z fiddlerwoaroof: They even connected to a REPL on a spacecraft and fixed a bug :) 2021-01-08T06:28:35Z fiddlerwoaroof: beach: according to someone, they tried to rewrite ITA's product in C++ 2021-01-08T06:28:37Z remby: it's still impressive, used for such intense projects 2021-01-08T06:28:54Z fiddlerwoaroof: They ended up with like 10x as much code and only marginal speed improvements, IIRC 2021-01-08T06:28:59Z fiddlerwoaroof: So they scrapped the rewrite 2021-01-08T06:29:06Z beach: fiddlerwoaroof: Why am I not surprised? It has happened before. Viaweb as I recall, but maybe it wasn't C++. 2021-01-08T06:29:17Z beach: fiddlerwoaroof: Heh, nice! 2021-01-08T06:29:19Z fiddlerwoaroof: Yeah, this time it has a happy ending :) 2021-01-08T06:29:37Z remby ponders sbcl 2021-01-08T06:30:00Z beach: remby: Like I said, it doesn't correspond to your requirements for small executables. 2021-01-08T06:30:10Z saturn2: google published some open source CL libraries and a style guide, so i guess they're using it internally at least a little bit 2021-01-08T06:30:25Z remby: oh right 2021-01-08T06:30:48Z White_Flame: if you wanted smaller deployables, I guess you could ship .fasls? 2021-01-08T06:30:50Z beach: saturn2: Actually, it was Fare who wrote that style guide. 2021-01-08T06:31:01Z White_Flame: exactly the same as having the JVM installed and distributing class files 2021-01-08T06:31:05Z beach: saturn2: He just happened to work for Google then. 2021-01-08T06:31:12Z saturn2: i see 2021-01-08T06:31:18Z fiddlerwoaroof: It depends what you mean by "small", really 2021-01-08T06:31:23Z beach: saturn2: Again, companies consist of people. This style guide was not written by Google management. 2021-01-08T06:31:32Z fiddlerwoaroof: My sbcl executables are like 32M 2021-01-08T06:31:43Z fiddlerwoaroof: Much smaller than most of the other programs on my computer 2021-01-08T06:31:53Z White_Flame: when you take 32GB of heap space, the 32MB doesn't really count for much 2021-01-08T06:32:00Z remby: lol 2021-01-08T06:32:03Z fiddlerwoaroof: IntelliJ is like 1+G 2021-01-08T06:32:08Z White_Flame: and of course hard drives don't really perceive that amount of space anymore 2021-01-08T06:32:27Z saturn2: beach: but companies generally have rules too, most employees can't just start using any language they feel like 2021-01-08T06:32:43Z beach: saturn2: More often than you may think. :) 2021-01-08T06:32:49Z fiddlerwoaroof: Slack is 182M 2021-01-08T06:33:15Z fiddlerwoaroof: saturn2: you can't use "just any language" for mission critical software 2021-01-08T06:33:19Z beach: saturn2: What most managers don't understand is the fundamental CS result of code/data equivalence. 2021-01-08T06:33:47Z aeth: saturn2: acquisitions are special 2021-01-08T06:33:47Z fiddlerwoaroof: But, you can use it to make things work better for you and then sneakernet the resulting tools to your coworkers :) 2021-01-08T06:33:58Z beach: saturn2: So you can present your new language as an input format for a program written in a different language. They won't understand what happened to them. 2021-01-08T06:34:00Z White_Flame: fiddlerwoaroof: but you might use "just any language" for the test/dev deployment of the next version of the mission critical stuff 2021-01-08T06:34:07Z fiddlerwoaroof: :) 2021-01-08T06:34:26Z beach: saturn2: That's how I introduced Lisp in a Pascal-only shop, a long time ago mind you. 2021-01-08T06:34:29Z White_Flame: but yeah, tooling is a great place to inject lisp 2021-01-08T06:34:30Z fiddlerwoaroof: Yeah, I think with .NET the prototype of the GC was written in CL 2021-01-08T06:34:44Z White_Flame: especially as a code generator 2021-01-08T06:36:00Z saturn2: beach: interesting 2021-01-08T06:36:32Z moon-child: fiddlerwoaroof: yeah, iirc they wrote a tool to automatically translate it to c++ 2021-01-08T06:36:42Z beach: saturn2: Programmers are way too eager to follow rules established by people who have no clue of software development or computer science. 2021-01-08T06:36:45Z moon-child: and today it's still a single 30k loc file 2021-01-08T06:38:02Z White_Flame: you're giving me bad flashbacks of cyc and powerloom 2021-01-08T06:38:14Z beach: saturn2: This is even more important because the people who establish those rules don't understand what is best for the company they manage. 2021-01-08T06:38:19Z remby: since common lisp is so old, how is concurrency in common lisp? 2021-01-08T06:38:37Z White_Flame: remby: better than most languages 2021-01-08T06:38:45Z stargazesparkle: is (append (list '((1 2) (3 4)) (list (list 5 6))) clear? 2021-01-08T06:38:46Z beach: remby: There is a well-established thread culture. 2021-01-08T06:38:55Z White_Flame: with dynamic bindings being thread-local as a particular standout 2021-01-08T06:39:12Z stargazesparkle: Er... (append '((1 2) (3 4)) (list (list 5 6))) I mean 2021-01-08T06:39:14Z fiddlerwoaroof: I first started using CL because it didn't have a GIL and it was relatively easy to get a noticeable performance boost from threads 2021-01-08T06:39:27Z remby: what is a GIL? 2021-01-08T06:39:33Z fiddlerwoaroof: Global Interpreter Lock 2021-01-08T06:39:35Z beach: stargazesparkle: Sure, but why avoid the quotes for the last part? 2021-01-08T06:39:44Z aeth: seems like a style mismatch to me 2021-01-08T06:39:46Z fiddlerwoaroof: Python/Ruby/Ocaml all limit you to one active thread at a time 2021-01-08T06:39:51Z fiddlerwoaroof: (or did) 2021-01-08T06:39:58Z aeth: Ocaml is slowly removing it 2021-01-08T06:40:00Z fiddlerwoaroof: JS is just single-threaded 2021-01-08T06:40:04Z stargazesparkle: That last part is not going to be '(5 6) but more like `(5 ,x) 2021-01-08T06:40:12Z White_Flame: well, JS has web workers, and threaded I/O in the background 2021-01-08T06:40:14Z remby: i just keep getting impressed :^) 2021-01-08T06:40:20Z fiddlerwoaroof: Haskell has a decent multithread story, but you have to buy into the whole Haskell thing 2021-01-08T06:40:38Z fiddlerwoaroof: The only system that's better on the concurrency front is the JVM/Clojure, IMO 2021-01-08T06:40:40Z White_Flame: but "JS is just single-threaded" is accurate enough :-P 2021-01-08T06:40:50Z fiddlerwoaroof: JS has fake threads 2021-01-08T06:40:54Z remby: fiddlerwoaroof: it's pretty nice in go 2021-01-08T06:41:04Z fiddlerwoaroof: Yeah, I always forget about go 2021-01-08T06:41:10Z remby: have not tried clojure yet 2021-01-08T06:41:15Z fiddlerwoaroof: Can't stand the way it looks 2021-01-08T06:41:23Z remby: waah? 2021-01-08T06:41:45Z fiddlerwoaroof: It's in the Java tradition of high-boilerplate languages 2021-01-08T06:41:47Z remby: they fixed a lot and accommodated the C syntax family 2021-01-08T06:41:48Z jprajzne joined #lisp 2021-01-08T06:41:55Z fiddlerwoaroof: Plus, it looks like C 2021-01-08T06:42:00Z White_Flame: fiddlerwoaroof: js web workers are real OS threads 2021-01-08T06:42:12Z remby: well, I heard somewhere that is a key to language survival :P 2021-01-08T06:42:33Z fiddlerwoaroof: White_Flame: yeah, but the programming model is pretty different 2021-01-08T06:43:00Z fiddlerwoaroof: Are they on node? 2021-01-08T06:43:25Z beach: remby: Homoiconicity is essential for avoiding boilerplate code. 2021-01-08T06:43:47Z beach: remby: Let me repeat this again: People go to a lot of trouble to avoid learning Common Lisp. 2021-01-08T06:44:28Z remby: I will say block structure is difficult in lisp, at least visually 2021-01-08T06:44:37Z beach: Not really no. 2021-01-08T06:44:37Z remby: syntax matters 2021-01-08T06:45:00Z andreyorst joined #lisp 2021-01-08T06:45:01Z beach: remby: Oh it does, as in C syntax makes macros impossible, so boilerplate code becomes the norm. 2021-01-08T06:45:07Z remby: not sure what it is in CL, but nested map or for-each in scheme can be a bit tricky 2021-01-08T06:45:33Z fiddlerwoaroof: remby: I find CL encourages me to write programs as compositions of simple functions 2021-01-08T06:45:33Z moon-child: syntax does matter, but lisp syntax is excellent imo. (Not as good as apl, but still very good.) 2021-01-08T06:45:36Z remby: beach: D has macros 2021-01-08T06:45:47Z remby: fiddlerwoaroof: yes 2021-01-08T06:45:51Z moon-child: remby: d doesn't have macros, it has 'string mixins', which are much worse 2021-01-08T06:45:56Z fiddlerwoaroof: Because when you have like three or for levels of nested forms, it gets ugly 2021-01-08T06:45:58Z remby: oh 2021-01-08T06:46:02Z fiddlerwoaroof: But, this is goodd 2021-01-08T06:46:05Z remby: I guess this is what rust does too? 2021-01-08T06:46:10Z beach: remby: I think you have no idea what Common Lisp macros can do. They rely on homoiconicity. 2021-01-08T06:46:42Z moon-child: rust has macros, but they're hygienic, which limits their power. And rust isn't homoiconic which makes them much less interesting 2021-01-08T06:46:44Z remby: I didn't not look much into macros yet, tbh 2021-01-08T06:46:45Z fiddlerwoaroof: Elixir has macros, and they even square the circle, sort of 2021-01-08T06:47:06Z fiddlerwoaroof: Dylan also solved the "non-expression macros" problem, I think 2021-01-08T06:47:15Z fiddlerwoaroof: "non s-expression macros", that is 2021-01-08T06:47:31Z beach: remby: Macros are the reason we don't have to wait for CL21, CL24, CL27 etc, to get new features that we want. 2021-01-08T06:47:40Z aartaka joined #lisp 2021-01-08T06:47:47Z remby: I get that :) 2021-01-08T06:48:26Z remby: another example, having a let expression with mutple variable is hard to read if it's all on the same line 2021-01-08T06:48:42Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-08T06:48:57Z moon-child: well, don't put it on the same line 2021-01-08T06:48:58Z moon-child: :) 2021-01-08T06:49:05Z beach: Exactly! 2021-01-08T06:49:06Z fiddlerwoaroof: We have big monitors these days 2021-01-08T06:49:07Z remby: pft, easy way out :P 2021-01-08T06:49:36Z White_Flame: I've never seen (let ((a 1) (b 2)...) ...) on one line in real code. Only IRC one-liners 2021-01-08T06:49:44Z beach: Same here. 2021-01-08T06:49:57Z beach: remby: I think you are inventing situations that don't occur in practice. 2021-01-08T06:50:12Z remby: no, just what happened when I coded on my own 2021-01-08T06:50:29Z fiddlerwoaroof: Nothing is as hard to read as this: https://github.com/lkowalick/j-interpreter/blob/master/source.c 2021-01-08T06:50:37Z beach: Oh, you complain about your own code? 2021-01-08T06:51:01Z remby: is that an IOCC entry? lol 2021-01-08T06:51:21Z moon-child: fiddlerwoaroof: eh, it takes practice. Like anything, you have to learn it before you can understand it easily 2021-01-08T06:51:31Z fiddlerwoaroof: People who write APL have weird senses of C aesthetics 2021-01-08T06:51:46Z remby: beach: yeah 2021-01-08T06:52:15Z remby: people who write apl are legendary 2021-01-08T06:52:22Z moon-child: remby: I mean, you can declare variables all on the same line in pretty much any language. I struggle to think of one where you can't 2021-01-08T06:52:34Z beach: remby: So there is one great disadvantage with Common Lisp. It can't fix code produced by bad programmers. 2021-01-08T06:52:51Z remby: ah, poor me 2021-01-08T06:53:23Z moon-child: fiddlerwoaroof: I think that can mostly be attributed to arthur whitney. APL-related c codebases not influenced by him tend to look much more normal 2021-01-08T06:54:02Z remby: c books usually say not do this ;) 2021-01-08T06:55:30Z aeth: someone needs to translate that into CL. Not cleaning it up 2021-01-08T06:55:52Z aeth: the main thing CL forces you to do is put spaces between (most) tokens, which even Python doesn't force you to do. 2021-01-08T06:55:56Z aeth: So you'd gain some readability 2021-01-08T07:00:52Z saturn2: it's a nice touch that there's a comment explaining the simple wrapper around malloc 2021-01-08T07:01:07Z saturn2: yeah that's the part i was really having trouble with 2021-01-08T07:01:31Z moon-child: I think that's somebody else who was annotating the original code and got stuck halfway through 2021-01-08T07:01:54Z saturn2: oh that makes sense 2021-01-08T07:01:58Z moon-child: the original code is https://code.jsoftware.com/wiki/Essays/Incunabulum and has no comments 2021-01-08T07:02:30Z remby: :') 2021-01-08T07:02:42Z remby: imagine getting that on your desk 2021-01-08T07:02:56Z anticrisis joined #lisp 2021-01-08T07:03:42Z aeth: remby: that looks like the output of a debugger for someone who wrote an s-expression->C DSL and decided to make it minified instead of human readable 2021-01-08T07:04:01Z ex_nihilo joined #lisp 2021-01-08T07:04:52Z jprajzne quit (Ping timeout: 272 seconds) 2021-01-08T07:05:16Z aeth: although, to be fair, it could be worse. 0: #\t 1: #\y 2: #\p ... 2021-01-08T07:05:51Z aeth: That's why you do "pretty print" instead of inspect on strings in SLIME 2021-01-08T07:08:04Z aartaka quit (Read error: Connection reset by peer) 2021-01-08T07:08:33Z contrapunctus left #lisp 2021-01-08T07:08:45Z contrapunctus joined #lisp 2021-01-08T07:09:13Z remby: I guess you guys all use emacs? 2021-01-08T07:09:46Z moon-child quit (Remote host closed the connection) 2021-01-08T07:09:53Z earenndil joined #lisp 2021-01-08T07:10:42Z flip214: remby: no, a few vim people are around as well. 2021-01-08T07:10:52Z remby: cool 2021-01-08T07:11:28Z earenndil is now known as moon-child 2021-01-08T07:12:10Z solideogloria[m]: remby: no 2021-01-08T07:12:21Z solideogloria[m]: well sometimes 2021-01-08T07:12:36Z solideogloria[m]: I keep switching between emacs,vim and acme :D 2021-01-08T07:12:48Z remby: acme, that's wild 2021-01-08T07:13:12Z fiddlerwoaroof: remby: I started with vim/slimv 2021-01-08T07:13:15Z fiddlerwoaroof: I still use it occasionally, it works pretty well 2021-01-08T07:13:17Z fiddlerwoaroof: aeth: someone on HN explained why the code looks like that. Basically, the more global a name is, the easier it is to remember because it's used more, so why waste characters on a descriptive name? 2021-01-08T07:13:33Z solideogloria[m]: I like the mouse chords in acme 2021-01-08T07:14:19Z solideogloria[m]: and I use a script that automatically adds or removes parens depending on the selection 2021-01-08T07:14:23Z remby: kinda amusing we drag these environments around, but then again, the ones that support them are not always sufficient 2021-01-08T07:14:41Z remby: solideogloria[m]: cool 2021-01-08T07:14:53Z remby: you don't miss paren highlight? 2021-01-08T07:15:24Z solideogloria[m]: I have a script that simulates what emacs does when you add a closing paren 2021-01-08T07:15:37Z solideogloria[m]: creates a new window and tells what function it terminates 2021-01-08T07:15:50Z solideogloria[m]: so it takes care of that 2021-01-08T07:15:51Z mrios22 joined #lisp 2021-01-08T07:16:51Z solideogloria[m]: but I mostly toy around in acme, :) 2021-01-08T07:17:29Z solideogloria[m]: vim and emacs are way better experiences 2021-01-08T07:18:25Z nicktick quit (Ping timeout: 240 seconds) 2021-01-08T07:19:03Z beach: remby: To most experienced Common Lisp programmers, parentheses are transparent. They just don't exist. Indentation is what gives the clue to the program structure. 2021-01-08T07:19:24Z rgherdt joined #lisp 2021-01-08T07:19:25Z remby: I guess 2021-01-08T07:19:31Z remby: what about when you are at the repl 2021-01-08T07:19:35Z nicktick joined #lisp 2021-01-08T07:19:39Z beach: Indentation works there too. 2021-01-08T07:19:43Z remby: I've gotten lost trying to close parens a few times 2021-01-08T07:20:07Z remby: but those lisps didn't have much for their repl 2021-01-08T07:20:12Z beach: The corresponding opening parenthesis should blink for you. 2021-01-08T07:20:21Z solideogloria[m]: Paren highlight works in the repl as well 2021-01-08T07:20:24Z beach: "those lisps"? 2021-01-08T07:20:31Z solideogloria[m]: oh you mean the bare repl ? 2021-01-08T07:20:37Z remby: yeah 2021-01-08T07:20:39Z attila_lendvai joined #lisp 2021-01-08T07:20:43Z solideogloria[m]: I thought you meant something like slime 2021-01-08T07:20:52Z beach: remby: Never use a bare REPL. Always use SLIME. 2021-01-08T07:21:00Z remby: haha, I see :) 2021-01-08T07:21:16Z solideogloria[m]: remby take a look at sbcli if you want something more featureful than rlwrap for sbcl 2021-01-08T07:21:32Z beach: remby: You would typically have a split Emacs frame with the REPL in one window and one or more buffers next to it. 2021-01-08T07:21:33Z solideogloria[m]: https://github.com/hellerve/sbcli 2021-01-08T07:22:49Z remby: solideogloria[m]: thanks 2021-01-08T07:23:29Z solideogloria[m]: gives an experience like haskells ghci 2021-01-08T07:24:01Z ralt joined #lisp 2021-01-08T07:24:09Z stargazesparkle: I need to figure out smooth scrolling on Emacs 2021-01-08T07:24:53Z solideogloria[m]: smooth-scrolling is a package right ? 2021-01-08T07:25:18Z remby: of course it's in melpa :P 2021-01-08T07:25:27Z luckless quit (Quit: luckless) 2021-01-08T07:25:55Z stargazesparkle: I just want the mouse wheel to not scroll a whole screen 2021-01-08T07:26:01Z stargazesparkle: Just like a line at a time 2021-01-08T07:26:13Z luckless joined #lisp 2021-01-08T07:26:35Z beach: stargazesparkle: It is much faster to avoid the mouse altogether. 2021-01-08T07:26:54Z solideogloria[m]: (setq scroll-step 1) ? 2021-01-08T07:26:59Z stargazesparkle: The key bindings for navigation are stupid af in Emacs 2021-01-08T07:27:04Z beach: stargazesparkle: For code, use things like M-f M-b, C-M-f, C-M-b, C-M-t etc. 2021-01-08T07:27:06Z contrapunctus left #lisp 2021-01-08T07:27:26Z solideogloria[m]: that's why evil mode exists :) 2021-01-08T07:27:28Z beach: stargazesparkle: Which ones? 2021-01-08T07:27:30Z Nilby: stargazesparkle: mwheel-scroll-amount 2021-01-08T07:27:38Z contrapunctus joined #lisp 2021-01-08T07:28:17Z stargazesparkle: I'm using spacemacs atm so I don't have to deal with stupid things like multi-key chords to move a line up or down 2021-01-08T07:29:18Z beach: stargazesparkle: It is much more efficient for Common Lisp code to move by program units than by lines/characters. Plus, if you DO want to move up a line, C-p and C-n work fine. Even the arrow keys. 2021-01-08T07:29:44Z beach: Since the control key and n/p are on different fingers, they are both instantaneous. 2021-01-08T07:29:47Z fiddlerwoaroof: Yeah, I use C-M-u, C-M-f a ton, once I discovered them 2021-01-08T07:29:56Z stargazesparkle: HJKL are much nicer 2021-01-08T07:30:23Z beach: OK, you use those then. Good luck. 2021-01-08T07:30:33Z fiddlerwoaroof: The thing is, in CL you want motion commands that move by lists 2021-01-08T07:30:58Z beach: stargazesparkle: But please don't use words like "stupid" for the habits you don't understand. 2021-01-08T07:31:09Z fiddlerwoaroof: I almost want to go to "the opening parentheses" and so I hit C-M-u 2021-01-08T07:31:25Z fiddlerwoaroof: s/almost/almost always/ 2021-01-08T07:31:31Z beach: I use C-M-a and C-M-e a lot. 2021-01-08T07:31:41Z fiddlerwoaroof: Yeah, those too 2021-01-08T07:31:56Z fiddlerwoaroof: C-M-k to kill an expression 2021-01-08T07:32:41Z stargazesparkle: C and M are so far out of the way which makes them really inconvenient because I have to remove one hand from a typing position to strike them 2021-01-08T07:33:10Z solideogloria[m]: in vim it's just a % to switch between closing and starting parens 2021-01-08T07:33:14Z solideogloria[m]: in normal mode 2021-01-08T07:33:20Z beach: stargazesparkle: Put Control where capslock is, and use C-[ instead of M- 2021-01-08T07:33:28Z fiddlerwoaroof: solideogloria[m]: you have to be on the parens for that 2021-01-08T07:33:48Z beach: stargazesparkle: Again, please don't have opinions about habits you don't know. 2021-01-08T07:34:15Z fiddlerwoaroof: If you're at the beginning of the second argument of a three-line if expression, C-M-u takes you to the opening parens of the if expression 2021-01-08T07:35:11Z stargazesparkle: You can criticize the usability of something without having to go and adopt it first 2021-01-08T07:35:34Z beach: stargazesparkle: That should be avoided if you are ignorant of the way it is used. 2021-01-08T07:35:47Z fiddlerwoaroof: Well, if you haven't learned to use something, you often don't understand the ergonomics 2021-01-08T07:36:30Z mrios22: I'm getting an error in the quicklisp fiveAM library. Can someone else replicate it to see if it's just me? I'm following the tutorial at http://turtleware.eu/posts/Tutorial-Working-with-FiveAM.html and I'm having trouble doing def-suite. Every time I try to run it, it raises an error saying that the name of the suite is undefined. 2021-01-08T07:36:30Z minion: mrios22, memo from beach: Try to avoid giving advice about subject you don't know. 2021-01-08T07:37:08Z solideogloria[m]: killing an expression in vim is a da( 2021-01-08T07:37:27Z fiddlerwoaroof: mrios22: I suspect you haven't imported the symbol into the current package 2021-01-08T07:37:57Z fiddlerwoaroof: solideogloria[m]: only if the expression is a list. C-M-k kills "a lisp expression" 2021-01-08T07:38:25Z beach: mrios22: Errors are not "raised" in Common Lisp. They are "signaled". 2021-01-08T07:38:43Z nicktick quit (Ping timeout: 246 seconds) 2021-01-08T07:38:45Z mrios22: beach: roger that. 2021-01-08T07:39:41Z nicktick joined #lisp 2021-01-08T07:40:45Z Mandus_ is now known as Mandus 2021-01-08T07:46:44Z mrios22: minion: ? I hope I didn't cause offense :) 2021-01-08T07:46:44Z minion: ? I hope I didn't cause offense ): An error was encountered in lookup: Parse error:URI "https://www.cliki.net/?%20I%20hope%20I%20didn't%20cause%20offense%20)?source" contains illegal character #\? at position 69.. 2021-01-08T07:47:29Z flip214: well done ... bug bounty applies, here's a "b" 2021-01-08T07:47:32Z phoe: mrios22: minion is a bit, the original note was from beach 2021-01-08T07:47:46Z mrios22: phoe: thanks 2021-01-08T07:48:39Z beach: A "bot" rather. 2021-01-08T07:48:45Z phoe: bot, yes, sorry 2021-01-08T07:48:52Z mrios22: fiddlerwoaroof: I can replicate the bug by doing (progn (ql:quickload :fiveam) (def-suite test-suite)) 2021-01-08T07:48:54Z beach: minion: Are you a bot? 2021-01-08T07:48:55Z minion: i'm not a bot. i prefer the term ``electronically composed''. 2021-01-08T07:49:11Z rogersm joined #lisp 2021-01-08T07:49:33Z mrios22: The error happens when I define the suite. 2021-01-08T07:51:06Z saturn2: that tutorial tells you to write defpackage and in-package forms, you need those 2021-01-08T07:53:36Z mrios22: saturn2: I discovered the problem in my file. I forgot the (in-package ...) command. Thanks. 2021-01-08T07:54:12Z rogersm quit (Ping timeout: 256 seconds) 2021-01-08T07:56:01Z slyrus quit (Remote host closed the connection) 2021-01-08T07:56:12Z slyrus joined #lisp 2021-01-08T08:08:30Z aartaka joined #lisp 2021-01-08T08:11:22Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T08:12:11Z amb007 joined #lisp 2021-01-08T08:14:15Z anticrisis quit (Read error: Connection reset by peer) 2021-01-08T08:14:26Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T08:17:55Z jonatack quit (Ping timeout: 246 seconds) 2021-01-08T08:18:20Z jonatack joined #lisp 2021-01-08T08:19:47Z luckless quit (Quit: luckless) 2021-01-08T08:20:05Z luckless joined #lisp 2021-01-08T08:20:40Z amb007 joined #lisp 2021-01-08T08:21:32Z Cymew joined #lisp 2021-01-08T08:23:51Z luckless quit (Client Quit) 2021-01-08T08:24:09Z luckless joined #lisp 2021-01-08T08:26:25Z varjag joined #lisp 2021-01-08T08:42:56Z solideogloria[m]: this might be a dumb question, but how do I check if the variable given to case is equal to multiple keys than just one for each form? 2021-01-08T08:43:35Z solideogloria[m]: (or key1 key2) form works, but it gives a style warning 2021-01-08T08:44:28Z ralt: what's the warning? 2021-01-08T08:44:47Z solideogloria[m]: duplicate key because I used (or key1 key2) twice 2021-01-08T08:45:40Z contrapunctus left #lisp 2021-01-08T08:46:44Z gaqwas joined #lisp 2021-01-08T08:47:04Z beach: solideogloria[m]: Just put all keys in a list. 2021-01-08T08:47:18Z beach: (case x ((key2 key2) ...)) 2021-01-08T08:47:22Z beach: clhs case 2021-01-08T08:47:22Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_case_.htm 2021-01-08T08:47:25Z liberliver joined #lisp 2021-01-08T08:47:47Z makomo joined #lisp 2021-01-08T08:48:10Z beach: Notice that normal-clause has (keys form*) in it. 2021-01-08T08:48:31Z beach: And notice that keys is a "designator for a list of objects" 2021-01-08T08:49:38Z contrapunctus joined #lisp 2021-01-08T08:49:42Z beach: So it is not a type specifier, which means that your OR is just another key. 2021-01-08T08:50:09Z rogersm joined #lisp 2021-01-08T08:50:30Z beach: So if you used OR in more than one clause, that might be the reason for the warning. 2021-01-08T08:53:02Z beach: solideogloria[m]: Look in the glossary for "list designator". Then you will see that NIL designates an empty list, and any other atom designates a singleton list containing that atom. 2021-01-08T08:54:08Z pve joined #lisp 2021-01-08T08:54:20Z jprajzne joined #lisp 2021-01-08T08:54:49Z rogersm quit (Ping timeout: 264 seconds) 2021-01-08T08:55:39Z beach: solideogloria[m]: Does that makes sense to you? 2021-01-08T09:05:23Z beach fears the answer is "no" :( 2021-01-08T09:06:35Z hendursa1 joined #lisp 2021-01-08T09:08:21Z remby quit (Quit: remby) 2021-01-08T09:08:43Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-08T09:08:50Z remby joined #lisp 2021-01-08T09:10:28Z phoe: beach: they'll respond, have faith and patience 2021-01-08T09:14:28Z beach: Oh, OK. :) 2021-01-08T09:17:01Z scymtym__ joined #lisp 2021-01-08T09:17:56Z scymtym_ quit (Ping timeout: 240 seconds) 2021-01-08T09:23:10Z solideogloria[m]: got it beach 2021-01-08T09:24:05Z beach: Great! 2021-01-08T09:25:35Z bilegeek quit (Quit: Leaving) 2021-01-08T09:26:15Z cosimone joined #lisp 2021-01-08T09:32:33Z nicktick quit (Ping timeout: 260 seconds) 2021-01-08T09:37:35Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-08T09:42:40Z frodef joined #lisp 2021-01-08T09:48:04Z Bubo_ joined #lisp 2021-01-08T09:49:38Z Bubo_ left #lisp 2021-01-08T09:50:28Z orivej joined #lisp 2021-01-08T09:50:35Z norserob quit (Quit: leaving) 2021-01-08T09:51:06Z BuboBubo joined #lisp 2021-01-08T09:54:23Z luckless quit (Ping timeout: 240 seconds) 2021-01-08T09:54:59Z luckless joined #lisp 2021-01-08T10:00:35Z BuboBubo quit 2021-01-08T10:10:09Z stargazesparkle: What is this called: (1 . 2) 2021-01-08T10:10:20Z stargazesparkle: I am trying to learn what to call things 2021-01-08T10:10:29Z phoe: a cons cell 2021-01-08T10:10:39Z phoe: whose CAR is the integer 1 and whose CDR is the integer 2 2021-01-08T10:11:02Z stargazesparkle: What if I didn't have the .? 2021-01-08T10:11:05Z beach: Dotted pair. 2021-01-08T10:11:11Z phoe: then it would be a list of two elements 2021-01-08T10:11:12Z stargazesparkle: Is that just a cons? 2021-01-08T10:11:17Z phoe: (1 2) === (1 . (2 . NIL)) 2021-01-08T10:11:25Z beach: (1 . 2) is a dotted pair. 2021-01-08T10:11:31Z stargazesparkle: Oh fuck that makes sense 2021-01-08T10:11:33Z beach: (1 2) is a proper list. 2021-01-08T10:11:46Z phoe: lists are made of conses 2021-01-08T10:11:54Z phoe: and conses are made of magic 2021-01-08T10:12:13Z wxie quit (Ping timeout: 264 seconds) 2021-01-08T10:12:27Z stargazesparkle: (:a 1) is just a list too right? 2021-01-08T10:12:28Z frodef: NIL is the magic cons. 2021-01-08T10:12:37Z frodef: yes 2021-01-08T10:13:08Z phoe: yes, it's (:A . (1 . NIL)) 2021-01-08T10:13:28Z phoe: frodef: actually NIL is not a cons 2021-01-08T10:13:55Z frodef: a list is defined recursively as either the empty list NIL, or ( . ) 2021-01-08T10:14:18Z frodef: phoe: hence it's magic ;) 2021-01-08T10:14:37Z phoe: frodef: a proper list, if we'd like the strict terms 2021-01-08T10:14:47Z phoe: lists can be proper, improper, circular 2021-01-08T10:14:59Z phoe: proper end with a NIL, improper end with a non-NIL, circular... don't end 2021-01-08T10:14:59Z saturn2: magic because the reader magically knows () is another way of writing NIL? 2021-01-08T10:15:12Z saganman joined #lisp 2021-01-08T10:15:27Z frodef: saturn2: and because (car nil) is nil. 2021-01-08T10:15:43Z saturn2: oh 2021-01-08T10:15:45Z frodef: ..and cdr, obviously. 2021-01-08T10:15:52Z phoe: that's a special case of CAR and CDR though, rather than an effect of NIL hypothetically being a cons 2021-01-08T10:15:57Z mankaev quit (Read error: Connection reset by peer) 2021-01-08T10:16:32Z frodef: phoe: yes, but it's sometimes useful to think of as a cons-cell that points to itself. 2021-01-08T10:17:19Z beach: Maybe, but that would confuse the hell out of newbies. 2021-01-08T10:17:26Z cosimone quit (Quit: cosimone) 2021-01-08T10:17:31Z frodef: isn't that what we're here for? 2021-01-08T10:17:37Z norserob joined #lisp 2021-01-08T10:17:49Z beach: Some people here seem to have that as an objective, sure. :) 2021-01-08T10:17:52Z phoe: well yes, and (typep nil 'cons) ;=> NIL 2021-01-08T10:18:16Z frodef: well, shouldn't be too confusing to anyone comfortable with pointers and linked lists, really. 2021-01-08T10:18:18Z phoe: so looking from the strict point of view, NIL isn't a cons - even if it kinda sorta behaves like one when put to CAR and CDR 2021-01-08T10:18:40Z phoe: Schemers will also heavily disagree because their CARs and CDRs signal errors with empty lists instead 2021-01-08T10:19:42Z phoe: I think that when someone goes for details and background info then it's important to know that CAR/CDR of NIL is NIL instead of an error purely for practical reasons 2021-01-08T10:20:32Z beach: And for hysterical raisins. 2021-01-08T10:20:51Z stargazesparkle: This has cleared up some of the confusion that I had 2021-01-08T10:21:26Z phoe: NIL being both a symbol and a list is actually a bit troublesome when it comes to optimizing list accesses 2021-01-08T10:21:32Z mankaev joined #lisp 2021-01-08T10:21:38Z beach: stargazesparkle: Good. What you need to keep in mind is that a Common Lisp list is not an abstract data type. You constantly need to think about how it is represented. 2021-01-08T10:22:06Z Nilby: NIL being magic is a convenience that points to a deeper truth 2021-01-08T10:22:11Z phoe: the two common ways of representing NIL internally are representing it as a symbol and special-casing CAR/CDR, or representing it as a weird cons similar to (NIL . NIL) and special-casing tons of symbol operators 2021-01-08T10:22:42Z stargazesparkle: What do you mean by thinking about how it is represented 2021-01-08T10:22:44Z frodef: phoe: tons? Isn't it about 5? 2021-01-08T10:22:55Z phoe: frodef: well, compared to CAR/CDR 2021-01-08T10:23:01Z phoe: the former means that CAR/CDR are a bit slower now and they're heavily used in Lisp code; the latter means that things in the symbol world are gonna get messy because symbols also tend to be used a lot in some programs 2021-01-08T10:23:05Z phoe: stargazesparkle: how NIL is implemented 2021-01-08T10:23:27Z frodef: i'd say NIL is used tons more as a cons than as a symbol. 2021-01-08T10:23:38Z random-nick joined #lisp 2021-01-08T10:23:46Z frodef: well, mostly it's used for its identity, I guess. 2021-01-08T10:23:53Z stargazesparkle: How do you differentiate between it's use as a symbol and as a cons? 2021-01-08T10:24:07Z phoe: stargazesparkle: by writing it in code in a different way 2021-01-08T10:24:09Z Alfr_: stargazesparkle, it's never a cons. 2021-01-08T10:24:16Z trocado quit (Ping timeout: 240 seconds) 2021-01-08T10:24:19Z phoe: oh right - as a symbol and as a list 2021-01-08T10:24:25Z phoe: NIL, 'NIL, (), '() 2021-01-08T10:24:32Z phoe: these are four different ways conveying different meanings 2021-01-08T10:24:38Z stargazesparkle: Okay 2021-01-08T10:24:51Z stargazesparkle: I've only used the first thus far 2021-01-08T10:25:08Z phoe: (defun foo nil 42) would be a very bad way of defining a function though 2021-01-08T10:25:14Z mrios22 quit (Ping timeout: 264 seconds) 2021-01-08T10:25:22Z beach: stargazesparkle: () is used for empty parameter lists. 2021-01-08T10:25:35Z stargazesparkle: Yeah I have used that form then 2021-01-08T10:26:00Z stargazesparkle: What does it mean when a ' prefixes a label or expression? 2021-01-08T10:26:06Z stargazesparkle: Like 'nil 2021-01-08T10:26:14Z Duuqnd joined #lisp 2021-01-08T10:26:16Z phoe: oh 2021-01-08T10:26:21Z phoe: you *need* to read an intro book to Lisp 2021-01-08T10:26:24Z phoe: like PCL or Gentle 2021-01-08T10:26:37Z phoe: it is a quote, and quoting is one of the most important mechanisms of Lisp dialects in general 2021-01-08T10:26:49Z stargazesparkle: I have read absolutely no books lol and am just brute forcing this shit so far 2021-01-08T10:26:57Z stargazesparkle: I should though 2021-01-08T10:27:00Z phoe: that's... a tough way of learning 2021-01-08T10:27:05Z phoe: (list pi 'pi pi 'pi) 2021-01-08T10:27:06Z stargazesparkle: It's been rough 2021-01-08T10:27:11Z phoe: no wonder it's been rough 2021-01-08T10:27:20Z beach: For the teachers as well. 2021-01-08T10:27:21Z Alfr_: stargazesparkle, or memorize the spec. ;) 2021-01-08T10:27:57Z stargazesparkle: Idk what #'1+ really means either but I do know that I can do that to sort of pass 1+ to another function 2021-01-08T10:28:08Z phoe: minion: tell stargazesparkle about pcl 2021-01-08T10:28:09Z minion: stargazesparkle: look at pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005). 2021-01-08T10:28:17Z phoe: please digest that one first 2021-01-08T10:28:40Z beach: Now I keep forgetting where in the Common Lisp HyperSpec those different uses of NIL are discussed. 2021-01-08T10:28:43Z phoe: it'll tell you all you want to know about ' and #' and how they differ and how they're used. 2021-01-08T10:28:51Z Alfr_: clhs 2.4.8.2 2021-01-08T10:28:51Z specbot: Sharpsign Single-Quote: http://www.lispworks.com/reference/HyperSpec/Body/02_dhb.htm 2021-01-08T10:28:58Z Alfr_: stargazesparkle, ^ 2021-01-08T10:30:27Z stargazesparkle: Oh okay that makes sense 2021-01-08T10:30:44Z stargazesparkle: I swear I'm not dumb I just don't know the names of things 2021-01-08T10:31:21Z mankaev quit (Read error: Connection reset by peer) 2021-01-08T10:32:09Z mankaev joined #lisp 2021-01-08T10:32:16Z ralt: you are actually dumb because you don't want to read a few chapters of a free online book that will give you all the names of things you need :) 2021-01-08T10:32:37Z stargazesparkle: This is going to be like that one time I tried learning C and wrote code like *********deck because I don't actually know what a pointer was 2021-01-08T10:32:44Z stargazesparkle: I'll read it when I wake up 2021-01-08T10:33:01Z stargazesparkle: Atm I am too sleepy to digest something as dense as a book 2021-01-08T10:33:24Z phoe: go get your rest then 2021-01-08T10:33:48Z saganman quit (Ping timeout: 260 seconds) 2021-01-08T10:34:33Z stargazesparkle: I can't sleep yet 2021-01-08T10:34:39Z stargazesparkle: I'm just... in a limbo 2021-01-08T10:35:42Z frodef: lispbo? 2021-01-08T10:37:47Z phoe: well, this does sound like a problem #lisp cannot help you with 2021-01-08T10:38:04Z stargazesparkle: I'm sure there is a macro for it 2021-01-08T10:38:15Z stargazesparkle: Har har 2021-01-08T10:38:27Z stargazesparkle: Anyway GN and thanks y'all 2021-01-08T10:41:37Z lowryder quit (Ping timeout: 264 seconds) 2021-01-08T10:43:12Z lowryder joined #lisp 2021-01-08T10:50:53Z rogersm joined #lisp 2021-01-08T10:55:32Z rogersm quit (Ping timeout: 256 seconds) 2021-01-08T10:55:55Z oni-on-ion: that reminds me of learning C (on wolfenstein3d source code). did not know pointers for a while 2021-01-08T11:01:49Z EZEK joined #lisp 2021-01-08T11:02:16Z EZEK: hi 2021-01-08T11:02:28Z beach: Hello EZEK. 2021-01-08T11:02:34Z phoe: heyyy 2021-01-08T11:03:05Z EZEK: how are yall? 2021-01-08T11:03:13Z beach: That's off topic :) 2021-01-08T11:03:18Z phoe: beach: xD 2021-01-08T11:03:32Z phoe: come on, let's not be *this* orthodox 2021-01-08T11:03:51Z beach: EZEK: What can we do for you? 2021-01-08T11:04:19Z phoe: I don't imagine #lisp as a place where small amounts of greetings and small chat are considered offtopic 2021-01-08T11:04:37Z beach: EZEK: You are new here right? 2021-01-08T11:04:52Z beach: phoe: Hence the smiley. 2021-01-08T11:06:08Z phoe: Internet transfers emotions really poorly; the smiley could be read as sarcasm when lacking context, and I kinda don'have context because I know you 2021-01-08T11:06:17Z phoe: might not be the case for other/new people 2021-01-08T11:06:32Z phoe: s/don'have/do have/ 2021-01-08T11:08:20Z beach: OK, I apologize. 2021-01-08T11:08:24Z beach: EZEK: ^. 2021-01-08T11:09:11Z phoe: no problem; it's just the issue of IRC being a poor fit for some things, like all protocols that perform human-to-text transformations 2021-01-08T11:09:18Z phoe: EZEK: what's up? 2021-01-08T11:10:55Z aorst joined #lisp 2021-01-08T11:11:10Z andreyorst quit (Ping timeout: 246 seconds) 2021-01-08T11:20:01Z dilated_dinosaur quit (Ping timeout: 264 seconds) 2021-01-08T11:25:39Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-08T11:30:46Z pfdietz quit (Remote host closed the connection) 2021-01-08T11:35:03Z hendursa1 quit (Ping timeout: 240 seconds) 2021-01-08T11:37:36Z hendursa1 joined #lisp 2021-01-08T11:40:46Z norserob quit (Remote host closed the connection) 2021-01-08T11:41:00Z rogersm joined #lisp 2021-01-08T11:41:58Z jmercouris: good morning everyone 2021-01-08T11:43:27Z phoe: heyyy 2021-01-08T11:46:35Z v3ga quit (Ping timeout: 272 seconds) 2021-01-08T11:48:49Z jonatack quit (Quit: jonatack) 2021-01-08T11:50:38Z norserob joined #lisp 2021-01-08T11:51:50Z rogersm_ joined #lisp 2021-01-08T11:52:07Z jonatack joined #lisp 2021-01-08T11:56:20Z vegansbane6 joined #lisp 2021-01-08T11:56:32Z v3ga joined #lisp 2021-01-08T11:56:32Z mrios22 joined #lisp 2021-01-08T11:56:36Z jonatack quit (Ping timeout: 240 seconds) 2021-01-08T11:56:37Z rogersm_ quit (Ping timeout: 264 seconds) 2021-01-08T11:57:03Z jonatack joined #lisp 2021-01-08T11:58:15Z EZEK quit (Read error: Connection reset by peer) 2021-01-08T11:58:47Z rogersm quit (Quit: Leaving...) 2021-01-08T12:01:02Z paul0 joined #lisp 2021-01-08T12:01:23Z zxcvz joined #lisp 2021-01-08T12:05:16Z v88m joined #lisp 2021-01-08T12:10:19Z Stanley00 quit (Remote host closed the connection) 2021-01-08T12:10:38Z surabax joined #lisp 2021-01-08T12:11:36Z jeosol quit (Remote host closed the connection) 2021-01-08T12:14:46Z Bubo_ joined #lisp 2021-01-08T12:23:41Z Bubo_ quit 2021-01-08T12:24:04Z BuboBubo_ joined #lisp 2021-01-08T12:27:46Z BuboBubo_ left #lisp 2021-01-08T12:37:36Z scymtym__ is now known as scymtym 2021-01-08T12:41:51Z jmercouris: I have the unicode ID for a character, how can I convert that to the actual character? 2021-01-08T12:41:58Z jmercouris: I.E. I have 97, I would like to get a lowercase A 2021-01-08T12:42:01Z jmercouris: 'A' 2021-01-08T12:42:16Z frodef: CODE-CHAR ? 2021-01-08T12:42:25Z frodef: denoted #\A in CL. 2021-01-08T12:42:38Z jmercouris: frodef: right 2021-01-08T12:42:44Z jmercouris: that is not guaranteed to be unicode though, is it? 2021-01-08T12:42:45Z gko_ joined #lisp 2021-01-08T12:43:00Z jackdaniel: it would be conforming for the implementation to return #\x 2021-01-08T12:43:22Z frodef: jmercouris: that's implementation-dependent, I believe. 2021-01-08T12:43:22Z jmercouris: right, so it happens to work on some implementations, but it is no guarantee 2021-01-08T12:43:23Z jackdaniel: afair the only gurantee is that (eql char (code-char (char-code char))) 2021-01-08T12:43:39Z jmercouris: I guess I will just have to settle for that 2021-01-08T12:44:04Z jackdaniel: from the practical standpoint it will be usually unicode though (or at least ascii) 2021-01-08T12:44:45Z phoe: for all practical purposes code-char is good on all implementations that implement unicode 2021-01-08T12:44:46Z frodef: there are libraries like cl-unicode that I'm guessing deals with this. 2021-01-08T12:44:54Z phoe: also cl-unicode 2021-01-08T12:45:21Z jmercouris: hm, OK, thanks for the help 2021-01-08T12:45:28Z jmercouris: I will look into these shims if it comes to be a problem 2021-01-08T12:46:48Z imode quit (Ping timeout: 260 seconds) 2021-01-08T12:49:37Z isBEKaml joined #lisp 2021-01-08T12:52:44Z rogersm joined #lisp 2021-01-08T12:57:53Z rogersm quit (Ping timeout: 260 seconds) 2021-01-08T12:58:50Z orivej quit (Ping timeout: 256 seconds) 2021-01-08T13:06:43Z andreyorst joined #lisp 2021-01-08T13:08:01Z scymtym quit (Ping timeout: 264 seconds) 2021-01-08T13:08:25Z aorst quit (Ping timeout: 246 seconds) 2021-01-08T13:10:28Z akoana joined #lisp 2021-01-08T13:21:46Z isBEKaml quit (Quit: leaving) 2021-01-08T13:22:32Z birdwing joined #lisp 2021-01-08T13:22:34Z igemnace quit (Quit: WeeChat 3.0) 2021-01-08T13:34:13Z dbotton joined #lisp 2021-01-08T13:35:07Z mrios22 quit (Remote host closed the connection) 2021-01-08T13:38:10Z stzsch|2 joined #lisp 2021-01-08T13:38:36Z gutter` joined #lisp 2021-01-08T13:38:52Z stzsch quit (Read error: Connection reset by peer) 2021-01-08T13:38:52Z gutter quit (Read error: Connection reset by peer) 2021-01-08T13:40:02Z dilated_dinosaur joined #lisp 2021-01-08T13:40:20Z dbotton quit (Quit: Leaving) 2021-01-08T13:41:05Z hendursa1 quit (Quit: hendursa1) 2021-01-08T13:41:23Z hendursaga joined #lisp 2021-01-08T13:41:36Z scymtym joined #lisp 2021-01-08T13:44:03Z luckless quit (Ping timeout: 240 seconds) 2021-01-08T13:44:55Z rpg joined #lisp 2021-01-08T13:45:23Z wsinatra joined #lisp 2021-01-08T13:45:26Z galex-713 quit (Read error: Connection reset by peer) 2021-01-08T13:45:55Z galex-713 joined #lisp 2021-01-08T13:53:37Z luckless joined #lisp 2021-01-08T13:53:44Z rogersm joined #lisp 2021-01-08T13:55:02Z Blackraider joined #lisp 2021-01-08T13:57:30Z Blackraider quit (Remote host closed the connection) 2021-01-08T13:57:45Z Cymew quit (Ping timeout: 240 seconds) 2021-01-08T13:58:25Z rogersm quit (Ping timeout: 264 seconds) 2021-01-08T14:04:21Z Bike joined #lisp 2021-01-08T14:08:25Z rumbler31_ quit (Ping timeout: 240 seconds) 2021-01-08T14:12:56Z Cymew joined #lisp 2021-01-08T14:13:31Z todun joined #lisp 2021-01-08T14:14:41Z pfdietz joined #lisp 2021-01-08T14:16:26Z trocado joined #lisp 2021-01-08T14:19:01Z dbotton joined #lisp 2021-01-08T14:19:43Z pfdietz: NIL punning is a bit of ancestral baggage in Common Lisp. Scheme got rid of it, but also had many other differences. 2021-01-08T14:20:52Z trocado quit (Ping timeout: 246 seconds) 2021-01-08T14:21:32Z frodef: scheme got rid of most of the things that are great about CL, imo. 2021-01-08T14:23:29Z mrios22 joined #lisp 2021-01-08T14:25:33Z euandreh quit (Ping timeout: 272 seconds) 2021-01-08T14:26:27Z jmercouris: I'm using gtk_widget_get_size_request from this page: https://developer.gnome.org/gtk3/stable/GtkWidget.html 2021-01-08T14:26:42Z jmercouris: what I am trying to figure out is how to make a pointer to some memory address in CFFI 2021-01-08T14:27:02Z jmercouris: because gtk_widget_get_size_request is supposed to populate the addresses with the correct values of the calculations 2021-01-08T14:27:10Z euandreh joined #lisp 2021-01-08T14:27:22Z jackdaniel: you know, this is documented in cffi manual 2021-01-08T14:27:31Z jmercouris: here is the twist 2021-01-08T14:27:36Z jmercouris: I am doing this with cl gobject introspection 2021-01-08T14:27:58Z jmercouris: therefore, I am not sure doing it the way I described will even work 2021-01-08T14:28:28Z jmercouris: also it is a "gint" 2021-01-08T14:28:30Z jmercouris: not an "int" 2021-01-08T14:28:33Z jmercouris: whatever that means 2021-01-08T14:28:42Z jmercouris: so I can't exactly just declare a int, can I? 2021-01-08T14:29:49Z jmercouris: so yes, I COULD (cffi:make-pointer 1) 2021-01-08T14:29:59Z jmercouris: but I don't know if that makes any sense 2021-01-08T14:30:47Z phoe: what type is a gint under the hood? 2021-01-08T14:30:56Z jmercouris: I have no idea I'm afraid 2021-01-08T14:31:15Z jackdaniel: https://stackoverflow.com/questions/42398762/why-does-gtk-have-gint-gdouble-which-are-just-typedef 2021-01-08T14:31:31Z jackdaniel: second result in dgg under "gtk gint" 2021-01-08T14:31:55Z jmercouris: I see, I haven't had much luck in the past with searching for GTK lore 2021-01-08T14:31:58Z jackdaniel: you could invest some time in searching for information skill 2021-01-08T14:31:59Z jmercouris: I am usually only looking at the documentation 2021-01-08T14:32:03Z pfdietz: I think cffi could use some optimization. I made a change to it recently that sped up an application that uses it by about 10%. 2021-01-08T14:32:24Z jmercouris: pfdietz: you're telling me, we have CFFI performance problems ALL the time 2021-01-08T14:34:30Z frodef quit (Quit: ERC (IRC client for Emacs 26.3)) 2021-01-08T14:35:24Z sjl joined #lisp 2021-01-08T14:35:37Z rumbler31_ joined #lisp 2021-01-08T14:36:28Z hiroaki quit (Ping timeout: 260 seconds) 2021-01-08T14:36:50Z Duuqnd quit (Remote host closed the connection) 2021-01-08T14:36:58Z hiroaki joined #lisp 2021-01-08T14:37:22Z Duuqnd joined #lisp 2021-01-08T14:37:34Z pfdietz: https://github.com/cffi/cffi/commit/83ff6f0e34faaa7639ed17dd32ea80f1c4fdc418 2021-01-08T14:37:51Z hiroaki quit (Remote host closed the connection) 2021-01-08T14:38:19Z pfdietz: EQL hash tables can be much faster than EQUAL hash tables. With the former, lookups on :uint32 were mostly hitting the hash table previous key cache. 2021-01-08T14:38:43Z hiroaki joined #lisp 2021-01-08T14:39:47Z pfdietz: I'm sure there are many other pieces of low hanging fruit. For example, it doesn't have to constantly be rechecking for typedef circularity. 2021-01-08T14:41:20Z _death: this kind of performance naiveté is not limited to cffi.. we're just Lisp programmers abiding by Perlis ;) 2021-01-08T14:42:05Z frost-lab quit (Quit: Connection closed) 2021-01-08T14:43:01Z hiroaki quit (Remote host closed the connection) 2021-01-08T14:44:23Z hiroaki joined #lisp 2021-01-08T14:47:32Z pfdietz: On the plus side, it lets us engage in performance yak shaving. 2021-01-08T14:47:51Z ebrasca joined #lisp 2021-01-08T14:53:04Z scymtym quit (Ping timeout: 240 seconds) 2021-01-08T14:58:52Z luckless_ joined #lisp 2021-01-08T14:59:19Z waleee-cl joined #lisp 2021-01-08T15:00:45Z _death: there are a zillion testing libraries, but not a lot of benchmarking libraries.. asdf has a test-op but no benchmark-op.. 2021-01-08T15:01:03Z luckless quit (Ping timeout: 240 seconds) 2021-01-08T15:01:25Z pfdietz: My other performance peeve: json parsers. 2021-01-08T15:04:31Z phoe: pfdietz: zulu.inuoe is working on this 2021-01-08T15:05:02Z pfdietz: I know there was discussion recently about it. 2021-01-08T15:05:12Z phoe: I'll race him a little bit, once I finish yak shaving a state machine library 2021-01-08T15:11:35Z Cymew quit (Ping timeout: 265 seconds) 2021-01-08T15:11:35Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T15:11:53Z amb007 joined #lisp 2021-01-08T15:12:26Z jmercouris: ah... yes a state machine library, I am working on one as well 2021-01-08T15:12:29Z jmercouris: for internal reasons though 2021-01-08T15:14:47Z phoe: what is yours going to be like? 2021-01-08T15:15:24Z jmercouris: I will be using it for machine learning purposes 2021-01-08T15:15:24Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T15:15:33Z jmercouris: so it will just have a class called 'state' 2021-01-08T15:15:42Z jmercouris: and there will be a slot called transitions 2021-01-08T15:15:47Z jmercouris: and there will also be transition objects 2021-01-08T15:15:53Z jmercouris: transition objects can contain guards, predicates, etc 2021-01-08T15:16:05Z amb007 joined #lisp 2021-01-08T15:16:09Z jmercouris: the whole point of this FSM is to model nominal operation of a system 2021-01-08T15:16:23Z jmercouris: when the system detects an errant transition, a guard not satisfied, etc, it signals an error 2021-01-08T15:16:48Z jmercouris: to elaborate, the slot called transitions will contain a list of transition objects 2021-01-08T15:17:25Z phoe: oh, sounds nice 2021-01-08T15:17:33Z jmercouris: the really cool thing about this model is that it can be trained by observing a system under nominal conditions 2021-01-08T15:17:52Z jmercouris: therefore I do not have to program 'what' to look for, I only give it some signals, and these are modeled by the system and saved in the transition objects 2021-01-08T15:18:19Z jmercouris: it's not a terribly complex system, but my goal is not performance or anything, but adaptability/customizability 2021-01-08T15:18:33Z jmercouris: as I will be using it to model and observe non-uniform systems 2021-01-08T15:18:57Z phoe: I'm trying to get compile-time checks for invalid transitions and such in my own FSM 2021-01-08T15:19:07Z jmercouris: that's pretty cool 2021-01-08T15:19:10Z jmercouris: how does that work at compile time? 2021-01-08T15:19:13Z jmercouris: are the transitions known at that time? 2021-01-08T15:19:31Z jmercouris: you have a description language for writing out your FSM? 2021-01-08T15:19:33Z phoe: first you define a state machine that lists all transitions, so which states can go into which states 2021-01-08T15:19:38Z jmercouris: I see 2021-01-08T15:19:53Z jmercouris: and then what is a so-called invalid transition? 2021-01-08T15:20:05Z jmercouris: a transition that does not exist in your drawn out FSM? 2021-01-08T15:20:06Z phoe: then you define what a given state does, and it has access to the info stored in a state machine information 2021-01-08T15:20:36Z phoe: and therefore a macroexpander for a given state can check if a transition is allowed in the state machine 2021-01-08T15:20:49Z phoe: if it's allowed, it can expand into proper code; if it's not, it can signal a macroexpansion-time error 2021-01-08T15:20:51Z iamFIREcracker joined #lisp 2021-01-08T15:20:52Z jmercouris: hm I see 2021-01-08T15:21:00Z jmercouris: what kind of applications do you see for this? 2021-01-08T15:21:06Z phoe: a JSON parser :D 2021-01-08T15:21:09Z jmercouris: 11 2021-01-08T15:21:19Z jmercouris: ay yai yai, it all comes back to this 2021-01-08T15:21:30Z jmercouris: well, a good a usage as any 2021-01-08T15:22:30Z phoe: but, no, I want to be able to compile my state machine into a single tagbody form 2021-01-08T15:22:44Z jmercouris: I see, that will be a pretty novel approach 2021-01-08T15:22:45Z phoe: (well, a PROG form, to be precise) 2021-01-08T15:23:07Z phoe: no CLOS, no MOP, no method calls, no structs, no anything - just LET over BLOCK over TAGBODY that uses generated GO forms to jump across states 2021-01-08T15:23:11Z scymtym joined #lisp 2021-01-08T15:23:21Z phoe: if I do it correctly, I'll also be able to test individual states rather than the whole state machine at once 2021-01-08T15:23:32Z phoe: should be fast. 2021-01-08T15:23:33Z jmercouris: that's crazy, you are basically writing ASM 2021-01-08T15:23:45Z phoe: (tagbody 10 (print "yes") 20 (go 10)) 2021-01-08T15:24:07Z jmercouris: except you are rather writing a system to write ASM 2021-01-08T15:24:16Z jmercouris: you are writing a compiler for a JSON parser in a way 2021-01-08T15:24:41Z jmercouris: every time we write a macro, we are writing a mini compiler 2021-01-08T15:24:43Z jmercouris: if I think about it 2021-01-08T15:25:18Z luckless_ quit (Quit: luckless_) 2021-01-08T15:25:45Z luckless joined #lisp 2021-01-08T15:28:11Z phoe: well, if a compiler transforms source code into source code 2021-01-08T15:28:23Z phoe: then each macro function is a compiler 2021-01-08T15:28:55Z phoe: and since each idempotent mostly-pure function is allowed to be a good macro function... 2021-01-08T15:29:12Z phoe thinks, has he accidentally been writing compilers for the past few years? 2021-01-08T15:29:59Z nicktick joined #lisp 2021-01-08T15:34:29Z frodef joined #lisp 2021-01-08T15:36:17Z jmercouris: phoe: you have, without knowing it 2021-01-08T15:36:42Z jmercouris: that's the difference between a Lisp developer and other developers 2021-01-08T15:36:51Z jmercouris: a Lisp developer writes compilers on accident 2021-01-08T15:37:37Z jmercouris: its the itch I had so often in other languages, I didn't even know what I was missing 2021-01-08T15:37:52Z jmercouris: I always thought to myself, "but all of these stubs could be auto generated" 2021-01-08T15:38:10Z jmercouris: sure there were mechanisms, kludges you could use, but sometimes a macro is invaluable 2021-01-08T15:40:43Z jmercouris: anyways, preaching to the choir is pointless 2021-01-08T15:43:18Z phoe: hm 2021-01-08T15:50:27Z Duuqnd quit (Remote host closed the connection) 2021-01-08T15:51:17Z Xach: if not compilers, nanotranspilers 2021-01-08T15:52:16Z v88m quit (Read error: Connection reset by peer) 2021-01-08T15:53:33Z v88m joined #lisp 2021-01-08T15:53:43Z gaqwas quit (Remote host closed the connection) 2021-01-08T15:54:02Z _death: the compiler provides a hook for ad hoc extensions.. you can write an extension which is a compiler itself 2021-01-08T15:54:29Z rogersm joined #lisp 2021-01-08T15:55:42Z jmercouris: pjb would argue that transpilers aren't a thing 2021-01-08T15:55:46Z jmercouris: and that the only thing is compilers 2021-01-08T15:56:34Z msk_ joined #lisp 2021-01-08T15:56:35Z jmercouris: from Wikipedia "In computing, a compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language)" 2021-01-08T15:56:41Z phoe: _death: do you mean the infamous *macroexpand-hook*? 2021-01-08T15:56:47Z msk quit (Remote host closed the connection) 2021-01-08T15:56:50Z jmercouris: maybe he means GCC extensions 2021-01-08T15:56:54Z jmercouris: or LLVM frontends 2021-01-08T15:57:01Z _death: phoe: I mean macros 2021-01-08T15:57:27Z jmercouris: isn't it kind of redundant to say "extensible macros"? 2021-01-08T15:57:34Z jmercouris: aren't macros by definition extensions? 2021-01-08T15:57:39Z jmercouris: so shouldn't we call Emacs just Macs? 2021-01-08T15:57:49Z wsinatra quit (Ping timeout: 264 seconds) 2021-01-08T15:57:56Z _death: E is for editor? 2021-01-08T15:58:30Z jmercouris: yes, damnit :-D 2021-01-08T15:58:37Z jmercouris: EMACS (Editor MACroS) 2021-01-08T15:59:08Z pfdietz: I LOVE the macroexpand hook! 2021-01-08T15:59:15Z Josh_2 joined #lisp 2021-01-08T15:59:37Z rogersm quit (Ping timeout: 264 seconds) 2021-01-08T15:59:48Z Josh_2: Hi, has anyone got any experience serving videos from hunchentoot to ios users? 2021-01-08T16:00:18Z raamdev[m] quit (Quit: Idle for 30+ days) 2021-01-08T16:00:37Z jackdaniel: Josh_2: if you serve a big file, then you should be vary, that hunchentoot first loads the file into memory and after that it sends it 2021-01-08T16:00:43Z jmercouris: Josh_2: I have experience serving videos via Lisp 2021-01-08T16:00:52Z jmercouris: Josh_2: I VERY much strongly suggest letting a reverse proxy handle it 2021-01-08T16:00:59Z andreyorst_ joined #lisp 2021-01-08T16:01:02Z jmercouris: it will be significantly more performant 2021-01-08T16:01:11Z Josh_2: Well I use nginx 2021-01-08T16:01:20Z Josh_2: and pass traffic from nginx to my hunchentoot instance 2021-01-08T16:01:47Z Josh_2: the problem isn't just loading up videos and sending them jackdaniel, the problem is that safari has a very specific way you have to respond to certain headers 2021-01-08T16:01:49Z jmercouris: write a NGINX rule for this 2021-01-08T16:02:00Z jmercouris: and let it handle that directory separately 2021-01-08T16:02:05Z jmercouris: I'll show you a sample configuration file that I use 2021-01-08T16:02:08Z Josh_2: okay 2021-01-08T16:02:43Z jmercouris: Josh_2: 2021-01-08T16:02:44Z jmercouris: http://dpaste.com/2KTSY8AWK 2021-01-08T16:03:06Z jmercouris: as you can see, /static will be handled by Nginx, anything else will proxy pass through 2021-01-08T16:03:41Z Josh_2: right 2021-01-08T16:04:22Z Josh_2: okay I can have a similar config however the way my site works right now is you have a html page and within it a single video, the video is chosed based on a get parameter 2021-01-08T16:04:26Z Josh_2: chosen* 2021-01-08T16:05:07Z jmercouris: that is irrelevant 2021-01-08T16:05:15Z jmercouris: the assets on that page will still be fetched by Nginx 2021-01-08T16:05:23Z jmercouris: the page can be dynamically generated, but the content static 2021-01-08T16:05:28Z jmercouris: for example our homepage: https://nyxt.atlas.engineer 2021-01-08T16:05:35Z jmercouris: dynamically generated, the videos statically served 2021-01-08T16:05:38Z jmercouris: the images as well 2021-01-08T16:06:02Z jmercouris: am I making sense? 2021-01-08T16:06:07Z Josh_2: Yes I understand you completely 2021-01-08T16:06:10Z jmercouris: OK 2021-01-08T16:06:14Z Josh_2: but I don't think my example is so simple 2021-01-08T16:06:20Z jmercouris: are you sure? 2021-01-08T16:06:29Z jmercouris: unless the videos are dynamically generated, it is 2021-01-08T16:06:42Z jmercouris: even IF the videos are dynamically generated, you could write the file stream to the static directory 2021-01-08T16:06:52Z jmercouris: and have Nginx serve them 2021-01-08T16:07:05Z jeosol joined #lisp 2021-01-08T16:07:23Z Josh_2: how do I get nginx to select the correct file? because currently I am just doing (to-octets (random (length and it would load it 2021-01-08T16:08:30Z Josh_2: I guess I can just rename all the content to obscure their names 2021-01-08T16:08:30Z jmercouris: it would try to find an asset located at josh_2.com/static/potato 2021-01-08T16:08:36Z Josh_2: yes I understand 2021-01-08T16:08:48Z jmercouris: you may also require authentication for the assets 2021-01-08T16:08:56Z jmercouris: this can be configured for Nginx as well 2021-01-08T16:09:05Z Josh_2: Okay I think I know a solution 2021-01-08T16:09:29Z jmercouris: I guess you were trying to use Lisp as an insulation to protect some assets? 2021-01-08T16:09:35Z jmercouris: you can do the same with Nginx 2021-01-08T16:09:35Z Josh_2: nope 2021-01-08T16:09:57Z Josh_2: I am trying to serve random content each refresh 2021-01-08T16:10:11Z jmercouris: that is still very possible 2021-01-08T16:10:30Z jmercouris: I don't see what the problem is, your Lisp application just needs to know all of the content, which it can scan by itself using UIOP 2021-01-08T16:10:38Z jmercouris: it can then just randomize what video tag it generates 2021-01-08T16:11:02Z Josh_2: I have a redirect button that randomizes a get parameter, the get parameter is a random position in a list of files (the content) then when the page is loaded the video in that position of the list is loaded 2021-01-08T16:11:11Z Josh_2: yes 2021-01-08T16:11:19Z jmercouris: I see 2021-01-08T16:11:21Z Josh_2: I think I will do that, I will just have to mass rename the content 2021-01-08T16:11:24Z jmercouris: OK 2021-01-08T16:11:27Z jmercouris: I suggest using emacs 2021-01-08T16:11:35Z Josh_2: I am using emacs :P 2021-01-08T16:11:40Z jmercouris: you can use C-x C-q to edit the files en masse 2021-01-08T16:11:46Z Josh_2: okay coolio 2021-01-08T16:11:47Z jmercouris: in dired, the file names become editable like a text file 2021-01-08T16:11:55Z BuboBubo joined #lisp 2021-01-08T16:11:58Z Josh_2: yep 2021-01-08T16:11:59Z jmercouris: good luck Josh the 2nd 2021-01-08T16:12:15Z jmercouris: hopefully that was helpful 2021-01-08T16:14:04Z jmercouris: so, whenever I launch a GTK window via Gobject introspection I lose my REPL 2021-01-08T16:14:08Z jmercouris: is there a way to prevent that? 2021-01-08T16:14:14Z jmercouris: so that I may still type interactively? 2021-01-08T16:16:46Z surabax_ joined #lisp 2021-01-08T16:17:33Z Josh_2: do I have to keep the extension on my files for nginx to determine the mime type? they are all mp4 2021-01-08T16:17:38Z jmercouris: Josh_2: yes 2021-01-08T16:17:42Z jmercouris: Josh_2: typically 2021-01-08T16:18:39Z Josh_2: okay 2021-01-08T16:18:52Z heisig quit (Quit: Leaving) 2021-01-08T16:19:17Z surabax is now known as Guest58664 2021-01-08T16:19:17Z Guest58664 quit (Killed (rothfuss.freenode.net (Nickname regained by services))) 2021-01-08T16:19:18Z surabax_ is now known as surabax 2021-01-08T16:24:59Z Josh_2: in your config file is 'root /root/nyxt-site/;' the root location of your site? 2021-01-08T16:31:12Z jmercouris: Josh_2: correct 2021-01-08T16:31:34Z Josh_2: okay cool 2021-01-08T16:32:01Z Josh_2: I just need a neat way of adding new files and keeping them in line with the naming scheme and all should be hunky dory 2021-01-08T16:38:08Z Stanley00 joined #lisp 2021-01-08T16:41:50Z gutter` quit (Remote host closed the connection) 2021-01-08T16:42:37Z Stanley00 quit (Ping timeout: 246 seconds) 2021-01-08T16:43:44Z hiroaki quit (Ping timeout: 272 seconds) 2021-01-08T16:47:13Z luni joined #lisp 2021-01-08T16:47:22Z rogersm joined #lisp 2021-01-08T16:50:15Z hendursaga quit (Remote host closed the connection) 2021-01-08T16:51:16Z hendursaga joined #lisp 2021-01-08T16:53:03Z wsinatra joined #lisp 2021-01-08T16:54:52Z hiroaki joined #lisp 2021-01-08T16:55:13Z todun quit (Quit: todun) 2021-01-08T16:55:26Z rogersm_ joined #lisp 2021-01-08T16:55:50Z contrapunctus left #lisp 2021-01-08T16:56:21Z contrapunctus joined #lisp 2021-01-08T16:59:02Z fangyrn joined #lisp 2021-01-08T16:59:45Z rogersm_ quit (Ping timeout: 240 seconds) 2021-01-08T17:00:22Z Bahman joined #lisp 2021-01-08T17:08:59Z dyelar joined #lisp 2021-01-08T17:09:00Z gaqwas joined #lisp 2021-01-08T17:09:23Z Josh_2: is there a way I can move a file without having rewrite the file in a new directory? 2021-01-08T17:11:38Z mindCrime joined #lisp 2021-01-08T17:11:47Z gioyik joined #lisp 2021-01-08T17:13:55Z harlchen joined #lisp 2021-01-08T17:15:22Z Nilby: Josh_2: maybe rename-file 2021-01-08T17:18:38Z v88m quit (Ping timeout: 260 seconds) 2021-01-08T17:19:14Z pfdietz quit (Ping timeout: 245 seconds) 2021-01-08T17:19:50Z yonkunas joined #lisp 2021-01-08T17:20:55Z v88m joined #lisp 2021-01-08T17:25:57Z rogersm: Josh_2: does the code need to be portable? 2021-01-08T17:26:08Z contrapunctus: I happened to type `ecl` at a terminal and got this - http://paste.debian.net/1180220/ (typed and entered 1, but got the same prompt again and again; if I C-d all prompts, it segfaults.) 2021-01-08T17:29:35Z travv0: that's a pretty old version of ecl 2021-01-08T17:31:08Z dbotton quit (Quit: Leaving) 2021-01-08T17:32:52Z kini quit (Quit: bye) 2021-01-08T17:33:27Z kini joined #lisp 2021-01-08T17:37:29Z contrapunctus: Debian Sta(b)le 2021-01-08T17:38:36Z luni quit (Quit: Connection closed) 2021-01-08T17:39:13Z jeosol: Is anyone working on natural language processing with CL (open libs) and have recommendations. Looking at cliki, I see a few libraries langutils and elsewhere vseloved's cl-nlp. Haven't used any system in CL but family with python's spaCy 2021-01-08T17:39:32Z jeosol: s/family/familiar. 2021-01-08T17:40:50Z jeosol: Also, not an NLP expert, but my larger goal is to part some document, excel file and extract word tokens that my help me create rules (.e.g., crude decision tree) 2021-01-08T17:40:57Z Steeve joined #lisp 2021-01-08T17:41:39Z fangyrn: jeosol: there is https://github.com/vseloved/cl-nlp, but I have never used it 2021-01-08T17:41:59Z fangyrn: sorry, didn't realize you already mentioned it. I am an idiot. 2021-01-08T17:42:18Z jeosol: fargyrn: no worries. 2021-01-08T17:42:37Z fangyrn: jeosol: If you use ABCL you will be able to use Java NLP libraries really easily and those are quite well-renowned, like the stanford one 2021-01-08T17:42:53Z jeosol: I am just trying to get high-level recommendations from those who may have worked in this space. 2021-01-08T17:43:02Z gutter joined #lisp 2021-01-08T17:43:05Z notzmv joined #lisp 2021-01-08T17:44:04Z jeosol: oh ok. Unfortunately, my base code is in SBCL and never used other implementations, but I guess if nothing, I can look at ABCL and I can try to investigate separately 2021-01-08T17:45:14Z Steeve quit (Client Quit) 2021-01-08T17:45:59Z jeosol: fangyrn: Did you mean the Stanford CoreNLP above? 2021-01-08T17:46:25Z mrios22 quit (Ping timeout: 240 seconds) 2021-01-08T17:46:55Z lucasb joined #lisp 2021-01-08T17:48:28Z Steeve joined #lisp 2021-01-08T17:50:01Z recalloc quit (Remote host closed the connection) 2021-01-08T17:52:35Z ym joined #lisp 2021-01-08T17:52:45Z hvxgr quit (Quit: leaving) 2021-01-08T17:54:09Z ym: Hi. Trying to wrap CLX into CLOS, getting error "Asynchronous VALUE-ERROR in request 31 (last request was 38) Code 1.0 [CreateWindow] Value 0." Could somebody guess what the problem could be? 2021-01-08T17:54:56Z fangyrn: jeosol: yes. there is another one, openlp from googling right now. I just remember learning about 2021-01-08T17:55:27Z fangyrn: I just remember learning about corenlp. I thought it seemed like quite a good nlp library (it had a lot of cool papers, I don't know about documentation). 2021-01-08T17:55:58Z jackdaniel: ym: maybe you try to create-window with either x or y dimension = 0? 2021-01-08T17:56:16Z jackdaniel: while it is ok-ish for pixmaps afair it doesn't work for windows 2021-01-08T17:56:55Z jackdaniel: ym: what do you mean by "wrapping into clos"? 2021-01-08T17:57:27Z jackdaniel: while by default everything is a structure, you may easily change it with a flag, so instead of structure-class you have standard-class instances 2021-01-08T17:58:57Z jackdaniel: the flag is called xlib::*def-clx-class-use-defclass* 2021-01-08T18:00:16Z andreyorst_ quit (Ping timeout: 265 seconds) 2021-01-08T18:03:47Z ym: I use classes to encapsulate CLX parameters like window position, geometry, hierarchy etc and also to be able to create window with default parameters like just (make-instance 'x-window). 2021-01-08T18:04:02Z ym: 0 window geometry doesn't seems like the case. 2021-01-08T18:05:36Z abhixec quit (Ping timeout: 240 seconds) 2021-01-08T18:08:41Z orivej joined #lisp 2021-01-08T18:09:13Z rumpelszn joined #lisp 2021-01-08T18:10:11Z jackdaniel: I'd check for 0 values either way, that's what the error says 2021-01-08T18:10:47Z jackdaniel: erm, I've meant width and height, not x and y 2021-01-08T18:11:07Z jackdaniel: it would be easier if you could show the relevant code 2021-01-08T18:13:07Z rumpelszn quit (Client Quit) 2021-01-08T18:14:03Z villanella joined #lisp 2021-01-08T18:15:04Z ym: https://gist.github.com/yvm/674f062b21c318f6235ab77e36ccf54a 2021-01-08T18:15:05Z andreyorst_ joined #lisp 2021-01-08T18:15:11Z villanella quit (Client Quit) 2021-01-08T18:16:23Z gko_ quit (Ping timeout: 260 seconds) 2021-01-08T18:20:49Z jackdaniel: there is nothing wrong in your code that I could immedietely find 2021-01-08T18:22:20Z ym: Me neither. Same code without CLOS works fine. 2021-01-08T18:23:56Z jackdaniel: apparently it is not the same code - maybe try to minimize it and trace xlib calls in the working and not working version to spot a difference 2021-01-08T18:24:30Z aeth: fiddlerwoaroof: To me, I have a different approach. Essentially, if it's designed to be used inline, then being short probably makes sense. So vec+ might make more sense than vector-+... and Scheme's various aref equivalents are fairly annoying, e.g. vector-ref vs aref. 2021-01-08T18:24:56Z aeth: But most things aren't really designed to be used on one line with many other things... basically just refs and arithmetic, most of the time. 2021-01-08T18:25:03Z aeth: I guess SETF as well. 2021-01-08T18:26:36Z aeth: jmercouris: Generally, for Unicode, if I know the implementation is OK, I'll use the implementation thing (so CODE-CHAR / CHAR-CODE in this case) and then for implementations I don't know, I'll have dependency, maybe even an optional dependency that's only loaded for those generic implementations, that guarantees the behavior. 2021-01-08T18:26:43Z aeth: jmercouris: Because it'll be much slower. 2021-01-08T18:27:25Z aeth: jmercouris: e.g. an inline UNICODE-CODE-CHAR function that #+(or sbcl ccl ecl ...) uses CODE-CHAR and otherwise uses a portability library, just in case. 2021-01-08T18:29:01Z kaftejiman joined #lisp 2021-01-08T18:30:00Z aeth: Something like this probably could be a library because it won't really cause any problems except if it makes something hit SBCL's inline expansion limit (which is to prevent accidental recursion of an inline function) 2021-01-08T18:30:02Z Steeve quit (Quit: end) 2021-01-08T18:34:25Z matryoshka` quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-08T18:35:00Z matryoshka joined #lisp 2021-01-08T18:36:53Z Josh_2: rogersm: no it doesn't 2021-01-08T18:37:01Z Josh_2: I'm using sbcl 2021-01-08T18:37:39Z rogersm: Josh_2: is this for unix? What about calling mv? 2021-01-08T18:37:48Z Josh_2: yes I could just call mv 2021-01-08T18:37:53Z Josh_2: I suppose that is the easiest way 2021-01-08T18:38:15Z rogersm: If I'm not mistaken asdf had a run-shell-command 2021-01-08T18:38:25Z Josh_2: uiop has a command for running shell commands 2021-01-08T18:38:35Z rogersm: uiop then 2021-01-08T18:38:38Z Josh_2: (uiop:run-program .. ) 2021-01-08T18:38:49Z hnOsmium0001 joined #lisp 2021-01-08T18:41:37Z abhixec joined #lisp 2021-01-08T18:41:41Z Josh_2: Yep worked like a charm 2021-01-08T18:44:10Z contrapunctus left #lisp 2021-01-08T18:48:43Z gxt quit (Ping timeout: 240 seconds) 2021-01-08T18:49:26Z contrapunctus joined #lisp 2021-01-08T18:49:55Z Steeve joined #lisp 2021-01-08T18:50:15Z Steeve quit (Client Quit) 2021-01-08T18:52:11Z Josh_2: jmercouris: your version using nginx to serve content appears to be working just fine, thanks! 2021-01-08T18:52:15Z rogersm: any of you using Fukamichi's mito db library? 2021-01-08T18:53:53Z gxt joined #lisp 2021-01-08T18:54:58Z catern quit (Quit: catern) 2021-01-08T18:56:11Z rogersm_ joined #lisp 2021-01-08T18:56:44Z matryoshka quit (Read error: Connection reset by peer) 2021-01-08T18:56:59Z matryoshka joined #lisp 2021-01-08T18:58:04Z Lord_of_Life_ joined #lisp 2021-01-08T18:58:28Z matryoshka` joined #lisp 2021-01-08T18:58:35Z matryoshka quit (Read error: Connection reset by peer) 2021-01-08T18:58:38Z Lord_of_Life quit (Ping timeout: 272 seconds) 2021-01-08T18:59:24Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-08T19:00:18Z matryoshka` quit (Client Quit) 2021-01-08T19:00:36Z rogersm_ quit (Ping timeout: 240 seconds) 2021-01-08T19:00:41Z matryoshka joined #lisp 2021-01-08T19:01:39Z aeth quit (Ping timeout: 265 seconds) 2021-01-08T19:01:57Z ym: Damn. How that comes that slime's restart-inferior-lisp doesn't actually restarts inferior lisp program? 2021-01-08T19:02:04Z phoe: wait 2021-01-08T19:02:06Z phoe: how 2021-01-08T19:02:08Z matryoshka quit (Client Quit) 2021-01-08T19:02:09Z phoe: it restarts it for me 2021-01-08T19:02:28Z matryoshka joined #lisp 2021-01-08T19:02:34Z Steeve joined #lisp 2021-01-08T19:03:27Z aeth joined #lisp 2021-01-08T19:03:29Z scymtym: it doesn't (and can't) work if the connection was made with M-x slime-connect instead of M-x slime 2021-01-08T19:04:25Z abhixec quit (Ping timeout: 264 seconds) 2021-01-08T19:05:00Z phoe: oh! yes 2021-01-08T19:08:18Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-08T19:09:41Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-08T19:10:03Z matryoshka joined #lisp 2021-01-08T19:11:19Z remby quit (Quit: remby) 2021-01-08T19:11:34Z rogersm quit (Quit: Leaving...) 2021-01-08T19:12:26Z matryoshka quit (Client Quit) 2021-01-08T19:12:42Z flazh joined #lisp 2021-01-08T19:12:45Z matryoshka joined #lisp 2021-01-08T19:21:20Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-08T19:21:38Z matryoshka joined #lisp 2021-01-08T19:22:36Z sauvin quit (Remote host closed the connection) 2021-01-08T19:23:51Z birdwing quit (Ping timeout: 272 seconds) 2021-01-08T19:25:12Z matryoshka quit (Client Quit) 2021-01-08T19:25:36Z matryoshka joined #lisp 2021-01-08T19:27:27Z matryoshka quit (Read error: Connection reset by peer) 2021-01-08T19:27:44Z matryoshka joined #lisp 2021-01-08T19:29:06Z matryoshka quit (Read error: Connection reset by peer) 2021-01-08T19:29:07Z fiddlerwoaroof: Does anyone have experience with traversing all of an ASDF system's components and those of its dependencies? 2021-01-08T19:29:27Z matryoshka joined #lisp 2021-01-08T19:29:32Z phoe: fiddlerwoaroof: you mean getting a list of all transitive dependencies? 2021-01-08T19:29:53Z fiddlerwoaroof: I want to map over every component of every dependency 2021-01-08T19:29:55Z rumbler31_ quit (Ping timeout: 246 seconds) 2021-01-08T19:30:00Z phoe: oh, *components* 2021-01-08T19:30:04Z phoe: I haven't done that 2021-01-08T19:30:14Z fiddlerwoaroof: Plus every component of the specified system 2021-01-08T19:30:57Z joast quit (Read error: Connection reset by peer) 2021-01-08T19:31:37Z joast joined #lisp 2021-01-08T19:32:19Z matryoshka quit (Client Quit) 2021-01-08T19:32:41Z matryoshka joined #lisp 2021-01-08T19:34:00Z rpg joined #lisp 2021-01-08T19:34:43Z devon: Has anyone ever used TRIVIAL-MMAP? Examples don't compile, macroexpansion time file access, posix munmap called with wrong args, ... and that's just at first glance. 2021-01-08T19:35:59Z matryoshka quit (Client Quit) 2021-01-08T19:36:17Z matryoshka joined #lisp 2021-01-08T19:38:41Z phoe: https://github.com/Shinmera/mmap ? 2021-01-08T19:39:34Z luni joined #lisp 2021-01-08T19:39:46Z matryoshka quit (Client Quit) 2021-01-08T19:44:28Z amb007 quit (Ping timeout: 260 seconds) 2021-01-08T19:44:37Z amb007 joined #lisp 2021-01-08T19:45:35Z devon: QL seems entirely uncurated, except they have to compile. 2021-01-08T19:45:46Z Xach: devon: that's accurate 2021-01-08T19:46:05Z devon: LOL, how might we address this? 2021-01-08T19:47:28Z Xach: devon: I'm not sure - what is your goal? 2021-01-08T19:47:32Z contrapunctus: devon: https://github.com/CodyReichert/awesome-cl ? 2021-01-08T19:48:03Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T19:48:09Z contrapunctus: (It's like sharing that link is my primary contribution to this channel. 😏) 2021-01-08T19:48:23Z amb007 joined #lisp 2021-01-08T19:51:02Z ym quit (Quit: Leaving) 2021-01-08T19:52:08Z devon: Xach: In this case, to use mmap without crashes, memory leaks, re-inventing existing systems, ... 2021-01-08T19:52:08Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T19:52:21Z Bike: have you tried shinmera's library? 2021-01-08T19:52:26Z troydm quit (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) 2021-01-08T19:52:33Z amb007 joined #lisp 2021-01-08T19:52:43Z devon: The bad system was smallest so I tried it first. 2021-01-08T19:53:11Z troydm joined #lisp 2021-01-08T19:53:53Z Bike: okay, so i mean, if shinmera's library works you can use mmap without crashes and so on, so there's your goal met. If what you want is for the first system you find to work for you that's a little different. 2021-01-08T19:55:00Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T19:55:24Z amb007 joined #lisp 2021-01-08T19:55:32Z Xach: devon: right - so do you see the process as doing more than just compile, like try running tests for each project too? 2021-01-08T19:56:46Z fourier joined #lisp 2021-01-08T19:56:59Z rumbler31_ joined #lisp 2021-01-08T19:57:16Z fourier quit (Changing host) 2021-01-08T19:57:16Z fourier joined #lisp 2021-01-08T19:57:53Z jonatack quit (Quit: jonatack) 2021-01-08T19:57:53Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T19:58:57Z amb007 joined #lisp 2021-01-08T19:59:56Z devon: Xach: These particular broken examples are embedded in the doc and this particular broken system has no tests. However, I see a clue in (quicklisp-client:who-depends-on "trivial-mmap") => NIL and (quicklisp-client:who-depends-on "mmap") => ("3bz" "cl-maxminddb" "mmap-test" "pngload") 2021-01-08T20:02:14Z Bike: the tests would just be written by the library developer, right? doesn't seem like that would work to weed out poorly functioning libraries, they'd just have poorly functioning tests 2021-01-08T20:02:14Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T20:03:18Z amb007 joined #lisp 2021-01-08T20:07:10Z eddof13 joined #lisp 2021-01-08T20:08:18Z Stanley00 joined #lisp 2021-01-08T20:09:04Z jonatack joined #lisp 2021-01-08T20:09:04Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T20:09:21Z karlosz joined #lisp 2021-01-08T20:09:50Z amb007 joined #lisp 2021-01-08T20:10:01Z skapata joined #lisp 2021-01-08T20:11:23Z gxt quit (Ping timeout: 240 seconds) 2021-01-08T20:12:26Z gxt joined #lisp 2021-01-08T20:12:27Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T20:12:37Z Stanley00 quit (Ping timeout: 246 seconds) 2021-01-08T20:12:45Z amb007 joined #lisp 2021-01-08T20:12:57Z devon: Xach: To help find good systems, perhasp QL:SYSTEM-APROPOS or similar should allow ranking by popularity, i.e., how many other authors use this as a component? 2021-01-08T20:14:16Z jonatack quit (Ping timeout: 240 seconds) 2021-01-08T20:14:16Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T20:14:56Z amb007 joined #lisp 2021-01-08T20:16:22Z jonatack joined #lisp 2021-01-08T20:16:54Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T20:17:04Z _death: recently a dataset has been made that contains the number of downloads for quicklisp projects 2021-01-08T20:17:17Z amb007 joined #lisp 2021-01-08T20:17:58Z Xach: devon: that's an interesting metric 2021-01-08T20:18:17Z Xach: some time ago i came up with a plan to allow anyone to contribute "tests" to any project, to be run when building quicklisp dists. 2021-01-08T20:18:36Z rumbler31_ quit (Ping timeout: 240 seconds) 2021-01-08T20:19:03Z Xach: this is it --> https://github.com/quicklisp/qlt 2021-01-08T20:19:16Z Xach: i have not used it or tried to get others to use it though :~( 2021-01-08T20:20:20Z l1x joined #lisp 2021-01-08T20:20:20Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T20:22:20Z amb007 joined #lisp 2021-01-08T20:24:54Z devon: Xach: It's not in QuickLisp but I'll try it anyway. 2021-01-08T20:28:43Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T20:29:01Z Xach: devon: it sprung from a very specific situation and it might not solve a problem you have, though, sorry :~( 2021-01-08T20:29:10Z amb007 joined #lisp 2021-01-08T20:29:15Z Xach: sprung? sprang. 2021-01-08T20:29:23Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-08T20:29:46Z orivej quit (Ping timeout: 246 seconds) 2021-01-08T20:30:59Z stzsch|2 quit (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) 2021-01-08T20:30:59Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T20:31:10Z hendursaga joined #lisp 2021-01-08T20:31:18Z stzsch joined #lisp 2021-01-08T20:31:48Z amb007 joined #lisp 2021-01-08T20:35:37Z andreyorst_ quit (Ping timeout: 264 seconds) 2021-01-08T20:38:38Z amb007 quit (Read error: Connection reset by peer) 2021-01-08T20:39:05Z amb007 joined #lisp 2021-01-08T20:42:23Z _death: I too have a poc mmap library, but it may break at any time.. 2021-01-08T20:43:29Z Josh_2: I have dumped my lisp image and it runs and executes as expected on my machine, but when I load it to my server I have the following problem https://plaster.tymoon.eu/view/2229#2229 now I don't understand why It's working fine on my machine but failing on my server 2021-01-08T20:44:43Z frgo joined #lisp 2021-01-08T20:44:56Z Josh_2: my server is running sbcl 2.0.6 and my machine is running 2.0.11 2021-01-08T20:45:04Z anticrisis joined #lisp 2021-01-08T20:45:38Z Josh_2: the image was build with asdf:make 2021-01-08T20:46:08Z rumbler31_ joined #lisp 2021-01-08T20:46:26Z _death: Josh_2: is your image a core file or an executable? 2021-01-08T20:46:44Z Josh_2: hmm 2021-01-08T20:48:06Z Josh_2: it is built with :build-operation "program-op" in my asd and I have a little makefile that loads the asd, quickloads the project then executes asdf:make 2021-01-08T20:48:11Z _death: shouldn't expect an old sbcl to load a core produced by a new one 2021-01-08T20:48:56Z Josh_2: oh also I have (defmethod asdf:perform ((o asdf:image-op) (c asdf:system)) (uiop:dump-image (asdf:output-file o c) :executable t :compression t)) in my asd 2021-01-08T20:49:34Z aartaka quit (Read error: Connection reset by peer) 2021-01-08T20:49:40Z aartaka_d joined #lisp 2021-01-08T20:49:43Z _death: an executable, so I guess the sbcl on your server is irrelevant 2021-01-08T20:49:56Z dbotton joined #lisp 2021-01-08T20:50:19Z Josh_2: yes 2021-01-08T20:50:48Z Josh_2: well I guess I can just build the system on my server 2021-01-08T20:50:52Z Josh_2: ¯\_(ツ)_/¯ 2021-01-08T20:50:54Z _death: I would try checking how clack "handlers" work, that may have something to do with the failure 2021-01-08T20:54:25Z erronius joined #lisp 2021-01-08T20:54:53Z erronius: Is there anyoen here? 2021-01-08T20:56:01Z rumbler31_ quit (Ping timeout: 264 seconds) 2021-01-08T20:56:50Z liberliver quit (Quit: liberliver) 2021-01-08T20:56:58Z rogersm joined #lisp 2021-01-08T20:57:09Z Josh_2: erronius: nope 2021-01-08T20:57:17Z Xach: erronius: i am here 2021-01-08T20:57:21Z Josh_2: except all the people who are talking obviously 2021-01-08T20:58:06Z erronius: Ah 2021-01-08T20:58:11Z erronius: Thanks for the info. 2021-01-08T20:58:42Z erronius: Now what? I've got things that are mandated of me that I've got to do something about but I'm not allowed to. 2021-01-08T20:59:04Z erronius: By my own actions. 2021-01-08T20:59:10Z erronius: "What do I do about the loopback adapter?" 2021-01-08T20:59:40Z erronius: Or usually because I never come to a terminal that I trust enough. 2021-01-08T21:00:28Z Josh_2: _death: building on the server worked 2021-01-08T21:01:11Z erronius: "Look at me, look at me, look at me!" But it's someone else saying that, but I'm the me, of them, that is who's being looked at? 2021-01-08T21:01:16Z rogersm quit (Ping timeout: 246 seconds) 2021-01-08T21:01:51Z erronius: At least I'm not involuntarily shouting "I'll take point!" anymore. 2021-01-08T21:02:01Z erronius: Gotta go 2021-01-08T21:02:51Z Xach: Ok 2021-01-08T21:04:06Z matryoshka joined #lisp 2021-01-08T21:05:45Z aeth_ joined #lisp 2021-01-08T21:05:51Z aeth quit (Disconnected by services) 2021-01-08T21:06:31Z aeth_ is now known as aeth 2021-01-08T21:07:57Z matryoshka quit (Client Quit) 2021-01-08T21:08:16Z matryoshka joined #lisp 2021-01-08T21:08:33Z Steeve quit (Quit: end) 2021-01-08T21:10:57Z matryoshka quit (Client Quit) 2021-01-08T21:11:15Z matryoshka joined #lisp 2021-01-08T21:12:25Z aartaka_d quit (Ping timeout: 240 seconds) 2021-01-08T21:15:14Z matryoshka quit (Client Quit) 2021-01-08T21:15:34Z matryoshka joined #lisp 2021-01-08T21:18:23Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-08T21:19:14Z Stanley00 joined #lisp 2021-01-08T21:21:22Z hendursaga joined #lisp 2021-01-08T21:22:29Z etimmons: Josh_2: Ugh. I've dealt with that error too many times before 2021-01-08T21:22:37Z rumbler31_ joined #lisp 2021-01-08T21:22:40Z etimmons: Clack lazy loads its backends 2021-01-08T21:23:14Z etimmons: Try quickloading :clack-handler-hunchentoot before the asdf:make 2021-01-08T21:24:05Z miracle_fox joined #lisp 2021-01-08T21:24:13Z Stanley00 quit (Ping timeout: 264 seconds) 2021-01-08T21:29:25Z Nilby quit (Read error: Connection reset by peer) 2021-01-08T21:31:11Z abhixec joined #lisp 2021-01-08T21:36:20Z wsinatra quit (Ping timeout: 272 seconds) 2021-01-08T21:38:54Z semz quit (Quit: Leaving) 2021-01-08T21:42:09Z karlosz quit (Quit: karlosz) 2021-01-08T21:43:30Z karlosz joined #lisp 2021-01-08T21:43:37Z karlosz quit (Remote host closed the connection) 2021-01-08T21:43:52Z karlosz joined #lisp 2021-01-08T21:45:15Z Josh_2: I am trying to connect my remote image using slynk, I keep getting the following error https://plaster.tymoon.eu/view/2230#2230 the file it is looking for does exist 2021-01-08T21:45:43Z phoe: Josh_2: does this file actually exist? 2021-01-08T21:46:13Z Xach: well, i'm thinking of adopting access into sharplispers temporarily 2021-01-08T21:46:23Z Josh_2: yes the file exists 2021-01-08T21:46:25Z phoe: Xach: you mean qlt? 2021-01-08T21:46:27Z Xach: no word from AccelerationNet about it 2021-01-08T21:46:32Z Xach: phoe: no 2021-01-08T21:46:33Z phoe: oh, access, the library 2021-01-08T21:47:20Z phoe: Josh_2: weird. (probe-file #p"/home/josh/quicklisp/dists/quicklisp/software/sly-20201220-git/slynk/slynk-backend.lisp")? `ls -alh /home/josh/quicklisp/dists/quicklisp/software/sly-20201220-git/slynk/slynk-backend.lisp`? 2021-01-08T21:48:05Z miasuji joined #lisp 2021-01-08T21:49:05Z Josh_2: phoe the former returned the pathname 2021-01-08T21:49:21Z phoe: so the file *does* exist 2021-01-08T21:49:39Z phoe: let's grab a stacktrace 2021-01-08T21:50:52Z zacts joined #lisp 2021-01-08T21:51:22Z Josh_2: https://plaster.tymoon.eu/view/2230#2230 includes backtrace now 2021-01-08T21:51:37Z zacts quit (Client Quit) 2021-01-08T21:51:47Z stargazesparkle: Aww, ironclad doesn't support AES in GSM mode 2021-01-08T21:52:04Z phoe: hey wait, that's a different error 2021-01-08T21:52:13Z phoe: the first one was about a .lisp file and the second is about a .fasl file 2021-01-08T21:52:29Z phoe: anyway, what if you hit restart 0 or something? 2021-01-08T21:53:00Z Josh_2: oh right 2021-01-08T21:53:04Z Josh_2: one sec sorry 2021-01-08T21:53:20Z Josh_2: if I hit 0 I get the error I mentioned 2021-01-08T21:53:23Z Josh_2: I will append that to the paste 2021-01-08T21:53:41Z Josh_2: https://plaster.tymoon.eu/view/2230#2230 2021-01-08T21:55:18Z phoe: weird; now it's complaining about completion, previously it was complaining about backend 2021-01-08T21:55:33Z fourier quit (Remote host closed the connection) 2021-01-08T21:55:37Z phoe: do you have unix rights to access the file? 2021-01-08T21:55:46Z Josh_2: yes It's the same user 2021-01-08T21:56:08Z Josh_2: I will double check 2021-01-08T21:56:18Z Josh_2: oh wait thats on the remote server 2021-01-08T21:56:24Z phoe: ... 2021-01-08T21:56:34Z phoe: do you have the file on the same machine where you are executing the Lisp process? 2021-01-08T21:56:37Z phoe: :D 2021-01-08T21:56:37Z Josh_2: uh that might be why 2021-01-08T21:56:48Z wsinatra joined #lisp 2021-01-08T21:57:18Z Josh_2: #P"/home/manage/.cache/common-lisp/sbcl-2.0.11-linux-x64/home/josh/quicklisp/dists/quicklisp/software/sly-20201220-git/slynk/slynk-completion.fasl" that is a big invalid pathname 2021-01-08T21:57:30Z phoe: not really invalid 2021-01-08T21:57:38Z phoe: that's what CL caches look like 2021-01-08T21:57:49Z phoe: ...oh, wait, did you copy FASLs from one machine from the other? 2021-01-08T21:58:01Z Josh_2: no 2021-01-08T21:58:05Z phoe: huh 2021-01-08T21:58:13Z phoe: why did you get a josh pathname on a manage user then 2021-01-08T21:58:20Z phoe: oh well 2021-01-08T21:58:52Z Josh_2: manage is the user on the remote server 2021-01-08T21:58:56Z Josh_2: josh is my local user 2021-01-08T22:00:44Z Josh_2: that fasl doesn't exist on the remote server anyway 2021-01-08T22:00:55Z fourier joined #lisp 2021-01-08T22:01:00Z Josh_2: slynk-backend-tmpA72A9OJZ.fasl slynk-completion-tmpD2D7RXIM.fasl slynk-source-path-parser-tmp47SOVWJ1.fasl slynk-tmp24BDVRKR.fasl those exist in the directory is it searching for 2021-01-08T22:01:00Z fourier quit (Changing host) 2021-01-08T22:01:00Z fourier joined #lisp 2021-01-08T22:05:58Z dbotton quit (Quit: Leaving) 2021-01-08T22:10:09Z sjl quit (Ping timeout: 265 seconds) 2021-01-08T22:16:15Z aorst joined #lisp 2021-01-08T22:18:41Z BuboBubo quit 2021-01-08T22:19:16Z andreyorst quit (Ping timeout: 240 seconds) 2021-01-08T22:30:59Z orivej joined #lisp 2021-01-08T22:32:25Z manicennui joined #lisp 2021-01-08T22:35:42Z narimiran quit (Ping timeout: 256 seconds) 2021-01-08T22:40:19Z lowryder quit (Ping timeout: 246 seconds) 2021-01-08T22:41:16Z Codaraxis joined #lisp 2021-01-08T22:42:37Z lowryder joined #lisp 2021-01-08T22:49:27Z imode joined #lisp 2021-01-08T22:52:39Z pve quit (Quit: leaving) 2021-01-08T22:57:45Z rogersm joined #lisp 2021-01-08T23:01:56Z rogersm quit (Ping timeout: 240 seconds) 2021-01-08T23:02:20Z miasuji quit (Remote host closed the connection) 2021-01-08T23:02:45Z miasuji joined #lisp 2021-01-08T23:07:11Z ex_nihilo quit (Read error: Connection reset by peer) 2021-01-08T23:09:44Z l1x quit (Quit: Connection closed for inactivity) 2021-01-08T23:11:49Z euandreh quit (Ping timeout: 246 seconds) 2021-01-08T23:15:09Z frodef quite enjoys emacs keyboard macros. 2021-01-08T23:17:05Z rozenglass joined #lisp 2021-01-08T23:20:03Z wsinatra quit (Quit: WeeChat 3.0) 2021-01-08T23:20:13Z luni quit (Quit: Connection closed) 2021-01-08T23:27:10Z jprajzne quit (Quit: Leaving.) 2021-01-08T23:39:33Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-08T23:41:17Z yonkunas quit (Quit: Connection closed for inactivity) 2021-01-08T23:45:25Z pp is now known as ppbitb 2021-01-08T23:48:59Z akoana left #lisp 2021-01-08T23:52:24Z harlchen quit (Quit: WeeChat 3.0) 2021-01-08T23:52:30Z attila_lendvai quit (Ping timeout: 272 seconds) 2021-01-08T23:59:25Z rpg quit (Ping timeout: 246 seconds) 2021-01-09T00:16:26Z lucasb quit (Quit: Connection closed for inactivity) 2021-01-09T00:24:34Z makomo quit (Ping timeout: 256 seconds) 2021-01-09T00:24:35Z yonkunas joined #lisp 2021-01-09T00:45:12Z kaftejiman quit (Remote host closed the connection) 2021-01-09T00:53:02Z hvxgr joined #lisp 2021-01-09T01:02:28Z jibanes quit (Ping timeout: 256 seconds) 2021-01-09T01:04:14Z jibanes joined #lisp 2021-01-09T01:06:19Z abhixec quit (Quit: leaving) 2021-01-09T01:15:36Z rgherdt quit (Ping timeout: 240 seconds) 2021-01-09T01:22:56Z gaqwas quit (Ping timeout: 256 seconds) 2021-01-09T01:27:56Z slyrus_ quit (Quit: Leaving) 2021-01-09T01:38:10Z aeth quit (Ping timeout: 256 seconds) 2021-01-09T01:39:38Z aeth joined #lisp 2021-01-09T01:45:54Z aorst quit (Remote host closed the connection) 2021-01-09T01:46:50Z miasuji quit (Ping timeout: 264 seconds) 2021-01-09T01:46:51Z Jeanne-Kamikaze joined #lisp 2021-01-09T01:49:33Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-09T01:50:37Z random-nick quit (Ping timeout: 264 seconds) 2021-01-09T01:53:01Z nicktick quit (Ping timeout: 264 seconds) 2021-01-09T01:53:34Z ralt quit (Quit: Connection closed for inactivity) 2021-01-09T01:54:10Z nicktick joined #lisp 2021-01-09T01:58:32Z galex-713 joined #lisp 2021-01-09T02:12:01Z abhixec joined #lisp 2021-01-09T02:15:46Z mrios22 joined #lisp 2021-01-09T02:17:19Z rumbler31 joined #lisp 2021-01-09T02:21:52Z rumbler31_ quit (Ping timeout: 246 seconds) 2021-01-09T02:48:56Z rumbler31_ joined #lisp 2021-01-09T02:54:02Z Oladon joined #lisp 2021-01-09T03:00:19Z johnjay joined #lisp 2021-01-09T03:00:41Z johnjay: so from what i've read, scheme R7RS is split into a small and large language right 2021-01-09T03:00:54Z johnjay: how comparable to CL will the large one be? 2021-01-09T03:03:51Z waleee-cl: the only scheme with a object system is guile afaik, and that's an extension 2021-01-09T03:04:02Z waleee-cl: *an 2021-01-09T03:15:23Z frost-lab joined #lisp 2021-01-09T03:23:49Z nicktick quit (Ping timeout: 246 seconds) 2021-01-09T03:24:54Z stargazesparkle: I tried scheme but found Common Lisp to be a more... Complete? Language 2021-01-09T03:25:06Z stargazesparkle: A more useable one for sure 2021-01-09T03:25:26Z stargazesparkle: I tried racket and chicken scheme for reference 2021-01-09T03:29:07Z ldbeth joined #lisp 2021-01-09T03:29:18Z ldbeth: goodd morning 2021-01-09T03:31:27Z stargazesparkle: Good evening 2021-01-09T03:33:58Z surabax quit (Quit: Leaving) 2021-01-09T03:37:58Z orivej quit (Ping timeout: 256 seconds) 2021-01-09T03:41:17Z yonkunas quit (Quit: Connection closed for inactivity) 2021-01-09T03:45:52Z contrapunctus: waleee-cl: CHICKEN has a bunch of object systems too, for sake of information. 2021-01-09T03:46:43Z luckless quit (Ping timeout: 240 seconds) 2021-01-09T03:46:54Z waleee-cl: contrapunctus: ah, ok. I only skimmed their page 2021-01-09T03:48:03Z luckless joined #lisp 2021-01-09T03:48:25Z miasuji joined #lisp 2021-01-09T03:50:12Z waleee-cl: contrapunctus: hm, but it's not listed as a feature 2021-01-09T03:51:03Z waleee-cl: ah, there it was: https://wiki.call-cc.org/records-and-oop 2021-01-09T03:51:27Z waleee-cl: kind of 2021-01-09T03:51:52Z Josh_2 quit (Ping timeout: 265 seconds) 2021-01-09T03:52:33Z waleee-cl: hm, but it doesn't seem to be listed as a feature 2021-01-09T03:52:56Z waleee-cl: ^ blame that on irccloud 2021-01-09T03:55:18Z contrapunctus: waleee-cl: they're extensions, as you say - http://eggs.call-cc.org/5/#oop 2021-01-09T03:56:07Z contrapunctus: Hm, there were more in v4 - http://eggs.call-cc.org/4/#oop 2021-01-09T03:57:24Z waleee-cl: unrelated; chicken has an awesome logo 2021-01-09T03:59:10Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-09T04:03:40Z Alfr joined #lisp 2021-01-09T04:04:26Z aeth quit (Ping timeout: 256 seconds) 2021-01-09T04:04:42Z gzj joined #lisp 2021-01-09T04:04:48Z gzj quit (Remote host closed the connection) 2021-01-09T04:04:57Z Alfr_ quit (Ping timeout: 260 seconds) 2021-01-09T04:06:22Z aeth joined #lisp 2021-01-09T04:09:36Z jibanes quit (Read error: Connection reset by peer) 2021-01-09T04:10:39Z beach: Good morning everyone! 2021-01-09T04:10:47Z jibanes joined #lisp 2021-01-09T04:11:26Z miasuji quit (Ping timeout: 264 seconds) 2021-01-09T04:11:50Z ome joined #lisp 2021-01-09T04:12:17Z zaquest quit (Quit: Leaving) 2021-01-09T04:12:19Z contrapunctus left #lisp 2021-01-09T04:14:12Z contrapunctus joined #lisp 2021-01-09T04:18:19Z zaquest joined #lisp 2021-01-09T04:24:22Z sm2n quit (Quit: Leaving) 2021-01-09T04:24:43Z Oladon quit (Quit: Leaving.) 2021-01-09T04:46:20Z Iolo quit (Quit: ZNC 1.7.5+deb4 - https://znc.in) 2021-01-09T04:48:07Z Iolo joined #lisp 2021-01-09T04:49:56Z ldbeth quit (Ping timeout: 256 seconds) 2021-01-09T04:55:56Z stoneglass joined #lisp 2021-01-09T04:56:10Z Jeanne-Kamikaze quit (Quit: Leaving) 2021-01-09T05:02:40Z vidak` quit (Remote host closed the connection) 2021-01-09T05:03:49Z aeth quit (Ping timeout: 264 seconds) 2021-01-09T05:05:27Z aeth joined #lisp 2021-01-09T05:08:02Z Bike quit (Quit: Lost terminal) 2021-01-09T05:20:13Z gutter quit (Remote host closed the connection) 2021-01-09T05:45:27Z Lycurgus joined #lisp 2021-01-09T05:53:42Z andreyorst joined #lisp 2021-01-09T05:54:44Z rumbler31 quit (Remote host closed the connection) 2021-01-09T05:55:06Z karlosz quit (Quit: karlosz) 2021-01-09T05:59:18Z gutter joined #lisp 2021-01-09T05:59:37Z akoana joined #lisp 2021-01-09T06:02:43Z xsperry quit (Ping timeout: 246 seconds) 2021-01-09T06:05:36Z fiddlerwoaroof: morning beach 2021-01-09T06:05:59Z ecm joined #lisp 2021-01-09T06:08:19Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-09T06:13:09Z hendursaga quit (Remote host closed the connection) 2021-01-09T06:14:52Z hendursaga joined #lisp 2021-01-09T06:16:53Z ecm quit (Remote host closed the connection) 2021-01-09T06:27:09Z rumbler31 joined #lisp 2021-01-09T06:31:58Z rumbler31 quit (Ping timeout: 260 seconds) 2021-01-09T06:39:03Z _whitelogger quit (Remote host closed the connection) 2021-01-09T06:39:43Z madage quit (Ping timeout: 240 seconds) 2021-01-09T06:40:05Z madage joined #lisp 2021-01-09T06:41:11Z _whitelogger joined #lisp 2021-01-09T06:46:45Z Lycurgus quit (Quit: Exeunt) 2021-01-09T06:50:22Z ralt joined #lisp 2021-01-09T06:53:42Z aeth_ joined #lisp 2021-01-09T06:53:45Z aeth quit (Disconnected by services) 2021-01-09T06:54:37Z aeth_ is now known as aeth 2021-01-09T07:01:07Z aeth_ joined #lisp 2021-01-09T07:01:13Z aeth quit (Disconnected by services) 2021-01-09T07:01:39Z aeth_ is now known as aeth 2021-01-09T07:06:06Z andreyorst_ joined #lisp 2021-01-09T07:14:37Z miracle_fox quit (Ping timeout: 264 seconds) 2021-01-09T07:15:23Z birdwing joined #lisp 2021-01-09T07:15:25Z orivej joined #lisp 2021-01-09T07:25:18Z fourier quit (Remote host closed the connection) 2021-01-09T07:30:20Z phantomics quit (Ping timeout: 265 seconds) 2021-01-09T07:30:20Z ome quit (Quit: Connection closed for inactivity) 2021-01-09T07:30:30Z phantomics_ joined #lisp 2021-01-09T07:38:16Z mrios22 quit (Ping timeout: 246 seconds) 2021-01-09T07:38:37Z DateMasamune2000 joined #lisp 2021-01-09T07:39:52Z aeth_ joined #lisp 2021-01-09T07:39:59Z DateMasamune2000 quit (Remote host closed the connection) 2021-01-09T07:40:29Z aeth quit (Disconnected by services) 2021-01-09T07:40:34Z aeth_ is now known as aeth 2021-01-09T07:44:48Z solideogloria[m]: does anyone here use rainbow-delimeters ? 2021-01-09T07:44:50Z solideogloria[m]: in emacs 2021-01-09T07:44:54Z fiddlerwoaroof: Yes 2021-01-09T07:45:01Z oni-on-ion: yes 2021-01-09T07:45:01Z fiddlerwoaroof: And highlight-parentheses 2021-01-09T07:45:23Z rumbler31 joined #lisp 2021-01-09T07:45:32Z oni-on-ion: dont have that, but they are highlighted matching (paredit, slime ) 2021-01-09T07:46:04Z fiddlerwoaroof: highlight-parentheses gives a special face to the parens around the current form 2021-01-09T07:46:28Z fiddlerwoaroof: It's moderately useful when you have complicated code 2021-01-09T07:46:44Z Codaraxis quit (Quit: Leaving) 2021-01-09T07:47:08Z fiddlerwoaroof: For a "two newlines" string literal, would people prefer #.(format nil "~%~%") or #.(coerce '(#1=#\newline #1#) 'string)? 2021-01-09T07:47:25Z fiddlerwoaroof: Or, am I missing an obvious (one-line) way to represent this? 2021-01-09T07:47:37Z oni-on-ion: https://postimg.cc/tsXGpNzp 2021-01-09T07:47:47Z aeth: format nil might be the way to go 2021-01-09T07:47:52Z oni-on-ion: #| ? 2021-01-09T07:47:59Z aeth: but ~%~% is fairly unusual and ~2% is technically possible, too iirc 2021-01-09T07:48:17Z fiddlerwoaroof: I forgot that 2021-01-09T07:48:23Z aeth: right, because it's rare to do this 2021-01-09T07:48:25Z oni-on-ion: doesn't parser append/concat the newlines 2021-01-09T07:48:30Z oni-on-ion: ""\n ""\n .. 2021-01-09T07:48:44Z aeth: personally, if I'm in a ~%~% situation I usually just TERPRI the second ~% instead, for clarity 2021-01-09T07:49:01Z aeth: but that won't really work here because you're doing FORMAT NIL 2021-01-09T07:49:03Z fiddlerwoaroof: O, I need a _string literal_ 2021-01-09T07:49:11Z fiddlerwoaroof: So, there's a #.(...) 2021-01-09T07:49:28Z rumbler31 quit (Ping timeout: 246 seconds) 2021-01-09T07:52:03Z oni-on-ion: um then what are quotes even for ? 2021-01-09T07:52:23Z narimiran joined #lisp 2021-01-09T08:01:50Z fiddlerwoaroof: The problem with quotes is that I need to use one line of vertical space per newline in the string 2021-01-09T08:02:07Z fiddlerwoaroof: I also, personally, find multiline double-quoted strings really ugly 2021-01-09T08:03:28Z fiddlerwoaroof: The nice thing about #. is that you can have the reader run arbitrary lisp and put arbitrary objects into the read value. 2021-01-09T08:04:36Z rumbler31_ quit (Ping timeout: 272 seconds) 2021-01-09T08:04:39Z aartaka joined #lisp 2021-01-09T08:05:14Z oni-on-ion: newline is new line... 2021-01-09T08:05:41Z oni-on-ion: sounds otherwise like you know what you are doing. how come asking ? 2021-01-09T08:06:39Z fiddlerwoaroof: I was wondering if I was missing an obvious way to do this, without adding extra line breaks to my code 2021-01-09T08:06:50Z fiddlerwoaroof: #.(format nil "~2%") reads the best to me 2021-01-09T08:18:18Z stoneglass quit (Quit: stoneglass) 2021-01-09T08:20:36Z andreyorst_ quit (Ping timeout: 265 seconds) 2021-01-09T08:24:00Z anticrisis quit (Read error: Connection reset by peer) 2021-01-09T08:31:20Z rumbler31_ joined #lisp 2021-01-09T08:31:50Z IPmonger_ quit (Ping timeout: 264 seconds) 2021-01-09T08:32:58Z IPmonger joined #lisp 2021-01-09T08:36:58Z fiddlerwoaroof: A little thing I've been working on, to make data manipulation a bit more ergonomic in CL 2021-01-09T08:36:59Z VincentVega joined #lisp 2021-01-09T08:36:59Z fiddlerwoaroof: https://fwoar.co/pastebin/d1113039db07d1bca69336083872fc44efc179e3.nil.html 2021-01-09T08:40:39Z rumbler31 joined #lisp 2021-01-09T08:40:47Z makomo joined #lisp 2021-01-09T08:41:08Z andreyorst_ joined #lisp 2021-01-09T08:45:49Z rumbler31 quit (Ping timeout: 264 seconds) 2021-01-09T08:50:19Z oni-on-ion quit (Remote host closed the connection) 2021-01-09T08:53:10Z frodef quit (Ping timeout: 246 seconds) 2021-01-09T08:54:12Z fiddlerwoaroof: Is there something weird about the bindings of variables in (LOOP FOR VAR IN ...)? 2021-01-09T08:54:14Z fiddlerwoaroof: https://plaster.tymoon.eu/view/2232#2232 2021-01-09T08:54:23Z fiddlerwoaroof: It looks like sbcl binds the variable with dynamic scope 2021-01-09T08:54:44Z phoe: no, you close over it 2021-01-09T08:55:07Z phoe: forming closures over loop variables is a common headache in lisp programmers 2021-01-09T08:55:13Z phoe: heisig can attest to it 2021-01-09T08:55:22Z fiddlerwoaroof: ugh 2021-01-09T08:55:37Z fiddlerwoaroof: So, I have to like (let ((tmp var)) (lambda () ...))? 2021-01-09T08:56:31Z fiddlerwoaroof: Hmm, I guess this makes sense 2021-01-09T08:56:44Z VincentVega left #lisp 2021-01-09T08:56:45Z fiddlerwoaroof: The loop SETQ one binding, rather than shadowing on each iteration 2021-01-09T08:56:54Z fiddlerwoaroof: Mental model adjusted... 2021-01-09T08:57:36Z moon-child: if all you're doing is iterating over a single list, it might be easier to mapcar 2021-01-09T08:57:38Z fiddlerwoaroof: I'm a bit surprised it took me this long to discover this 2021-01-09T08:57:50Z fiddlerwoaroof: This is a simplified sample 2021-01-09T08:59:52Z ralt quit (Quit: Connection closed for inactivity) 2021-01-09T09:00:10Z emys[m] quit (Quit: Idle for 30+ days) 2021-01-09T09:00:17Z clar[m] quit (Quit: Idle for 30+ days) 2021-01-09T09:00:17Z ckoz[m] quit (Quit: Idle for 30+ days) 2021-01-09T09:00:17Z DanielCheng[m] quit (Quit: Idle for 30+ days) 2021-01-09T09:00:17Z zstest3[m] quit (Quit: Idle for 30+ days) 2021-01-09T09:06:07Z gaqwas joined #lisp 2021-01-09T09:06:07Z gaqwas quit (Changing host) 2021-01-09T09:06:07Z gaqwas joined #lisp 2021-01-09T09:06:18Z hendursa1 joined #lisp 2021-01-09T09:08:43Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-09T09:09:32Z rumbler31 joined #lisp 2021-01-09T09:14:15Z rumbler31 quit (Ping timeout: 265 seconds) 2021-01-09T09:16:26Z luckless quit (Quit: luckless) 2021-01-09T09:17:16Z gaqwas quit (Remote host closed the connection) 2021-01-09T09:17:56Z akoana left #lisp 2021-01-09T09:23:01Z narimiran quit (Ping timeout: 264 seconds) 2021-01-09T09:25:37Z luckless joined #lisp 2021-01-09T09:27:49Z v88m quit (Ping timeout: 264 seconds) 2021-01-09T09:28:45Z v88m joined #lisp 2021-01-09T09:28:50Z frodef joined #lisp 2021-01-09T09:33:13Z drNobody joined #lisp 2021-01-09T09:36:43Z pve joined #lisp 2021-01-09T09:39:34Z drNobody quit (Remote host closed the connection) 2021-01-09T09:39:37Z v88m quit (Read error: Connection reset by peer) 2021-01-09T09:39:54Z v88m joined #lisp 2021-01-09T09:39:59Z gaqwas joined #lisp 2021-01-09T09:39:59Z gaqwas quit (Changing host) 2021-01-09T09:39:59Z gaqwas joined #lisp 2021-01-09T09:42:52Z orivej quit (Ping timeout: 246 seconds) 2021-01-09T09:43:40Z orivej joined #lisp 2021-01-09T09:46:51Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-09T09:48:27Z Nilby joined #lisp 2021-01-09T09:54:36Z birdwing quit (Ping timeout: 240 seconds) 2021-01-09T09:55:02Z liberliver joined #lisp 2021-01-09T09:58:05Z patrixl quit (Read error: No route to host) 2021-01-09T09:58:46Z rgherdt joined #lisp 2021-01-09T10:04:53Z skapata quit (Remote host closed the connection) 2021-01-09T10:05:05Z sauvin joined #lisp 2021-01-09T10:10:54Z Anonymous__ joined #lisp 2021-01-09T10:11:20Z xrash joined #lisp 2021-01-09T10:18:11Z attila_lendvai joined #lisp 2021-01-09T10:18:11Z attila_lendvai quit (Changing host) 2021-01-09T10:18:11Z attila_lendvai joined #lisp 2021-01-09T10:21:46Z liberliver quit (Ping timeout: 256 seconds) 2021-01-09T10:28:24Z jurov_ joined #lisp 2021-01-09T10:28:43Z clintm joined #lisp 2021-01-09T10:31:10Z jurov quit (Ping timeout: 246 seconds) 2021-01-09T10:34:40Z frodef quit (Ping timeout: 246 seconds) 2021-01-09T10:41:16Z lowryder quit (Ping timeout: 256 seconds) 2021-01-09T10:43:27Z lowryder joined #lisp 2021-01-09T10:43:37Z kaftejiman joined #lisp 2021-01-09T10:51:58Z rogersm joined #lisp 2021-01-09T10:52:15Z frodef joined #lisp 2021-01-09T10:53:38Z h4ck3r9696 joined #lisp 2021-01-09T10:55:40Z jurov joined #lisp 2021-01-09T10:57:51Z h4ck3r9696: How do I get started with threading in Common Lisp? I read the CL cookbook's article, but I find it very brief and hard to understand. For example, how do I write to *standard-output* from a thread without getting wierd behavior and duplicating text? I tried to use a lock every time I use format, but that didn't work. 2021-01-09T10:58:28Z jurov_ quit (Ping timeout: 246 seconds) 2021-01-09T10:59:40Z jurov_ joined #lisp 2021-01-09T11:03:12Z jurov quit (Ping timeout: 256 seconds) 2021-01-09T11:04:17Z beach: You shouldn't get any duplicated text. 2021-01-09T11:04:58Z andreyorst_ quit (Ping timeout: 260 seconds) 2021-01-09T11:05:10Z beach: And you don't need locks unless you need mutual exclusion for some resource. 2021-01-09T11:05:24Z phoe: a stream might be such a resource 2021-01-09T11:05:53Z phoe: AFAIR e.g. CCL streams are not threadsafe by default, two streams cannot write to a stream at the same time 2021-01-09T11:05:54Z beach: But we haven't been told it is (yet). 2021-01-09T11:06:07Z phoe: oh, yes; I'm extrapolating 2021-01-09T11:06:28Z random-nick joined #lisp 2021-01-09T11:06:33Z h4ck3r9696: CL-USER> (hello-from-thread) 2021-01-09T11:06:33Z h4ck3r9696: Hello, world 2021-01-09T11:06:33Z h4ck3r9696: NIL 2021-01-09T11:06:37Z h4ck3r9696: CL-USER> (hello-from-thread) 2021-01-09T11:06:38Z h4ck3r9696: Hello, world 2021-01-09T11:06:42Z h4ck3r9696: Hello, world 2021-01-09T11:06:45Z h4ck3r9696: NIL 2021-01-09T11:06:48Z h4ck3r9696: I'm getting this 2021-01-09T11:06:51Z h4ck3r9696: randomly 2021-01-09T11:07:44Z beach: You would have to paste your code somewhere. It is not clear what the constellation of threads is. 2021-01-09T11:08:06Z h4ck3r9696: It's just the tutorial from the CL cookbook 2021-01-09T11:08:31Z ck_: do you mean the website or the 'recipes' book? 2021-01-09T11:08:39Z ck_: maybe paste a link 2021-01-09T11:09:41Z h4ck3r9696: this is the code for hello-from-thread https://pastebin.com/3Xxgv2H6 2021-01-09T11:10:36Z ck_: and is this the tutorial you mean? https://lispcookbook.github.io/cl-cookbook/process.html (C-f "print a message onto the top level") 2021-01-09T11:11:04Z h4ck3r9696: yes, that's the one 2021-01-09T11:11:44Z phoe: hmmm 2021-01-09T11:11:45Z phoe: https://plaster.tymoon.eu/view/2233#2233 2021-01-09T11:11:51Z phoe: cannot reproduce... welcome to multithreading issues 2021-01-09T11:12:08Z beach: I can't reproduce either. 2021-01-09T11:12:09Z h4ck3r9696: I'm using SLY and SBCL 2021-01-09T11:12:26Z h4ck3r9696: this is what happends when I try to run it : https://pastebin.com/GpfdLfQ2 2021-01-09T11:12:29Z ck_: maybe you could compare your settings? I know phoe and beach turn the safety knobs all the way up, for example 2021-01-09T11:13:20Z Nilby: It's normal. Ya'll who run in slime don't see it. 2021-01-09T11:13:37Z h4ck3r9696: I think it's a sly problem, because it doesn't happend in the terminal 2021-01-09T11:13:38Z beach: Oh? 2021-01-09T11:14:09Z jurov joined #lisp 2021-01-09T11:14:10Z Nilby: When a thread flushes the buffer and there's output from the other thread in unflushed in there, it get's double output. 2021-01-09T11:14:18Z andreyorst_ joined #lisp 2021-01-09T11:14:39Z h4ck3r9696: You mean I should switch to slime? 2021-01-09T11:14:42Z phoe: ! 2021-01-09T11:14:43Z phoe: no 2021-01-09T11:14:49Z phoe: add (finish-output s) after the FORMAT call 2021-01-09T11:14:53Z phoe: check if it still occurs 2021-01-09T11:15:16Z h4ck3r9696: yes 2021-01-09T11:15:27Z phoe: hm 2021-01-09T11:15:53Z phoe: Nilby: still sounds like a very weird thing if it occurs after (format s ...) (finish-output s) 2021-01-09T11:16:08Z Nilby: Even add finish-output exacerbates it sometimes. 2021-01-09T11:16:27Z phoe: I mean, this sounds bugworthy for me - the role of finish-output is meant to flush the stream 2021-01-09T11:16:32Z phoe: and if it doesn't, then it should 2021-01-09T11:16:37Z Nilby: It does. 2021-01-09T11:16:49Z phoe: then there should be no double output because the first line should have already been flushed 2021-01-09T11:17:01Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-09T11:17:07Z Nilby: It's just that there's output from multiple threads in there if you don't make multiple stram buffers somehow. 2021-01-09T11:17:14Z ralt joined #lisp 2021-01-09T11:17:46Z jurov_ quit (Ping timeout: 272 seconds) 2021-01-09T11:19:20Z euandreh joined #lisp 2021-01-09T11:19:54Z h4ck3r9696: Well, guess i'll have double output. It doesn't really matter anyway because i'll add a GUI soon 2021-01-09T11:19:56Z Nilby: I experience it all the time since I run stuff directly in a terminal. But it's not hard mitigate. Also, the normal flushing in sbcl & 2021-01-09T11:20:04Z phoe: in the terminal, yes 2021-01-09T11:20:12Z phoe: but why does slime get it right and sly doesn't? 2021-01-09T11:20:29Z phoe: in terminal it's normal when multiple threads write to a single stdout without locking 2021-01-09T11:20:46Z Nilby: Slime buffers output of multiple threads for you. 2021-01-09T11:21:06Z phoe: and sly ones don't? 2021-01-09T11:21:51Z Nilby: I don't know, but it probably does. 2021-01-09T11:22:42Z rogersm quit 2021-01-09T11:22:59Z Nilby: Also the stream flushing behaviour varies quite a bit between implementations. 2021-01-09T11:23:27Z phoe: hmmmmmmmm 2021-01-09T11:25:46Z fiddlerwoaroof thinks this is a good reason to use SLIME 2021-01-09T11:28:42Z Nilby: This gives pretty random results, and worse when you put a finish-output afger the print: (progn (bt:make-thread (lambda () (dotimes (i 50) (print i) (sleep .1)))) (bt:make-thread (lambda () (dotimes (i 50) (print i) (sleep .1))))) 2021-01-09T11:29:43Z euandreh quit (Quit: WeeChat 3.0) 2021-01-09T11:30:03Z euandreh joined #lisp 2021-01-09T11:30:07Z cage_ joined #lisp 2021-01-09T11:39:16Z phoe: yes, I can reproduce it 2021-01-09T11:39:46Z phoe: https://plaster.tymoon.eu/view/2234#2234 2021-01-09T11:44:46Z Nilby: One easy way to have slightly more consistent output is make a new stream per thread, e.g. https://plaster.tymoon.eu/view/2235#2235 2021-01-09T11:47:39Z vegansbane6 joined #lisp 2021-01-09T11:48:38Z birdwing joined #lisp 2021-01-09T11:49:29Z xrash quit (Read error: Connection reset by peer) 2021-01-09T11:50:28Z Nilby: You can get really messed up if you're a kook like me doing a tui with many threads writing & inputting. 2021-01-09T11:50:37Z phoe: yes 2021-01-09T11:51:46Z rumbler31 joined #lisp 2021-01-09T11:56:18Z rumbler31 quit (Ping timeout: 260 seconds) 2021-01-09T11:57:17Z ech joined #lisp 2021-01-09T11:58:40Z fiddlerwoaroof: Nilby: I contributed https://github.com/slime/slime/blob/master/contrib/slime-buffer-streams.el that might help this sort of problem 2021-01-09T11:58:54Z fiddlerwoaroof: Basically, you create a stream and emacs creates a corresponding buffer 2021-01-09T11:59:54Z fiddlerwoaroof: I don't think it's been ported to sly, but it's a bit cleaner for some things (DRKMA:*HEADER-OUTPUT-STREAM*, for example) than just using *standard-output* for everything 2021-01-09T12:01:03Z paul0 quit (Quit: Leaving) 2021-01-09T12:05:42Z attila_lendvai quit (Ping timeout: 256 seconds) 2021-01-09T12:09:03Z vutral_ joined #lisp 2021-01-09T12:09:42Z akoana joined #lisp 2021-01-09T12:10:30Z Nilby: fiddlerwoaroof: Thanks. That seems quite useful, especially for network stuff. Interactive terminal stuff must take another path though. 2021-01-09T12:11:46Z kaftejiman_ joined #lisp 2021-01-09T12:11:46Z kaftejiman quit (Read error: Connection reset by peer) 2021-01-09T12:18:22Z miracle_fox joined #lisp 2021-01-09T12:33:40Z mrios22 joined #lisp 2021-01-09T12:41:56Z euandreh quit (Quit: WeeChat 3.0) 2021-01-09T13:01:02Z BuboBubo joined #lisp 2021-01-09T13:05:38Z Lycurgus joined #lisp 2021-01-09T13:09:25Z surabax joined #lisp 2021-01-09T13:14:28Z aartaka_d joined #lisp 2021-01-09T13:18:14Z aartaka quit (Ping timeout: 256 seconds) 2021-01-09T13:21:25Z rumbler31 joined #lisp 2021-01-09T13:26:08Z rumbler31 quit (Ping timeout: 260 seconds) 2021-01-09T13:32:48Z rumbler31_ quit (Ping timeout: 256 seconds) 2021-01-09T13:36:34Z frost-lab quit (Quit: Connection closed) 2021-01-09T13:37:01Z BuboBubo quit (Remote host closed the connection) 2021-01-09T13:39:35Z SlashLife joined #lisp 2021-01-09T13:44:43Z luckless quit (Ping timeout: 240 seconds) 2021-01-09T13:46:43Z hendursa1 quit (Ping timeout: 240 seconds) 2021-01-09T13:48:15Z hendursa1 joined #lisp 2021-01-09T13:48:20Z luckless joined #lisp 2021-01-09T13:50:14Z liberliver1 joined #lisp 2021-01-09T13:51:01Z h4ck3r9696 quit (Remote host closed the connection) 2021-01-09T13:52:33Z liberliver1 is now known as liberliver 2021-01-09T13:59:41Z rumbler31_ joined #lisp 2021-01-09T14:02:19Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-09T14:02:50Z hendursa1 quit (Quit: hendursa1) 2021-01-09T14:03:08Z hendursaga joined #lisp 2021-01-09T14:06:23Z galex-713 joined #lisp 2021-01-09T14:10:01Z mankaev quit (Read error: Connection reset by peer) 2021-01-09T14:16:13Z trocado joined #lisp 2021-01-09T14:16:48Z surabax quit (Quit: Leaving) 2021-01-09T14:16:50Z Bike joined #lisp 2021-01-09T14:17:07Z imode quit (Quit: Lovely night, isn't it? Fresh air, lovely people..) 2021-01-09T14:17:08Z vutral_ quit (Quit: Connection closed for inactivity) 2021-01-09T14:23:17Z waleee-cl joined #lisp 2021-01-09T14:25:30Z mrios22 quit (Ping timeout: 256 seconds) 2021-01-09T14:40:00Z bilegeek joined #lisp 2021-01-09T14:44:37Z miracle_fox quit (Ping timeout: 264 seconds) 2021-01-09T14:45:56Z dmiles joined #lisp 2021-01-09T14:46:36Z dmiles quit (Read error: Connection reset by peer) 2021-01-09T14:48:14Z orivej quit (Ping timeout: 265 seconds) 2021-01-09T14:48:59Z dmiles joined #lisp 2021-01-09T14:50:25Z dmiles quit (Read error: Connection reset by peer) 2021-01-09T14:52:07Z dmiles joined #lisp 2021-01-09T14:53:28Z aorst joined #lisp 2021-01-09T14:56:18Z dmiles quit (Client Quit) 2021-01-09T14:57:14Z andreyorst quit (Ping timeout: 256 seconds) 2021-01-09T14:57:14Z andreyorst_ is now known as andreyorst 2021-01-09T15:05:51Z v3ga: hmm, after Common LISP: A Gentle Introduction to Symbolic Computation should I read Let over Lambda or Land of Lisp? 2021-01-09T15:06:42Z beach: I think you should read PCL. 2021-01-09T15:06:56Z beach: minion: Please tell v3ga about PCL. 2021-01-09T15:06:56Z minion: v3ga: please look at PCL: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005). 2021-01-09T15:07:39Z v3ga: beach: Ok, I have that too on my shelf. Darn. so PCL > Land of Lisp. 2021-01-09T15:07:54Z beach: I am not sure of either of the LoL books. 2021-01-09T15:08:14Z Lycurgus quit (Quit: Exeunt) 2021-01-09T15:08:55Z beach: I would do PCL, then PAIP. 2021-01-09T15:09:41Z v3ga: beach: lol, ok. I have that as well. I actually came across a copy for a good price and grabbed it but I haven't touched it yet. 2021-01-09T15:10:14Z beach: Others here may have a different opinion, of course. 2021-01-09T15:11:34Z Nilby: it depends on your reaction to the words "Grand Theft Wumpus" 2021-01-09T15:12:36Z v3ga: Nilby: say what? =P 2021-01-09T15:13:02Z v3ga: that must be land over lisp. Silliness is fine as well. 2021-01-09T15:13:36Z mankaev joined #lisp 2021-01-09T15:14:11Z Nilby: it's a thing in LoL 2021-01-09T15:15:15Z dmiles joined #lisp 2021-01-09T15:15:23Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-09T15:16:43Z madage quit (Ping timeout: 240 seconds) 2021-01-09T15:16:54Z hendursaga joined #lisp 2021-01-09T15:18:02Z madage joined #lisp 2021-01-09T15:30:37Z dmiles quit 2021-01-09T15:36:08Z reb joined #lisp 2021-01-09T15:39:09Z jackhill quit (Read error: Connection reset by peer) 2021-01-09T15:43:05Z bitmapper joined #lisp 2021-01-09T15:44:20Z andreyor1 joined #lisp 2021-01-09T15:46:43Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-09T15:47:23Z madage quit (Ping timeout: 240 seconds) 2021-01-09T15:47:37Z aorst quit (Ping timeout: 264 seconds) 2021-01-09T15:50:02Z hendursaga joined #lisp 2021-01-09T15:52:36Z madage joined #lisp 2021-01-09T15:53:45Z lotuseater quit (Ping timeout: 240 seconds) 2021-01-09T15:53:48Z phoe: IMO Let over Lambda should be read after Graham's On Lisp 2021-01-09T15:54:34Z Anonymous__: https://paste.ofcode.org/jTLmSX3X9UcMu8FvBr94rB 2021-01-09T15:54:49Z phoe: Anonymous__: this seems like #scheme 2021-01-09T15:54:51Z Anonymous__: can someone check if i defined let and let* correctly in terms of lambda? 2021-01-09T15:54:58Z Anonymous__: In fact is scheme 2021-01-09T15:55:02Z phoe: #lisp is a place full of Common Lisp programmers 2021-01-09T15:55:11Z phoe: as it's dedicated to Common Lisp 2021-01-09T15:55:36Z Anonymous__: Understood, i will give a try on #scheme 2021-01-09T15:56:45Z mmmattyx joined #lisp 2021-01-09T15:59:38Z dmiles joined #lisp 2021-01-09T16:07:31Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T16:08:03Z amb007 joined #lisp 2021-01-09T16:10:53Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-09T16:11:31Z miracle_fox joined #lisp 2021-01-09T16:14:56Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T16:15:05Z amb007 joined #lisp 2021-01-09T16:16:50Z reb quit (Ping timeout: 264 seconds) 2021-01-09T16:17:03Z reb`` joined #lisp 2021-01-09T16:18:52Z galex-713 joined #lisp 2021-01-09T16:20:28Z __jrjsmrtn__ quit (Ping timeout: 246 seconds) 2021-01-09T16:20:32Z _jrjsmrtn joined #lisp 2021-01-09T16:23:56Z liberliver quit (Ping timeout: 265 seconds) 2021-01-09T16:24:07Z narimiran joined #lisp 2021-01-09T16:25:50Z reb`` quit (Ping timeout: 264 seconds) 2021-01-09T16:26:04Z reb```` joined #lisp 2021-01-09T16:29:43Z Blukunfando joined #lisp 2021-01-09T16:35:26Z reb```` quit (Ping timeout: 264 seconds) 2021-01-09T16:35:26Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T16:35:44Z reb`````` joined #lisp 2021-01-09T16:35:47Z amb007 joined #lisp 2021-01-09T16:41:41Z trocado quit (Read error: Connection reset by peer) 2021-01-09T16:41:41Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T16:42:13Z Oladon joined #lisp 2021-01-09T16:42:22Z amb007 joined #lisp 2021-01-09T16:45:02Z reb`````` quit (Ping timeout: 264 seconds) 2021-01-09T16:45:18Z reb`````` joined #lisp 2021-01-09T16:49:50Z reb`````` quit (Ping timeout: 264 seconds) 2021-01-09T16:50:07Z reb`````` joined #lisp 2021-01-09T16:50:22Z BuboBubo joined #lisp 2021-01-09T16:51:49Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T16:52:09Z liberliver joined #lisp 2021-01-09T16:52:15Z amb007 joined #lisp 2021-01-09T16:53:58Z andreyorst quit (Quit: andreyorst) 2021-01-09T16:53:58Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T16:54:29Z andreyorst joined #lisp 2021-01-09T16:54:38Z reb`````` quit (Ping timeout: 264 seconds) 2021-01-09T16:54:46Z amb007 joined #lisp 2021-01-09T16:54:53Z reb`````` joined #lisp 2021-01-09T16:57:55Z thmprover joined #lisp 2021-01-09T16:59:26Z reb`````` quit (Ping timeout: 264 seconds) 2021-01-09T16:59:41Z reb`````` joined #lisp 2021-01-09T17:01:31Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T17:01:54Z amb007 joined #lisp 2021-01-09T17:04:06Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T17:04:28Z amb007 joined #lisp 2021-01-09T17:06:36Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T17:07:17Z amb007 joined #lisp 2021-01-09T17:11:13Z miracle_fox quit (Ping timeout: 246 seconds) 2021-01-09T17:11:51Z miracle_fox joined #lisp 2021-01-09T17:13:00Z trocado joined #lisp 2021-01-09T17:17:06Z bacterio quit (Ping timeout: 265 seconds) 2021-01-09T17:17:06Z BuboBubo quit (Remote host closed the connection) 2021-01-09T17:17:22Z akrl quit (Ping timeout: 256 seconds) 2021-01-09T17:17:30Z akrl joined #lisp 2021-01-09T17:17:39Z BuboBubo joined #lisp 2021-01-09T17:18:15Z bacterio joined #lisp 2021-01-09T17:23:43Z luna_is_here quit (Ping timeout: 272 seconds) 2021-01-09T17:26:19Z luna_is_here joined #lisp 2021-01-09T17:27:01Z ralt quit (Quit: Connection closed for inactivity) 2021-01-09T17:30:04Z charles` joined #lisp 2021-01-09T17:32:00Z rogersm joined #lisp 2021-01-09T17:32:14Z orivej joined #lisp 2021-01-09T17:45:51Z BuboBubo quit 2021-01-09T17:49:09Z Jeanne-Kamikaze joined #lisp 2021-01-09T17:54:44Z skapata joined #lisp 2021-01-09T18:04:26Z Oladon quit (Quit: Leaving.) 2021-01-09T18:05:06Z ech quit (Remote host closed the connection) 2021-01-09T18:09:17Z dmiles quit 2021-01-09T18:09:47Z renzhi joined #lisp 2021-01-09T18:10:28Z ech joined #lisp 2021-01-09T18:11:07Z Danishman joined #lisp 2021-01-09T18:11:53Z rogersm quit (Remote host closed the connection) 2021-01-09T18:12:29Z rogersm joined #lisp 2021-01-09T18:14:35Z curiouscain quit (Quit: WeeChat 2.8) 2021-01-09T18:15:03Z ebrasca quit (Remote host closed the connection) 2021-01-09T18:17:01Z rogersm quit (Ping timeout: 264 seconds) 2021-01-09T18:23:07Z Oladon joined #lisp 2021-01-09T18:25:03Z luni joined #lisp 2021-01-09T18:29:16Z shka_ joined #lisp 2021-01-09T18:39:43Z shka_: good evening 2021-01-09T18:41:18Z dmiles joined #lisp 2021-01-09T18:45:14Z charles`: Hello 2021-01-09T18:47:33Z jurov_ joined #lisp 2021-01-09T18:50:38Z jurov quit (Ping timeout: 256 seconds) 2021-01-09T18:51:19Z travv0: Hello 2021-01-09T18:55:25Z Jeanne-Kamikaze quit (Ping timeout: 264 seconds) 2021-01-09T18:57:08Z frodef: hi 2021-01-09T18:57:58Z Lord_of_Life_ joined #lisp 2021-01-09T19:00:30Z charles`: Has anyone used usocket and needed to detect a close? is a timer the best solution? 2021-01-09T19:00:44Z Lord_of_Life quit (Ping timeout: 272 seconds) 2021-01-09T19:00:44Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-09T19:02:36Z nydel quit (Ping timeout: 240 seconds) 2021-01-09T19:03:10Z bacterio quit (Ping timeout: 256 seconds) 2021-01-09T19:04:44Z bacterio joined #lisp 2021-01-09T19:06:36Z orivej quit (Ping timeout: 240 seconds) 2021-01-09T19:09:03Z nydel joined #lisp 2021-01-09T19:15:34Z devon quit (Ping timeout: 256 seconds) 2021-01-09T19:15:53Z slyrus quit (Remote host closed the connection) 2021-01-09T19:17:01Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T19:18:05Z amb007 joined #lisp 2021-01-09T19:24:29Z bilegeek quit (Quit: Leaving) 2021-01-09T19:25:50Z Oladon quit (Quit: Leaving.) 2021-01-09T19:28:20Z galex-713 quit (Ping timeout: 246 seconds) 2021-01-09T19:29:36Z rumbler31_ quit (Ping timeout: 240 seconds) 2021-01-09T19:30:52Z jurov joined #lisp 2021-01-09T19:30:52Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T19:31:40Z amb007 joined #lisp 2021-01-09T19:32:40Z cage_ quit (Quit: Leaving) 2021-01-09T19:33:18Z jurov- joined #lisp 2021-01-09T19:34:16Z jurov_ quit (Ping timeout: 256 seconds) 2021-01-09T19:37:06Z jurov quit (Ping timeout: 256 seconds) 2021-01-09T19:40:12Z orivej joined #lisp 2021-01-09T19:40:58Z johnjay: solideogloria[m]: i used rainbow parens but idt they are necessary. I wrote my own extension that improves paren matching in emacs by going one level deeper 2021-01-09T19:41:24Z renzhi quit (Ping timeout: 240 seconds) 2021-01-09T19:41:40Z johnjay: so it just highlights the current paren and all the children in the sexp. works pretty well 2021-01-09T19:42:22Z johnjay: you should use the indentation in emacs to get the most information first imo 2021-01-09T19:43:12Z Oladon joined #lisp 2021-01-09T19:44:16Z hnOsmium0001 joined #lisp 2021-01-09T19:44:41Z fiddlerwoaroof: Does anyone know of a RFC822 email parser? 2021-01-09T19:50:12Z birdwing quit (Ping timeout: 256 seconds) 2021-01-09T19:50:13Z amb007 quit (Read error: Connection reset by peer) 2021-01-09T19:50:20Z mgxm quit (Quit: ....) 2021-01-09T19:53:50Z amb007 joined #lisp 2021-01-09T19:53:55Z mgxm joined #lisp 2021-01-09T19:55:08Z galex-713 joined #lisp 2021-01-09T19:57:02Z rumbler31_ joined #lisp 2021-01-09T20:00:15Z fiddlerwoaroof: I found one on Cliki, but its email address parser was really slow 2021-01-09T20:00:51Z fiddlerwoaroof: It uses one giant cl-ppcre regex to parse email addresses, probably a good test case for performance improvements to CL-PPCRE :) 2021-01-09T20:09:43Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-09T20:10:40Z ppbitb quit (Remote host closed the connection) 2021-01-09T20:10:43Z madage quit (Ping timeout: 240 seconds) 2021-01-09T20:11:14Z ppbitb joined #lisp 2021-01-09T20:11:24Z miasuji joined #lisp 2021-01-09T20:11:58Z msk joined #lisp 2021-01-09T20:12:03Z ech quit (Ping timeout: 240 seconds) 2021-01-09T20:12:23Z luckless quit (Ping timeout: 240 seconds) 2021-01-09T20:12:33Z ted_wroclaw joined #lisp 2021-01-09T20:13:03Z rogersm joined #lisp 2021-01-09T20:13:53Z msk_ quit (Ping timeout: 260 seconds) 2021-01-09T20:15:15Z madage joined #lisp 2021-01-09T20:15:16Z Nilby quit (Read error: Connection reset by peer) 2021-01-09T20:15:37Z luckless joined #lisp 2021-01-09T20:15:43Z Aurora_v_kosmose quit (Ping timeout: 240 seconds) 2021-01-09T20:17:54Z rogersm quit (Ping timeout: 256 seconds) 2021-01-09T20:18:11Z Aurora_v_kosmose joined #lisp 2021-01-09T20:19:43Z ech joined #lisp 2021-01-09T20:20:01Z ppbitb quit (Remote host closed the connection) 2021-01-09T20:20:31Z ppbitb joined #lisp 2021-01-09T20:25:36Z andreyorst quit (Ping timeout: 265 seconds) 2021-01-09T20:26:36Z johnjay: is there a common lisp email server you mean? 2021-01-09T20:27:54Z johnjay: oh its the email format 2021-01-09T20:30:03Z ljavorsk joined #lisp 2021-01-09T20:36:02Z andreyorst joined #lisp 2021-01-09T20:37:34Z zacts joined #lisp 2021-01-09T20:37:38Z zacts quit (Client Quit) 2021-01-09T20:37:45Z v88m quit (Ping timeout: 240 seconds) 2021-01-09T20:39:19Z v88m joined #lisp 2021-01-09T20:40:46Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-09T20:40:55Z ralt joined #lisp 2021-01-09T20:41:42Z Aurora_v_kosmose joined #lisp 2021-01-09T20:45:54Z andreyorst quit (Ping timeout: 265 seconds) 2021-01-09T20:47:53Z rogersm joined #lisp 2021-01-09T20:48:36Z andreyor1 quit (Quit: WeeChat 3.0) 2021-01-09T20:48:52Z andreyorst joined #lisp 2021-01-09T20:57:37Z Iolo quit (Quit: ZNC 1.7.5+deb4 - https://znc.in) 2021-01-09T20:58:22Z mgxm quit (Quit: ....) 2021-01-09T21:00:22Z Iolo joined #lisp 2021-01-09T21:02:09Z mgxm joined #lisp 2021-01-09T21:05:20Z ppbitb quit (Remote host closed the connection) 2021-01-09T21:05:51Z ppbitb joined #lisp 2021-01-09T21:10:25Z Oladon quit (Quit: Leaving.) 2021-01-09T21:10:34Z hiroaki quit (Remote host closed the connection) 2021-01-09T21:10:41Z hendursaga joined #lisp 2021-01-09T21:10:56Z Danishman quit (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) 2021-01-09T21:12:03Z hiroaki joined #lisp 2021-01-09T21:15:54Z jurov joined #lisp 2021-01-09T21:17:48Z anticrisis joined #lisp 2021-01-09T21:19:06Z jurov- quit (Ping timeout: 256 seconds) 2021-01-09T21:19:10Z ljavorsk quit (Ping timeout: 256 seconds) 2021-01-09T21:25:32Z mmmattyx quit (Quit: Connection closed for inactivity) 2021-01-09T21:27:04Z lowryder quit (Ping timeout: 246 seconds) 2021-01-09T21:27:38Z fiddlerwoaroof: Yeah 2021-01-09T21:29:10Z lowryder joined #lisp 2021-01-09T21:29:41Z rogersm quit 2021-01-09T21:36:31Z narimiran quit (Ping timeout: 246 seconds) 2021-01-09T21:46:35Z fiddlerwoaroof: I just realized mel-base might have an ok one... 2021-01-09T21:47:10Z amirouche quit (Remote host closed the connection) 2021-01-09T21:47:36Z reb``````: OK, I'm curious. Why do you want some way of validating or parsing email addresses? 2021-01-09T21:48:44Z fiddlerwoaroof: reb``````: well, I've been working on a little utility for turning an NNTP group into a folder full of emails 2021-01-09T21:49:10Z fiddlerwoaroof: And I wanted to add the ability to do some email -> HTML stuff 2021-01-09T21:50:03Z fiddlerwoaroof: Like that mailing list archive that just shut down its web interface... 2021-01-09T21:51:02Z reb``````: ... but why do you want to parse or validate email addresses? 2021-01-09T21:51:32Z fiddlerwoaroof: I want to parse the headers out of the email and do interesting things with them 2021-01-09T21:51:39Z fiddlerwoaroof: RFC822 is the email format 2021-01-09T21:51:53Z reb``````: Ah, you want to parse email headers. That makes more sense. 2021-01-09T21:51:56Z fiddlerwoaroof: It includes a spec for email addresses 2021-01-09T21:53:03Z SAL9000 quit (Quit: WeeChat 2.9) 2021-01-09T22:05:39Z aeth quit (Ping timeout: 265 seconds) 2021-01-09T22:07:25Z aeth joined #lisp 2021-01-09T22:12:58Z pve quit (Quit: leaving) 2021-01-09T22:13:40Z Posterdati quit (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) 2021-01-09T22:13:58Z bilegeek joined #lisp 2021-01-09T22:21:08Z Posterdati joined #lisp 2021-01-09T22:21:28Z reb`````` quit (Remote host closed the connection) 2021-01-09T22:22:59Z shka_ quit (Quit: Konversation terminated!) 2021-01-09T22:26:34Z shka_ joined #lisp 2021-01-09T22:29:43Z ech quit (Ping timeout: 240 seconds) 2021-01-09T22:30:43Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-09T22:32:23Z hendursaga joined #lisp 2021-01-09T22:36:58Z ech joined #lisp 2021-01-09T22:53:23Z ech quit (Ping timeout: 240 seconds) 2021-01-09T22:57:03Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-09T22:57:49Z miracle_fox quit 2021-01-09T22:58:45Z ech joined #lisp 2021-01-09T22:59:07Z karlosz joined #lisp 2021-01-09T23:02:38Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-09T23:03:25Z ralt: fiddlerwoaroof: don't you mostly care about the comma? 2021-01-09T23:04:36Z lotuseater joined #lisp 2021-01-09T23:04:43Z imode joined #lisp 2021-01-09T23:06:12Z birdwing joined #lisp 2021-01-09T23:12:56Z ted_wroclaw quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-09T23:13:01Z jackhill joined #lisp 2021-01-09T23:16:23Z luckless quit (Ping timeout: 240 seconds) 2021-01-09T23:17:44Z luckless joined #lisp 2021-01-09T23:19:38Z zacts joined #lisp 2021-01-09T23:19:40Z zacts quit (Client Quit) 2021-01-09T23:29:06Z BuboBubo joined #lisp 2021-01-09T23:29:59Z BuboBubo quit (Client Quit) 2021-01-09T23:32:45Z luni quit (Quit: Connection closed) 2021-01-09T23:42:58Z neirac joined #lisp 2021-01-09T23:43:55Z shka_ quit (Ping timeout: 246 seconds) 2021-01-09T23:52:31Z bilegeek quit (Quit: Leaving) 2021-01-09T23:54:23Z ech quit (Ping timeout: 240 seconds) 2021-01-10T00:10:00Z madage quit (Remote host closed the connection) 2021-01-10T00:10:25Z madage joined #lisp 2021-01-10T00:14:43Z makomo quit (Ping timeout: 246 seconds) 2021-01-10T00:17:11Z hnOsmium0001 joined #lisp 2021-01-10T00:26:09Z birdwing quit (Ping timeout: 272 seconds) 2021-01-10T00:26:44Z ech joined #lisp 2021-01-10T00:31:27Z devon joined #lisp 2021-01-10T00:32:07Z Inline joined #lisp 2021-01-10T00:44:31Z tsrt^ joined #lisp 2021-01-10T01:13:16Z miasuji quit (Ping timeout: 240 seconds) 2021-01-10T01:16:40Z gaqwas quit (Ping timeout: 246 seconds) 2021-01-10T01:18:16Z Jeanne-Kamikaze joined #lisp 2021-01-10T01:19:56Z random-nick quit (Ping timeout: 256 seconds) 2021-01-10T01:21:53Z pfdietz joined #lisp 2021-01-10T01:24:07Z epony quit (Quit: reconfigure) 2021-01-10T01:25:17Z epony joined #lisp 2021-01-10T01:27:01Z ralt quit (Quit: Connection closed for inactivity) 2021-01-10T01:40:10Z kaftejiman_ quit (Remote host closed the connection) 2021-01-10T01:49:20Z neirac left #lisp 2021-01-10T02:58:09Z Inline quit (Ping timeout: 272 seconds) 2021-01-10T02:59:37Z quazimodo quit (Ping timeout: 264 seconds) 2021-01-10T03:12:49Z Jesin quit (Ping timeout: 264 seconds) 2021-01-10T03:22:14Z Jeanne-Kamikaze quit (Quit: Leaving) 2021-01-10T03:23:43Z stoneglass joined #lisp 2021-01-10T03:30:43Z miasuji joined #lisp 2021-01-10T03:33:45Z orivej quit (Ping timeout: 240 seconds) 2021-01-10T03:47:47Z Misha_B left #lisp 2021-01-10T03:49:24Z stoneglass quit (Quit: stoneglass) 2021-01-10T03:50:46Z slondr joined #lisp 2021-01-10T03:51:57Z slondr: Hey all, is there an easy-to-use package to play musical notes? 2021-01-10T03:52:12Z slondr: Like, I want to do something along the lines of (play 'C) and hear a C note from my computer 2021-01-10T04:01:02Z Xach: slondr: i wish i could suggest something, but it's not an area i know anything about when it comes to CL. 2021-01-10T04:01:13Z nullman quit (Remote host closed the connection) 2021-01-10T04:01:21Z Xach: and those who might know may be asleep! but maybe a q on reddit or stackoverflow would get an answer eventually. 2021-01-10T04:01:52Z Xach thinks back to GWBASIC programs that could do this easily decades ago 2021-01-10T04:02:03Z Alfr_ joined #lisp 2021-01-10T04:03:55Z nullman joined #lisp 2021-01-10T04:04:37Z Alfr quit (Ping timeout: 260 seconds) 2021-01-10T04:05:15Z beach: Good morning everyone! 2021-01-10T04:07:15Z slondr: Xach: ah, thanks for the insight at least 2021-01-10T04:07:29Z moon-child: slondr: nothing that I know of, but I bet you could build something pretty easily off of oss 2021-01-10T04:08:24Z Xach: moon-child: "easily"!! 2021-01-10T04:08:39Z moon-child: relatively 2021-01-10T04:08:53Z moon-child: sin waves are easy to construct. A4 is (usually) 440Hz, and you scale by increments of 2^1/12 2021-01-10T04:09:10Z moon-child: s/increments/factors 2021-01-10T04:09:52Z beach: It is easier to use the MIDI interface for that. 2021-01-10T04:10:16Z moon-child: oss has a midi interface? 2021-01-10T04:10:20Z slondr: certainly seems a little more involved than just (play-note "C") etc 2021-01-10T04:10:30Z slondr: or "C4" 2021-01-10T04:10:40Z beach: I didn't know OSS was a requirement. 2021-01-10T04:11:39Z beach: slondr: I am sure there are systems that use the MIDI interface. OpenMusic must be doing something like that. 2021-01-10T04:11:50Z moon-child: didn't mean to imply that it was; just thought that you were. What midi interface were you referring to? 2021-01-10T04:12:17Z beach: /dev/midi 2021-01-10T04:12:50Z andreyorst_ joined #lisp 2021-01-10T04:13:10Z beach: Oh, maybe that's just input. 2021-01-10T04:13:24Z beach: In which case you need to use something like Timidity. 2021-01-10T04:13:39Z moon-child: I think that's for interacting with midi hardware devices; both input and output, but not a regular speaker 2021-01-10T04:13:45Z beach: Let me check what I did for Gsharp. I know it was very simple. 2021-01-10T04:13:54Z slondr: beach: that seems *way* more involved than (play-note "C4") 2021-01-10T04:15:29Z beach: moon-child: You are right. I wrote a MIDI file and started Timidity. 2021-01-10T04:15:36Z slondr: Although if there's nothing that does precisely what I'd like, it may be worth the extra effort 2021-01-10T04:15:58Z beach: slondr: It is one of those things that are easier to write than to specify. 2021-01-10T04:16:21Z beach: slondr: What's the volume? How long does the note last? What's the sound? 2021-01-10T04:17:03Z beach: slondr: If all you want is a sine wave, it's a 5-line program. 2021-01-10T04:18:26Z moon-child: slondr: a little googling suggests https://ccrma.stanford.edu/software/snd/snd/clm.html 2021-01-10T04:19:06Z slondr: moon-child: yeah I found that in my searching, it's very mechanical though 2021-01-10T04:19:18Z edgar-rft: slondr: don't know how much it is maintained but looks reasonably simple -> https://www.cliki.net/sb-simple-audio 2021-01-10T04:19:24Z beach: slondr: mechanical? 2021-01-10T04:20:23Z edgar-rft: slondr: another alternative would be -> https://filonenko-mikhail.github.io/cl-portaudio/ 2021-01-10T04:22:20Z slondr: edgar-rft: I'll try that one I guess 2021-01-10T04:22:30Z slondr: I'm disappointed that this isn't a solved problem really 2021-01-10T04:22:48Z beach: It is. 2021-01-10T04:23:01Z beach: OpenMusic is a solution. 2021-01-10T04:23:26Z miasuji quit (Ping timeout: 264 seconds) 2021-01-10T04:23:40Z edgar-rft: slondr: a complete CL realtime synth is -> http://incudine.sourceforge.net/ 2021-01-10T04:24:20Z slondr: My use case is I have some other function that generates note sequences, eg (E G B A C), I just want to hear what that sequence sounds like, preferably without defining instruments or dealing with frequences and all that other stuff 2021-01-10T04:24:20Z andreyorst_ quit (Ping timeout: 256 seconds) 2021-01-10T04:24:24Z slondr: Perhaps I am just lazy 2021-01-10T04:25:35Z beach: slondr: That's a very specific use case that you can't expect to have a pre-existing library for. 2021-01-10T04:25:54Z beach: slondr: Normally, you would want to know the instrument, the duration, the volume, etc. 2021-01-10T04:26:18Z fiddlerwoaroof: slondr: common music has something like that, I think 2021-01-10T04:26:29Z fiddlerwoaroof: But I think they switched from CL to scheme a while ago 2021-01-10T04:26:39Z slondr: beach: something like this exists for python I believe 2021-01-10T04:26:55Z beach: Good to know. 2021-01-10T04:53:03Z slondr: moon-child: sadly the download link for CLM 404s, and afaict it's not in quicklisp 2021-01-10T04:53:47Z moon-child: slondr: there are two links; the second works fine for me 2021-01-10T04:54:10Z slondr: oh! I hadn't noticed that 2021-01-10T04:54:12Z slondr: thanks moon-child 2021-01-10T04:58:36Z bmansurov joined #lisp 2021-01-10T04:59:00Z bmansurov is now known as Guest71249 2021-01-10T05:00:20Z Guest71249 is now known as bmansurov` 2021-01-10T05:02:01Z bmansurov` is now known as bmansurov_ 2021-01-10T05:06:56Z andreyorst_ joined #lisp 2021-01-10T05:09:47Z Jesin joined #lisp 2021-01-10T05:13:21Z thmprover quit (Quit: [Exit, pursued by bear]) 2021-01-10T05:28:02Z matryoshka quit (Ping timeout: 260 seconds) 2021-01-10T05:29:20Z akoana left #lisp 2021-01-10T05:31:27Z payphone quit (Quit: WeeChat 2.7.1) 2021-01-10T05:32:34Z matryoshka joined #lisp 2021-01-10T05:35:09Z karlosz quit (Read error: Connection reset by peer) 2021-01-10T05:35:10Z karlosz_ joined #lisp 2021-01-10T05:39:38Z Bike quit (Quit: Lost terminal) 2021-01-10T05:42:36Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-10T06:02:38Z saganman joined #lisp 2021-01-10T06:09:55Z gko_ joined #lisp 2021-01-10T06:29:24Z zacts joined #lisp 2021-01-10T06:29:29Z zacts quit (Client Quit) 2021-01-10T06:46:40Z gutter quit (Remote host closed the connection) 2021-01-10T06:47:12Z birdwing joined #lisp 2021-01-10T06:57:09Z stzsch|2 joined #lisp 2021-01-10T06:59:37Z Nikotiini quit (Ping timeout: 264 seconds) 2021-01-10T07:00:00Z stzsch quit (Ping timeout: 256 seconds) 2021-01-10T07:00:54Z Nikotiini joined #lisp 2021-01-10T07:02:21Z ralt joined #lisp 2021-01-10T07:09:33Z Aurora_v_kosmose is now known as aurora\uwu^test 2021-01-10T07:09:51Z aurora\uwu^test is now known as Aurora_v_kosmose 2021-01-10T07:11:18Z quazimodo joined #lisp 2021-01-10T07:18:14Z JohnnyL joined #lisp 2021-01-10T07:30:35Z mindCrime joined #lisp 2021-01-10T07:31:32Z luni joined #lisp 2021-01-10T07:33:25Z gutter joined #lisp 2021-01-10T07:35:10Z slondr quit (Remote host closed the connection) 2021-01-10T07:38:12Z rumbler31_ quit (Ping timeout: 272 seconds) 2021-01-10T07:48:13Z v88m quit (Read error: Connection reset by peer) 2021-01-10T07:49:19Z v88m joined #lisp 2021-01-10T07:51:35Z gioyik quit (Quit: WeeChat 3.0) 2021-01-10T07:54:41Z shka_ joined #lisp 2021-01-10T07:56:58Z narimiran joined #lisp 2021-01-10T07:58:21Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-10T08:01:37Z aeth quit (Ping timeout: 246 seconds) 2021-01-10T08:03:44Z aeth joined #lisp 2021-01-10T08:05:05Z rumbler31_ joined #lisp 2021-01-10T08:07:42Z galex-713 joined #lisp 2021-01-10T08:08:43Z vutral_ joined #lisp 2021-01-10T08:19:49Z orivej joined #lisp 2021-01-10T08:31:25Z gko_ quit (Ping timeout: 264 seconds) 2021-01-10T08:38:20Z marusich quit (Read error: Connection reset by peer) 2021-01-10T08:38:53Z marusich joined #lisp 2021-01-10T08:45:02Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-10T08:53:31Z rogersm joined #lisp 2021-01-10T09:03:28Z ted_wroclaw joined #lisp 2021-01-10T09:06:21Z hendursa1 joined #lisp 2021-01-10T09:06:35Z gko_ joined #lisp 2021-01-10T09:06:42Z rogersm quit (Remote host closed the connection) 2021-01-10T09:08:23Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-10T09:08:34Z ex_nihilo joined #lisp 2021-01-10T09:12:06Z ralt quit (Quit: Connection closed for inactivity) 2021-01-10T09:12:09Z cage_ joined #lisp 2021-01-10T09:13:23Z anticrisis quit (Read error: Connection reset by peer) 2021-01-10T09:18:45Z makomo joined #lisp 2021-01-10T09:21:29Z gaqwas joined #lisp 2021-01-10T09:23:39Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-10T09:23:48Z pve joined #lisp 2021-01-10T09:26:15Z gaqwas quit (Remote host closed the connection) 2021-01-10T09:28:56Z cage_ quit (Quit: Leaving) 2021-01-10T09:29:19Z cage_ joined #lisp 2021-01-10T09:42:00Z ted_wroclaw quit (Quit: Textual IRC Client: www.textualapp.com) 2021-01-10T09:54:25Z slyrus joined #lisp 2021-01-10T10:02:22Z datajerk quit (Ping timeout: 246 seconds) 2021-01-10T10:08:04Z aeth quit (Ping timeout: 256 seconds) 2021-01-10T10:09:59Z aeth joined #lisp 2021-01-10T10:12:35Z datajerk joined #lisp 2021-01-10T10:16:01Z attila_lendvai joined #lisp 2021-01-10T10:18:13Z vutral_ quit (Quit: Connection closed for inactivity) 2021-01-10T10:18:33Z makomo quit (Ping timeout: 260 seconds) 2021-01-10T10:25:19Z luni quit (Quit: Connection closed) 2021-01-10T10:27:10Z kapasian joined #lisp 2021-01-10T10:28:18Z kapasian quit (Remote host closed the connection) 2021-01-10T10:31:29Z heisig joined #lisp 2021-01-10T10:31:35Z makomo joined #lisp 2021-01-10T10:32:22Z gko_ quit (Ping timeout: 272 seconds) 2021-01-10T10:36:43Z hendursa1 quit (Ping timeout: 240 seconds) 2021-01-10T10:36:54Z SpaceIgor2075 joined #lisp 2021-01-10T10:37:38Z ralt joined #lisp 2021-01-10T10:38:03Z hendursa1 joined #lisp 2021-01-10T10:50:22Z waleee-cl joined #lisp 2021-01-10T10:53:50Z earl-ducaine joined #lisp 2021-01-10T10:54:51Z sugarwren joined #lisp 2021-01-10T10:58:54Z surabax joined #lisp 2021-01-10T11:03:40Z Blukunfando quit (Ping timeout: 256 seconds) 2021-01-10T11:07:00Z trocado quit (Ping timeout: 256 seconds) 2021-01-10T11:07:39Z earl-ducaine quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2021-01-10T11:08:09Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-10T11:11:11Z Blukunfando joined #lisp 2021-01-10T11:15:40Z imode quit (Quit: Sleep well when you get there.) 2021-01-10T11:16:32Z ecm joined #lisp 2021-01-10T11:17:04Z ecm: How do I make emacs indent common lisp code properly ? 2021-01-10T11:18:12Z beach: Use SLIME. 2021-01-10T11:18:39Z beach: Specifically, the slime-indentation module, but I believe it is on by default now. 2021-01-10T11:19:05Z ecm: I have a slime instance running, should I expect it to indent it normally ? 2021-01-10T11:19:18Z beach: I think so,yes. 2021-01-10T11:19:31Z beach: It is not perfect, but it's pretty good. 2021-01-10T11:19:36Z beach: Are you having difficulties? 2021-01-10T11:20:18Z ecm: It's not indenting sub-functions under a function like it would with let or some other built-in function 2021-01-10T11:20:26Z beach: Indentation is important mostly for the buffer in Lisp mode. 2021-01-10T11:20:48Z beach: What is a "sub-function"? 2021-01-10T11:21:19Z ecm: sorry, not just a sub-function, any expression 2021-01-10T11:21:37Z ecm: it indents it to the line below the function name 2021-01-10T11:21:58Z beach: Are you sure your buffer is in Lisp mode? 2021-01-10T11:22:11Z ecm: unlike let where it indents it 2 spaces after the start 2021-01-10T11:22:16Z beach: Did you visit a file named xxx.lisp? 2021-01-10T11:22:27Z ecm: yes I did 2021-01-10T11:22:36Z ecm: I can confirm it's in lisp-mode 2021-01-10T11:22:47Z ecm: and I have a slime instance running 2021-01-10T11:22:50Z beach: You need to paste the code. Try the plaster.tymoon.eu 2021-01-10T11:23:01Z beach: s/the// 2021-01-10T11:26:13Z beach: ecm: Did you manage to paste your code there? 2021-01-10T11:27:17Z ecm: need a second 2021-01-10T11:27:58Z ecm: https://plaster.tymoon.eu/view/2236#2236 2021-01-10T11:28:06Z ecm: this is what emacs indents the code as 2021-01-10T11:28:26Z beach: Erm, do you have TABs in there? 2021-01-10T11:28:27Z ck_: oh, there's tabs in it 2021-01-10T11:28:31Z beach: It looks funny. 2021-01-10T11:28:44Z beach: ecm: Please untabify it first. 2021-01-10T11:29:10Z Blukunfando quit (Ping timeout: 246 seconds) 2021-01-10T11:31:20Z ecm: https://plaster.tymoon.eu/view/2236#2236 2021-01-10T11:31:21Z ecm: like so ? 2021-01-10T11:31:48Z beach: No, untabify means that you replace TABs by spaces. 2021-01-10T11:32:00Z ecm: oh got it 2021-01-10T11:32:05Z ck_: ecm: emacs has a command called 'untabify' -- M-x untabify 2021-01-10T11:32:24Z beach: Now you need to indent the buffer again, and then untabify it. 2021-01-10T11:32:55Z ck_: which will probably produce the exact same text as before though 2021-01-10T11:33:05Z ecm: ok done 2021-01-10T11:33:37Z ck_: like I predicted ;) your emacs is set to indent using tabs, that's the issue you need to address first 2021-01-10T11:33:38Z beach: So what's the complaint? 2021-01-10T11:34:06Z beach: Ah, yes, still TABs. 2021-01-10T11:34:25Z ecm: I expected crt:with-windows to be indented 2 spaces from crt:with-screen 2021-01-10T11:34:29Z beach: ecm: You need to do C-x h and then M-x untabify. 2021-01-10T11:34:54Z ck_: try M-x customize-variable indent-tabs-mode, set it to off -- that's my guess 2021-01-10T11:35:20Z ecm: beach: now ? 2021-01-10T11:35:21Z beach: Ah, that depends on the definition of the macro WITH-SCREEN. 2021-01-10T11:36:25Z beach: OK, let's see. Have you loaded the system that defines crt:xxx? 2021-01-10T11:36:32Z ecm: yes 2021-01-10T11:36:33Z ecm: I have 2021-01-10T11:36:57Z beach: Hmm. 2021-01-10T11:37:03Z beach: Let me see if I can reproduce it. What's the system? 2021-01-10T11:37:15Z ecm: croatoan, an ncurses library 2021-01-10T11:37:39Z ecm: I've loaded it in slime already 2021-01-10T11:37:41Z beach: But the fact that you did that on the first line doesn't mean it is loaded. 2021-01-10T11:37:49Z beach: OK, let me try it then... 2021-01-10T11:38:02Z ecm: I typed "(ql:quickload :croatoan)" inthe SLIME REPL 2021-01-10T11:38:11Z ecm: if that's what you mean 2021-01-10T11:38:18Z beach: yes, that's what I meant. 2021-01-10T11:38:38Z ecm: When I do a C-M-q it indents it like that 2021-01-10T11:38:43Z vegansbane6 joined #lisp 2021-01-10T11:40:57Z beach: Works for me. 2021-01-10T11:40:57Z beach: So, how exactly did you create this code? How did you start emacs, SLIME, and how did you create the buffer? 2021-01-10T11:41:14Z beach` joined #lisp 2021-01-10T11:41:55Z ecm: I opened the file as normal, I've added a slime-company hook for the file, I then started slime, loaded croatoan, compiled the file and did a C-M-q expecting to indent properly 2021-01-10T11:41:58Z cpape` quit (Quit: ERC (IRC client for Emacs 26.3)) 2021-01-10T11:42:05Z lotuseater quit (Remote host closed the connection) 2021-01-10T11:42:07Z beach quit (Disconnected by services) 2021-01-10T11:42:11Z beach` is now known as beach 2021-01-10T11:42:20Z cpape joined #lisp 2021-01-10T11:44:15Z beach: Er, C-M-Q? 2021-01-10T11:44:31Z beach: C-x h then C-M=\ 2021-01-10T11:44:59Z beach: Sorry, C-x h then C-M-\ 2021-01-10T11:45:27Z ck_: what's wrong with cmq? "C-M-q (translated from C-q) runs the command indent-sexp" 2021-01-10T11:46:07Z beach: I guess if you do it on the first opening parenthesis, it works. 2021-01-10T11:46:10Z ecm quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-10T11:46:18Z beach: But only for one expression. 2021-01-10T11:46:27Z ck_: I thought that was what this was about, my mistake if not. 2021-01-10T11:47:02Z ecm joined #lisp 2021-01-10T11:47:08Z beach: I may be wrong of course. 2021-01-10T11:47:14Z ecm: I restarted emacs just in-case 2021-01-10T11:47:42Z beach: ecm: Did you do C-M-q when the cursor was before (defun? 2021-01-10T11:47:54Z ecm: I did it both ways 2021-01-10T11:48:01Z ecm: inside (defun and on the ( 2021-01-10T11:48:23Z beach: What about C-x h and then C-M-\ 2021-01-10T11:48:27Z beach: Does that work? 2021-01-10T11:48:52Z lotuseater joined #lisp 2021-01-10T11:48:55Z ecm: ok it just worked once I restarted 2021-01-10T11:49:08Z ecm: thanks 2021-01-10T11:49:16Z orivej quit (Ping timeout: 240 seconds) 2021-01-10T11:49:42Z ecm: beach: both work now 2021-01-10T11:49:48Z beach: Hmm. Disconcerting! OK, good luck. 2021-01-10T11:52:01Z ck_: did you change indent-tabs-mode in the meantime? 2021-01-10T11:52:16Z ecm: no, I did not 2021-01-10T11:52:31Z ecm: am I not supposed to be using tabs for indentation ? 2021-01-10T11:53:16Z ck_: I think it is the consensus to use spaces today 2021-01-10T11:55:46Z aeth quit (Ping timeout: 246 seconds) 2021-01-10T11:57:51Z aeth joined #lisp 2021-01-10T11:59:07Z beach: Yeah, everything looks better that way. 2021-01-10T11:59:27Z beach: Git diffs, paste sites, etc. 2021-01-10T12:11:03Z random-nick joined #lisp 2021-01-10T12:16:46Z rjcks joined #lisp 2021-01-10T12:18:48Z orivej joined #lisp 2021-01-10T12:37:58Z troydm quit (Ping timeout: 260 seconds) 2021-01-10T12:40:25Z v88m quit (Ping timeout: 264 seconds) 2021-01-10T12:42:33Z rjcks quit (Quit: leaving) 2021-01-10T12:55:47Z Blukunfando joined #lisp 2021-01-10T12:57:57Z kaftejiman joined #lisp 2021-01-10T12:59:43Z troydm joined #lisp 2021-01-10T13:03:54Z SpaceIgo` joined #lisp 2021-01-10T13:05:11Z SpaceIgo` left #lisp 2021-01-10T13:07:20Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-10T13:09:29Z SAL9000 joined #lisp 2021-01-10T13:28:40Z rumbler31_ quit (Ping timeout: 256 seconds) 2021-01-10T13:40:09Z ljavorsk joined #lisp 2021-01-10T13:42:14Z Robdgreat left #lisp 2021-01-10T13:43:32Z frgo_ joined #lisp 2021-01-10T13:43:53Z orivej quit (Ping timeout: 260 seconds) 2021-01-10T13:44:37Z ljavorsk quit (Ping timeout: 246 seconds) 2021-01-10T13:46:01Z frgo quit (Ping timeout: 246 seconds) 2021-01-10T13:50:08Z ech quit (Remote host closed the connection) 2021-01-10T13:50:52Z ech joined #lisp 2021-01-10T13:55:33Z rumbler31_ joined #lisp 2021-01-10T14:07:02Z Bike joined #lisp 2021-01-10T14:14:05Z puchacz joined #lisp 2021-01-10T14:16:12Z Lycurgus joined #lisp 2021-01-10T14:21:17Z spoeplau joined #lisp 2021-01-10T14:23:52Z puchacz: hi, to play with ecl (I am interested in android), I need to sudo apt get ecl first, to get any version, then compile the newest one and follow some tutorials? 2021-01-10T14:24:14Z puchacz: the manual says ecl should be compiled with ecl 2021-01-10T14:26:40Z Inline joined #lisp 2021-01-10T14:29:07Z spoeplau: I'm trying to do (defctype foo :pointer) with several types '(foo bar baz), and I'm looking for a way to do something like (dolist (name '(foo bar baz)) (defctype name :pointer)). It doesn't quite work like this because "name" isn't evaluated, and the best I've been able to come up with so far is to define my own macro and then call it just once. Is there a better way? 2021-01-10T14:29:23Z v88m joined #lisp 2021-01-10T14:30:58Z karlosz_ quit (Quit: karlosz_) 2021-01-10T14:34:03Z Aurora_v_kosmose quit (Ping timeout: 240 seconds) 2021-01-10T14:34:51Z _death: the macro is a way.. but if it's just that simple form it's overkill in my opinion 2021-01-10T14:35:02Z xlei quit (Ping timeout: 256 seconds) 2021-01-10T14:35:36Z v88m quit (Ping timeout: 256 seconds) 2021-01-10T14:37:28Z Blukunfando quit (Ping timeout: 256 seconds) 2021-01-10T14:37:38Z spoeplau: _death: I have some more complex cases too, that one was just to illustrate what I'm trying to do 2021-01-10T14:37:48Z ralt: spoeplau: defctype is a macro I assume 2021-01-10T14:38:18Z ralt: You can macroexpand it to see if something else could be done 2021-01-10T14:39:17Z spoeplau: ralt: yep, it's from cffi. I'll have a look... 2021-01-10T14:39:25Z waleee-cl joined #lisp 2021-01-10T14:39:51Z _death: spoeplau: you can define a META macro, something like (defmacro meta (form) (let ((generate (gensym))) `(macrolet ((,generate () ,form)) (,generate)))) 2021-01-10T14:40:31Z _death: then (meta `(progn ,@(mapcar (lambda (name) `(defctype ,name :pointer)) '(foo bar baz)))) 2021-01-10T14:42:34Z Bike: huh. that's a new one. 2021-01-10T14:42:48Z _death: some years ago discussion here resulted in a METALIST operator as well, https://github.com/death/gnusdumps/blob/master/driver/main.lisp#L121 2021-01-10T14:42:51Z spoeplau: oh, interesting, thanks 2021-01-10T14:43:09Z igemnace joined #lisp 2021-01-10T14:43:09Z _death: Bike: I think I first saw in a Kent Pitman post 2021-01-10T14:45:10Z lucasb joined #lisp 2021-01-10T14:47:02Z edgar-rft saw a Kent Pitman ghost 2021-01-10T14:47:30Z _death: with METALIST it would be (metalist (name) "Define a foreign pointer type alias for NAME." `(defctype ,name :pointer) ((foo) (bar) (baz))) 2021-01-10T14:47:52Z ralt: _death: I didn't realize you were the author of the dbus CL library 2021-01-10T14:47:57Z ralt: small world 2021-01-10T14:48:46Z _death: ralt: ;) 2021-01-10T14:48:55Z ralt: I've used that library in anger :P 2021-01-10T14:52:02Z _death: ralt: I remember you had some pull requests.. nice to hear that it worked for you, I wrote it for a thing that became irrelevant t me a year or two later.. the publish part is still broken design 2021-01-10T15:00:57Z xlei joined #lisp 2021-01-10T15:02:35Z Blukunfando joined #lisp 2021-01-10T15:04:14Z Lycurgus quit (Quit: Exeunt) 2021-01-10T15:08:30Z puchacz quit (*.net *.split) 2021-01-10T15:08:30Z pfdietz quit (*.net *.split) 2021-01-10T15:08:30Z Bahman quit (*.net *.split) 2021-01-10T15:08:30Z jeosol quit (*.net *.split) 2021-01-10T15:10:26Z luni joined #lisp 2021-01-10T15:11:37Z Blukunfando quit (Ping timeout: 264 seconds) 2021-01-10T15:13:36Z v88m joined #lisp 2021-01-10T15:15:46Z lansiir quit (Ping timeout: 268 seconds) 2021-01-10T15:16:21Z lansiir joined #lisp 2021-01-10T15:16:37Z sugarwren quit (Ping timeout: 272 seconds) 2021-01-10T15:17:43Z v88m quit (Ping timeout: 246 seconds) 2021-01-10T15:22:05Z orivej joined #lisp 2021-01-10T15:28:13Z spoeplau quit (Remote host closed the connection) 2021-01-10T15:37:25Z ecm quit (Ping timeout: 264 seconds) 2021-01-10T15:40:01Z mindCrime joined #lisp 2021-01-10T15:42:56Z roelj joined #lisp 2021-01-10T15:43:16Z birdwing quit (Remote host closed the connection) 2021-01-10T15:43:35Z birdwing joined #lisp 2021-01-10T15:55:02Z nicktick joined #lisp 2021-01-10T15:55:23Z hendursa1 quit (Ping timeout: 240 seconds) 2021-01-10T16:07:07Z sjl joined #lisp 2021-01-10T16:23:22Z v88m joined #lisp 2021-01-10T16:27:41Z cosimone joined #lisp 2021-01-10T16:33:23Z sugarwren joined #lisp 2021-01-10T16:43:02Z flip214: Is there a library that can translate a SVG to an CL-PDF form, like a macro? translating a SVG to a PDF via eg. inkscape is relatively costly (in CPU terms), so directly writing a PDF would be much better 2021-01-10T16:44:29Z frodef: Is there any kind ov SVG renderer in CL? Seems to me a substantial undertaking. 2021-01-10T16:45:26Z igemnace quit (Remote host closed the connection) 2021-01-10T16:46:28Z flip214: frodef: I can read a PDF in inkscape, and save as SVG. SVG is text-only and very similar to PS and PDF, so the typical 99% should be an easy AST => AST translation. 2021-01-10T16:46:50Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-10T16:47:09Z flip214: If I can get the SVG => CL-PDF transformation, I can "easily" get a PDF and write "compatible" data from CL. 2021-01-10T16:47:29Z vaporatorius joined #lisp 2021-01-10T16:47:29Z vaporatorius quit (Changing host) 2021-01-10T16:47:29Z vaporatorius joined #lisp 2021-01-10T16:48:37Z frodef: flip214: To my knowledge, SVG is a substantial vector-graphics DOM, and "translating" to PDF I suspect is infeasible, beyond rendering to a raster image. Except perhaps a carefully selected subset of SVG. 2021-01-10T16:49:03Z andreyorst_ quit (Quit: andreyorst_) 2021-01-10T16:49:21Z frodef: (I could be wrong, but this is my understanding.) 2021-01-10T16:49:36Z andreyorst_ joined #lisp 2021-01-10T16:49:58Z vaporatorius__ quit (Ping timeout: 260 seconds) 2021-01-10T16:50:55Z frodef: If you have Inkscape save a PDF into SVG, do you get a raster image, or actual SVG? 2021-01-10T16:52:22Z luckless quit (Remote host closed the connection) 2021-01-10T16:52:22Z cantstanya quit (Write error: Connection reset by peer) 2021-01-10T16:52:22Z gxt quit (Read error: Connection reset by peer) 2021-01-10T16:52:22Z madage quit (Write error: Connection reset by peer) 2021-01-10T16:52:23Z ech quit (Remote host closed the connection) 2021-01-10T16:52:26Z flip214: an actual svg. 2021-01-10T16:52:53Z flip214: and cl-pdf as well as svg have primitives like matrix-transform, text, choose font, etc. so a translation seems feasible. 2021-01-10T16:52:54Z j0nd0e joined #lisp 2021-01-10T16:52:57Z flip214: "Hold my beer" 2021-01-10T16:54:06Z frodef: Well.. I won't hold your breath ;-) 2021-01-10T16:55:15Z frodef: would be cool though. 2021-01-10T16:57:10Z monkey` joined #lisp 2021-01-10T17:12:10Z j0nd0e quit (Ping timeout: 246 seconds) 2021-01-10T17:13:17Z ech joined #lisp 2021-01-10T17:14:53Z sugarwren quit (Ping timeout: 246 seconds) 2021-01-10T17:17:36Z Nilby joined #lisp 2021-01-10T17:19:39Z JohnnyL quit (Quit: leaving) 2021-01-10T17:20:20Z Xach: For simple SVGs, vecto could render to PNG. 2021-01-10T17:20:30Z cosimone quit (Quit: cosimone) 2021-01-10T17:20:41Z Xach: It's not automatic, you would need to parse the paths in the SVG. But the drawing part after that is not too tricky. 2021-01-10T17:21:12Z Xach: And I'm defining "simple SVGs" as "ones the Vecto image model could support" to make it easy 2021-01-10T17:25:06Z cantstanya joined #lisp 2021-01-10T17:25:25Z nicktick quit (Ping timeout: 240 seconds) 2021-01-10T17:26:33Z Inline quit (Read error: Connection reset by peer) 2021-01-10T17:31:42Z wooden quit (Ping timeout: 260 seconds) 2021-01-10T17:32:38Z wooden joined #lisp 2021-01-10T17:34:34Z guanohhh joined #lisp 2021-01-10T17:41:22Z gaqwas joined #lisp 2021-01-10T17:41:22Z gaqwas quit (Changing host) 2021-01-10T17:41:22Z gaqwas joined #lisp 2021-01-10T17:41:58Z v0|d joined #lisp 2021-01-10T17:47:15Z j0nd0e joined #lisp 2021-01-10T17:51:10Z Inline joined #lisp 2021-01-10T17:51:23Z Aurora_v_kosmose joined #lisp 2021-01-10T17:52:05Z j0nd0e quit (Ping timeout: 240 seconds) 2021-01-10T17:55:41Z mfiano: is it specified anywhere which accessor will be invoked? (defclass foo () ((%a1 :reader a :initform 1) (%a2 :reader a :initform 2))) 2021-01-10T17:56:29Z bitmapper joined #lisp 2021-01-10T18:02:18Z j0nd0e joined #lisp 2021-01-10T18:03:55Z Inline: the last one ? 2021-01-10T18:05:15Z _death: probably unspecified 2021-01-10T18:05:22Z Inline: welp 2021-01-10T18:05:28Z Inline: sequential ? 2021-01-10T18:05:40Z Inline: like it generating two defmethods one after the other ? 2021-01-10T18:05:57Z Inline: and the last one is the winning ? 2021-01-10T18:06:18Z mfiano: unspecified is what i assumed after searching. thanks 2021-01-10T18:06:40Z _death: Inline: the question is whether you're willing to bet that all implementations follow your logic 2021-01-10T18:06:48Z Inline: nope 2021-01-10T18:06:52Z Inline: i won't bet on that 2021-01-10T18:06:53Z Inline: lol 2021-01-10T18:09:09Z Nilby quit (Ping timeout: 265 seconds) 2021-01-10T18:11:00Z contrapunctus left #lisp 2021-01-10T18:12:56Z _death: my first thought was that if the spec had anything to say about it, it would be to signal an error 2021-01-10T18:17:13Z attila_lendvai_ joined #lisp 2021-01-10T18:19:39Z attila_lendvai quit (Ping timeout: 272 seconds) 2021-01-10T18:20:40Z hendursaga joined #lisp 2021-01-10T18:25:38Z j0nd0e quit (Ping timeout: 260 seconds) 2021-01-10T18:30:40Z C-16 joined #lisp 2021-01-10T18:31:02Z C-16 quit (Client Quit) 2021-01-10T18:31:05Z miasuji joined #lisp 2021-01-10T18:36:07Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-10T18:37:22Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-10T18:37:43Z matryoshka joined #lisp 2021-01-10T18:48:45Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-10T18:48:45Z amb007 quit (Read error: Connection reset by peer) 2021-01-10T18:49:09Z matryoshka joined #lisp 2021-01-10T18:49:25Z amb007 joined #lisp 2021-01-10T18:55:11Z attila_lendvai_ quit (Remote host closed the connection) 2021-01-10T18:55:32Z attila_lendvai_ joined #lisp 2021-01-10T18:55:35Z j0nd0e joined #lisp 2021-01-10T18:58:48Z sugarwren joined #lisp 2021-01-10T18:59:27Z birdwing quit (Ping timeout: 260 seconds) 2021-01-10T19:00:16Z j0nd0e quit (Ping timeout: 240 seconds) 2021-01-10T19:00:30Z Lord_of_Life_ joined #lisp 2021-01-10T19:01:18Z Lord_of_Life quit (Ping timeout: 256 seconds) 2021-01-10T19:01:36Z attila_lendvai joined #lisp 2021-01-10T19:01:36Z attila_lendvai quit (Changing host) 2021-01-10T19:01:36Z attila_lendvai joined #lisp 2021-01-10T19:01:49Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-10T19:02:43Z attila_lendvai_ quit (Ping timeout: 272 seconds) 2021-01-10T19:05:16Z luni quit (Quit: Connection closed) 2021-01-10T19:06:19Z Jesin quit (Quit: Leaving) 2021-01-10T19:17:24Z amb007 quit (Read error: Connection reset by peer) 2021-01-10T19:19:56Z abhixec quit (Quit: leaving) 2021-01-10T19:21:25Z Jesin joined #lisp 2021-01-10T19:21:40Z andreyorst_ quit (Ping timeout: 246 seconds) 2021-01-10T19:22:21Z sugarwren quit (Ping timeout: 272 seconds) 2021-01-10T19:24:28Z notzmv quit (Ping timeout: 246 seconds) 2021-01-10T19:26:18Z attila_lendvai_ joined #lisp 2021-01-10T19:26:18Z v88m quit (Ping timeout: 260 seconds) 2021-01-10T19:28:10Z monkey` quit (Ping timeout: 272 seconds) 2021-01-10T19:28:41Z attila_lendvai quit (Ping timeout: 272 seconds) 2021-01-10T19:29:18Z v88m joined #lisp 2021-01-10T19:29:44Z sugarwren joined #lisp 2021-01-10T19:31:09Z amb007 joined #lisp 2021-01-10T19:32:10Z attila_lendvai joined #lisp 2021-01-10T19:34:13Z rumbler31_ quit (Ping timeout: 265 seconds) 2021-01-10T19:34:23Z attila_lendvai_ quit (Ping timeout: 272 seconds) 2021-01-10T19:34:40Z rumbler31_ joined #lisp 2021-01-10T19:37:34Z monkey` joined #lisp 2021-01-10T19:37:48Z ex_nihilo quit (Quit: Leaving) 2021-01-10T19:38:11Z attila_lendvai quit (Ping timeout: 272 seconds) 2021-01-10T19:39:17Z notzmv joined #lisp 2021-01-10T19:39:52Z rumbler31_ quit (Ping timeout: 246 seconds) 2021-01-10T19:41:54Z Oladon joined #lisp 2021-01-10T19:43:10Z liberliver quit (Quit: liberliver) 2021-01-10T19:50:27Z j0nd0e joined #lisp 2021-01-10T19:50:59Z aartaka_d quit (Read error: Connection reset by peer) 2021-01-10T19:51:05Z aartaka joined #lisp 2021-01-10T19:53:16Z pve quit (Quit: leaving) 2021-01-10T19:55:47Z SlashLife quit (Read error: Connection reset by peer) 2021-01-10T19:55:56Z sugarwren quit (Quit: Leaving) 2021-01-10T19:57:49Z Krystof quit (Ping timeout: 264 seconds) 2021-01-10T19:58:57Z mindCrime joined #lisp 2021-01-10T20:02:12Z vutral_ joined #lisp 2021-01-10T20:05:02Z gproto23 joined #lisp 2021-01-10T20:07:04Z rumbler31_ joined #lisp 2021-01-10T20:09:00Z SlashLife joined #lisp 2021-01-10T20:12:42Z puchacz joined #lisp 2021-01-10T20:14:31Z anticrisis joined #lisp 2021-01-10T20:14:33Z puchacz: jackdaniel, I started playing with ECL:) if I make it run my application, does it mean that it will be possible to create a library / executable from it? 2021-01-10T20:15:41Z puchacz: if I carefully track all (load... ) forms outside normal package management 2021-01-10T20:15:43Z shka_: puchacz: yes 2021-01-10T20:15:51Z SpaceIgo` joined #lisp 2021-01-10T20:15:51Z puchacz: great, thanks : 2021-01-10T20:15:53Z puchacz: :) 2021-01-10T20:16:16Z shka_: https://common-lisp.net/project/ecl/static/manual/System-building.html 2021-01-10T20:16:42Z shka_: it can make static lib, shared lib, executable 2021-01-10T20:17:23Z shka_: i never tried to build something that loads anything outside of asdf though 2021-01-10T20:17:23Z puchacz: shka_: yes, I read it today for the first time, and I started playing. but I know from experience that some files are loaded in a non-standard way, e.g. sly contribs. and I sinned as well by using bare (load ) in few places. 2021-01-10T20:18:10Z puchacz: so I will need to track it all, but when I do it, you are saying there are no obstacles to creating a binary 2021-01-10T20:18:15Z shka_: puchacz: well, if you build just asdf system, sly will be ignored 2021-01-10T20:18:15Z puchacz: so I am happy 2021-01-10T20:18:27Z shka_: IIRC 2021-01-10T20:18:32Z SpaceIgo` quit (Read error: Connection reset by peer) 2021-01-10T20:18:58Z shka_: it is slightly different from save-lisp-and-die in this regard 2021-01-10T20:19:18Z puchacz: yes, save-lisp-and-die just saves everything that is in memory, no matter how it was loaded. 2021-01-10T20:19:25Z SpaceIgor2075 quit (Ping timeout: 246 seconds) 2021-01-10T20:19:28Z shka_: exactly 2021-01-10T20:19:45Z monkey` quit (Read error: Connection reset by peer) 2021-01-10T20:19:57Z shka_: while ECL build-system, as far i can tell, works almost like a UNIX make 2021-01-10T20:20:29Z puchacz: but sly is fine too, I know how to force load all contribs. there are also programmatic calls to the compiler, I know for sure this is how web templating works (it creates functions that print out web pages) 2021-01-10T20:20:51Z shka_: at the runtime? 2021-01-10T20:20:55Z cage_ quit (Quit: Leaving) 2021-01-10T20:20:59Z puchacz: yes, once 2021-01-10T20:21:02Z puchacz: so I am good too 2021-01-10T20:21:12Z shka_: hmmm 2021-01-10T20:21:22Z gproto23 quit (Ping timeout: 272 seconds) 2021-01-10T20:21:27Z puchacz: I do it in sbcl before dumping the image, so I don't need to deploy my core with template files 2021-01-10T20:21:28Z shka_: calling compile at the runtime is almost as evil as eval 2021-01-10T20:21:30Z shka_: :-) 2021-01-10T20:21:55Z shka_: anyway, glad you have a solution at hand 2021-01-10T20:21:55Z attila_lendvai joined #lisp 2021-01-10T20:22:20Z puchacz: who says there is no eval somewhere? I did not add eval (for what I remember), but it may be there somewhere :) 2021-01-10T20:22:31Z shka_: heh 2021-01-10T20:22:38Z shka_: eval should work fine though 2021-01-10T20:22:49Z shka_: in fact, i think that compile should work as well 2021-01-10T20:23:04Z shka_: IIRC ECL compile does not compile to C, but to ad bytecode 2021-01-10T20:23:31Z puchacz: but you say as long as it runs with "development mode" startup (with quicklisp etc), I will be able to create the right sequence of binary files. 2021-01-10T20:24:34Z shka_: as long as you build systems defined with asdf i think it should be fine 2021-01-10T20:24:51Z jackdaniel: you may compile a "bundle" straiggt from asd definitions 2021-01-10T20:24:57Z shka_: right 2021-01-10T20:24:59Z shka_: exactly this 2021-01-10T20:25:05Z puchacz: 95% is, other 5% are manual calls to load and oddities like sly's contribs 2021-01-10T20:25:08Z jackdaniel: im on phone 2021-01-10T20:25:14Z puchacz: hello :) 2021-01-10T20:25:18Z jackdaniel: hi 2021-01-10T20:25:51Z jackdaniel: manual has a description of compilation 2021-01-10T20:26:01Z jackdaniel: with pictures! ;) 2021-01-10T20:26:52Z puchacz: yes, I read it today for the first time. I am impressed :) and is it true that if I can make ECL run my application, there exists the right sequence of binary files that be produced to make my application binary? 2021-01-10T20:26:53Z shka_: puchacz: i also think that load may also work 2021-01-10T20:27:31Z shka_: if paths are resolved correctly 2021-01-10T20:27:56Z jackdaniel: I dont understand the question 2021-01-10T20:28:18Z shka_: jackdaniel: puchacz has a system that calls LOAD at the runtime 2021-01-10T20:28:35Z shka_: IIRC in such case ECL will simply use bytecode compiler 2021-01-10T20:28:48Z puchacz: yes, but I can make it call all loads on startup, this is what I do for sbcl save-and-die 2021-01-10T20:28:54Z jackdaniel: that's not a problem, load does not compile 2021-01-10T20:28:59Z shka_: oh, ok 2021-01-10T20:29:02Z hnOsmium0001 joined #lisp 2021-01-10T20:29:02Z shka_: makes sense 2021-01-10T20:29:09Z shka_: so it should just wokr 2021-01-10T20:29:14Z puchacz: okay, great, thanks :) 2021-01-10T20:29:51Z jackdaniel: but as shka_ said, compiler is available at all times 2021-01-10T20:30:23Z puchacz: sure, then it should work, whatever hacks I discover in the code 2021-01-10T20:30:28Z jackdaniel: if gcc is absent, call (ext:install-bytecodes-compiler) 2021-01-10T20:30:50Z jackdaniel: should be a restart I suppose 2021-01-10T20:30:51Z shka_: yeah, performance can be hard to predict in such case though 2021-01-10T20:31:14Z shka_: but it may not even matter 2021-01-10T20:31:29Z shka_: anyway, have a good evening 2021-01-10T20:31:49Z puchacz: thanks, you too 2021-01-10T20:33:51Z jackdaniel: \o 2021-01-10T20:39:02Z lowryder quit (Ping timeout: 264 seconds) 2021-01-10T20:43:18Z aartaka quit (Ping timeout: 256 seconds) 2021-01-10T20:43:23Z sxmx quit (Quit: WeeChat 2.9) 2021-01-10T20:44:07Z sxmx joined #lisp 2021-01-10T20:46:34Z bilegeek joined #lisp 2021-01-10T20:51:29Z abhixec joined #lisp 2021-01-10T20:53:43Z shka_ quit (Ping timeout: 246 seconds) 2021-01-10T20:54:53Z narimiran quit (Quit: leaving) 2021-01-10T20:55:08Z ralt: oh hey 2021-01-10T20:55:23Z ralt: I never tried to make a static binary with ECL 2021-01-10T20:55:36Z ralt: I think 2021-01-10T20:56:01Z puchacz: I saw examples - you can even create a binary for arm/android 2021-01-10T21:03:15Z Codaraxis joined #lisp 2021-01-10T21:09:08Z refpga joined #lisp 2021-01-10T21:10:53Z zxcvz quit (Quit: Leaving) 2021-01-10T21:11:57Z _Ark_ quit (Quit: ZNC 1.7.4 - https://znc.in) 2021-01-10T21:12:24Z rogersm joined #lisp 2021-01-10T21:12:57Z ark joined #lisp 2021-01-10T21:17:10Z rogersm quit (Client Quit) 2021-01-10T21:19:04Z devon quit (Ping timeout: 256 seconds) 2021-01-10T21:19:16Z ebrasca joined #lisp 2021-01-10T21:20:01Z heisig quit (Quit: Leaving) 2021-01-10T21:21:31Z karlosz joined #lisp 2021-01-10T21:24:03Z aartaka joined #lisp 2021-01-10T21:27:53Z attila_lendvai_ joined #lisp 2021-01-10T21:29:39Z attila_lendvai quit (Ping timeout: 272 seconds) 2021-01-10T21:32:12Z roelj quit (Remote host closed the connection) 2021-01-10T21:36:07Z Oladon quit (Quit: Leaving.) 2021-01-10T21:41:58Z miasuji quit (Remote host closed the connection) 2021-01-10T21:43:10Z SpaceIgo` joined #lisp 2021-01-10T21:44:02Z attila_lendvai joined #lisp 2021-01-10T21:44:02Z attila_lendvai quit (Changing host) 2021-01-10T21:44:02Z attila_lendvai joined #lisp 2021-01-10T21:46:21Z SpaceIgo` quit (Remote host closed the connection) 2021-01-10T21:46:45Z attila_lendvai_ quit (Ping timeout: 272 seconds) 2021-01-10T21:46:54Z leo_song_ quit (Read error: Connection reset by peer) 2021-01-10T21:54:49Z aartaka quit (Ping timeout: 264 seconds) 2021-01-10T21:57:31Z attila_lendvai quit (Ping timeout: 272 seconds) 2021-01-10T22:12:52Z Inline quit (Read error: Connection reset by peer) 2021-01-10T22:13:26Z Codaraxis_ joined #lisp 2021-01-10T22:16:45Z Codaraxis quit (Ping timeout: 240 seconds) 2021-01-10T22:16:46Z ppbitb quit (Quit: WeeChat 2.9) 2021-01-10T22:19:17Z Krystof joined #lisp 2021-01-10T22:19:44Z pp joined #lisp 2021-01-10T22:28:16Z Lycurgus joined #lisp 2021-01-10T22:34:09Z refpga quit (Read error: Connection reset by peer) 2021-01-10T22:34:47Z refpga joined #lisp 2021-01-10T22:39:40Z ebrasca quit (Remote host closed the connection) 2021-01-10T22:45:22Z guanohhh quit (Quit: Connection closed for inactivity) 2021-01-10T22:49:30Z Lycurgus quit (Quit: Exeunt) 2021-01-10T22:56:52Z chipk[m] joined #lisp 2021-01-10T22:57:53Z theBlackDragon quit (Ping timeout: 258 seconds) 2021-01-10T22:59:03Z stargazesparkle is now known as stargazesparkle[ 2021-01-10T22:59:04Z theBlackDragon joined #lisp 2021-01-10T22:59:20Z stargazesparkle[ is now known as stargazesparkleM 2021-01-10T23:13:43Z aindilis quit (Ping timeout: 246 seconds) 2021-01-10T23:14:05Z makomo quit (Ping timeout: 240 seconds) 2021-01-10T23:15:44Z stargazesparkle joined #lisp 2021-01-10T23:20:54Z gigetoo quit (Ping timeout: 265 seconds) 2021-01-10T23:21:12Z gigetoo joined #lisp 2021-01-10T23:22:28Z rozenglass quit (Ping timeout: 246 seconds) 2021-01-10T23:22:35Z urek joined #lisp 2021-01-10T23:23:33Z urek left #lisp 2021-01-10T23:34:27Z Inline joined #lisp 2021-01-10T23:38:18Z rozenglass joined #lisp 2021-01-10T23:40:28Z puchacz quit (Quit: Connection closed) 2021-01-10T23:40:33Z rozenglass quit (Remote host closed the connection) 2021-01-10T23:41:49Z stargazesparkle: I've been reading the lisp book someone sent me a few days ago and just wow 2021-01-10T23:42:17Z stargazesparkle: It's amazing how I managed to get myself as far as I did without considering what it was I was doing or why I was doing it 2021-01-10T23:42:17Z rozenglass joined #lisp 2021-01-10T23:43:43Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-10T23:45:06Z aindilis joined #lisp 2021-01-10T23:49:22Z Nilby joined #lisp 2021-01-10T23:50:58Z vutral_ quit (Quit: Connection closed for inactivity) 2021-01-10T23:56:42Z aeth quit (Ping timeout: 272 seconds) 2021-01-10T23:57:12Z urek joined #lisp 2021-01-10T23:57:50Z aeth joined #lisp 2021-01-11T00:03:10Z charles`: What book? 2021-01-11T00:12:56Z rgherdt quit (Ping timeout: 240 seconds) 2021-01-11T00:15:26Z hendursaga joined #lisp 2021-01-11T00:19:09Z nicktick joined #lisp 2021-01-11T00:19:57Z stargazesparkle: Practical Common Lisp 2021-01-11T00:21:35Z matryoshka` joined #lisp 2021-01-11T00:21:35Z matryoshka quit (Read error: Connection reset by peer) 2021-01-11T00:24:51Z lucasb quit (Quit: Connection closed for inactivity) 2021-01-11T00:25:20Z pfdietz joined #lisp 2021-01-11T00:26:59Z Inline quit (Ping timeout: 272 seconds) 2021-01-11T00:27:40Z White_Flame: yep, PCL is quite highly regarded 2021-01-11T00:27:56Z matryoshka` quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-11T00:28:45Z charles`: I'm quite embarrassed to say that I have yet to read any lisp book. 2021-01-11T00:28:55Z matryoshka joined #lisp 2021-01-11T00:29:33Z hendursaga quit (Quit: hendursaga) 2021-01-11T00:29:49Z hendursaga joined #lisp 2021-01-11T00:31:03Z akoana joined #lisp 2021-01-11T00:31:25Z random-nick quit (Ping timeout: 264 seconds) 2021-01-11T00:32:55Z White_Flame: charles`: different strokes for different folks 2021-01-11T00:33:48Z White_Flame: no shame in htat 2021-01-11T00:38:41Z kaftejiman quit (Remote host closed the connection) 2021-01-11T00:39:24Z abhixec quit (Remote host closed the connection) 2021-01-11T00:41:12Z urek__ joined #lisp 2021-01-11T00:42:49Z urek quit (Ping timeout: 272 seconds) 2021-01-11T00:44:03Z ech quit (Ping timeout: 240 seconds) 2021-01-11T00:49:29Z ech joined #lisp 2021-01-11T00:56:01Z Nilby quit (Read error: Connection reset by peer) 2021-01-11T00:58:24Z surabax quit (Quit: Leaving) 2021-01-11T00:58:48Z Nilby joined #lisp 2021-01-11T01:01:56Z Nilby quit (Read error: Connection reset by peer) 2021-01-11T01:06:03Z ech quit (Ping timeout: 240 seconds) 2021-01-11T01:06:44Z charles`: Is there a way to ignore a package's nicknames in the local package without entering the debugger? 2021-01-11T01:06:45Z ech joined #lisp 2021-01-11T01:11:13Z zaquest quit (Quit: Leaving) 2021-01-11T01:16:55Z zaquest joined #lisp 2021-01-11T01:19:23Z urek__ left #lisp 2021-01-11T01:20:55Z luckless joined #lisp 2021-01-11T01:22:09Z pfdietz quit (Ping timeout: 248 seconds) 2021-01-11T01:27:23Z ech quit (Ping timeout: 240 seconds) 2021-01-11T01:32:51Z rumbler31_ quit (Ping timeout: 265 seconds) 2021-01-11T01:34:18Z mrcom_ quit (Ping timeout: 265 seconds) 2021-01-11T01:34:40Z ech joined #lisp 2021-01-11T01:38:12Z tmf quit (Ping timeout: 256 seconds) 2021-01-11T01:38:54Z wxie joined #lisp 2021-01-11T01:40:57Z wxie quit (Remote host closed the connection) 2021-01-11T01:43:58Z wxie joined #lisp 2021-01-11T01:45:19Z igemnace joined #lisp 2021-01-11T01:48:40Z andreyorst quit (Remote host closed the connection) 2021-01-11T01:57:10Z v88m quit (Ping timeout: 246 seconds) 2021-01-11T01:58:57Z tmf joined #lisp 2021-01-11T01:59:29Z abhixec joined #lisp 2021-01-11T01:59:30Z rumbler31_ joined #lisp 2021-01-11T02:03:30Z v88m joined #lisp 2021-01-11T02:07:41Z Blukunfando joined #lisp 2021-01-11T02:12:59Z dbotton joined #lisp 2021-01-11T02:15:54Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-11T02:16:34Z Aurora_v_kosmose joined #lisp 2021-01-11T02:17:01Z quazimodo quit (Ping timeout: 264 seconds) 2021-01-11T02:18:38Z quazimodo joined #lisp 2021-01-11T02:20:05Z loli joined #lisp 2021-01-11T02:22:07Z ralt quit (Quit: Connection closed for inactivity) 2021-01-11T02:26:37Z Tordek quit (Ping timeout: 260 seconds) 2021-01-11T02:26:53Z vert2 quit (Ping timeout: 260 seconds) 2021-01-11T02:27:13Z dwts quit (Ping timeout: 264 seconds) 2021-01-11T02:27:31Z dbotton quit (Quit: Leaving) 2021-01-11T02:28:10Z Tordek joined #lisp 2021-01-11T02:28:25Z vert2 joined #lisp 2021-01-11T02:28:57Z dwts joined #lisp 2021-01-11T02:36:13Z j0nd0e quit (Ping timeout: 264 seconds) 2021-01-11T02:38:29Z akrl quit (Read error: Connection reset by peer) 2021-01-11T02:42:19Z dmiles quit 2021-01-11T02:42:47Z pillton joined #lisp 2021-01-11T02:43:25Z dwts quit (Ping timeout: 240 seconds) 2021-01-11T02:43:29Z akrl joined #lisp 2021-01-11T02:43:43Z Tordek quit (Ping timeout: 246 seconds) 2021-01-11T02:44:01Z vert2 quit (Ping timeout: 264 seconds) 2021-01-11T02:46:25Z [d]_ quit (Ping timeout: 264 seconds) 2021-01-11T02:49:05Z bacterio quit (Ping timeout: 240 seconds) 2021-01-11T02:49:25Z akrl quit (Ping timeout: 264 seconds) 2021-01-11T02:50:54Z madage joined #lisp 2021-01-11T02:52:16Z bacterio joined #lisp 2021-01-11T02:52:26Z dwts joined #lisp 2021-01-11T02:52:51Z Tordek joined #lisp 2021-01-11T02:52:56Z vert2 joined #lisp 2021-01-11T02:58:38Z akrl joined #lisp 2021-01-11T03:00:03Z Stanley00 joined #lisp 2021-01-11T03:06:40Z akrl quit (Read error: Connection reset by peer) 2021-01-11T03:06:51Z akrl joined #lisp 2021-01-11T03:10:56Z bacterio quit (Ping timeout: 240 seconds) 2021-01-11T03:13:28Z akrl quit (Ping timeout: 246 seconds) 2021-01-11T03:16:13Z birdwing joined #lisp 2021-01-11T03:17:01Z akrl joined #lisp 2021-01-11T03:17:44Z nydel quit (Ping timeout: 265 seconds) 2021-01-11T03:20:15Z akrl quit (Read error: Connection reset by peer) 2021-01-11T03:20:23Z akrl joined #lisp 2021-01-11T03:24:04Z nydel joined #lisp 2021-01-11T03:25:01Z bacterio joined #lisp 2021-01-11T03:28:45Z v3ga quit (Ping timeout: 272 seconds) 2021-01-11T03:29:08Z v3ga joined #lisp 2021-01-11T03:36:25Z aartaka joined #lisp 2021-01-11T03:38:31Z sjl quit (Ping timeout: 265 seconds) 2021-01-11T03:38:40Z akrl quit (Ping timeout: 256 seconds) 2021-01-11T03:39:31Z birdwing quit (Ping timeout: 272 seconds) 2021-01-11T03:40:10Z Bike quit (Quit: Lost terminal) 2021-01-11T03:40:56Z orivej quit (Ping timeout: 240 seconds) 2021-01-11T03:41:51Z orivej joined #lisp 2021-01-11T03:42:04Z john__ joined #lisp 2021-01-11T03:43:17Z akrl joined #lisp 2021-01-11T03:45:10Z Oladon joined #lisp 2021-01-11T03:45:38Z gaqwas quit (Ping timeout: 260 seconds) 2021-01-11T03:54:46Z aartaka quit (Read error: Connection reset by peer) 2021-01-11T03:54:52Z aartaka_d joined #lisp 2021-01-11T03:57:07Z gxt joined #lisp 2021-01-11T04:02:16Z pp is now known as ppbitb 2021-01-11T04:02:47Z beach: Good morning everyone! 2021-01-11T04:02:56Z ppbitb quit (Quit: WeeChat 2.9) 2021-01-11T04:03:00Z Alfr joined #lisp 2021-01-11T04:03:10Z ppbitb joined #lisp 2021-01-11T04:03:21Z akrl quit (Read error: Connection reset by peer) 2021-01-11T04:04:52Z Alfr_ quit (Ping timeout: 260 seconds) 2021-01-11T04:08:37Z nydel quit (Ping timeout: 264 seconds) 2021-01-11T04:14:57Z nydel joined #lisp 2021-01-11T04:15:02Z hineios quit (Ping timeout: 264 seconds) 2021-01-11T04:16:40Z narimiran joined #lisp 2021-01-11T04:20:37Z akrl joined #lisp 2021-01-11T04:20:51Z __jrjsmrtn__ joined #lisp 2021-01-11T04:21:24Z _jrjsmrtn quit (Ping timeout: 256 seconds) 2021-01-11T04:21:24Z Codaraxis__ joined #lisp 2021-01-11T04:23:48Z hineios joined #lisp 2021-01-11T04:24:52Z Codaraxis_ quit (Ping timeout: 246 seconds) 2021-01-11T04:25:25Z akrl quit (Ping timeout: 264 seconds) 2021-01-11T04:30:02Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-11T04:30:58Z ome joined #lisp 2021-01-11T04:32:05Z mindCrime joined #lisp 2021-01-11T04:42:01Z mathrick quit (Ping timeout: 246 seconds) 2021-01-11T04:42:38Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-11T04:45:08Z orivej quit (Ping timeout: 260 seconds) 2021-01-11T04:47:48Z lowryder joined #lisp 2021-01-11T04:48:49Z pi___ joined #lisp 2021-01-11T04:48:49Z pi___ is now known as ariedro 2021-01-11T04:49:47Z akrl joined #lisp 2021-01-11T04:53:08Z wxie quit (Ping timeout: 256 seconds) 2021-01-11T04:55:10Z v88m quit (Ping timeout: 256 seconds) 2021-01-11T04:57:20Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-11T05:01:10Z wxie joined #lisp 2021-01-11T05:02:42Z mathrick joined #lisp 2021-01-11T05:02:59Z mathrick quit (Client Quit) 2021-01-11T05:03:13Z mathrick joined #lisp 2021-01-11T05:17:12Z andreyorst joined #lisp 2021-01-11T05:17:43Z john__ quit (Ping timeout: 246 seconds) 2021-01-11T05:20:19Z Oladon quit (Quit: Leaving.) 2021-01-11T05:27:05Z nicktick quit (Ping timeout: 240 seconds) 2021-01-11T05:27:55Z Anonymous__ quit (Remote host closed the connection) 2021-01-11T05:35:58Z andreyorst_ joined #lisp 2021-01-11T05:37:08Z j0nd0e joined #lisp 2021-01-11T05:41:12Z aeth_ joined #lisp 2021-01-11T05:42:12Z aeth quit (Ping timeout: 256 seconds) 2021-01-11T05:48:56Z akrl quit (Ping timeout: 240 seconds) 2021-01-11T05:50:40Z [d] joined #lisp 2021-01-11T05:53:18Z aeth_ is now known as aeth 2021-01-11T05:56:30Z karlosz quit (Quit: karlosz) 2021-01-11T05:56:48Z davd33 joined #lisp 2021-01-11T05:56:55Z davd33 quit (Client Quit) 2021-01-11T05:57:22Z davd33 joined #lisp 2021-01-11T05:57:36Z akrl joined #lisp 2021-01-11T06:05:03Z makomo joined #lisp 2021-01-11T06:08:27Z j0nd0e quit (Remote host closed the connection) 2021-01-11T06:13:48Z skapata quit (Remote host closed the connection) 2021-01-11T06:24:14Z galex-713 joined #lisp 2021-01-11T06:32:09Z j0nd0e joined #lisp 2021-01-11T06:32:38Z wxie quit (Remote host closed the connection) 2021-01-11T06:33:07Z wxie joined #lisp 2021-01-11T06:36:39Z pillton quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-11T06:37:20Z davd33 quit (Quit: Leaving.) 2021-01-11T06:38:08Z akrl quit (Read error: Connection reset by peer) 2021-01-11T06:38:17Z akrl joined #lisp 2021-01-11T06:40:48Z davd33 joined #lisp 2021-01-11T06:52:19Z nicktick joined #lisp 2021-01-11T06:57:13Z j0nd0e quit (Remote host closed the connection) 2021-01-11T06:58:43Z andreyorst_ quit (Ping timeout: 260 seconds) 2021-01-11T07:01:22Z jprajzne joined #lisp 2021-01-11T07:01:54Z wxie quit (Quit: wxie) 2021-01-11T07:02:28Z andreyorst` joined #lisp 2021-01-11T07:09:39Z Lycurgus joined #lisp 2021-01-11T07:10:00Z ome quit (Quit: Connection closed for inactivity) 2021-01-11T07:13:55Z flazh quit (Ping timeout: 246 seconds) 2021-01-11T07:15:12Z flip214: charles`: do you want in-package? 2021-01-11T07:15:17Z flip214: minion: in-package 2021-01-11T07:15:21Z minion: Sorry, I couldn't find anything in the database for ``in-package''. 2021-01-11T07:15:34Z flip214: http://clhs.lisp.se/Body/m_in_pkg.htm 2021-01-11T07:15:36Z flip214: charles`: ^^ 2021-01-11T07:16:21Z flip214: you first define a package that :USEs some other packages, then go IN-PACKAGE and have the :USEd package symbols available without package prefix. 2021-01-11T07:16:24Z ralt joined #lisp 2021-01-11T07:19:51Z john__ joined #lisp 2021-01-11T07:20:51Z hendursaga quit (Remote host closed the connection) 2021-01-11T07:21:46Z hendursaga joined #lisp 2021-01-11T07:24:51Z rogersm joined #lisp 2021-01-11T07:27:00Z john__ quit (Remote host closed the connection) 2021-01-11T07:40:19Z beach: flip214: 1. It is specbot, not minion who knows about the Common Lisp HyperSpec. 2021-01-11T07:40:23Z beach: clhs in-package 2021-01-11T07:40:24Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_in_pkg.htm 2021-01-11T07:41:13Z beach: flip214: 2. Perhaps you should warn about the risk of :USE-ing packages other than the CL package. 2021-01-11T07:44:43Z rumbler31_ quit (Ping timeout: 246 seconds) 2021-01-11T07:48:01Z ck_: this particular use case read to me like using a package purely as a debugging environment, shortening the names you see. 2021-01-11T07:48:44Z beach: Oh, I didn't check the use case very well. Sorry. 2021-01-11T07:54:25Z flip214: beach: you're right, 2 is important. And I don't think this is _for_ debugging, only that doing it wrong _causes_ debugging ;/ 2021-01-11T07:54:28Z Cymew joined #lisp 2021-01-11T07:55:04Z beach: Sounds plausible. 2021-01-11T07:55:11Z ck_: It's actually me who misread it -- in my mind it said "when entering the debugger" instead of "without entering the debugger" 2021-01-11T07:55:14Z ck_: sorry about that 2021-01-11T07:55:44Z beach: ck_: Maybe you are turning dyslexic, just like I am? 2021-01-11T07:57:46Z phoe: morning 2021-01-11T07:59:43Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-11T07:59:56Z mankaev quit (Ping timeout: 272 seconds) 2021-01-11T08:00:28Z ck_: beach: maybe. There are worse fates. 2021-01-11T08:01:59Z shka_ joined #lisp 2021-01-11T08:02:21Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-11T08:02:21Z hendursaga joined #lisp 2021-01-11T08:03:00Z beach: Hey phoe. 2021-01-11T08:03:21Z ex_nihilo joined #lisp 2021-01-11T08:03:24Z beach: ck_: Yes, I agree. It is possible to compensate a lot with spell checkers and abbrev processors. 2021-01-11T08:04:33Z beach: But things take longer. I get warnings about undefined functions and variables, but I can't tell that I misspelled the names. 2021-01-11T08:05:33Z flip214: one of my favourite spelling tricks (reviewing books) is to get a count of used words.... everything written only once is suspect, and twice needs a clear look as well 2021-01-11T08:05:49Z beach: Clever. 2021-01-11T08:06:47Z ck_: yes, that's a nice move. Also good for a histogram of non-alphanumeric characters, telling you whether some things are unbalanced 2021-01-11T08:06:53Z flip214: you think so? Thanks. I thought that's common. 2021-01-11T08:07:39Z flip214: but as I'm reviewing books and papers more or less regularly I might have automated a few bits more than other people, yeah. 2021-01-11T08:09:17Z pve joined #lisp 2021-01-11T08:11:56Z rumbler31_ joined #lisp 2021-01-11T08:12:08Z galex-713 joined #lisp 2021-01-11T08:15:52Z frgo_ quit (Ping timeout: 246 seconds) 2021-01-11T08:16:17Z liberliver joined #lisp 2021-01-11T08:24:18Z bilegeek quit (Quit: Leaving) 2021-01-11T08:37:27Z akoana quit (Quit: leaving) 2021-01-11T08:38:06Z frodef quit (Quit: ERC (IRC client for Emacs 26.3)) 2021-01-11T08:40:36Z orivej joined #lisp 2021-01-11T08:42:59Z imode joined #lisp 2021-01-11T08:44:16Z refpga quit (Ping timeout: 272 seconds) 2021-01-11T08:44:24Z Stanley00 quit 2021-01-11T08:45:23Z frodef joined #lisp 2021-01-11T08:52:10Z v88m joined #lisp 2021-01-11T08:58:13Z gaqwas joined #lisp 2021-01-11T08:58:13Z gaqwas quit (Changing host) 2021-01-11T08:58:13Z gaqwas joined #lisp 2021-01-11T08:58:45Z refpga joined #lisp 2021-01-11T08:59:02Z luni joined #lisp 2021-01-11T09:00:06Z psebcc[m] quit (Quit: Idle for 30+ days) 2021-01-11T09:00:53Z mankaev joined #lisp 2021-01-11T09:04:17Z Lycurgus quit (Quit: Exeunt) 2021-01-11T09:06:16Z hendursa1 joined #lisp 2021-01-11T09:08:43Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-11T09:11:30Z attila_lendvai joined #lisp 2021-01-11T09:11:30Z attila_lendvai quit (Changing host) 2021-01-11T09:11:30Z attila_lendvai joined #lisp 2021-01-11T09:11:52Z nicktick quit (Ping timeout: 246 seconds) 2021-01-11T09:14:56Z ralt: I find :USE pretty useful when using package-inferred-systems, for other internal packages 2021-01-11T09:15:40Z ralt: for external systems I always use `(:import-from :other-package #:sym1 #:sym2)` though. 2021-01-11T09:16:58Z beach: Another reason not to use package-inferred systems. 2021-01-11T09:17:50Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-11T09:17:58Z ralt: I go even further: I use wild-package-inferred-systems :) 2021-01-11T09:18:54Z ralt: my .asd file has `:depends-on (("mysystem/*"))` 2021-01-11T09:22:49Z galex-713_ joined #lisp 2021-01-11T09:23:37Z galex-713 quit (Ping timeout: 264 seconds) 2021-01-11T09:27:22Z ljavorsk joined #lisp 2021-01-11T09:28:38Z imode quit (Ping timeout: 260 seconds) 2021-01-11T09:29:07Z anticrisis quit (Read error: Connection reset by peer) 2021-01-11T09:30:02Z imode joined #lisp 2021-01-11T09:31:49Z Blukunfando quit (Ping timeout: 246 seconds) 2021-01-11T09:46:58Z akrl quit (Ping timeout: 272 seconds) 2021-01-11T09:54:34Z Blukunfando joined #lisp 2021-01-11T09:57:10Z akrl joined #lisp 2021-01-11T09:59:59Z ukari joined #lisp 2021-01-11T10:02:45Z l1x joined #lisp 2021-01-11T10:06:09Z akrl quit (Ping timeout: 265 seconds) 2021-01-11T10:07:29Z rgherdt joined #lisp 2021-01-11T10:11:36Z dilated_dinosaur quit (Ping timeout: 256 seconds) 2021-01-11T10:12:34Z heisig joined #lisp 2021-01-11T10:21:43Z rixard quit (Read error: Connection reset by peer) 2021-01-11T10:21:47Z rixard_ joined #lisp 2021-01-11T10:22:13Z luni quit (Ping timeout: 246 seconds) 2021-01-11T10:24:07Z aartaka joined #lisp 2021-01-11T10:25:50Z Nilby joined #lisp 2021-01-11T10:26:25Z aartaka_d quit (Ping timeout: 240 seconds) 2021-01-11T10:37:30Z hendursaga joined #lisp 2021-01-11T10:39:23Z hendursa1 quit (Ping timeout: 240 seconds) 2021-01-11T10:49:25Z saganman quit (Ping timeout: 264 seconds) 2021-01-11T10:53:28Z vutral_ joined #lisp 2021-01-11T10:57:04Z surabax joined #lisp 2021-01-11T11:04:05Z iskander quit (Ping timeout: 240 seconds) 2021-01-11T11:04:57Z iskander joined #lisp 2021-01-11T11:05:05Z andreyorst quit (Remote host closed the connection) 2021-01-11T11:05:29Z andreyorst joined #lisp 2021-01-11T11:06:48Z random-nick joined #lisp 2021-01-11T11:15:23Z madage quit (Ping timeout: 240 seconds) 2021-01-11T11:19:14Z ldbeth joined #lisp 2021-01-11T11:19:18Z ldbeth: godd evening 2021-01-11T11:25:03Z ldbeth: is there a alogrithm find n highest rating elements given a list and a rating function? 2021-01-11T11:26:18Z phoe: ldbeth: (subseq (sort (copy-seq ...) ...) 0 ...) ? 2021-01-11T11:27:06Z Codaraxis__ quit (Remote host closed the connection) 2021-01-11T11:27:26Z Codaraxis__ joined #lisp 2021-01-11T11:28:22Z narimiran quit (Ping timeout: 246 seconds) 2021-01-11T11:30:50Z narimiran joined #lisp 2021-01-11T11:31:12Z madage joined #lisp 2021-01-11T11:33:16Z stzsch|2 quit (Ping timeout: 246 seconds) 2021-01-11T11:33:59Z rogersm quit (Quit: Leaving...) 2021-01-11T11:34:48Z jmercouris: anyone know of forum software written in Lisp? 2021-01-11T11:34:50Z galex-713_ quit (Ping timeout: 264 seconds) 2021-01-11T11:34:57Z jmercouris: something like Discourse? PHPBB? 2021-01-11T11:35:57Z ldbeth: phoe: seems there's no more clever way unless use something like a circular buffer. 2021-01-11T11:38:32Z galex-713 joined #lisp 2021-01-11T11:39:39Z dilated_dinosaur joined #lisp 2021-01-11T11:42:42Z phoe: well, you need to sort the elements of the circular buffer anyway, I don't think this can be done better than in nlogn 2021-01-11T11:43:12Z phoe: you could possibly adapt quicksort to not care about the insignificant parts and only fully sort the N greatest elements 2021-01-11T11:43:30Z stzsch|2 joined #lisp 2021-01-11T11:47:46Z cosimone joined #lisp 2021-01-11T11:51:11Z stzsch|2 quit (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) 2021-01-11T11:59:20Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-11T12:03:13Z ljavorsk quit (Ping timeout: 260 seconds) 2021-01-11T12:08:56Z mankaev quit (Read error: Connection reset by peer) 2021-01-11T12:09:22Z mankaev joined #lisp 2021-01-11T12:16:37Z imode quit (Quit: WeeChat 3.0) 2021-01-11T12:24:33Z _death: surprised that phoe didn't suggest a heap 2021-01-11T12:25:19Z phoe: _death: a heap will be nlogn anyway 2021-01-11T12:25:43Z phoe: could as well just sort the whole or a part of the thing, it'll be equivalent and not need a prioqueue 2021-01-11T12:25:45Z _death: phoe: not necessarily.. you don't insert all the items immediately 2021-01-11T12:25:54Z phoe: oh! hmmmmmm 2021-01-11T12:25:58Z phoe: immediately? what do you mean? 2021-01-11T12:26:30Z _death: https://en.wikipedia.org/wiki/Partial_sorting#Heap-based_solution 2021-01-11T12:27:26Z jmercouris: might as well use a bubble sort if partial sorting is acceptable :-D 2021-01-11T12:27:44Z jmercouris: just in case that wasn't clear, it was a joke 2021-01-11T12:29:10Z vegansbane6 joined #lisp 2021-01-11T12:32:42Z ldbeth quit (Remote host closed the connection) 2021-01-11T12:43:32Z galex-713 quit (Ping timeout: 246 seconds) 2021-01-11T12:46:04Z ome joined #lisp 2021-01-11T12:46:59Z Bike joined #lisp 2021-01-11T12:50:06Z kaftejiman joined #lisp 2021-01-11T12:57:07Z galex-713 joined #lisp 2021-01-11T13:02:52Z vutral_ quit (Quit: Connection closed for inactivity) 2021-01-11T13:09:24Z mrcom joined #lisp 2021-01-11T13:09:36Z shka_ quit (Quit: Konversation terminated!) 2021-01-11T13:15:17Z shka_ joined #lisp 2021-01-11T13:18:18Z samuel-jimenez joined #lisp 2021-01-11T13:19:30Z dbotton joined #lisp 2021-01-11T13:23:34Z dbotton quit (Client Quit) 2021-01-11T13:24:14Z cosimone quit (Quit: cosimone) 2021-01-11T13:24:15Z Codaraxis__ quit (Remote host closed the connection) 2021-01-11T13:24:35Z Codaraxis__ joined #lisp 2021-01-11T13:29:33Z rumbler31_ quit (Ping timeout: 260 seconds) 2021-01-11T13:39:16Z Codaraxis__ quit (Ping timeout: 246 seconds) 2021-01-11T13:41:17Z Codaraxis__ joined #lisp 2021-01-11T13:45:30Z davd331 joined #lisp 2021-01-11T13:45:37Z davd33 quit (Ping timeout: 272 seconds) 2021-01-11T13:46:39Z davd331 left #lisp 2021-01-11T13:47:17Z Codaraxis__ quit (Remote host closed the connection) 2021-01-11T13:47:36Z Codaraxis__ joined #lisp 2021-01-11T13:49:27Z gko_ joined #lisp 2021-01-11T13:54:03Z wsinatra joined #lisp 2021-01-11T13:54:09Z Codaraxis__ quit (Remote host closed the connection) 2021-01-11T13:54:29Z Codaraxis__ joined #lisp 2021-01-11T13:56:13Z rumbler31_ joined #lisp 2021-01-11T14:07:16Z VincentVega joined #lisp 2021-01-11T14:11:04Z refpga quit (Ping timeout: 272 seconds) 2021-01-11T14:13:21Z skapata joined #lisp 2021-01-11T14:20:05Z refpga joined #lisp 2021-01-11T14:22:34Z lucasb joined #lisp 2021-01-11T14:29:49Z mrchampion quit (Read error: No route to host) 2021-01-11T14:30:39Z pranav joined #lisp 2021-01-11T14:32:04Z pranav left #lisp 2021-01-11T14:32:53Z pranavats joined #lisp 2021-01-11T14:33:17Z mrchampion joined #lisp 2021-01-11T14:38:38Z jackdaniel: Xach: would you find reasonable adding a system to ql that has only static files (namely ttf fonts + license)? 2021-01-11T14:40:24Z jackdaniel: context: I want to provide for McCLIM default fonts, but I don't want to clobber the repository 2021-01-11T14:41:39Z mmmattyx joined #lisp 2021-01-11T14:42:25Z refpga quit (Read error: Connection reset by peer) 2021-01-11T14:43:57Z refpga joined #lisp 2021-01-11T14:46:39Z nicktick joined #lisp 2021-01-11T14:49:31Z karlosz joined #lisp 2021-01-11T14:52:04Z Codaraxis__ quit (Ping timeout: 246 seconds) 2021-01-11T14:54:49Z attila_lendvai quit (Ping timeout: 264 seconds) 2021-01-11T14:55:51Z _death: wouldn't it have an .asd file, therefore lisp? :) 2021-01-11T14:57:40Z edgar-rft starts writing .asd files for all his ttf fonts right now... 2021-01-11T14:58:12Z _death: not for your music and video collections? 2021-01-11T14:58:32Z jackdaniel: it would! that's the point :) 2021-01-11T14:59:12Z eymebolofscrumpe joined #lisp 2021-01-11T14:59:53Z edgar-rft: next task would be writing bug reports to the maintainers of ttf fonts for missing .asd files 2021-01-11T15:01:08Z _death: btw jackdaniel I recently wrote some small patches to mcclim.. for some of them it's clear to me that more extensives changes are required if it's not half-arsed.. but maybe you'd like to check them out? 2021-01-11T15:01:26Z jackdaniel: _death: sure 2021-01-11T15:01:50Z charles` quit (Ping timeout: 264 seconds) 2021-01-11T15:01:53Z jackdaniel: send a pull request with a header `draft: ' if they are not complete 2021-01-11T15:02:23Z gxt quit (Ping timeout: 240 seconds) 2021-01-11T15:02:42Z _death: well, they are a bunch of changes that could likely be split to multiple pull requests 2021-01-11T15:02:52Z gxt joined #lisp 2021-01-11T15:03:24Z jackdaniel: that's fine too 2021-01-11T15:03:39Z jackdaniel: (but if they are like 5-line changes, I'd rather have them as separate commits in a single pr) 2021-01-11T15:04:03Z ey[m] joined #lisp 2021-01-11T15:04:45Z _death: ok, I'll change have a single PR.. also, it seems a text editor pane with drei lisp syntax is extremely slow for some reason, even for <20 lines of simple code? 2021-01-11T15:06:47Z _death: jackdaniel: pull request done 2021-01-11T15:06:50Z jackdaniel: thanks 2021-01-11T15:07:21Z jackdaniel: I'm currently busy because I'm rewriting the renderer for clx backend (to default to xrender and for double buffering) 2021-01-11T15:07:38Z jackdaniel: so I may not look at it immedietely 2021-01-11T15:07:41Z _death: sure, I'm just playing around 2021-01-11T15:10:12Z edgar-rft: Totally offtopic, but at a radio station here a guy from the local computer club does audio editing with sox and makefiles (no joke), why not using asdf for audio editing? If someone's seriously interested, I'm on #lispcafe, too. 2021-01-11T15:10:30Z ey[m]1 joined #lisp 2021-01-11T15:15:19Z Xach: jackdaniel: yes - but it would be nice if 1) it was not too large and 2) it did not change much (new versions with big changes could be new projects?) 2021-01-11T15:16:52Z jackdaniel: Xach: assuming i.e dejavu, it is 12MB, it probably wouldn't change at all (unless new version of said fonts is published) 2021-01-11T15:17:53Z ey[m]2 joined #lisp 2021-01-11T15:18:04Z Xach: jackdaniel: i think that is entirely fine and good 2021-01-11T15:18:14Z Xach: jackdaniel: i wanted to do something similar so i'm glad someone else is! 2021-01-11T15:18:24Z Xach: i wanted to have some guaranteed fonts visible for vecto toys 2021-01-11T15:19:26Z jackdaniel: great, thanks for the feedback. I'll let you know when I have the system (ditto, I need to finish something first) 2021-01-11T15:19:57Z Xach: jackdaniel: might be nice to have a way other than system-relative-pathname to find the files 2021-01-11T15:20:51Z jackdaniel: cl-dejavu:list-fonts cl-dejavu:font-pathname ;? 2021-01-11T15:21:18Z Xach: jackdaniel: i like that 2021-01-11T15:21:29Z jackdaniel: alright, I'll keep that in mind 2021-01-11T15:22:58Z VincentVega quit (Quit: Connection closed) 2021-01-11T15:24:57Z ey[m]3 joined #lisp 2021-01-11T15:25:48Z refpga quit (Read error: Connection reset by peer) 2021-01-11T15:26:59Z _death: maybe a ql-fonts system with an interface and ql-fonts-dejavu package for that particular family 2021-01-11T15:28:11Z _death: the ql-fonts system could look for the fonts in the system, and install the particular package if necessary 2021-01-11T15:28:25Z refpga joined #lisp 2021-01-11T15:30:16Z sjl joined #lisp 2021-01-11T15:32:07Z l1x quit (Quit: Connection closed for inactivity) 2021-01-11T15:33:36Z Xach: that sounds like a 2.0 version of something 2021-01-11T15:33:46Z Xach: i would rather see something simpler first, like jackdaniel describes 2021-01-11T15:34:21Z Xach: i mean your second idea, not the first - though i don't love the "ql-" prefix on things that aren't "truly" part of quicklisp 2021-01-11T15:36:02Z kaftejiman quit (Remote host closed the connection) 2021-01-11T15:37:15Z Lolicon[m]1 joined #lisp 2021-01-11T15:39:09Z _death: sure 2021-01-11T15:40:06Z refpga quit (Read error: Connection reset by peer) 2021-01-11T15:49:29Z varjag quit (Quit: ERC (IRC client for Emacs 26.3)) 2021-01-11T15:51:22Z waleee-cl joined #lisp 2021-01-11T15:54:20Z fangyrn: so what are the problems with ecl, if I were to start investing time in it? what problems have you guys had? 2021-01-11T15:54:39Z jackdaniel: generic function dispatch is not-so-great™ 2021-01-11T15:55:01Z samuel-jimenez quit (Remote host closed the connection) 2021-01-11T15:55:06Z jackdaniel: and compilation time is also lacking 2021-01-11T15:55:19Z jackdaniel: other than that works for me ,) 2021-01-11T15:56:14Z beach: jackdaniel: Do you have ideas for improving generic dispatch? 2021-01-11T15:56:25Z jackdaniel: yes, most of them are based on your paper 2021-01-11T15:56:37Z fangyrn: sorry to interrupt, but what paper? 2021-01-11T15:56:53Z beach: jackdaniel: So you would be willing to assign unique numbers to your classes? 2021-01-11T15:56:54Z jackdaniel: beach wrote a paper about generic function dispatch techniques 2021-01-11T15:57:06Z jackdaniel: beach: I already implemented that before the last release 2021-01-11T15:57:12Z beach: Nice! 2021-01-11T15:57:30Z hnOsmium0001 joined #lisp 2021-01-11T15:57:49Z beach: fangyrn: http://metamodular.com/SICL/generic-dispatch.pdf 2021-01-11T15:58:00Z jackdaniel: I'm more worried about compilation at run time, but I suppose that some data could be gathered and compilation could be batched when the user calls compile-foo 2021-01-11T15:58:22Z jackdaniel: I did not think this through yet 2021-01-11T15:58:40Z beach: Unrelated to generic-dispatch? 2021-01-11T15:59:09Z beach: Or, are you talking about creating discriminating function using the compiler? 2021-01-11T15:59:37Z jackdaniel: yes, about that 2021-01-11T15:59:51Z beach: I see. 2021-01-11T16:01:25Z lotuseater quit (Ping timeout: 264 seconds) 2021-01-11T16:03:19Z beach: fangyrn: Do you feel comfortable attacking a problem like generic dispatch? 2021-01-11T16:09:29Z aartaka_d joined #lisp 2021-01-11T16:09:49Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-11T16:10:33Z frodef quit (Ping timeout: 260 seconds) 2021-01-11T16:10:35Z Aurora_v_kosmose joined #lisp 2021-01-11T16:10:49Z jackdaniel: Xach: https://github.com/quicklisp/quicklisp-projects/issues/1963 2021-01-11T16:11:43Z Steeve joined #lisp 2021-01-11T16:13:25Z aartaka quit (Ping timeout: 240 seconds) 2021-01-11T16:15:06Z jeosol joined #lisp 2021-01-11T16:15:31Z Xach: tusen tack 2021-01-11T16:15:32Z jeosol: Good morning everyone 2021-01-11T16:15:50Z beach: Hello jeosol. 2021-01-11T16:16:10Z jeosol: beach: thanks beach 2021-01-11T16:16:34Z jeosol: how are things coming with your project 2021-01-11T16:16:43Z jeosol: i need to log into #sicl more often now 2021-01-11T16:17:45Z beach: jeosol: Steady progress. The latest idea is explained in this draft paper: http://metamodular.com/SICL/call-site-optimization.pdf 2021-01-11T16:18:00Z beach: jeosol: Remarks are welcome as usual. 2021-01-11T16:18:35Z kingcons` joined #lisp 2021-01-11T16:18:40Z beach: jeosol: How about yourself? 2021-01-11T16:19:51Z ebrasca joined #lisp 2021-01-11T16:20:13Z refpga joined #lisp 2021-01-11T16:20:35Z jeosol quit (Quit: Connection closed) 2021-01-11T16:22:21Z jackdaniel: uh oh, a websocket library? https://github.com/charJe/portal 2021-01-11T16:23:15Z jackdaniel: ah, I've got excited for nothing, it is a server; I was hoping for a new client library 2021-01-11T16:23:25Z jackdaniel: still cool though 2021-01-11T16:23:45Z jeosol joined #lisp 2021-01-11T16:24:38Z jeosol: beach: Thanks for the link of the paper- will read. My browser logged me out for some reason 2021-01-11T16:24:52Z beach: I noticed. :) 2021-01-11T16:25:19Z beach: I thought I said something inappropriate. :) 2021-01-11T16:26:23Z beach: jeosol: Executive summary: Common Lisp can have faster function-calls than C++. :) 2021-01-11T16:26:32Z jeosol: oh no, not all, oh not at all 2021-01-11T16:27:09Z beach: jeosol: I also said "How about yourself?" 2021-01-11T16:27:10Z jeosol: Thanks for the summary. That's something I could use since I do many optimizations runs with thousands of calls 2021-01-11T16:27:29Z andreyorst` quit (Quit: andreyorst`) 2021-01-11T16:27:30Z slyrus quit (Remote host closed the connection) 2021-01-11T16:27:32Z jeosol: beach: I am doing well 2021-01-11T16:27:46Z jeosol: just saw that, had to got to the irc-logs to see if you message while I was out 2021-01-11T16:28:12Z jeosol: I probably should just use emacs, my chrome acts weird once in a while 2021-01-11T16:28:23Z andreyorst_ joined #lisp 2021-01-11T16:29:13Z beach: What project are you working on? 2021-01-11T16:30:07Z jeosol: I was actually thinking of scheduling a talk with phoe, once I clear current loads. 2021-01-11T16:30:35Z beach: You mean an online Lisp meeting thing? 2021-01-11T16:30:36Z jeosol: Basically, most of my application is in the optimization space (and some machine learning for function approximation). 2021-01-11T16:30:49Z jeosol: yeah, online lisp meeting, when I get some things cleared out. 2021-01-11T16:30:56Z beach: That sounds good. 2021-01-11T16:32:50Z jeosol: One of the application examples, is meta-optimization - optimizing and optimizer. This is the application I said does lots of calls. I am looking at improving choice of data structures, etc, to squeeze out performance. Though in other practical applications, I am limited by expensive call to a third-party application that can take several minutes 2021-01-11T16:32:51Z jeosol: per call. 2021-01-11T16:34:12Z beach: What kind of "optimization" are we talking about here? 2021-01-11T16:34:50Z jeosol: sorry that was vague: it's the stochastic kind, evoluationary algorithms, e.g,. genetic algorithms, and the swarm algorithms, e.g., particle swarm optimization 2021-01-11T16:35:02Z beach: Ah, OK. 2021-01-11T16:35:51Z jeosol: They are not very efficient hence the need to combine with some statistical function approximators to save function calls 2021-01-11T16:36:20Z beach: I see. 2021-01-11T16:38:08Z jeosol: Perhaps I could also do an ELS paper. I tried to do one last year and travel but covid hit and disrupted plans 2021-01-11T16:39:38Z beach: Sure. But you don't get to travel this time either. 2021-01-11T16:39:55Z jeosol: I think that's fine. I'd like to contribute a paper 2021-01-11T16:40:04Z beach: Please do! 2021-01-11T16:41:30Z jeosol: beach: also regarding your linked paper, off the top of my head, faster calls than C++ have significant implications - for one, having faster numeric type applications. Every time I have to deal with python version issues when I reach for one of the numeric libraries 2021-01-11T16:42:20Z jeosol: beach: I worked on a draft last year, I'd finish and submit. I just got the code I was working on to a great place and it's more stable, thanks to hints from you and the other guys here 2021-01-11T16:42:37Z beach: I see. I do specifically mention full-word floats and full-word integers. 2021-01-11T16:42:57Z beach: Oh, so that will be no effort at all. :) 2021-01-11T16:42:59Z jeosol: I'd go through it in detail tonight 2021-01-11T16:43:34Z jeosol: beach: what do you mean by "no effort at all." 2021-01-11T16:44:10Z beach: If the paper is already written, you just need to submit it. That's not fair! :) 2021-01-11T16:45:53Z jeosol: Haha, I guess by draft, I overstated things a bit; it's not completed. I have seen papers with code snippets so I was thinking may be I needed to include a few (albeit simplified versions) 2021-01-11T16:46:43Z beach: You have a few months as I recall. 2021-01-11T16:46:47Z jeosol: I'd check the deadline and work to complete it. At least the code runs stable and I can run it in docker from base container 2021-01-11T16:47:23Z frodef joined #lisp 2021-01-11T16:48:11Z housel quit (Ping timeout: 268 seconds) 2021-01-11T16:48:22Z housel joined #lisp 2021-01-11T16:50:32Z charles` joined #lisp 2021-01-11T16:53:08Z cage_ joined #lisp 2021-01-11T16:55:08Z shka_ quit (Quit: Konversation terminated!) 2021-01-11T16:55:39Z aorst joined #lisp 2021-01-11T16:58:18Z shka_ joined #lisp 2021-01-11T16:58:58Z andreyorst quit (Ping timeout: 260 seconds) 2021-01-11T16:58:59Z andreyorst_ is now known as andreyorst 2021-01-11T17:00:33Z mindCrime joined #lisp 2021-01-11T17:05:37Z Bahman joined #lisp 2021-01-11T17:06:36Z clintm quit (Remote host closed the connection) 2021-01-11T17:08:55Z gko_ quit (Ping timeout: 246 seconds) 2021-01-11T17:15:48Z GreaseMonkey quit (Remote host closed the connection) 2021-01-11T17:16:02Z greaser|q joined #lisp 2021-01-11T17:18:13Z v88m quit (Read error: Connection reset by peer) 2021-01-11T17:19:01Z v88m joined #lisp 2021-01-11T17:21:58Z bilegeek joined #lisp 2021-01-11T17:22:25Z Cymew quit (Ping timeout: 264 seconds) 2021-01-11T17:24:40Z phantomics_ quit (Ping timeout: 246 seconds) 2021-01-11T17:28:05Z galex-713 quit (Ping timeout: 246 seconds) 2021-01-11T17:30:05Z vegansbane6 quit (Ping timeout: 240 seconds) 2021-01-11T17:31:04Z mmmattyx quit (Quit: Connection closed for inactivity) 2021-01-11T17:31:24Z andreyor1 joined #lisp 2021-01-11T17:33:05Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T17:34:16Z aorst quit (Ping timeout: 240 seconds) 2021-01-11T17:35:16Z amb007 joined #lisp 2021-01-11T17:35:30Z zulu-inuoe joined #lisp 2021-01-11T17:37:03Z galex-713 joined #lisp 2021-01-11T17:37:16Z andreyor1 quit (Ping timeout: 240 seconds) 2021-01-11T17:37:20Z aorst joined #lisp 2021-01-11T17:42:38Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-11T17:46:10Z opFez joined #lisp 2021-01-11T17:47:04Z ex_nihilo quit (Ping timeout: 240 seconds) 2021-01-11T17:48:19Z vegansbane6 joined #lisp 2021-01-11T17:51:24Z ex_nihilo joined #lisp 2021-01-11T17:53:35Z varjag joined #lisp 2021-01-11T17:54:10Z puchacz joined #lisp 2021-01-11T17:54:58Z zaquest quit (Ping timeout: 260 seconds) 2021-01-11T17:56:18Z puchacz: hello, ECL is mostly up and running, but I was getting a strange crash before: "Internal error: Detected write access to the environment while interrupts were disabled. Usually this is caused by a missing call to ecl_enable_interrupts." - it looked as if it was related to an ironclad function being unsuccessfully injected into a hunchentoot thread 2021-01-11T17:56:18Z puchacz: - I got debugger with it in Emacs few times. 2021-01-11T17:56:33Z puchacz: does it look familiar to anybody please? 2021-01-11T17:59:04Z frodef quit (Ping timeout: 272 seconds) 2021-01-11T18:01:10Z puchacz: got this error in emacs again, it is trying to inject (make-prng :os) from ironclad, and the error is "Cannot interrupt the inactive process #" 2021-01-11T18:01:56Z puchacz: this form is automatically added to bt:*default-special-bindings* in ironclad, but I don't know what exactly is going on 2021-01-11T18:04:23Z rumbler31 joined #lisp 2021-01-11T18:08:09Z lotuseater joined #lisp 2021-01-11T18:08:34Z ome quit (Quit: Connection closed for inactivity) 2021-01-11T18:09:01Z jackdaniel: it looks as if you are trying to do something in a thread that is not started (i.e already ended) 2021-01-11T18:11:52Z puchacz: jackdaniel - if it was me doing it, it would be easy :) 2021-01-11T18:12:12Z puchacz: trying to recompile now with (pushnew '(*prng* . (make-prng :os)) bt:*default-special-bindings* :test #'equal) commented out 2021-01-11T18:12:46Z puchacz: I can imagine it is some sort of ironclad improved random seed generator, but I don't understand why it is trying to interrupt a thread 2021-01-11T18:12:47Z jackdaniel: what ecl version do you use? 2021-01-11T18:12:59Z jackdaniel: after the last release there were a few fixes for interrupts 2021-01-11T18:13:10Z puchacz: "20.4.24-UNKNOWN" 2021-01-11T18:13:24Z puchacz: I downloaded from your site, not git 2021-01-11T18:14:00Z jackdaniel: then you may try building git version to see if it works 2021-01-11T18:14:30Z puchacz: ok, will do - thanks :) 2021-01-11T18:14:49Z jackdaniel: sure, if it still fails, please try to narrow the test case and submit an issue 2021-01-11T18:15:08Z puchacz: ok:) 2021-01-11T18:19:22Z liberliver quit (Quit: liberliver) 2021-01-11T18:22:24Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T18:23:11Z attila_lendvai joined #lisp 2021-01-11T18:23:39Z amb007 joined #lisp 2021-01-11T18:27:40Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T18:28:54Z amb007 joined #lisp 2021-01-11T18:29:33Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T18:30:14Z amb007 joined #lisp 2021-01-11T18:39:45Z akoana joined #lisp 2021-01-11T18:42:51Z puchacz: is it possible to globally restrict compiler policy? e.g. sbcl has (sb-ext:restrict-compiler-policy 'debug 3) that overrides all local declaims, proclaims etc. 2021-01-11T18:43:05Z puchacz: (in ECL I mean) 2021-01-11T18:43:48Z frodef joined #lisp 2021-01-11T18:46:13Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T18:46:51Z amb007 joined #lisp 2021-01-11T18:49:14Z jackdaniel: ecl doesn't have such feature yet 2021-01-11T18:49:15Z v88m quit (Read error: Connection reset by peer) 2021-01-11T18:49:22Z opFez quit (Ping timeout: 256 seconds) 2021-01-11T18:49:29Z puchacz: ok 2021-01-11T18:51:32Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T18:52:02Z amb007 joined #lisp 2021-01-11T18:52:15Z [d] quit (Remote host closed the connection) 2021-01-11T18:52:27Z [d] joined #lisp 2021-01-11T18:53:06Z v88m joined #lisp 2021-01-11T18:53:38Z asarch joined #lisp 2021-01-11T18:56:37Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T18:57:32Z amb007 joined #lisp 2021-01-11T19:00:32Z Lord_of_Life_ joined #lisp 2021-01-11T19:00:32Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T19:00:43Z amb007 joined #lisp 2021-01-11T19:01:51Z varjag quit (Remote host closed the connection) 2021-01-11T19:01:51Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T19:02:37Z amb007 joined #lisp 2021-01-11T19:02:37Z Lord_of_Life quit (Ping timeout: 264 seconds) 2021-01-11T19:03:21Z jurov_ joined #lisp 2021-01-11T19:03:21Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T19:03:22Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-11T19:04:02Z amb007 joined #lisp 2021-01-11T19:06:23Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T19:06:54Z varjagg joined #lisp 2021-01-11T19:06:56Z jurov quit (Ping timeout: 256 seconds) 2021-01-11T19:07:06Z amb007 joined #lisp 2021-01-11T19:08:28Z varjagg quit (Remote host closed the connection) 2021-01-11T19:08:28Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T19:08:52Z amb007 joined #lisp 2021-01-11T19:16:11Z sauvin quit (Remote host closed the connection) 2021-01-11T19:21:13Z narimiran quit (Ping timeout: 246 seconds) 2021-01-11T19:23:29Z narimiran joined #lisp 2021-01-11T19:23:29Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T19:24:12Z amb007 joined #lisp 2021-01-11T19:37:32Z rumbler31_ quit (Ping timeout: 256 seconds) 2021-01-11T19:39:59Z aorst quit (Quit: WeeChat 3.0) 2021-01-11T19:40:17Z aorst joined #lisp 2021-01-11T19:40:22Z andreyorst quit (Ping timeout: 256 seconds) 2021-01-11T19:43:25Z karlosz quit (Remote host closed the connection) 2021-01-11T19:45:49Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T19:46:32Z amb007 joined #lisp 2021-01-11T19:46:52Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-11T19:47:29Z rumbler31 joined #lisp 2021-01-11T19:48:50Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T19:49:20Z amb007 joined #lisp 2021-01-11T19:51:40Z karlosz joined #lisp 2021-01-11T19:51:45Z erjag joined #lisp 2021-01-11T19:55:44Z also_uplime quit (Disconnected by services) 2021-01-11T19:55:58Z also_uplime joined #lisp 2021-01-11T19:58:11Z erjag quit (Remote host closed the connection) 2021-01-11T19:59:12Z varjagg joined #lisp 2021-01-11T20:00:22Z varjagg quit (Remote host closed the connection) 2021-01-11T20:02:21Z secretmyth joined #lisp 2021-01-11T20:07:23Z waleee-cl quit (Read error: Connection reset by peer) 2021-01-11T20:07:47Z waleee-cl joined #lisp 2021-01-11T20:07:47Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T20:08:07Z amb007 joined #lisp 2021-01-11T20:10:20Z amb007 quit (Read error: Connection reset by peer) 2021-01-11T20:10:47Z amb007 joined #lisp 2021-01-11T20:11:32Z kaftejiman joined #lisp 2021-01-11T20:11:54Z anticrisis joined #lisp 2021-01-11T20:29:33Z varjagg joined #lisp 2021-01-11T20:34:30Z varjagg quit (Remote host closed the connection) 2021-01-11T20:37:14Z rumbler31_ joined #lisp 2021-01-11T20:41:23Z cage_ quit (Quit: Leaving) 2021-01-11T20:41:48Z mindCrime joined #lisp 2021-01-11T20:47:54Z aartaka_d is now known as aartaka 2021-01-11T20:49:57Z asarch quit (Ping timeout: 272 seconds) 2021-01-11T20:59:08Z narimiran quit (Ping timeout: 265 seconds) 2021-01-11T21:02:56Z judson_ joined #lisp 2021-01-11T21:12:54Z tsrt^ quit 2021-01-11T21:14:02Z attila_lendvai quit (Ping timeout: 256 seconds) 2021-01-11T21:17:10Z mgsk_ quit (Quit: ZNC 1.7.0 - https://znc.in) 2021-01-11T21:17:20Z mgsk_ joined #lisp 2021-01-11T21:21:22Z aartaka quit (Ping timeout: 265 seconds) 2021-01-11T21:22:57Z heisig quit (Quit: Leaving) 2021-01-11T21:25:50Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-11T21:30:31Z wsinatra quit (Quit: WeeChat 3.0) 2021-01-11T21:31:29Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-11T21:41:06Z orivej quit (Quit: No Ping reply in 180 seconds.) 2021-01-11T21:42:16Z orivej joined #lisp 2021-01-11T21:44:45Z frgo joined #lisp 2021-01-11T21:51:26Z pve quit (Quit: leaving) 2021-01-11T22:07:15Z mindCrime joined #lisp 2021-01-11T22:07:32Z judson_ joined #lisp 2021-01-11T22:15:49Z rumbler31_ quit (Ping timeout: 264 seconds) 2021-01-11T22:20:44Z Steeve quit (Quit: end) 2021-01-11T22:23:49Z puchacz: jackdaniel - sorry, I did not pinpoint it, but I realised that ironclad has nothing to do with the issue - I just saw the binding at the bottom stack frame of a thread, because bordeaux-threads was binding these specials as requested by ironclad. nothing to do with interrupting. 2021-01-11T22:26:16Z makomo quit (Ping timeout: 240 seconds) 2021-01-11T22:28:14Z rgherdt quit (Ping timeout: 264 seconds) 2021-01-11T22:35:26Z VincentVega joined #lisp 2021-01-11T22:39:11Z gaqwas quit (Ping timeout: 265 seconds) 2021-01-11T22:41:31Z joga joined #lisp 2021-01-11T22:42:35Z rumbler31_ joined #lisp 2021-01-11T22:43:26Z shka_ quit (Ping timeout: 272 seconds) 2021-01-11T22:44:05Z leo_song joined #lisp 2021-01-11T22:44:48Z joga quit (Changing host) 2021-01-11T22:44:48Z joga joined #lisp 2021-01-11T22:45:37Z Blukunfando quit (Ping timeout: 246 seconds) 2021-01-11T22:48:50Z stoneglass joined #lisp 2021-01-11T22:49:14Z puchacz: but I think the original problem with interrupting non started thread is gone 2021-01-11T22:52:35Z jackdaniel: with a version from git? 2021-01-11T22:52:48Z jackdaniel: or you have fixed something? 2021-01-11T22:52:55Z jackdaniel: puchacz: ^ 2021-01-11T22:54:35Z puchacz: with a version from git, I think I never saw this "Cannot interrupt inactive" anymore 2021-01-11T22:54:44Z puchacz: well, I am certain 2021-01-11T22:55:44Z jackdaniel: cool, sounds like a progress :) good night \o 2021-01-11T22:56:00Z puchacz: thanks, and good night :) 2021-01-11T23:08:01Z sjl quit (Ping timeout: 264 seconds) 2021-01-11T23:08:55Z akoana left #lisp 2021-01-11T23:10:49Z gigetoo quit (Ping timeout: 246 seconds) 2021-01-11T23:11:36Z devon joined #lisp 2021-01-11T23:12:26Z puchacz: I will play with it next weekend, there are (sparse!) application level incompatibilities, e.g. something deep inside babel crashes this in ECL (puri:parse-uri 2021-01-11T23:12:26Z puchacz: "https://en.wikipedia.org/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cjquery.makeCollapsible.styles%7Cskins.vector.styles.legacy%7Cwikibase.client.init&only=styles&skin=vector") 2021-01-11T23:13:06Z puchacz: with #(124) is not of type (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)) --- related to lovely Lisp strings in babel :) 2021-01-11T23:16:47Z gigetoo joined #lisp 2021-01-11T23:22:15Z Blukunfando joined #lisp 2021-01-11T23:25:34Z devon: Is there a cure for the impossibility of using SWANK::*AFTER-INIT-HOOK* in a straightforward way? 2021-01-11T23:25:34Z stoneglass quit (Read error: Connection reset by peer) 2021-01-11T23:25:55Z stoneglass joined #lisp 2021-01-11T23:27:20Z kaftejiman_ joined #lisp 2021-01-11T23:27:50Z kaftejiman quit (Read error: Connection reset by peer) 2021-01-11T23:29:37Z nicktick quit (Ping timeout: 264 seconds) 2021-01-11T23:32:40Z puchacz quit (Quit: Connection closed) 2021-01-11T23:33:49Z Posterdati quit (Ping timeout: 264 seconds) 2021-01-11T23:35:42Z aeth: mfiano: Interesting. Apparently, the behavior you were complaining about a while back (iirc) is called sb-ext:readtable-normalization according to: https://old.reddit.com/r/lisp/comments/kv9uqv/sbcl_unicode_support/ 2021-01-11T23:36:47Z aeth: (setf (sb-ext:readtable-normalization *readtable*) nil) 'ℝ => ℝ 2021-01-11T23:36:56Z VincentVega quit (Quit: Connection closed) 2021-01-11T23:38:02Z aeth: Maybe I can just use the host CL's readtable to readtable-case :invert in Airship Scheme, then. 2021-01-11T23:38:04Z karlosz quit (Remote host closed the connection) 2021-01-11T23:38:54Z Posterdati joined #lisp 2021-01-11T23:41:44Z aeth: http://www.sbcl.org/manual/#Symbol-Name-Normalization 2021-01-11T23:42:12Z aeth: oh, intern isn't even affected by it 2021-01-11T23:47:25Z surabax quit (Quit: Leaving) 2021-01-11T23:48:16Z Krystof quit (Ping timeout: 246 seconds) 2021-01-11T23:49:32Z loli quit (Read error: Connection reset by peer) 2021-01-11T23:50:07Z loli joined #lisp 2021-01-11T23:54:14Z orivej quit (Ping timeout: 256 seconds) 2021-01-12T00:05:01Z zaquest joined #lisp 2021-01-12T00:08:34Z frodef quit (Ping timeout: 246 seconds) 2021-01-12T00:11:58Z lucasb quit (Quit: Connection closed for inactivity) 2021-01-12T00:13:23Z ex_nihilo quit (Quit: Leaving) 2021-01-12T00:23:42Z hiroaki quit (Ping timeout: 256 seconds) 2021-01-12T00:24:14Z karlosz joined #lisp 2021-01-12T00:32:31Z imode joined #lisp 2021-01-12T00:34:19Z nicktick joined #lisp 2021-01-12T00:34:19Z Nilby quit (Read error: Connection reset by peer) 2021-01-12T00:34:50Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-12T00:45:03Z dbotton joined #lisp 2021-01-12T00:49:05Z secretmyth quit (Quit: Leaving) 2021-01-12T00:50:07Z dbotton quit (Quit: Leaving) 2021-01-12T00:56:26Z zaquest quit (Remote host closed the connection) 2021-01-12T00:57:47Z zaquest joined #lisp 2021-01-12T01:00:10Z zacts joined #lisp 2021-01-12T01:00:13Z zacts quit (Client Quit) 2021-01-12T01:01:04Z kingcons` quit (Ping timeout: 240 seconds) 2021-01-12T01:09:22Z Oladon joined #lisp 2021-01-12T01:11:41Z mrcom_ joined #lisp 2021-01-12T01:11:47Z mrcom quit (Read error: Connection reset by peer) 2021-01-12T01:14:52Z Oladon1 joined #lisp 2021-01-12T01:16:05Z Oladon quit (Ping timeout: 240 seconds) 2021-01-12T01:17:43Z pfdietz joined #lisp 2021-01-12T01:23:13Z dbotton joined #lisp 2021-01-12T01:23:37Z random-nick quit (Ping timeout: 264 seconds) 2021-01-12T01:25:16Z v88m quit (Read error: Connection reset by peer) 2021-01-12T01:29:22Z rumbler31_ quit (Ping timeout: 272 seconds) 2021-01-12T01:30:57Z v88m joined #lisp 2021-01-12T01:34:53Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-12T01:35:30Z rumbler31 joined #lisp 2021-01-12T01:35:59Z PuercoPop joined #lisp 2021-01-12T01:39:45Z pfdietz quit (Ping timeout: 248 seconds) 2021-01-12T01:42:17Z kingcons` joined #lisp 2021-01-12T01:42:32Z PuercoPop quit (Quit: WeeChat 2.8) 2021-01-12T01:42:49Z PuercoPop joined #lisp 2021-01-12T01:43:10Z bilegeek quit (Quit: Leaving) 2021-01-12T01:46:10Z ralt quit (Quit: Connection closed for inactivity) 2021-01-12T01:47:16Z mindCrime joined #lisp 2021-01-12T01:47:26Z kingcons` quit (Ping timeout: 264 seconds) 2021-01-12T01:49:16Z nicktick quit (Ping timeout: 240 seconds) 2021-01-12T01:51:21Z ey[m]3 is now known as ecm 2021-01-12T01:52:29Z chateau1942 joined #lisp 2021-01-12T01:52:59Z nicktick joined #lisp 2021-01-12T01:54:22Z chateau1942 quit (Client Quit) 2021-01-12T02:01:35Z abhixec_ joined #lisp 2021-01-12T02:16:52Z kaftejiman_ quit (Remote host closed the connection) 2021-01-12T02:18:18Z sm2n joined #lisp 2021-01-12T02:34:35Z kingcons` joined #lisp 2021-01-12T02:38:49Z stoneglass quit (Read error: Connection reset by peer) 2021-01-12T02:38:54Z stonegla1 joined #lisp 2021-01-12T02:39:02Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-12T02:39:51Z judson_ joined #lisp 2021-01-12T02:39:57Z kingcons` quit (Ping timeout: 260 seconds) 2021-01-12T02:40:51Z judson_ quit (Client Quit) 2021-01-12T02:45:19Z judson_ joined #lisp 2021-01-12T02:45:32Z todun joined #lisp 2021-01-12T02:50:25Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-12T02:52:25Z aeth quit (Ping timeout: 264 seconds) 2021-01-12T02:53:44Z aeth joined #lisp 2021-01-12T02:55:31Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-12T02:57:02Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-12T02:57:28Z rozenglass quit (Ping timeout: 260 seconds) 2021-01-12T02:58:02Z Bike quit (Quit: Lost terminal) 2021-01-12T03:00:56Z mindCrime joined #lisp 2021-01-12T03:01:25Z kagevf quit (Ping timeout: 264 seconds) 2021-01-12T03:02:30Z Oladon1 quit (Quit: Leaving.) 2021-01-12T03:05:31Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-12T03:08:46Z dbotton joined #lisp 2021-01-12T03:14:06Z judson_ joined #lisp 2021-01-12T03:20:15Z rumbler31_ joined #lisp 2021-01-12T03:20:53Z Oladon joined #lisp 2021-01-12T03:28:50Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-12T03:31:28Z kingcons` joined #lisp 2021-01-12T03:31:59Z kingcons` quit (Remote host closed the connection) 2021-01-12T03:33:29Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-12T03:33:48Z matryoshka joined #lisp 2021-01-12T03:37:49Z charles`: flip214: by ignore package nickname I didn't mean "not have to type it", I meant "change the package definition to not have a nickname without changing the source code" and before or while ASDF is loading it. 2021-01-12T03:41:16Z nmg joined #lisp 2021-01-12T03:41:35Z fiddlerwoaroof: charles`: you can dynamically modify all of these things 2021-01-12T03:42:04Z fiddlerwoaroof: I _believe_ there's an ASDF extension somewhere that has some sort of file-local package nicknames 2021-01-12T03:42:09Z todun quit (Quit: todun) 2021-01-12T03:42:17Z charles`: Yes, I see RENAME-PACKAGE, but how to use it with asdf 2021-01-12T03:44:25Z fiddlerwoaroof: Here's one https://github.com/fare/package-renaming 2021-01-12T03:46:22Z fiddlerwoaroof: But, I don't know the context, so I'm not sure what the best thing to tell you is 2021-01-12T03:46:43Z Stanley00 joined #lisp 2021-01-12T03:47:18Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-12T03:47:39Z matryoshka joined #lisp 2021-01-12T03:48:10Z chateau1942 joined #lisp 2021-01-12T03:48:37Z charles`: basically I have two packages that have names CL-BASE64 and BASE64; I need both because they are dependencies for different dependencies. CL-BASE64 has nickname BASE64. I just need to remove that. 2021-01-12T03:48:54Z chateau1942 left #lisp 2021-01-12T03:52:04Z fiddlerwoaroof: I wonder if ASDF has a mechanism for overriding dependencies 2021-01-12T03:52:49Z fiddlerwoaroof: I'd be inclined to force one system in this case and then add a bit of code to emulate the other one to the BASE64 package 2021-01-12T03:52:56Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-12T03:53:15Z matryoshka joined #lisp 2021-01-12T03:53:58Z charles`: It isn't that simple. cl-base64 and base64 have differently named functions and cl-base64 has some functions that base64 doesn't have at all 2021-01-12T03:54:51Z fiddlerwoaroof: Yeah, what I'm thinking is take the one with the more complicated to implement function, and then write your own code to implement the missing names 2021-01-12T03:55:27Z fiddlerwoaroof: (in-package :cl-base64) (defun base64->string (v) (parse v)) or whatever 2021-01-12T03:55:45Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-12T03:56:04Z aeth quit (Ping timeout: 246 seconds) 2021-01-12T03:57:49Z charles`: so what you're suggesting is just don't use BASE64 package at all 2021-01-12T03:58:07Z aeth joined #lisp 2021-01-12T03:58:31Z fiddlerwoaroof: Yeah 2021-01-12T03:58:34Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-12T03:58:53Z matryoshka joined #lisp 2021-01-12T03:59:05Z matryoshka quit (Remote host closed the connection) 2021-01-12T03:59:23Z charles`: so track down the package that is using it as a dependency and tell them that they should use a different package 2021-01-12T03:59:25Z fiddlerwoaroof: The problem is that their transitive dependencies, which means you'd have to figure out how to modify the dependency list 2021-01-12T03:59:45Z fiddlerwoaroof: system, not package 2021-01-12T03:59:57Z charles`: wouldn't I have to modify the package that uses base64 as a dependency to use cl-base64 functions 2021-01-12T04:00:08Z stonegla1 quit (Quit: stonegla1) 2021-01-12T04:00:11Z fiddlerwoaroof: I dunno, package nicknames in libraries is bad idea 2021-01-12T04:00:51Z fiddlerwoaroof: charles`: I think you're mixing up "packages" and ASDF "systems" 2021-01-12T04:01:27Z charles`: I just mean a particular project or bundle of code 2021-01-12T04:01:44Z fiddlerwoaroof: That is a "system" 2021-01-12T04:02:02Z Alfr_ joined #lisp 2021-01-12T04:02:03Z fiddlerwoaroof: A package is a namespace for symbols 2021-01-12T04:02:58Z fiddlerwoaroof: Alternatively, you could modify your build process a bit 2021-01-12T04:03:21Z fiddlerwoaroof: load cl-base64 first, delete the package nickname using normal lisp code and then load your own system 2021-01-12T04:04:24Z fiddlerwoaroof: I'm actually surprised this happens, I thought quicklisp requires that all systems be loadable in the same image 2021-01-12T04:04:24Z charles`: would that prevent my system from being loaded with ASDF? 2021-01-12T04:04:32Z Alfr quit (Ping timeout: 260 seconds) 2021-01-12T04:05:06Z charles`: they can load just fine. I just have to enter the debugger and manually ignore the BASE64 nickname 2021-01-12T04:05:36Z pillton joined #lisp 2021-01-12T04:05:54Z charles`: also perhaps the problematic nickname was added after already being added to quicklisp 2021-01-12T04:07:25Z fiddlerwoaroof: ASDF caches loaded systems 2021-01-12T04:07:42Z fiddlerwoaroof: So, you could still use ASDF to load it, it'll just be annoying 2021-01-12T04:08:32Z beach: Good morning everyone! 2021-01-12T04:08:48Z fiddlerwoaroof: https://plaster.tymoon.eu/view/2237 2021-01-12T04:08:50Z fiddlerwoaroof: morning beach 2021-01-12T04:09:45Z fiddlerwoaroof: This is really why package nicknames should not be used in libraries, especially generic terms like "base64" 2021-01-12T04:10:36Z charles`: Good morning to beach 2021-01-12T04:12:06Z aeth: nicknames are fine if you have a unique nickname 2021-01-12T04:12:10Z aeth: so, not 'json' 2021-01-12T04:13:13Z nicktick quit (Ping timeout: 246 seconds) 2021-01-12T04:13:20Z aeth: "unique nickname" would be a bit of a contradiction because it doesn't scale to large communities, but reasonable nicknames could work 2021-01-12T04:13:58Z nicktick joined #lisp 2021-01-12T04:15:51Z fiddlerwoaroof: aeth: I'd generally say, if you're writing an application, use global nicknames as much as you want 2021-01-12T04:16:10Z fiddlerwoaroof: Where application is defined as "code not intended to be used as the dependency of another system" 2021-01-12T04:16:35Z aeth: An example of a reasonable nickname would be e.g. firefox for firefox-browser or something like htat, although that's an application. 2021-01-12T04:16:42Z fiddlerwoaroof: I guess alexandria uses nicknames for versioning 2021-01-12T04:16:55Z fiddlerwoaroof: alexandria is a nickname for alexandria.1.dev or something 2021-01-12T04:17:19Z aeth: And the larger the framework/engine, the more likely it will behave like an "application" by your view, though, imo 2021-01-12T04:17:26Z matryoshka joined #lisp 2021-01-12T04:17:47Z fiddlerwoaroof: That's probably right 2021-01-12T04:17:48Z aeth: A big game engine or web framework probably can get away with a nickname 2021-01-12T04:17:58Z aeth: as long as it's not a ridiculously colliding one like "game" 2021-01-12T04:18:15Z aeth: or "web" 2021-01-12T04:19:42Z fiddlerwoaroof: Well, I'd generally think those would be ok for an "end user" 2021-01-12T04:19:52Z fiddlerwoaroof: Because then they'd be guaranteed to be unique 2021-01-12T04:20:10Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-12T04:20:16Z fiddlerwoaroof: As long as your dependencies obey the contract of "not defining package nicknames" 2021-01-12T04:22:29Z aeth: fiddlerwoaroof: I'd argue that a game engine would be wrong to use "game" and a web framework would be wrong to use "web"... however, they could in their documentation (or even in a project autogenerator) use that as the default for the *user* and *their* project, rather than for a library. 2021-01-12T04:23:08Z aeth: Although I guess you might want to run several websites or several game servers together in one image. 2021-01-12T04:23:32Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-12T04:23:56Z matryoshka joined #lisp 2021-01-12T04:36:26Z fiddlerwoaroof: What I mean by "end user" is "system that is never depended on by any other systems" 2021-01-12T04:36:36Z nicktick quit (Ping timeout: 240 seconds) 2021-01-12T04:36:58Z fiddlerwoaroof: For the other problem, you need a virtualization layer for CL 2021-01-12T04:37:47Z beach: First-class global environments might help. 2021-01-12T04:38:06Z fiddlerwoaroof: Yeah, that's basically what I mean, as far as I understand it 2021-01-12T04:40:21Z aeth: absolutely 2021-01-12T04:40:26Z beach: There is not much to understand. It's just a protocol with a bunch of generic functions that look like the standard ones, but with an additional environment parameter, so find-class, find-package, fdefinition, etc. 2021-01-12T04:40:49Z aeth: You'd ideally want first-class global environments if you want to run multiple server things of the same type (games, websites, app servers, etc.) on one image 2021-01-12T04:41:20Z aeth: Otherwise, there are too many global variables in the language to be sure that they won't interfere with each other in unexpected ways. 2021-01-12T04:42:32Z beach: Is this going to be a "Let's define an improved version of Common Lisp with fewer global variables" discussion? 2021-01-12T04:45:59Z fiddlerwoaroof: beach: I'd rather just define a way to "fork" the common lisp environment so that changes in one part can't directly affect changes in the other 2021-01-12T04:46:19Z fiddlerwoaroof: The only thing you'd need then is a protocol to pass data between the two sides 2021-01-12T04:46:46Z dbotton joined #lisp 2021-01-12T04:47:32Z beach: I am planning a way to define incremental first-class global environments. 2021-01-12T04:47:54Z fiddlerwoaroof: This is, incidentally, what unix did 2021-01-12T04:48:08Z beach: Oh? 2021-01-12T04:48:22Z fiddlerwoaroof: Docker containers are just namespaces for all the global resources: PIDs, ports, etc. 2021-01-12T04:48:34Z beach: I see. 2021-01-12T04:48:36Z aeth: beach: No. You don't need to remove the globals if you have different global environments so COMMON-LISP:*FOO* can refer to different things depending on the environment. 2021-01-12T04:48:45Z fiddlerwoaroof: Most of them bundle an entire OS image inside the namespace, but there's no necessity for that 2021-01-12T04:48:56Z beach: aeth: Got it. 2021-01-12T04:49:08Z aeth: It already can refer to different things depending on the thread in most implementations... so my concern probably isn't as big of a problem as I think. 2021-01-12T04:49:27Z fiddlerwoaroof: A docker container can be a single executable, as long as it has no dependencies 2021-01-12T04:51:51Z andreyorst joined #lisp 2021-01-12T04:51:55Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-12T04:52:33Z charles`: fiddlerwoaroof: in your example you used SB-KERNEL:SIMPLE-PACKAGE-ERROR. isn't that specific to sbcl? is there a portable way? 2021-01-12T04:54:00Z dbotton joined #lisp 2021-01-12T04:55:06Z fiddlerwoaroof: I think PACKAGE-ERROR, maybe? 2021-01-12T04:55:11Z fiddlerwoaroof: specbot package-error 2021-01-12T04:55:17Z thinkpad joined #lisp 2021-01-12T04:55:19Z fiddlerwoaroof: clhs package-error 2021-01-12T04:55:19Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/e_pkg_er.htm 2021-01-12T04:55:47Z charles`: but wouldn't that catch all errors, not just ones related to nicknames 2021-01-12T04:56:14Z fiddlerwoaroof: yeah 2021-01-12T04:58:26Z fiddlerwoaroof: It might be cleaner to have a system :cl-base64-patch that depends on cl-base64 and has a single file, that clears the nickname 2021-01-12T04:58:33Z fiddlerwoaroof: Then have your system depend on that one 2021-01-12T04:59:20Z fiddlerwoaroof: Or fork cl-base64 to local-projects and modify it (which is what I usually do) 2021-01-12T05:01:49Z charles`: ideally the maintainer would be responsive and remove his nickname 2021-01-12T05:03:56Z thinkpad quit (Ping timeout: 240 seconds) 2021-01-12T05:04:40Z charles`: patch method doesn't work for me because I'm not using cl-base64 it is another dependency that is using it 2021-01-12T05:07:32Z jonatack quit (Ping timeout: 256 seconds) 2021-01-12T05:09:14Z thinkpad joined #lisp 2021-01-12T05:09:18Z jonatack joined #lisp 2021-01-12T05:10:26Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-12T05:10:50Z matryoshka joined #lisp 2021-01-12T05:11:19Z rumbler31_ quit (Ping timeout: 246 seconds) 2021-01-12T05:22:36Z Oladon quit (Quit: Leaving.) 2021-01-12T05:25:25Z thinkpad quit (Read error: Connection reset by peer) 2021-01-12T05:26:14Z epony quit (Remote host closed the connection) 2021-01-12T05:27:28Z epony joined #lisp 2021-01-12T05:27:29Z aartaka joined #lisp 2021-01-12T05:29:21Z thinkpad joined #lisp 2021-01-12T05:31:03Z emaczen joined #lisp 2021-01-12T05:33:44Z Misha_B joined #lisp 2021-01-12T05:38:16Z thinkpad quit (Ping timeout: 240 seconds) 2021-01-12T05:38:35Z rumbler31_ joined #lisp 2021-01-12T05:38:56Z thinkpad joined #lisp 2021-01-12T05:40:03Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-12T05:40:56Z pillton quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-12T05:44:29Z refpga quit (Read error: Connection reset by peer) 2021-01-12T05:50:02Z galex-713 joined #lisp 2021-01-12T05:55:03Z charles`: I've found that the path of least resistance is to not use the library that depends on base64 2021-01-12T05:56:08Z charles`: I still think, as a community, something should be done about cl-base64, not only does it use a generic nickname, the git repository and maintainer are not accessible. 2021-01-12T06:12:47Z ppbitb quit (Quit: WeeChat 2.9) 2021-01-12T06:16:54Z ppbitb joined #lisp 2021-01-12T06:17:16Z beach: charles`: The only way that will happen is if someone decides to work on it. There is no community decision process that will make it happen in any other way. 2021-01-12T06:18:05Z nicktick joined #lisp 2021-01-12T06:18:57Z fiddlerwoaroof: charles`: my suggestion would still work, you just have to put the system that depends on cl-base64 as the dependency of the system with the patch 2021-01-12T06:20:26Z aeth: charles`: or create a superior library with a compatible API and get the library that uses cl-base64 to switch 2021-01-12T06:21:31Z ebrasca quit (Remote host closed the connection) 2021-01-12T06:25:35Z narimiran joined #lisp 2021-01-12T06:26:34Z orivej joined #lisp 2021-01-12T06:27:35Z aartaka_d joined #lisp 2021-01-12T06:28:33Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-12T06:29:38Z karlosz quit (Remote host closed the connection) 2021-01-12T06:30:23Z aartaka quit (Ping timeout: 260 seconds) 2021-01-12T06:31:36Z dbotton joined #lisp 2021-01-12T06:31:36Z mankaev quit (Read error: Connection reset by peer) 2021-01-12T06:33:34Z j0nd0e joined #lisp 2021-01-12T06:34:35Z sauvin joined #lisp 2021-01-12T06:35:54Z mankaev joined #lisp 2021-01-12T06:38:28Z thinkpad quit (Ping timeout: 246 seconds) 2021-01-12T06:39:34Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-12T06:39:55Z mbomba joined #lisp 2021-01-12T06:40:56Z thinkpad joined #lisp 2021-01-12T06:44:32Z judson_ joined #lisp 2021-01-12T06:47:31Z frodef joined #lisp 2021-01-12T06:49:40Z thinkpad quit (Ping timeout: 246 seconds) 2021-01-12T06:50:33Z karlosz joined #lisp 2021-01-12T06:51:28Z thinkpad joined #lisp 2021-01-12T06:54:31Z PuercoPop quit (Quit: WeeChat 2.8) 2021-01-12T06:55:46Z Stanley00 quit (Ping timeout: 256 seconds) 2021-01-12T06:59:48Z Stanley00 joined #lisp 2021-01-12T07:00:38Z andreyorst` joined #lisp 2021-01-12T07:00:38Z andreyorst` quit (Remote host closed the connection) 2021-01-12T07:01:03Z andreyorst` joined #lisp 2021-01-12T07:04:13Z andreyorst quit (Ping timeout: 260 seconds) 2021-01-12T07:04:20Z emaczen quit (Ping timeout: 256 seconds) 2021-01-12T07:05:06Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-12T07:08:29Z msk quit (Remote host closed the connection) 2021-01-12T07:08:36Z mbomba quit (Quit: WeeChat 3.0) 2021-01-12T07:10:00Z thinkpad quit (Ping timeout: 256 seconds) 2021-01-12T07:10:10Z shka_ joined #lisp 2021-01-12T07:10:28Z thinkpad joined #lisp 2021-01-12T07:20:13Z thinkpad quit (Ping timeout: 265 seconds) 2021-01-12T07:20:56Z thinkpad joined #lisp 2021-01-12T07:23:54Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-12T07:24:30Z rumbler31 joined #lisp 2021-01-12T07:28:23Z skapata quit (Remote host closed the connection) 2021-01-12T07:29:27Z karlosz quit (Remote host closed the connection) 2021-01-12T07:32:06Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-12T07:32:24Z matryoshka joined #lisp 2021-01-12T07:39:15Z makomo joined #lisp 2021-01-12T07:40:04Z iskander quit (Ping timeout: 246 seconds) 2021-01-12T07:40:41Z iskander joined #lisp 2021-01-12T07:46:48Z thinkpad quit (Read error: No route to host) 2021-01-12T07:47:58Z iskander quit (Ping timeout: 256 seconds) 2021-01-12T07:48:17Z iskander joined #lisp 2021-01-12T07:48:45Z flazh joined #lisp 2021-01-12T07:50:06Z ralt joined #lisp 2021-01-12T07:50:31Z thinkpad joined #lisp 2021-01-12T07:55:53Z Cymew joined #lisp 2021-01-12T08:06:40Z orivej quit (Ping timeout: 246 seconds) 2021-01-12T08:08:57Z thinkpad quit (Quit: lawl) 2021-01-12T08:15:46Z thinkpad joined #lisp 2021-01-12T08:15:52Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-12T08:21:04Z gaqwas joined #lisp 2021-01-12T08:21:04Z gaqwas quit (Changing host) 2021-01-12T08:21:04Z gaqwas joined #lisp 2021-01-12T08:22:00Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-12T08:22:37Z rumbler31 joined #lisp 2021-01-12T08:24:10Z thinkpad quit (Ping timeout: 246 seconds) 2021-01-12T08:24:22Z gaqwas quit (Remote host closed the connection) 2021-01-12T08:25:15Z thinkpad joined #lisp 2021-01-12T08:27:46Z liberliver joined #lisp 2021-01-12T08:28:08Z iskander- joined #lisp 2021-01-12T08:29:16Z iskander quit (Ping timeout: 256 seconds) 2021-01-12T08:32:03Z orivej joined #lisp 2021-01-12T08:33:29Z heisig joined #lisp 2021-01-12T08:33:47Z saganman joined #lisp 2021-01-12T08:40:19Z attila_lendvai joined #lisp 2021-01-12T08:40:19Z attila_lendvai quit (Changing host) 2021-01-12T08:40:19Z attila_lendvai joined #lisp 2021-01-12T08:50:29Z rgherdt joined #lisp 2021-01-12T08:51:28Z iskander- quit (Ping timeout: 246 seconds) 2021-01-12T08:51:52Z iskander joined #lisp 2021-01-12T08:53:43Z ljavorsk joined #lisp 2021-01-12T08:55:55Z attila_lendvai quit (Ping timeout: 265 seconds) 2021-01-12T08:56:31Z shka_: how quiet 2021-01-12T09:03:27Z varjag joined #lisp 2021-01-12T09:04:15Z anticrisis quit (Read error: Connection reset by peer) 2021-01-12T09:05:03Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-12T09:11:10Z pankajsg joined #lisp 2021-01-12T09:12:36Z beach: OK, so here is some food for thought to break the silence... How hard would it be to create a Linux/BSD/whatever "desktop" in Common Lisp? 2021-01-12T09:12:37Z beach: That would involve the window manager (we have two of those I think), a workspace manager, and a bunch of little gadgets like the volume control and stuff like that. And could it be done incrementally, so that one could gradually replace existing gadgets? 2021-01-12T09:13:35Z beach: I am asking because I am tired of the existing "desktops" and I don't see myself improving them, given the language used. 2021-01-12T09:14:28Z beach: Mezzano must have some of that stuff already. How portable is it? 2021-01-12T09:15:00Z pve joined #lisp 2021-01-12T09:15:08Z frodef: Does Mezzano do X11? 2021-01-12T09:15:31Z beach: Good question. I don't know. 2021-01-12T09:16:05Z beach: But either way, the display server would have to be isolated from the rest so that it could be easily replaced. 2021-01-12T09:16:19Z frodef: I just submitted a bug report for CL-WHO, is Edi Weiz active these days? 2021-01-12T09:17:37Z mfiano: No, infact he recommends people to use other libraries, as cl-who has a lot of bugs and he can't recommend using it (from an email discussion I had with him a few years ago), which is why his book, Common Lisp Recipes, recommends alternatives. 2021-01-12T09:19:29Z frodef: ok thanks. Is there consensus on what is a good alternative for simple html syntax? 2021-01-12T09:19:52Z mfiano: I personally recommend spinneret 2021-01-12T09:20:10Z mfiano: I don't know what others prefer. I don't think there is any consensus 2021-01-12T09:20:47Z moon-child: beach: stumpwm is written in cl 2021-01-12T09:21:18Z nicktick quit (Ping timeout: 260 seconds) 2021-01-12T09:22:43Z madage quit (Ping timeout: 240 seconds) 2021-01-12T09:23:43Z Aurora_v_kosmose quit (Ping timeout: 240 seconds) 2021-01-12T09:23:43Z gxt quit (Ping timeout: 240 seconds) 2021-01-12T09:23:43Z ech quit (Ping timeout: 240 seconds) 2021-01-12T09:25:00Z Cthulhux`: and it is rather good 2021-01-12T09:25:14Z ech joined #lisp 2021-01-12T09:25:15Z Cthulhux`: or you could try exwm which is written in emacs lisp. 2021-01-12T09:30:43Z beach: moon-child: yes, hence "we have two of those". The other one is called Eclipse. 2021-01-12T09:32:10Z frodef: is hunchentoot similarly abandoned? 2021-01-12T09:37:03Z cyraxjoe quit (Ping timeout: 260 seconds) 2021-01-12T09:38:27Z ralt: I think it has a new maintainer 2021-01-12T09:38:36Z ljavorsk quit (Ping timeout: 240 seconds) 2021-01-12T09:38:53Z ralt: beach: stumpwm is clearly the one that has a community. writing new modules is not too hard. 2021-01-12T09:39:12Z j0nd0e quit (Ping timeout: 256 seconds) 2021-01-12T09:39:28Z ralt: see all the contrib modules there https://github.com/stumpwm/stumpwm-contrib/ 2021-01-12T09:40:26Z beach: Thanks. I don't see the volume control as a contributed module of the window manager, though. Am I wrong? 2021-01-12T09:40:44Z ralt: there is none that I'm aware of for volume control, that is correct 2021-01-12T09:40:48Z beach: Also, is stumpwm still a tiling window manager? 2021-01-12T09:41:25Z beach: ralt: No I meant, is the window manager the right place for such a module? I wouldn't think so. 2021-01-12T09:41:45Z ralt: ah 2021-01-12T09:41:47Z beach: But maybe stumpwm is more than a window manager. 2021-01-12T09:41:49Z mrcom_ quit (Read error: Connection reset by peer) 2021-01-12T09:41:53Z ralt: I don't necessarily see stumpwm as a window manager 2021-01-12T09:42:04Z ralt: just "an X11 application that can manage windows, among others" 2021-01-12T09:42:04Z beach: I see. 2021-01-12T09:42:26Z ralt: it would be the "lisp machine", so to speak 2021-01-12T09:42:38Z beach: Yes, I see. 2021-01-12T09:44:38Z ralt: an example I like is pinentry support: https://github.com/stumpwm/stumpwm-contrib/tree/master/util/pinentry 2021-01-12T09:45:44Z ralt: it starts a server in a thread, and whenever gpg-agent or ssh-agent is trying to grab a key, it hits that server, which draws a new x11 window to ask for your password, and replies to gpg/ssh-agent 2021-01-12T09:47:43Z ech quit (Ping timeout: 240 seconds) 2021-01-12T09:47:44Z beach: I guess I should have a closer look at stumpwm. 2021-01-12T09:48:06Z frodef: beach: It does look very interesting, and pretty much what you originally suggested? 2021-01-12T09:48:35Z beach: That would be great, if so. 2021-01-12T09:49:09Z pranavats: beach: There's also EXWM which allows one to manage X windows using Emacs, in case you are interested in extending "desktop" using Elisp. 2021-01-12T09:49:43Z beach: Thanks, but no, not really. I would like to see it in Common Lisp. 2021-01-12T09:50:01Z VincentVega joined #lisp 2021-01-12T09:52:35Z beach: So if everything is done with the keyboard, how do I get applications like the one that lets me slide little pictures of my monitors to determine their relative position? I think I am saying that I am not sure that all mouse-based applications should be banned. 2021-01-12T10:00:31Z frodef: Spinner apparently won't do the syntax ((:sometag :someattr value) ), only (:sometag :someattr value ), which means source code formatting/indenting is not great at all... 2021-01-12T10:01:18Z frodef: ...any tips/experiences with this? Is there some slime integration etc? 2021-01-12T10:01:35Z frodef: s/spinner/spinneret/ 2021-01-12T10:02:42Z igemnace quit (Ping timeout: 260 seconds) 2021-01-12T10:06:49Z Lord_of_Life quit (Excess Flood) 2021-01-12T10:07:03Z Nilby joined #lisp 2021-01-12T10:07:41Z Lord_of_Life joined #lisp 2021-01-12T10:08:07Z nmg left #lisp 2021-01-12T10:16:21Z ljavorsk joined #lisp 2021-01-12T10:16:35Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-12T10:17:08Z larme quit (Quit: WeeChat 2.3) 2021-01-12T10:19:01Z larme joined #lisp 2021-01-12T10:27:12Z VincentVega: Hi, all! Is there a way define a setf which would work like this https://pastebin.com/bB8kHwSu ? I was thinking of defining a slot named approximate-x but that seems hackish since I don't really need an extra slot, just the setf capability. 2021-01-12T10:28:19Z phoe: VincentVega: new-value goes first 2021-01-12T10:28:34Z phoe: it'll work afterwards 2021-01-12T10:28:38Z VincentVega: oh me 2021-01-12T10:28:50Z VincentVega: thanks, man 2021-01-12T10:29:15Z igemnace joined #lisp 2021-01-12T10:31:47Z flip214: Is there an easier way than my own DEFCLASS* so that the accessors by default modify an object referenced by a special variable? Like with HUNCHENTOOT:HEADERS-IN* and similar. 2021-01-12T10:33:12Z beach: What makes them accessors if they don't modify the class instance? 2021-01-12T10:34:55Z shka_: beach: i was thinking about this myself 2021-01-12T10:35:05Z shka_: i mean, DE in lisp 2021-01-12T10:35:07Z flip214: they read and write _a_ class instance still, just a "default" instance if none is given 2021-01-12T10:35:33Z beach: shka_: Apparently, it exists. 2021-01-12T10:35:33Z fourier joined #lisp 2021-01-12T10:35:34Z flip214: ie. (defmethod slot-a (&optional (obj *default-obj*)) ...) 2021-01-12T10:35:48Z shka_: i wonder though, would it be possible to run every application in the same lisp process? 2021-01-12T10:35:55Z phoe: flip214: (defmethod (setf foo) (new-value &optional (*instance* *instance*)) ...) 2021-01-12T10:35:57Z phoe: some tricks like this 2021-01-12T10:35:59Z beach: flip214: That's not the signature of a slot accessor. 2021-01-12T10:36:12Z phoe: (ab)using the fact that method parameters can bind special variables 2021-01-12T10:36:17Z shka_: because if yes, CLIM presentation types would be quite amazing 2021-01-12T10:36:17Z beach: flip214: Just write a method as phoe suggests. 2021-01-12T10:37:06Z flip214: https://github.com/edicl/hunchentoot/blob/d684a9002665ca91477e98a5c777ead202c14306/request.lisp#L399 2021-01-12T10:37:08Z beach: shka_: That would be desirable, if not mandatory. 2021-01-12T10:37:45Z shka_: Lisp Machine User Space On Linux 2021-01-12T10:37:54Z shka_: or rather 2021-01-12T10:37:55Z flip214: beach: phoe: I only showed the reader method, yeah. 2021-01-12T10:38:00Z shka_: Lisp Machine "User Space" On Linux 2021-01-12T10:39:29Z rogersm joined #lisp 2021-01-12T10:59:22Z TMA quit (Ping timeout: 272 seconds) 2021-01-12T11:02:44Z devon: Any thoughts on finding what clobbers a CCL global variable? 2021-01-12T11:08:34Z igemnace quit (Quit: WeeChat 3.0) 2021-01-12T11:08:59Z imode quit (Quit: Someone's takin' the train to sleepytime junction.. Someone's so very tired he can barely function..) 2021-01-12T11:09:13Z mathrick quit (Ping timeout: 264 seconds) 2021-01-12T11:09:32Z flip214: devon: can you make it a symbol-macro that expands to a SETF clause that you can trace or just define to an (ERROR ...) clause? 2021-01-12T11:09:47Z flip214: or are there read requests mixed in as well? 2021-01-12T11:10:14Z flip214: perhaps get the address and let gdb set a write watchpoint? 2021-01-12T11:10:18Z devon: flip214: Tried that, not allowed to redefine a procaimed special. 2021-01-12T11:11:16Z devon: Maybe manually clear bit 4 in the symbol structure… 2021-01-12T11:14:24Z mathrick joined #lisp 2021-01-12T11:16:55Z flip214: well, gdb or whatever else you have is still an option... 2021-01-12T11:18:33Z orivej quit (Ping timeout: 260 seconds) 2021-01-12T11:18:34Z mrios22 joined #lisp 2021-01-12T11:19:46Z ech joined #lisp 2021-01-12T11:20:01Z xanderle_ joined #lisp 2021-01-12T11:20:53Z ech quit (Remote host closed the connection) 2021-01-12T11:21:53Z xanderle quit (Ping timeout: 265 seconds) 2021-01-12T11:22:09Z attila_lendvai joined #lisp 2021-01-12T11:22:09Z attila_lendvai quit (Changing host) 2021-01-12T11:22:09Z attila_lendvai joined #lisp 2021-01-12T11:22:44Z jackdaniel: shka_: something like this? https://files.mastodon.social/media_attachments/files/105/340/120/234/953/787/original/5754ea8397d70ba2.mp4 2021-01-12T11:23:18Z jackdaniel: n.b there is "clim window manager", it is called doors. I haven't used it myself though 2021-01-12T11:23:28Z jackdaniel: https://github.com/admich/Doors 2021-01-12T11:24:00Z jackdaniel: there is a warning, that it is still a sketch, but I saw a video and it seems to work 2021-01-12T11:29:54Z ech joined #lisp 2021-01-12T11:32:37Z attila_lendvai quit (Ping timeout: 264 seconds) 2021-01-12T11:42:06Z frgo quit (Remote host closed the connection) 2021-01-12T11:42:35Z frgo joined #lisp 2021-01-12T11:42:37Z pankajsg quit (Ping timeout: 246 seconds) 2021-01-12T11:46:55Z mrcom_ joined #lisp 2021-01-12T11:49:43Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-12T11:55:45Z [d]_ joined #lisp 2021-01-12T11:55:54Z surabax joined #lisp 2021-01-12T11:58:59Z Xach: fiddlerwoaroof: that has never been a goal, or possible, since the beginning. 2021-01-12T12:01:09Z liberliver quit (Quit: liberliver) 2021-01-12T12:01:16Z wal joined #lisp 2021-01-12T12:02:28Z wal left #lisp 2021-01-12T12:02:36Z frgo_ joined #lisp 2021-01-12T12:05:26Z frgo quit (Ping timeout: 264 seconds) 2021-01-12T12:05:57Z [d]_ quit (Remote host closed the connection) 2021-01-12T12:06:09Z [d]_ joined #lisp 2021-01-12T12:12:05Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-12T12:16:46Z vegansbane6 joined #lisp 2021-01-12T12:18:29Z varjag quit (Quit: ERC (IRC client for Emacs 26.3)) 2021-01-12T12:21:43Z liberliver joined #lisp 2021-01-12T12:22:37Z ggole joined #lisp 2021-01-12T12:24:28Z Stanley00 quit 2021-01-12T12:28:29Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-12T12:28:53Z matryoshka joined #lisp 2021-01-12T12:31:46Z matryoshka quit (Client Quit) 2021-01-12T12:32:03Z matryoshka joined #lisp 2021-01-12T12:33:39Z [d] quit (Remote host closed the connection) 2021-01-12T12:34:23Z v88m quit (Ping timeout: 265 seconds) 2021-01-12T12:35:02Z liberliver quit (Quit: liberliver) 2021-01-12T12:39:17Z ralt quit (Quit: Connection closed for inactivity) 2021-01-12T12:42:28Z dbotton joined #lisp 2021-01-12T12:43:42Z niceplaces quit (Ping timeout: 256 seconds) 2021-01-12T12:44:33Z ralt joined #lisp 2021-01-12T12:45:19Z ralt: beach: https://stumpwm.github.io/git/stumpwm-git_1.html#Floating-Group-Basics 2021-01-12T12:45:46Z Lord_Nightmare quit (Ping timeout: 272 seconds) 2021-01-12T12:46:32Z ralt: it's not banned, and drag&drop inside applications still works for sure 2021-01-12T12:47:43Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-12T12:51:18Z random-nick joined #lisp 2021-01-12T12:54:22Z attila_lendvai joined #lisp 2021-01-12T12:54:22Z attila_lendvai quit (Changing host) 2021-01-12T12:54:22Z attila_lendvai joined #lisp 2021-01-12T12:57:45Z bitmapper joined #lisp 2021-01-12T13:02:37Z varjagg joined #lisp 2021-01-12T13:06:58Z Bike joined #lisp 2021-01-12T13:11:41Z v88m joined #lisp 2021-01-12T13:12:05Z ljavorsk quit (Ping timeout: 240 seconds) 2021-01-12T13:12:06Z v88m quit (Read error: Connection reset by peer) 2021-01-12T13:14:17Z mbomba joined #lisp 2021-01-12T13:15:23Z v88m joined #lisp 2021-01-12T13:18:09Z cmatei quit (Remote host closed the connection) 2021-01-12T13:19:06Z liberliver joined #lisp 2021-01-12T13:19:32Z beach: ralt: Thanks! 2021-01-12T13:23:40Z totorowechat joined #lisp 2021-01-12T13:24:08Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-12T13:24:44Z rumbler31 joined #lisp 2021-01-12T13:25:17Z orivej joined #lisp 2021-01-12T13:27:13Z aartaka_d quit (Ping timeout: 264 seconds) 2021-01-12T13:29:22Z rumbler31_ quit (Ping timeout: 246 seconds) 2021-01-12T13:31:36Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-12T13:31:57Z matryoshka joined #lisp 2021-01-12T13:33:21Z Lord_Nightmare joined #lisp 2021-01-12T13:33:28Z totorowechat left #lisp 2021-01-12T13:41:55Z luni joined #lisp 2021-01-12T13:53:32Z cmatei joined #lisp 2021-01-12T13:54:49Z Cymew quit (Ping timeout: 264 seconds) 2021-01-12T13:56:10Z liberliver quit (Quit: liberliver) 2021-01-12T13:56:39Z Cymew joined #lisp 2021-01-12T14:02:29Z SpaceIgor2075 joined #lisp 2021-01-12T14:08:44Z nicktick joined #lisp 2021-01-12T14:09:35Z frodef quit (Remote host closed the connection) 2021-01-12T14:09:36Z gko_ joined #lisp 2021-01-12T14:11:29Z frodef joined #lisp 2021-01-12T14:12:03Z wsinatra joined #lisp 2021-01-12T14:13:26Z frodef quit (Remote host closed the connection) 2021-01-12T14:15:15Z frodef joined #lisp 2021-01-12T14:19:25Z jonatack quit (Ping timeout: 240 seconds) 2021-01-12T14:21:12Z jonatack joined #lisp 2021-01-12T14:24:37Z cmatei quit (Quit: Leaving) 2021-01-12T14:26:30Z jonatack quit (Ping timeout: 256 seconds) 2021-01-12T14:26:56Z jonatack joined #lisp 2021-01-12T14:40:32Z SpaceIgor2075 quit (Remote host closed the connection) 2021-01-12T14:40:58Z frodef` joined #lisp 2021-01-12T14:42:56Z frodef quit (Ping timeout: 256 seconds) 2021-01-12T14:51:07Z bjorkintosh quit (Quit: Leaving) 2021-01-12T14:57:45Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-12T14:58:02Z matryoshka joined #lisp 2021-01-12T15:01:03Z luckless quit (Ping timeout: 240 seconds) 2021-01-12T15:01:14Z charles` quit (Ping timeout: 264 seconds) 2021-01-12T15:03:42Z gaqwas joined #lisp 2021-01-12T15:03:42Z gaqwas quit (Changing host) 2021-01-12T15:03:42Z gaqwas joined #lisp 2021-01-12T15:16:13Z vhost- quit (Ping timeout: 268 seconds) 2021-01-12T15:16:54Z vhost- joined #lisp 2021-01-12T15:17:27Z liberliver joined #lisp 2021-01-12T15:18:01Z caret joined #lisp 2021-01-12T15:18:02Z skapata joined #lisp 2021-01-12T15:19:25Z mrios22 quit (Ping timeout: 264 seconds) 2021-01-12T15:26:33Z kaftejiman joined #lisp 2021-01-12T15:32:18Z karlosz joined #lisp 2021-01-12T15:37:50Z sjl joined #lisp 2021-01-12T15:38:06Z galex-713 joined #lisp 2021-01-12T15:41:29Z rumbler31_ joined #lisp 2021-01-12T15:51:58Z andreyorst` quit (Quit: andreyorst`) 2021-01-12T15:54:04Z jdormit[m] joined #lisp 2021-01-12T15:55:38Z luni quit (Quit: Connection closed) 2021-01-12T15:58:52Z attila_lendvai quit (Ping timeout: 256 seconds) 2021-01-12T16:00:42Z karlosz quit (Remote host closed the connection) 2021-01-12T16:03:45Z waleee-cl joined #lisp 2021-01-12T16:05:25Z karlosz joined #lisp 2021-01-12T16:08:07Z Misha_B left #lisp 2021-01-12T16:11:24Z andreyorst joined #lisp 2021-01-12T16:13:25Z thinkpad quit (Ping timeout: 264 seconds) 2021-01-12T16:15:12Z thinkpad joined #lisp 2021-01-12T16:17:46Z VincentVega quit (Quit: Connection closed) 2021-01-12T16:20:25Z yonkunas joined #lisp 2021-01-12T16:21:24Z _jrjsmrtn joined #lisp 2021-01-12T16:21:44Z karlosz quit (Quit: karlosz) 2021-01-12T16:22:20Z karlosz joined #lisp 2021-01-12T16:23:19Z __jrjsmrtn__ quit (Ping timeout: 246 seconds) 2021-01-12T16:32:01Z zmagii: Can I run Lisp code line for line in Emacs? 2021-01-12T16:32:23Z beach: zmagii: What do you mean by "line for line"? 2021-01-12T16:32:43Z pranavats: You can execute expressions individually in a REPL. 2021-01-12T16:32:44Z beach: You can have a REPL using SLIME and you can type an expression at a time. 2021-01-12T16:34:14Z shka_: line in the context of lisp does not mean much anyway 2021-01-12T16:34:30Z beach: Hence my question. 2021-01-12T16:35:24Z shka_: http://www.neil.dantam.name/extra/slime-refcard.pdf 2021-01-12T16:35:38Z shka_: take a look at the evaluation section 2021-01-12T16:35:44Z Steeve joined #lisp 2021-01-12T16:36:41Z VincentVega joined #lisp 2021-01-12T16:37:50Z hiroaki joined #lisp 2021-01-12T16:40:13Z liberliver quit (Quit: liberliver) 2021-01-12T16:40:56Z gko_ quit (Ping timeout: 240 seconds) 2021-01-12T16:41:02Z mmmattyx joined #lisp 2021-01-12T16:41:12Z charles` joined #lisp 2021-01-12T16:42:35Z PuercoPop joined #lisp 2021-01-12T16:43:03Z zmagii: beach: I have file.lisp opened in Emacs, it shows SLIME in the status bar. How can I run the code? 2021-01-12T16:43:48Z beach: Did you type M-x slime in Emacs before opening the file? 2021-01-12T16:44:45Z zmagii: beach: Oh, I see, this now opens SLIME in a terminal buffer. 2021-01-12T16:44:55Z beach: Sort of. 2021-01-12T16:45:07Z beach: It's the SLIME REPL, not a terminal. 2021-01-12T16:45:14Z beach: There, you can type expressions. 2021-01-12T16:45:21Z beach: And they will be evaluated. 2021-01-12T16:45:44Z zmagii: And C-c C-c can compile blocks, it seems? 2021-01-12T16:45:46Z beach: So you can do (load "file.lisp") and then evaluate calls to functions defined in the file. 2021-01-12T16:46:03Z beach: Yes you can do that. It compiles a top-level form. 2021-01-12T16:46:24Z beach: A "block" is a term in Common Lisp, and that's not what it is compiling. 2021-01-12T16:46:54Z aartaka joined #lisp 2021-01-12T16:47:14Z karlosz quit (Read error: Connection reset by peer) 2021-01-12T16:47:22Z karlosz joined #lisp 2021-01-12T16:48:21Z dbotton joined #lisp 2021-01-12T16:48:25Z aartaka_d joined #lisp 2021-01-12T16:50:21Z ebrasca joined #lisp 2021-01-12T16:51:38Z aartaka quit (Ping timeout: 260 seconds) 2021-01-12T16:52:25Z aartaka_d quit (Ping timeout: 240 seconds) 2021-01-12T16:52:37Z aartaka joined #lisp 2021-01-12T16:55:04Z abhixec_ quit (Quit: leaving) 2021-01-12T16:57:20Z zmagii: OK, so a top-level form is compiled? 2021-01-12T16:59:03Z mindCrime joined #lisp 2021-01-12T16:59:36Z hnOsmium0001 joined #lisp 2021-01-12T17:00:41Z karlosz_ joined #lisp 2021-01-12T17:00:43Z karlosz quit (Read error: Connection reset by peer) 2021-01-12T17:00:43Z karlosz_ quit (Remote host closed the connection) 2021-01-12T17:00:55Z karlosz joined #lisp 2021-01-12T17:02:24Z dbotton: Is it valid in a let* to rebind same symbol multiple times, ie (let* ((a 5) (a 4))) ?/ 2021-01-12T17:02:28Z v88m quit (Read error: Connection reset by peer) 2021-01-12T17:02:44Z v88m joined #lisp 2021-01-12T17:03:47Z pranavats: a will be bound to value 4 in let* body in the above example. 2021-01-12T17:03:48Z v88m quit (Read error: Connection reset by peer) 2021-01-12T17:04:29Z v88m joined #lisp 2021-01-12T17:04:42Z pranavats: The previous binding of a with value 5 would be shadowed. 2021-01-12T17:05:45Z dbotton: So they persist till end of let* but are shadowed 2021-01-12T17:06:09Z pranavats: Yes 2021-01-12T17:06:18Z dbotton: So if I create a CLOS object then rebind the variable it will persist till end of scope 2021-01-12T17:06:21Z v88m quit (Read error: Connection reset by peer) 2021-01-12T17:06:25Z dbotton: Ok, perfect 2021-01-12T17:06:34Z v88m joined #lisp 2021-01-12T17:06:54Z dbotton: Meaning no GC till then 2021-01-12T17:07:55Z pranavats: A let* is equivalent to nested lambdas with variable names as an argument and applied to their values. 2021-01-12T17:08:49Z dbotton: Perfect, much appreciated 2021-01-12T17:08:58Z deselby joined #lisp 2021-01-12T17:09:09Z pranavats: The above form can be written as ((lambda (a) ((lambda (a) ...) 4)) 5) 2021-01-12T17:09:41Z deselby: OpusModus Convention, second day streaming now! https://www.youtube.com/watch?v=2wqU8Ki622M 2021-01-12T17:10:20Z pranavats: dbotton: Where ... represents the body. So yes, a would still be bound to 5 in the outer lambda. 2021-01-12T17:10:46Z mbomba quit (Quit: WeeChat 3.0) 2021-01-12T17:12:11Z dbotton: Thank you for the illustration even more clear 2021-01-12T17:12:27Z luckless joined #lisp 2021-01-12T17:13:37Z jeosol quit (Ping timeout: 248 seconds) 2021-01-12T17:13:46Z gxt joined #lisp 2021-01-12T17:15:01Z Aurora_v_kosmose joined #lisp 2021-01-12T17:15:05Z madage joined #lisp 2021-01-12T17:15:52Z luckless quit (Remote host closed the connection) 2021-01-12T17:18:03Z luckless joined #lisp 2021-01-12T17:18:03Z amb007 quit (Read error: Connection reset by peer) 2021-01-12T17:18:06Z nwoob joined #lisp 2021-01-12T17:18:41Z nwoob: what package to use for syntax highlighting in *.lisp files? 2021-01-12T17:19:10Z mfiano: lisp-mode 2021-01-12T17:19:14Z amb007 joined #lisp 2021-01-12T17:21:08Z beach: zmagii: Everything is typically compiled by default. 2021-01-12T17:22:07Z beach: dbotton: That's not clear. If the first binding is never used, the compiler can remove it, and then the GC can reclaim the object. 2021-01-12T17:23:01Z beach: dbotton: Plus, the term "CLOS object" is meaningless. 2021-01-12T17:23:25Z nwoob: mfiano: my code looks like this https://ibb.co/f9hsMn6 2021-01-12T17:23:42Z nwoob: there must be better syntax highlighting than this 2021-01-12T17:24:11Z beach: What editor are you using? 2021-01-12T17:24:16Z nwoob: emacs 2021-01-12T17:24:17Z mfiano: Then load SLIME and revert-buffer 2021-01-12T17:25:02Z pranavats: dbotton: Then maybe it's preferable to just use nested let forms and make sure to use the shadowed binding in the outer let. 2021-01-12T17:25:20Z nwoob: beach: emacs 2021-01-12T17:25:21Z dbotton: Ok, so won't rely on that behavior beach. Beach what is better way to say that? 2021-01-12T17:25:35Z nwoob: mfiano: slime is loaded 2021-01-12T17:25:50Z mfiano: Then your theme needs some work 2021-01-12T17:26:31Z Alfr_: dbotton, why do you not want that thing to be collected in the first place? It's quite an unusual ask, if you ask me. 2021-01-12T17:26:45Z dbotton: Here is code snip - https://github.com/rabbibotton/clog/blob/main/tutorial/09-tutorial.lisp 2021-01-12T17:27:11Z nwoob: mfiano: do you use theme? 2021-01-12T17:27:15Z dbotton: To not have tons of symbols in a let describing a GUI form 2021-01-12T17:28:41Z pranavats: dbotton: (let ((a 5)) a (let ((a 4)) ...)) 2021-01-12T17:33:12Z Alfr_: dbotton, your (create-form-element f1 :submit :value "OK") might get collected, like beach said. 2021-01-12T17:33:48Z cage_ joined #lisp 2021-01-12T17:35:36Z Bahman quit (Quit: Connection closed) 2021-01-12T17:35:46Z thinkpad quit (Ping timeout: 256 seconds) 2021-01-12T17:35:47Z dbotton: It is ok in this case if collected 2021-01-12T17:37:52Z thinkpad joined #lisp 2021-01-12T17:38:05Z dbotton: The actual Lisp side after creating the elements on the browser side are not needed. In fact unless I actually need to set a property or event or need request a property value the Lisp side no longer matters 2021-01-12T17:38:39Z nwoob: mfiano: I commented out loading of theme in .emacs and now without theme syntax highlighting loooks like this https://ibb.co/nsHt6SV 2021-01-12T17:38:51Z dbotton: But I'll document it all that in the tutorial before writing the next one. 2021-01-12T17:40:32Z Alfr_: dbotton, you may wish to have a look at LTK's with-widget macro. I think it deals with the same problem for using tcl/tk. 2021-01-12T17:41:09Z dbotton: Appreciated I'll take a look 2021-01-12T17:41:17Z gareppa joined #lisp 2021-01-12T17:42:56Z jeosol joined #lisp 2021-01-12T17:43:41Z beach: dbotton: Most people who say what you did mean "standard object" 2021-01-12T17:44:26Z dbotton: So I would say just object or should I say standard object? 2021-01-12T17:44:48Z a0 joined #lisp 2021-01-12T17:44:53Z beach: "object" means "any Lisp datum" as the Common Lisp HyperSpec explains. 2021-01-12T17:45:00Z lucasb joined #lisp 2021-01-12T17:45:15Z beach: "standard object" is what you typically get when you instantiate a class defined using DEFCLASS. 2021-01-12T17:45:32Z beach: dbotton: So 234 is an object. 2021-01-12T17:45:42Z beach: But not a standard object. 2021-01-12T17:45:50Z beach: clhs standard-object 2021-01-12T17:45:50Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_std_ob.htm 2021-01-12T17:48:46Z dbotton: Thanks 2021-01-12T17:49:32Z shka_: eh, we should simply call standard objects or instances 2021-01-12T17:49:34Z gareppa quit (Remote host closed the connection) 2021-01-12T17:50:00Z nitrix quit (Remote host closed the connection) 2021-01-12T17:50:07Z dbotton: Ok, updated my code to reflect this all, thanks. 2021-01-12T17:53:05Z nwoob: beach: which editor do you use? 2021-01-12T17:53:29Z a0 quit (Quit: Leaving) 2021-01-12T17:54:20Z nitrix joined #lisp 2021-01-12T17:54:51Z shka_: nwoob: 99% sure it is emacs 2021-01-12T17:55:00Z nwoob: shka_: what about you 2021-01-12T17:55:04Z shka_: emacs 2021-01-12T17:55:10Z shka_: almost everyone use emacs here 2021-01-12T17:55:33Z charles`: emacs 2021-01-12T17:55:33Z nwoob: could you please show me image of CL code in your emacs 2021-01-12T17:55:42Z nwoob: I want to know how does it looks 2021-01-12T17:55:50Z shka_: uh, it looks normal? 2021-01-12T17:55:53Z solideogloria[m]: Emacs 2021-01-12T17:56:02Z nwoob: like the synta highlighting 2021-01-12T17:56:05Z nwoob: syntax 2021-01-12T17:56:10Z jackdaniel: at the beginning there is (cl:in-package …) I bet :-) 2021-01-12T17:56:23Z shka_: jackdaniel: you win 2021-01-12T17:56:45Z shka_: nwoob: i don't use syntax highlighting 2021-01-12T17:56:50Z nwoob: my emacs syntax highlighting looks like this https://ibb.co/f9hsMn6 2021-01-12T17:56:59Z nwoob: I thought there might be better 2021-01-12T17:57:04Z shka_: perhaps 2021-01-12T17:57:05Z nwoob: coming from VScode 2021-01-12T17:57:27Z shka_: i don't know, i don't like syntax highlighting in general 2021-01-12T17:57:55Z nwoob: ok 2021-01-12T17:57:56Z shka_: but thing with CL (or any other lisp, really) is that there is barely a syntax to highlight 2021-01-12T17:58:09Z shka_: so... 2021-01-12T17:58:13Z charles`: rainbow delimiters (not default faces) greatly enhance syntax highlighting for lisp 2021-01-12T17:58:33Z shka_: ok, i do use rainbow delimiters as well, they are cool 2021-01-12T17:58:41Z nwoob: I mean predefined functions must be highlighted 2021-01-12T17:59:02Z nwoob: so that by one look i can know that this is CL fucntion 2021-01-12T17:59:04Z charles`: I've said it on reddit but I also highlight ' , # @ 2021-01-12T17:59:33Z shka_: nwoob: uhm, ok 2021-01-12T17:59:52Z nwoob: charles`: this one? https://github.com/Fanael/rainbow-delimiters 2021-01-12T18:00:11Z shka_: yes 2021-01-12T18:00:26Z shka_: i find those profoundly useful 2021-01-12T18:00:33Z charles`: the problem with highlighting builtin functions is the almost everything becomes highlighted. there is nothing to differentiate, builtin macros like loop, if, and let should be highlighted 2021-01-12T18:00:59Z shka_: yeah, 2021-01-12T18:01:29Z shka_: after years of programming i just accepted that I am getting information overload way quicker then i would like to admit 2021-01-12T18:02:01Z frodef` quit (Ping timeout: 264 seconds) 2021-01-12T18:02:56Z nwoob: this is my syntax highlighting of javascript in VScode https://ibb.co/BnrLtft 2021-01-12T18:03:10Z nwoob: I was thinking to get close to this in emacs for CL 2021-01-12T18:03:49Z shka_: oh, garmin 2021-01-12T18:04:01Z nwoob: :) 2021-01-12T18:04:19Z shka_: anyway, i really can't help you, sorry! 2021-01-12T18:04:45Z shka_: the only extravaganza i use is rainbow delimiters and prettify for lambda 2021-01-12T18:05:29Z nwoob: could you send me the link for prettify 2021-01-12T18:06:02Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-12T18:07:45Z thinkpad quit (Ping timeout: 240 seconds) 2021-01-12T18:08:35Z shka_: it is build into emacs itself 2021-01-12T18:08:57Z eden joined #lisp 2021-01-12T18:09:38Z shka_: https://aliquote.org/post/enliven-your-emacs/ 2021-01-12T18:09:48Z thinkpad joined #lisp 2021-01-12T18:10:00Z nwoob: thank you for your time and help 2021-01-12T18:10:03Z shka_: i mean, it is just eye candy 2021-01-12T18:10:22Z shka_: but saves few characters on the screen so i like it 2021-01-12T18:10:27Z nwoob: I understand 2021-01-12T18:10:45Z shka_: also, it is kind of silly that appeals to me :-) 2021-01-12T18:11:09Z nwoob: :D 2021-01-12T18:12:13Z nwoob: shka_: so if I want to look for documentation of a particular buitin function how do i do that inside emacs? 2021-01-12T18:12:52Z shka_: http://www.neil.dantam.name/extra/slime-refcard.pdf 2021-01-12T18:13:00Z shka_: here is the reference for you 2021-01-12T18:13:16Z nwoob: thank you so much 2021-01-12T18:13:23Z shka_: Documentation section, to be specific 2021-01-12T18:15:00Z nwoob: i am doing C-c C-f on defun in my *.lisp file and emacs says C-c C-f is undefined :( 2021-01-12T18:15:21Z shka_: hm, do you have slime installed and running? 2021-01-12T18:15:42Z shka_: also, you can just use inspector to see docstrings 2021-01-12T18:15:52Z shka_: which is also an option 2021-01-12T18:15:58Z Aurora_v_kosmose quit (Remote host closed the connection) 2021-01-12T18:15:59Z nwoob: yes, slime is installed and repl is running in another buffer 2021-01-12T18:16:04Z shka_: interesting 2021-01-12T18:16:15Z shka_: and you have slime-mode on? 2021-01-12T18:16:37Z Aurora_v_kosmose joined #lisp 2021-01-12T18:16:44Z scymtym: SLIME has C-c C-d h for looking up symbols in the specification. more generally, C-c C-d KEY looks up different things in the specification 2021-01-12T18:16:45Z nwoob: yes i do 2021-01-12T18:17:09Z shka_: hey, mcclim got an icon! 2021-01-12T18:17:11Z shka_: nice! 2021-01-12T18:17:51Z shka_: ok, time to go offline 2021-01-12T18:17:52Z scymtym: shka_: McCLIM got *support for icons*. your are probably just seeing the default one 2021-01-12T18:18:12Z shka_: aaaaah 2021-01-12T18:18:14Z shka_: makes sense 2021-01-12T18:18:30Z shka_: this is good 2021-01-12T18:19:06Z shka_: now i want to draw icon for clouseau 2021-01-12T18:19:18Z scymtym: shka_: i already did. hang on 2021-01-12T18:19:36Z nwoob: C-c C-d d works! 2021-01-12T18:19:42Z shka_: nwoob: awesome 2021-01-12T18:19:55Z nwoob: thanks shka_ and scymtym 2021-01-12T18:20:22Z shka_: nwoob: for the built in stuff, hyperspec is your friend 2021-01-12T18:20:22Z nwoob: i have so much emacs commands to remember 2021-01-12T18:20:44Z nwoob: yes, will do C-c C-d h for hyperspec 2021-01-12T18:20:46Z nwoob: its cool 2021-01-12T18:20:54Z nwoob: love it 2021-01-12T18:20:58Z shka_: i personally just use zeal 2021-01-12T18:21:12Z nwoob: what's zeal 2021-01-12T18:21:14Z shka_: i like to have all docs i may want in one place 2021-01-12T18:21:23Z scymtym: shka_: https://techfak.de/~jmoringe/clouseau-logo.png 2021-01-12T18:21:25Z shka_: documentation browser 2021-01-12T18:21:28Z scymtym is not an artist 2021-01-12T18:21:44Z shka_: hmmm, fedora 2021-01-12T18:21:46Z shka_: ok 2021-01-12T18:22:02Z shka_: i like the idea 2021-01-12T18:22:25Z scymtym: shka_: based on https://techfak.de/~jmoringe/presentation-clouseau/slides.html#/slide-slide%3Anames 2021-01-12T18:22:42Z scymtym: "based on" = "traced over" 2021-01-12T18:22:55Z shka_: heh, i see 2021-01-12T18:26:58Z charles`: nwoob to get that level of syntax highlighting requires just a little regex 2021-01-12T18:28:00Z charles`: it seems that basically you want all functions to be colored, and all non function symbols to be colored a different color 2021-01-12T18:28:54Z nwoob: yes charles` 2021-01-12T18:29:06Z devon quit (Remote host closed the connection) 2021-01-12T18:29:48Z charles`: do you know about add-font-lock-keywords emacs function? 2021-01-12T18:30:20Z nwoob: no i don't have knowledge about elisp 2021-01-12T18:32:40Z charles`: I believe that is what you are going to need. You will need regexes to identifiy all macro forms where you can define variable, let, destructuring bind, multiple value bind, loop and select variable names, then a regex to select function names, maybe also in flet and labels 2021-01-12T18:33:34Z eliteuwmyp joined #lisp 2021-01-12T18:33:42Z nwoob: I will search on this function and try to write regex 2021-01-12T18:33:54Z nwoob: thanks for guiding 2021-01-12T18:33:57Z nwoob: :) 2021-01-12T18:35:04Z charles`: You can use M-x regex-builder to test the regex since emacs-lisp regex is not pcre 2021-01-12T18:35:27Z charles`: I might actually work on this since I'm slightly interested 2021-01-12T18:36:25Z eliteuwmyp quit (Read error: Connection reset by peer) 2021-01-12T18:36:37Z charles`: and it will help to use groups to select the variables 2021-01-12T18:41:18Z Cymew quit (Ping timeout: 260 seconds) 2021-01-12T18:43:59Z frodef` joined #lisp 2021-01-12T18:53:12Z judson_ joined #lisp 2021-01-12T18:54:25Z orivej quit (Ping timeout: 240 seconds) 2021-01-12T18:54:30Z frodef`` joined #lisp 2021-01-12T18:55:25Z frodef` quit (Ping timeout: 240 seconds) 2021-01-12T18:55:57Z matryoshka quit (Read error: Connection reset by peer) 2021-01-12T18:56:13Z matryoshka joined #lisp 2021-01-12T18:56:22Z gareppa joined #lisp 2021-01-12T18:56:41Z ebrasca quit (Read error: Connection reset by peer) 2021-01-12T18:57:35Z devon joined #lisp 2021-01-12T18:57:53Z matryoshka quit (Read error: Connection reset by peer) 2021-01-12T18:58:01Z matryoshka` joined #lisp 2021-01-12T18:59:29Z Lord_of_Life_ joined #lisp 2021-01-12T18:59:59Z gareppa quit (Remote host closed the connection) 2021-01-12T19:02:30Z frodef``` joined #lisp 2021-01-12T19:02:34Z thinkpad quit (Ping timeout: 246 seconds) 2021-01-12T19:02:37Z Lord_of_Life quit (Ping timeout: 264 seconds) 2021-01-12T19:02:41Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-12T19:03:43Z luckless quit (Ping timeout: 240 seconds) 2021-01-12T19:03:48Z VincentVega quit (Quit: Connection closed) 2021-01-12T19:03:49Z frodef`` quit (Ping timeout: 264 seconds) 2021-01-12T19:04:31Z ggole quit (Quit: Leaving) 2021-01-12T19:05:23Z thinkpad joined #lisp 2021-01-12T19:06:01Z luckless joined #lisp 2021-01-12T19:07:03Z Aurora_v_kosmose quit (Ping timeout: 240 seconds) 2021-01-12T19:07:03Z eden quit (Ping timeout: 240 seconds) 2021-01-12T19:07:03Z ech quit (Ping timeout: 240 seconds) 2021-01-12T19:11:59Z eden joined #lisp 2021-01-12T19:12:01Z Aurora_v_kosmose joined #lisp 2021-01-12T19:12:40Z andreyorst quit (Ping timeout: 256 seconds) 2021-01-12T19:14:22Z jeosol quit (Quit: Connection closed) 2021-01-12T19:15:32Z ukari quit (Remote host closed the connection) 2021-01-12T19:15:49Z aorst is now known as andreyorst_ 2021-01-12T19:16:27Z ukari joined #lisp 2021-01-12T19:17:52Z jeosol joined #lisp 2021-01-12T19:18:09Z ech joined #lisp 2021-01-12T19:20:30Z l1x joined #lisp 2021-01-12T19:21:29Z sauvin quit (Read error: Connection reset by peer) 2021-01-12T19:21:38Z VincentVega joined #lisp 2021-01-12T19:24:37Z thinkpad quit (Ping timeout: 246 seconds) 2021-01-12T19:25:08Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-12T19:25:43Z rumbler31 joined #lisp 2021-01-12T19:26:26Z thinkpad joined #lisp 2021-01-12T19:29:39Z matryoshka` quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-12T19:29:57Z matryoshka joined #lisp 2021-01-12T19:31:07Z Cymew joined #lisp 2021-01-12T19:31:46Z rumbler31_ quit (Ping timeout: 256 seconds) 2021-01-12T19:35:37Z gutter quit (Ping timeout: 264 seconds) 2021-01-12T19:36:08Z Jesin quit (Quit: Leaving) 2021-01-12T19:36:58Z saganman quit (Quit: WeeChat 1.6) 2021-01-12T19:40:12Z Jesin joined #lisp 2021-01-12T19:41:37Z luna_is_here quit (Ping timeout: 264 seconds) 2021-01-12T19:45:22Z luna_is_here joined #lisp 2021-01-12T19:50:21Z thinkpad quit (Ping timeout: 265 seconds) 2021-01-12T19:51:27Z thinkpad joined #lisp 2021-01-12T19:53:04Z borodust quit (Remote host closed the connection) 2021-01-12T19:54:57Z nwoob left #lisp 2021-01-12T19:58:24Z devon quit (Ping timeout: 256 seconds) 2021-01-12T19:58:52Z rumbler31_ joined #lisp 2021-01-12T20:02:43Z rogersm quit (Quit: Leaving...) 2021-01-12T20:04:45Z devon joined #lisp 2021-01-12T20:05:19Z secretmyth joined #lisp 2021-01-12T20:16:57Z elimik31 joined #lisp 2021-01-12T20:17:36Z elimik31 quit (Read error: Connection reset by peer) 2021-01-12T20:23:15Z heisig quit (Quit: Leaving) 2021-01-12T20:23:39Z ebrasca joined #lisp 2021-01-12T20:30:31Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-12T20:31:09Z xificurC joined #lisp 2021-01-12T20:33:48Z xificurC: Reading the iterate docs I hit into this: "There is one crucial difference between using a the form and actually declaring the variable: explicit declarations are always placed in the generated code, but type information from a the form is not turned into an actual declaration unless you tell iterate to do so using iterate:declare-variables". What 2021-01-12T20:33:48Z xificurC: is then the actual difference of using `declare` and `the`? 2021-01-12T20:35:20Z judson_ joined #lisp 2021-01-12T20:35:58Z mindCrime joined #lisp 2021-01-12T20:36:04Z [d]_ quit (Remote host closed the connection) 2021-01-12T20:41:39Z luni joined #lisp 2021-01-12T20:42:45Z TMA joined #lisp 2021-01-12T20:43:14Z Alfr_: xificurC, (iter (for (the fixnum i) :below 7)) would not expand to something declaring i to be a fixnum, whereas (iter (for (the fixnum i) :below 7) (declare (iterate:declare-variables))) would. 2021-01-12T20:43:52Z VincentVega quit (Quit: Connection closed) 2021-01-12T20:43:54Z xificurC: Alfr_ what *does* `the` do then? 2021-01-12T20:44:23Z eden quit (Ping timeout: 240 seconds) 2021-01-12T20:44:34Z Alfr_: clhs the 2021-01-12T20:44:34Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_the.htm 2021-01-12T20:47:09Z Alfr_: xificurC, but in iterate's case the iterate macro walks its body forms and in some places treats the THEs specially, mainly providing appropriate initial values instead of nil and declaring the types. 2021-01-12T20:47:18Z narimiran quit (Ping timeout: 256 seconds) 2021-01-12T20:47:53Z xificurC: Alfr_ yes I read that but didn't completely grok it. Re-reading the fourth time it seems to suggest it is merely a type-check, but if the type doesn't match the consequences are undefined 2021-01-12T20:49:25Z shka_ quit (Ping timeout: 264 seconds) 2021-01-12T20:52:04Z Alfr_: xificurC, the special operator is more like a promise to the compiler that what form returns is of that type. I don't think there's a requirement to type check. And yes, it's ub when you break your promises. 2021-01-12T20:52:33Z aeth: xificurC: afaik, in general, THE counts as a type declaration of sorts and so should behave similarly to DECLARE. It will check, ignore, or assume the type. Only the last one is problematic. 2021-01-12T20:53:07Z aeth: In general, you should only see that last case with (safety 0) 2021-01-12T20:53:43Z aeth: (I mean, it's entirely UB, but those are the only three possibilities you'll see in practice) 2021-01-12T20:53:50Z xificurC: Alfr_ OK, if it's a promise to the compiler, how is that different from a declaration? Is there a runtime difference you can tell/show me? 2021-01-12T20:54:15Z xificurC: I'm trying to differentiate the two 2021-01-12T20:55:12Z aeth: ITER's THE appears to be different, perhaps just a concise way to declare? 2021-01-12T20:55:34Z Alfr_: xificurC, I don't think there is any. 2021-01-12T20:56:24Z aeth: Usually, you'd use THE in place of DECLARE if you don't want to have to name it as a variable first, e.g. (the fixnum 42) but the example of the (the fixnum i) is declaring a new binding rather than using the value of i. 2021-01-12T20:56:27Z Alfr_: aeth, and specifying the initial binding for the variable to be of the appropriate type. 2021-01-12T20:56:48Z aeth: Alfr_: yes, but that should be redundant with a DECLARE 2021-01-12T20:57:02Z xificurC: the docs say there's a *crucial* difference, which seems to suggest I'm missing something. Also, if there isn't any difference, why does `iterate:declare-variables` exist? 2021-01-12T20:57:22Z luna_is_here quit (Read error: Connection reset by peer) 2021-01-12T20:57:26Z Alfr_: aeth, iterate usually generate (let ((i nil)) ... (setf i -1) ...] . 2021-01-12T20:57:46Z aeth: the more I learn about iterate, the less I like it :-) 2021-01-12T20:57:50Z dbotton quit (Quit: Leaving) 2021-01-12T20:57:57Z luna_is_here joined #lisp 2021-01-12T20:58:09Z Alfr_: aeth, I mean that w/ initial binding. 2021-01-12T20:58:35Z aeth: I don't like how any advanced usage of LOOP is going to be indented poorly because it's not s-expression-based (even with the SLIME extensions... try to do a complicated nested conditional), but, wow, iterate makes mistakes that come up in #lisp all of the time 2021-01-12T20:58:58Z Alfr_: aeth, it also parses declare forms in its body, so it's not that bad. 2021-01-12T21:00:50Z xificurC: aeth what are those mistakes 2021-01-12T21:02:20Z xificurC: also, I'm still not sure why does `iterate:declare-variables` exist if you claim there's no difference to `the` and `declare` 2021-01-12T21:04:52Z Alfr_: xificurC, shorter hand I think and the THEs only take effect if declare-variables is declared. 2021-01-12T21:05:06Z Alfr_: short* 2021-01-12T21:12:17Z Cymew quit (Quit: Konversation terminated!) 2021-01-12T21:12:19Z [d] joined #lisp 2021-01-12T21:12:27Z borodust joined #lisp 2021-01-12T21:13:39Z aeth: xificurC: in general, it tries to be too smart, see: above 2021-01-12T21:14:07Z xificurC quit (Quit: Connection closed) 2021-01-12T21:17:10Z saturn2: THE only promises what the type will be at the moment a particular form is evaluated, DECLARE promises a variable will always have a particular type where the declaration is in scope 2021-01-12T21:23:16Z frodef``` quit (Ping timeout: 246 seconds) 2021-01-12T21:26:23Z wsinatra quit (Quit: WeeChat 3.0) 2021-01-12T21:27:56Z Krystof joined #lisp 2021-01-12T21:28:03Z surabax quit (Quit: Leaving) 2021-01-12T21:30:03Z orivej joined #lisp 2021-01-12T21:30:26Z mmmattyx quit (Quit: Connection closed for inactivity) 2021-01-12T21:33:11Z cage_ quit (Quit: Leaving) 2021-01-12T21:36:48Z mmmattyx joined #lisp 2021-01-12T21:39:23Z aartaka_d joined #lisp 2021-01-12T21:39:47Z l1x quit (Quit: Connection closed for inactivity) 2021-01-12T21:40:58Z frodef joined #lisp 2021-01-12T21:41:16Z aartaka quit (Ping timeout: 240 seconds) 2021-01-12T21:44:54Z aeth: saturn2: right, but you can kind of think of THE as the LAMBDA to DECLARE's DEFUN 2021-01-12T21:45:06Z aeth: sort of, because, yes, SETF kind of ruins that illusion 2021-01-12T21:48:01Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-12T21:52:45Z aartaka_d quit (Ping timeout: 240 seconds) 2021-01-12T21:53:00Z pillton joined #lisp 2021-01-12T21:54:34Z kaftejiman quit (Remote host closed the connection) 2021-01-12T22:00:36Z judson_ joined #lisp 2021-01-12T22:08:27Z akoana joined #lisp 2021-01-12T22:11:34Z pve quit (Quit: leaving) 2021-01-12T22:12:13Z PuercoPo1 joined #lisp 2021-01-12T22:12:38Z PuercoPop quit (Ping timeout: 256 seconds) 2021-01-12T22:16:56Z dbotton joined #lisp 2021-01-12T22:22:59Z caret quit (Quit: Leaving) 2021-01-12T22:25:34Z PuercoPo1 quit (Ping timeout: 246 seconds) 2021-01-12T22:27:47Z PuercoPo1 joined #lisp 2021-01-12T22:30:54Z anticrisis joined #lisp 2021-01-12T22:32:40Z also_uplime quit (Quit: quit) 2021-01-12T22:33:58Z PuercoPo1 quit (Ping timeout: 246 seconds) 2021-01-12T22:37:08Z Steeve quit (Quit: end) 2021-01-12T22:37:34Z Steeve joined #lisp 2021-01-12T22:37:44Z Steeve quit (Client Quit) 2021-01-12T22:41:24Z PuercoPo1 joined #lisp 2021-01-12T22:54:16Z nicktick quit (Ping timeout: 246 seconds) 2021-01-12T22:55:15Z nicktick joined #lisp 2021-01-12T22:56:44Z fiddlerwoaroof: Xach: I must have misremembered an old blogpost or something 2021-01-12T22:58:58Z fiddlerwoaroof: I vaguely remember someone talking about loading every system distributed with Quicklisp into a single image as a sanity check of sorts 2021-01-12T23:05:37Z amb007 quit (Read error: Connection reset by peer) 2021-01-12T23:06:04Z karlosz quit (Quit: karlosz) 2021-01-12T23:06:16Z karlosz joined #lisp 2021-01-12T23:06:38Z amb007 joined #lisp 2021-01-12T23:10:06Z nicktick quit (Ping timeout: 256 seconds) 2021-01-12T23:11:02Z nicktick joined #lisp 2021-01-12T23:13:42Z karlosz quit (Quit: karlosz) 2021-01-12T23:13:54Z karlosz joined #lisp 2021-01-12T23:14:37Z lotuseater quit (Remote host closed the connection) 2021-01-12T23:14:55Z lotuseater joined #lisp 2021-01-12T23:19:05Z frodef quit (Quit: ERC (IRC client for Emacs 26.3)) 2021-01-12T23:20:00Z frodef joined #lisp 2021-01-12T23:20:54Z PuercoPo1 is now known as PuercoPop 2021-01-12T23:23:42Z v88m quit (Read error: Connection reset by peer) 2021-01-12T23:23:58Z v88m joined #lisp 2021-01-12T23:25:30Z luni quit (Quit: Connection closed) 2021-01-12T23:26:01Z Blukunfando quit (Ping timeout: 264 seconds) 2021-01-12T23:27:34Z Xach: fiddlerwoaroof: many have tried. it is a fool's errand. not possible. 2021-01-12T23:30:16Z nicktick quit (Ping timeout: 265 seconds) 2021-01-12T23:31:18Z fiddlerwoaroof: Xach: makes sense, I'd be interested in a "stable" dist that only accepts pure lisp packages (no FFI) that can be loaded together 2021-01-12T23:32:20Z fiddlerwoaroof: I've occasionally tried to figure out how to host my own diet, for reasons, but never really seriously enough to have anything to show 2021-01-12T23:33:13Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-12T23:33:26Z Xach: fiddlerwoaroof: i had hoped that dists would be very common, with people hosting lispworks-only software, or other thematic dists, but a combination between a lack of interest and a lack of documentation and probably other factors has made it not happen yet 2021-01-12T23:33:43Z Xach: i think a pure-lisp dist would be quite interesting 2021-01-12T23:36:16Z iskander quit (Ping timeout: 246 seconds) 2021-01-12T23:41:09Z iskander joined #lisp 2021-01-12T23:41:37Z sjl quit (Ping timeout: 264 seconds) 2021-01-12T23:45:53Z charles`: I would think if you were a company writing internal libraries you would want to host your own dist for those. 2021-01-12T23:46:42Z igemnace joined #lisp 2021-01-12T23:46:52Z iskander- joined #lisp 2021-01-12T23:47:58Z aeth: fiddlerwoaroof: pure-lisp wouldn't be as interesting as zero-foreign-dependency 2021-01-12T23:48:13Z iskander quit (Ping timeout: 264 seconds) 2021-01-12T23:48:34Z aeth: fiddlerwoaroof: there is a distinction... outside of systems with X Windows (where CLX exists and can use the protocol), you can't do anything graphical without some degree of FFI 2021-01-12T23:49:01Z aeth: But if someone made a graphical toolkit on top of just the OSes themselves, then it would be useful. 2021-01-12T23:49:20Z Xach: aeth: what is the distinction between pure lisp and zero foreign dependency? 2021-01-12T23:49:39Z aeth: Xach: basically, OS and graphics drivers as the only dependencies 2021-01-12T23:49:45Z Xach: charles`: sometimes it's just easier to have a git repo for that 2021-01-12T23:50:14Z Xach: aeth: that's neither pure lisp nor zero foreign dependencies? 2021-01-12T23:51:12Z aeth: Xach: Sorry, I'm unclear, I mean zero distributed foreign dependencies. So if someone wants to just wrap the WinAPI, then that should be OK, to complement something like CLX, but OS-agnostic. 2021-01-12T23:51:51Z aeth: As opposed to something like cl-sdl2 where you have to have SDL2, a giant C dependency, at some point. 2021-01-12T23:52:51Z Xach: Oh. Well, I'm thinking of users with semi-exotic platforms, where binding to some "it's installed everywhere! (if you use linux/windows/macos)" is a failure 2021-01-12T23:53:14Z Xach: so pure lisp is a true advantage 2021-01-12T23:53:31Z aeth: Yes, but it also means no portable graphical apps, since most platforms don't have X 2021-01-12T23:53:50Z Xach: it doesn't mean anything of the sort 2021-01-12T23:54:04Z Xach: having a curated dist available does not prevent you from using more than one dist 2021-01-12T23:54:18Z gaqwas quit (Ping timeout: 256 seconds) 2021-01-12T23:54:30Z Xach: you are allowed to have multiple categories of things in use 2021-01-12T23:54:52Z mankaev quit (Ping timeout: 256 seconds) 2021-01-12T23:57:28Z mankaev joined #lisp 2021-01-12T23:59:51Z dbotton joined #lisp 2021-01-13T00:02:57Z pillton` joined #lisp 2021-01-13T00:06:02Z pillton quit (Ping timeout: 264 seconds) 2021-01-13T00:07:07Z rgherdt quit (Ping timeout: 272 seconds) 2021-01-13T00:14:36Z lucasb quit (Quit: Connection closed for inactivity) 2021-01-13T00:19:41Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-13T00:19:54Z Jesin quit (Remote host closed the connection) 2021-01-13T00:21:09Z Jesin joined #lisp 2021-01-13T00:24:36Z thinkpad quit (Ping timeout: 240 seconds) 2021-01-13T00:25:42Z gaqwas joined #lisp 2021-01-13T00:25:43Z gaqwas quit (Changing host) 2021-01-13T00:25:43Z gaqwas joined #lisp 2021-01-13T00:26:48Z thinkpad joined #lisp 2021-01-13T00:28:07Z matryoshka joined #lisp 2021-01-13T00:32:23Z nicktick joined #lisp 2021-01-13T00:32:35Z matryoshka quit (Read error: Connection reset by peer) 2021-01-13T00:32:43Z matryoshka` joined #lisp 2021-01-13T00:45:36Z Nilby quit (Read error: Connection reset by peer) 2021-01-13T00:47:21Z matryoshka` quit (Read error: Connection reset by peer) 2021-01-13T00:47:30Z matryoshka joined #lisp 2021-01-13T00:50:37Z Oladon joined #lisp 2021-01-13T00:52:48Z scymtym_ joined #lisp 2021-01-13T00:53:59Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T00:54:44Z scymtym quit (Ping timeout: 272 seconds) 2021-01-13T00:55:48Z gaqwas quit (Ping timeout: 260 seconds) 2021-01-13T00:55:49Z random-nick quit (Ping timeout: 260 seconds) 2021-01-13T00:56:21Z judson_ joined #lisp 2021-01-13T01:01:24Z jeosol quit (Quit: Connection closed) 2021-01-13T01:10:22Z zulu-inuoe quit (Read error: Connection reset by peer) 2021-01-13T01:10:25Z makomo quit (Ping timeout: 246 seconds) 2021-01-13T01:11:36Z remexre quit (Ping timeout: 240 seconds) 2021-01-13T01:12:13Z thinkpad quit (Ping timeout: 264 seconds) 2021-01-13T01:12:47Z remexre joined #lisp 2021-01-13T01:13:17Z thinkpad joined #lisp 2021-01-13T01:13:45Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T01:17:41Z Blukunfando joined #lisp 2021-01-13T01:21:35Z zaquest quit (Quit: Leaving) 2021-01-13T01:23:51Z pillton joined #lisp 2021-01-13T01:24:10Z Bike quit (Quit: Lost terminal) 2021-01-13T01:24:40Z zaquest joined #lisp 2021-01-13T01:25:13Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-13T01:25:47Z rumbler31 joined #lisp 2021-01-13T01:27:36Z pillton` quit (Ping timeout: 240 seconds) 2021-01-13T01:30:01Z rumbler31_ quit (Ping timeout: 246 seconds) 2021-01-13T01:34:05Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-13T01:34:44Z rumbler31 joined #lisp 2021-01-13T01:38:32Z imode joined #lisp 2021-01-13T01:40:26Z mmmattyx quit (Quit: Connection closed for inactivity) 2021-01-13T01:42:32Z judson_ joined #lisp 2021-01-13T01:47:43Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-13T01:50:13Z dbotton joined #lisp 2021-01-13T01:51:52Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T01:53:26Z kini quit (Ping timeout: 264 seconds) 2021-01-13T01:53:27Z krkini joined #lisp 2021-01-13T01:57:14Z rumbler31_ joined #lisp 2021-01-13T01:59:34Z mrcom_ quit (Read error: Connection reset by peer) 2021-01-13T02:00:19Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-13T02:00:54Z rumbler31 joined #lisp 2021-01-13T02:01:12Z mrcom joined #lisp 2021-01-13T02:05:28Z jeosol joined #lisp 2021-01-13T02:18:17Z Oladon quit (Quit: Leaving.) 2021-01-13T02:20:15Z Oladon joined #lisp 2021-01-13T02:21:23Z hhdave_ quit (Ping timeout: 272 seconds) 2021-01-13T02:22:50Z ome joined #lisp 2021-01-13T02:23:45Z judson_ joined #lisp 2021-01-13T02:27:35Z hhdave joined #lisp 2021-01-13T02:30:04Z mrcom quit (Ping timeout: 265 seconds) 2021-01-13T02:33:49Z hhdave quit (Ping timeout: 264 seconds) 2021-01-13T02:34:02Z akoana left #lisp 2021-01-13T02:38:53Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T02:39:17Z ralt quit (Quit: Connection closed for inactivity) 2021-01-13T02:40:37Z stoneglass joined #lisp 2021-01-13T02:42:10Z hhdave joined #lisp 2021-01-13T02:42:56Z nicktick quit (Ping timeout: 256 seconds) 2021-01-13T02:48:42Z mrcom joined #lisp 2021-01-13T02:49:27Z nicktick joined #lisp 2021-01-13T03:00:17Z scymtym_ quit (Remote host closed the connection) 2021-01-13T03:08:44Z mrcom quit (Ping timeout: 265 seconds) 2021-01-13T03:12:38Z X-Scale` joined #lisp 2021-01-13T03:12:47Z NorthStar` joined #lisp 2021-01-13T03:12:48Z X-Scale quit (Ping timeout: 272 seconds) 2021-01-13T03:14:02Z X-Scale` is now known as X-Scale 2021-01-13T03:16:09Z NorthStar` quit (Quit: HydraIRC -> http://www.hydrairc.com <- s0 d4Mn l33t |t'z 5c4rY!) 2021-01-13T03:16:50Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-13T03:19:12Z dilated_dinosaur quit (Ping timeout: 256 seconds) 2021-01-13T03:23:55Z dilated_dinosaur joined #lisp 2021-01-13T03:29:24Z thinkpad quit (Ping timeout: 256 seconds) 2021-01-13T03:30:28Z thinkpad joined #lisp 2021-01-13T03:32:57Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-13T03:33:41Z judson_ joined #lisp 2021-01-13T03:34:01Z galex-713 joined #lisp 2021-01-13T03:39:20Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-13T03:41:03Z madage quit (Ping timeout: 240 seconds) 2021-01-13T03:42:57Z galex-713 quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-01-13T03:44:06Z galex-713 joined #lisp 2021-01-13T03:46:45Z krkini quit (Remote host closed the connection) 2021-01-13T03:48:01Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-13T03:48:01Z kini joined #lisp 2021-01-13T04:03:20Z beach: Good morning everyone! 2021-01-13T04:03:30Z Alfr joined #lisp 2021-01-13T04:05:22Z Alfr_ quit (Ping timeout: 260 seconds) 2021-01-13T04:08:09Z anticrisis quit (Read error: Connection reset by peer) 2021-01-13T04:08:33Z stoneglass quit (Quit: stoneglass) 2021-01-13T04:12:42Z orivej quit (Ping timeout: 256 seconds) 2021-01-13T04:15:14Z madage joined #lisp 2021-01-13T04:24:56Z bacterio quit (Ping timeout: 240 seconds) 2021-01-13T04:28:30Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T04:29:18Z nydel quit (Ping timeout: 260 seconds) 2021-01-13T04:29:20Z judson_ joined #lisp 2021-01-13T04:30:13Z thinkpad quit (Ping timeout: 264 seconds) 2021-01-13T04:32:03Z thinkpad joined #lisp 2021-01-13T04:34:28Z Oladon quit (Quit: Leaving.) 2021-01-13T04:38:44Z edgar-rft quit (Quit: Leaving) 2021-01-13T04:39:00Z nydel joined #lisp 2021-01-13T04:40:17Z Oladon joined #lisp 2021-01-13T04:45:44Z mrcom joined #lisp 2021-01-13T04:47:54Z bacterio joined #lisp 2021-01-13T04:55:02Z nicktick quit (Ping timeout: 256 seconds) 2021-01-13T05:00:03Z nicktick joined #lisp 2021-01-13T05:02:36Z bacterio quit (Ping timeout: 240 seconds) 2021-01-13T05:03:05Z nydel quit (Ping timeout: 240 seconds) 2021-01-13T05:04:01Z Oladon quit (Read error: Connection reset by peer) 2021-01-13T05:05:54Z Oladon joined #lisp 2021-01-13T05:07:32Z saganman joined #lisp 2021-01-13T05:08:31Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T05:08:57Z nydel joined #lisp 2021-01-13T05:22:14Z totoro2021 joined #lisp 2021-01-13T05:22:16Z splittist: good morning beach 2021-01-13T05:22:24Z bacterio joined #lisp 2021-01-13T05:25:18Z erronius quit (Ping timeout: 260 seconds) 2021-01-13T05:25:46Z erronius joined #lisp 2021-01-13T05:29:02Z anticrisis joined #lisp 2021-01-13T05:40:22Z andreyorst joined #lisp 2021-01-13T05:47:04Z Nilby joined #lisp 2021-01-13T05:48:46Z judson_ joined #lisp 2021-01-13T05:52:10Z thinkpad quit (Ping timeout: 246 seconds) 2021-01-13T05:53:44Z clintm joined #lisp 2021-01-13T05:54:08Z thinkpad joined #lisp 2021-01-13T05:55:52Z karlosz quit (Quit: karlosz) 2021-01-13T06:03:50Z asarch joined #lisp 2021-01-13T06:03:59Z shynoob joined #lisp 2021-01-13T06:07:59Z kini quit (Remote host closed the connection) 2021-01-13T06:09:22Z kini joined #lisp 2021-01-13T06:18:52Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T06:21:13Z sauvin joined #lisp 2021-01-13T06:21:45Z pillton quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-13T06:28:30Z nicktick quit (Ping timeout: 272 seconds) 2021-01-13T06:32:11Z nicktick joined #lisp 2021-01-13T06:32:37Z thinkpad quit (Ping timeout: 264 seconds) 2021-01-13T06:33:40Z thinkpad joined #lisp 2021-01-13T06:34:14Z shynoob quit (Remote host closed the connection) 2021-01-13T06:34:27Z shynoob joined #lisp 2021-01-13T06:42:26Z judson_ joined #lisp 2021-01-13T06:44:52Z asarch quit (Quit: Leaving) 2021-01-13T06:45:46Z narimiran joined #lisp 2021-01-13T06:55:52Z v88m quit (Ping timeout: 246 seconds) 2021-01-13T07:01:39Z PuercoPop quit (Quit: WeeChat 2.8) 2021-01-13T07:06:05Z Nilby quit (Read error: Connection reset by peer) 2021-01-13T07:06:16Z gzj joined #lisp 2021-01-13T07:06:48Z aeth quit (Ping timeout: 260 seconds) 2021-01-13T07:07:30Z andreyorst` joined #lisp 2021-01-13T07:07:33Z andreyorst` quit (Remote host closed the connection) 2021-01-13T07:08:00Z andreyorst` joined #lisp 2021-01-13T07:08:48Z aeth joined #lisp 2021-01-13T07:10:29Z orivej joined #lisp 2021-01-13T07:11:02Z Cymew joined #lisp 2021-01-13T07:11:29Z zugzwang_ joined #lisp 2021-01-13T07:11:37Z andreyorst quit (Ping timeout: 264 seconds) 2021-01-13T07:13:07Z gzj quit (Remote host closed the connection) 2021-01-13T07:13:27Z gzj joined #lisp 2021-01-13T07:13:50Z midre quit (Ping timeout: 264 seconds) 2021-01-13T07:14:37Z shynoob quit (Ping timeout: 264 seconds) 2021-01-13T07:15:13Z Blukunfando quit (Ping timeout: 264 seconds) 2021-01-13T07:17:42Z shka_ joined #lisp 2021-01-13T07:20:56Z Blukunfando joined #lisp 2021-01-13T07:21:05Z gzj quit (Remote host closed the connection) 2021-01-13T07:21:26Z gzj joined #lisp 2021-01-13T07:21:49Z orivej quit (Ping timeout: 264 seconds) 2021-01-13T07:22:15Z orivej joined #lisp 2021-01-13T07:25:53Z jeosol quit (Ping timeout: 248 seconds) 2021-01-13T07:26:12Z aartaka joined #lisp 2021-01-13T07:29:16Z midre joined #lisp 2021-01-13T07:32:45Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-13T07:33:21Z ech quit (Remote host closed the connection) 2021-01-13T07:33:28Z rumbler31 joined #lisp 2021-01-13T07:33:44Z ech joined #lisp 2021-01-13T07:34:01Z bacterio quit (Ping timeout: 246 seconds) 2021-01-13T07:34:12Z zugzwang_ left #lisp 2021-01-13T07:39:39Z bacterio joined #lisp 2021-01-13T07:40:05Z gzj quit (Read error: Connection reset by peer) 2021-01-13T07:40:26Z gzj joined #lisp 2021-01-13T07:41:50Z ome quit (Quit: Connection closed for inactivity) 2021-01-13T07:41:55Z fiddlerwoaroof: Xach/aeth: yeah, my goal would be to include things like Alexandria that should reasonably be expected to be usable anywhere 2021-01-13T07:42:16Z rumbler31_ quit (Ping timeout: 240 seconds) 2021-01-13T07:42:59Z fiddlerwoaroof: quicklisp or ultralisp would be used for things like clim that require functionality beyond the standard 2021-01-13T07:45:16Z aeth: well, more clim backends (that don't currently exist?) than clim, since clim itself would be fine 2021-01-13T07:46:51Z fiddlerwoaroof: I guess so 2021-01-13T07:48:07Z gzj quit (Remote host closed the connection) 2021-01-13T07:48:28Z gzj joined #lisp 2021-01-13T07:49:29Z jeosol joined #lisp 2021-01-13T07:49:29Z amb007 quit (Read error: Connection reset by peer) 2021-01-13T07:50:43Z amb007 joined #lisp 2021-01-13T07:53:36Z frodef quit (Ping timeout: 240 seconds) 2021-01-13T07:55:07Z gzj quit (Remote host closed the connection) 2021-01-13T07:55:28Z gzj joined #lisp 2021-01-13T07:56:15Z gaqwas joined #lisp 2021-01-13T07:56:15Z gaqwas quit (Changing host) 2021-01-13T07:56:15Z gaqwas joined #lisp 2021-01-13T07:56:46Z lottaquestions_ quit (Remote host closed the connection) 2021-01-13T07:57:14Z lottaquestions_ joined #lisp 2021-01-13T08:02:12Z amb007 quit (Read error: Connection reset by peer) 2021-01-13T08:02:20Z amb007 joined #lisp 2021-01-13T08:04:11Z marusich quit (Read error: Connection reset by peer) 2021-01-13T08:08:47Z xificurC joined #lisp 2021-01-13T08:09:39Z frodef joined #lisp 2021-01-13T08:09:42Z rumbler31_ joined #lisp 2021-01-13T08:13:14Z mrcom quit (Ping timeout: 265 seconds) 2021-01-13T08:15:34Z jello_pudding quit (Ping timeout: 268 seconds) 2021-01-13T08:17:27Z rgherdt joined #lisp 2021-01-13T08:18:52Z liberliver joined #lisp 2021-01-13T08:19:36Z mrcom joined #lisp 2021-01-13T08:30:05Z thinkpad quit (Ping timeout: 240 seconds) 2021-01-13T08:31:19Z thinkpad joined #lisp 2021-01-13T08:37:34Z varjagg is now known as varjag 2021-01-13T08:41:14Z heisig joined #lisp 2021-01-13T08:42:39Z wxie joined #lisp 2021-01-13T08:43:49Z attila_lendvai joined #lisp 2021-01-13T08:45:00Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T08:47:43Z madage quit (Ping timeout: 240 seconds) 2021-01-13T08:48:12Z frodef quit (Ping timeout: 258 seconds) 2021-01-13T08:48:50Z skapata quit (Ping timeout: 246 seconds) 2021-01-13T08:50:45Z madage joined #lisp 2021-01-13T08:53:39Z skapata joined #lisp 2021-01-13T08:54:13Z [d] quit (Ping timeout: 264 seconds) 2021-01-13T08:54:14Z imode quit (Quit: Actual honest-to-goodness real sleep I swear to god for real this time.) 2021-01-13T08:54:57Z ljavorsk joined #lisp 2021-01-13T08:57:04Z dmc00 quit (Remote host closed the connection) 2021-01-13T08:57:17Z pve joined #lisp 2021-01-13T08:59:49Z SpaceIgor2075 joined #lisp 2021-01-13T09:02:45Z SpaceIgor2075 quit (Remote host closed the connection) 2021-01-13T09:03:49Z nicktick quit (Ping timeout: 264 seconds) 2021-01-13T09:04:34Z nopf joined #lisp 2021-01-13T09:05:57Z anticrisis quit (Read error: Connection reset by peer) 2021-01-13T09:09:13Z gaqwas quit (Remote host closed the connection) 2021-01-13T09:11:43Z andreyorst joined #lisp 2021-01-13T09:12:56Z ludston joined #lisp 2021-01-13T09:14:14Z ludston: Is there a quick and dirty way in CLOS to wrap a struct with another struct that proxies through all of the accessors on the wrapped struct? 2021-01-13T09:15:06Z jeosol: beach: I am reading your paper. The template is used is the suggested one for ELS. Do you have a link for the template handy. I think I have seen slightly different designs. 2021-01-13T09:17:01Z andreyorst quit (Ping timeout: 264 seconds) 2021-01-13T09:17:26Z voidlily quit (Ping timeout: 264 seconds) 2021-01-13T09:18:27Z beach: jeosol: I guess it must be on the ELS website. 2021-01-13T09:18:31Z SpaceIgor2075 joined #lisp 2021-01-13T09:18:40Z beach: Or, rather, the link to it. 2021-01-13T09:18:41Z jeosol: beach: thanks, I get it from there then. 2021-01-13T09:19:37Z beach: jeosol: I just copy my old papers and modify them. It is entirely possible that my template is out of date. 2021-01-13T09:19:39Z jeosol: I am taken by the comment in the abstract that presence of optional and/or keyword argument impacts function call performance 2021-01-13T09:20:08Z jeosol: oh ok. I recally having seen a different format. No worries, I'd pick one from the site and create a base template folder 2021-01-13T09:20:25Z beach: "taken by" in what way? 2021-01-13T09:20:50Z beach: Or you can pick up one of my papers. :) It is in SICL/Papers/... 2021-01-13T09:21:47Z beach: It's on the ELS site. 2021-01-13T09:22:09Z beach: Under "Submissions" 2021-01-13T09:22:44Z makomo joined #lisp 2021-01-13T09:22:51Z jeosol: by "taken by", I mean understand how bad design may reduce performance, and certain styles are better. I'd have to read everything to get the full gist 2021-01-13T09:23:06Z jeosol: for the paper, I was referring the the tex sources 2021-01-13T09:24:41Z beach: I don't know how much you know about the design of a typical Common Lisp system, but keyword parameter must typically be parsed by the callee for each call. The rules are complicated. For example, the same keyword argument may occur more than once, and it's the first one that counts. 2021-01-13T09:25:37Z beach: And if :ALLOW-OTHER-KEYS occurs somewhere in the argument list, then no error should be signaled for unrecognized keyword/argument pairs. 2021-01-13T09:25:43Z jeosol: No, I am not a compiler guy, at all, I am mostly application focused, i.e., using the language. I have only started getting deep in the internals as I try to improve performance and get better design 2021-01-13T09:25:50Z jeosol: so the paper will help in that regard 2021-01-13T09:26:02Z beach: I see. 2021-01-13T09:26:26Z beach: Well, as the paper says, compiler macros are often used to avoid this parsing in many cases. 2021-01-13T09:26:27Z jeosol: yes,  with the multiple keyword, the first one is the one that counts/is taken 2021-01-13T09:26:32Z voidlily joined #lisp 2021-01-13T09:26:36Z jeosol: I remember that 2021-01-13T09:26:53Z beach: So the callee must loop over all the arguments in order. 2021-01-13T09:26:53Z jeosol: yes, and also the :allow-other-keys 2021-01-13T09:27:11Z beach: So the arguments must probably be saved in order on the stack. 2021-01-13T09:27:22Z beach: ... the keyword arguments at least. 2021-01-13T09:27:28Z jeosol: I have used that to cheat when I pass in a large set of keywords to make-instance 2021-01-13T09:27:37Z beach: Whereas for ordinary arguments, registers can be used. 2021-01-13T09:27:42Z beach: Right. 2021-01-13T09:27:48Z jeosol: I think it's interesting to understand how one can lose performance 2021-01-13T09:28:03Z jeosol: find details that needs to be understand 2021-01-13T09:28:11Z beach: Keyword arguments are very flexible, but if you do it naively, then they are very slow. 2021-01-13T09:28:43Z beach: But the technique in the paper basically creates an automatic compiler macro for each call site. 2021-01-13T09:29:49Z jeosol: That's the part I need to probably improve. I have an object with many slots and in my first iteration, I had a constructor with more keywords that slots as I have to pass other arguments, process then, create objects that are then passed into make-instance. I could probably make things better 2021-01-13T09:30:25Z beach: I see. 2021-01-13T09:30:56Z mankaev quit 2021-01-13T09:31:03Z mankaev joined #lisp 2021-01-13T09:31:47Z ludston: jeosol: If you're gunning for efficient code, your constraint is more likely to be the garbage collector than function/method dispatch speed in my experience 2021-01-13T09:31:55Z beach: Also, in the naive case, the callee must check whether a certain argument was supplied at all, and if not, execute the initform for the corresponding parameter. That's another test which are expensive these days. With my technique, that test can often be skipped, because it is often clear from the call site whether it is given or not. Barring APPLY of course. 2021-01-13T09:32:12Z jeosol: ludston: thanks for that 2021-01-13T09:32:25Z seok joined #lisp 2021-01-13T09:32:31Z seok: hey guys! 2021-01-13T09:32:46Z beach: jeosol: I don't recall you being worried about generic dispatch though. 2021-01-13T09:32:51Z jeosol: I have a case for an optimization that is doing table-look for the function calls, and I have feel it could be faster. 2021-01-13T09:33:02Z beach: Hello seok. 2021-01-13T09:33:08Z seok: Hi beach! 2021-01-13T09:33:29Z frodef joined #lisp 2021-01-13T09:34:15Z jeosol: beach: I think the generic dispatch are okay. The most I have is dispatch on two classes (multiple dispatch cases). 2021-01-13T09:34:19Z ralt joined #lisp 2021-01-13T09:34:36Z jeosol: I would have to do a benchmarking at least for the table lookup case and see 2021-01-13T09:34:45Z ludston: jeosol: I recommend you don't worry about how fast it is until it's going to be (or is) a problem, and then use statistical profiling techniques to make sure you know exactly what the bottleneck is 2021-01-13T09:35:16Z jeosol: that's what I meant - latter part of your comment 2021-01-13T09:35:31Z beach: PCL generic dispatch is not that great, which is why some SBCL users avoid generic functions. I think that's a pity, because it's an implementation detail that may change. 2021-01-13T09:35:56Z jeosol: I am not too worried per se, because the practical application, calls to another application is the main bottle neck and can't be optimized 2021-01-13T09:36:37Z iskander joined #lisp 2021-01-13T09:36:40Z iskander- quit (Ping timeout: 256 seconds) 2021-01-13T09:36:48Z frodef: beach: on the other hand, an abstraction that is avoided because of its implementation, has a problem one way or the other. 2021-01-13T09:36:49Z jeosol: beach: really beach. My application is CLOS heavy. It runs well though, but I haven't compared to anything else. It was just easier to build the class hierarchies that way 2021-01-13T09:37:44Z beach: frodef: In this case, the only problem seems to be that implementations were conceived at a time when memory was as fast as register operations. 2021-01-13T09:38:15Z jeosol: it will be nice (perhaps in the future) to get some documentation of these type of design considerations and why some are better than others, e.g., like examples when adding to list 2021-01-13T09:38:31Z frodef: beach: that sounds to me like a (potentially) serious problem... 2021-01-13T09:38:54Z beach: frodef: I am not sure what you mean? Problem with the abstraction? 2021-01-13T09:39:36Z beach: jeosol: I think you are going to need SICL, once we have implemented all those techniques we came up with. :) 2021-01-13T09:39:45Z frodef: beach: yes, if the abstraction can only be implemented in ways that are (prohibitively) expensive. 2021-01-13T09:40:07Z beach: frodef: But I just told you that there are better ways. And they are documented. 2021-01-13T09:40:33Z frodef: beach: sorry, I didn't get that. (I just logged on, might have missed it.) 2021-01-13T09:40:35Z beach: frodef: In this case, the ONLY problem seems to be that IMPLEMENTATIONS were conceived at a time when memory was as fast as register operations. 2021-01-13T09:41:09Z jeosol: beach: that will be nice, and I'd have a clear benchmark - my application is heavy with number crunching and it seems these additions will/should show differences with base SBCL 2021-01-13T09:41:23Z beach: frodef: Which is why I implemented the technique that most people now call "fastgf". 2021-01-13T09:41:33Z ludston: frodef: I agree with beach, long-term it is not a problem that generic dispatch is inefficient in current implementations, and short-term, it is only a problem if you are CPU-constrained... Which you almost never are these days 2021-01-13T09:41:35Z frodef: beach: ok, I misunderstood. 2021-01-13T09:42:33Z beach: frodef: Did you see the paper I wrote about it? 2021-01-13T09:43:11Z beach: http://metamodular.com/SICL/generic-dispatch.pdf 2021-01-13T09:44:06Z beach: scymtym has an adaptation of it for SBCL, but it seems it will never make it to the SBCL code base. 2021-01-13T09:44:25Z frodef: beach: no, I was just going to ask. thanks for the link. Is that "fastgf"? 2021-01-13T09:44:53Z frodef: why not into SBCL? 2021-01-13T09:44:55Z beach: It's what the cool kids (Bike, drmeister, karlosz, etc.) call my technique from that paper. 2021-01-13T09:45:59Z [d] joined #lisp 2021-01-13T09:46:24Z beach: frodef: I don't know the details, and scymtym was a bit vague about it. But the technique depends somewhat on how SICL represents standard objects, so a fair amount of restructuring of SBCL would be needed to take full advantage of it. 2021-01-13T09:46:44Z frodef: right 2021-01-13T09:47:13Z beach: frodef: Boy, you have a lot to catch up with, having been away for so long. :) 2021-01-13T09:47:25Z frodef: :) 2021-01-13T09:47:52Z liberliver quit (Quit: liberliver) 2021-01-13T09:47:55Z frodef: in general, imho the "almost nothing is CPU-bound" attitude is fine for applications, not so much for the language/runtime. 2021-01-13T09:48:19Z beach: Words of wisdom it seems. 2021-01-13T09:48:46Z beach: Here is another thing you may want to catch up with: http://metamodular.com/SICL/path-replication.pdf 2021-01-13T09:49:14Z Codaraxis joined #lisp 2021-01-13T09:49:22Z ludston: If you inline dispatch, then add a new method implementation that is more specific to somewhere already inlined, you have to go back everywhere you inlined it and change it? 2021-01-13T09:50:06Z beach: Correct. Which is why generic functions are typically not inlined. 2021-01-13T09:50:16Z iskander quit (Ping timeout: 240 seconds) 2021-01-13T09:50:38Z beach: ludston: But with the technique in my (draft) paper, that is no problem. 2021-01-13T09:51:08Z mankaev quit (Ping timeout: 246 seconds) 2021-01-13T09:51:15Z iskander joined #lisp 2021-01-13T09:52:20Z mrios22 joined #lisp 2021-01-13T09:52:48Z ludston: beach: I'm guessing the sbcl 'call history' isn't up to scratch 2021-01-13T09:53:19Z beach: The call history is still shared by all callers, so that won't be enough. 2021-01-13T09:54:46Z beach: ludston: There is a similar technique (but much less efficient) used by CMUCL and SBCL for MAKE-INSTANCE in particular. The call site is replaced by a call to a new funcallable instance that works only for the particular argument list of that call site. Then when the callee changes, the funcallable instance function is updated accordingly. 2021-01-13T09:55:32Z beach: But that technique involves another function call, so there will still be indirections. 2021-01-13T09:55:46Z beach: And the call protocol must be respected. 2021-01-13T09:56:44Z ludston: beach: But that may or may not be a problem if your cpu's branch prediction is good 2021-01-13T09:58:32Z beach: The call itself may not be a big problem, and saving on generic dispatch will help. But by respecting the call protocol, I mean putting arguments in the agreed-upon places, loading the static environment, creating the callee stack frame, etc. All that adds up. 2021-01-13T10:02:39Z frodef: btw what is the expected cost of a memory access that is a first-level chache hit (e.g. second access to same object) compared to a register access? 2021-01-13T10:02:57Z beach: Let me check... 2021-01-13T10:03:38Z ludston: It's some absurd exponential difference IIRC 2021-01-13T10:04:01Z White_Flame: iirc 2-4 cycles? 2021-01-13T10:04:04Z frodef: ludston: really? I'd expect the difference to be small.. 2021-01-13T10:04:18Z beach: frodef: Core i7 Xeon blabla: L1 4 cycles, L2 10 cycles, L3 40-65 cycles. 2021-01-13T10:04:35Z White_Flame: but again, that latency is hidden by massive pipelining and out of order 2021-01-13T10:04:49Z ludston: Like the ratio between a cache miss and a cache hit is like the ratio between ram access and ssd access 2021-01-13T10:04:51Z frodef: still, much more than I expected. 2021-01-13T10:05:10Z iskander quit (Ping timeout: 256 seconds) 2021-01-13T10:05:29Z frodef: I imagined L1 cache was almost like a register. 2021-01-13T10:05:50Z iskander joined #lisp 2021-01-13T10:06:37Z moon-child: note newer cpus have memory renamers that will put very hot memory locations in registers 2021-01-13T10:07:05Z moon-child: https://www.agner.org/forum/viewtopic.php?t=41 relevant 2021-01-13T10:07:09Z HDurer quit (Remote host closed the connection) 2021-01-13T10:07:21Z frodef: moon-child: I seem to remember the stack works somewhat like that? 2021-01-13T10:08:10Z moon-child: stack will presumably generally be quite hot, but it's not limited to that; example there shows it indirecting rsi 2021-01-13T10:08:27Z ludston: New CPU's calculate a graph of the instructions that it is running next in order to run them in parallel. A branch misprediction means you have to throw that whole graph out and start again 2021-01-13T10:09:09Z ludston: Maybe not the whole graph. 2021-01-13T10:09:28Z mankaev joined #lisp 2021-01-13T10:09:31Z moon-child: yeah 2021-01-13T10:09:46Z moon-child: cpus usually speculate return addresses, with high probability--also looking at stack 2021-01-13T10:10:03Z moon-child: (though shared call and data stack is somewhat harmful for security since it enables rop) 2021-01-13T10:10:32Z ludston: I wonder how sbcl does in that regard? Probably really well given the benchmarks 2021-01-13T10:11:56Z frodef: (btw again it seems to me there's a difference between an application developer saying "branch prediction will fix that" etc, while a run-time must be careful to limit the (undue) pressure on such CPU resources.) 2021-01-13T10:12:37Z beach: frodef: I tend to agree with you. 2021-01-13T10:12:47Z gaqwas joined #lisp 2021-01-13T10:13:03Z ludston: frodef: I agree that it is worth optimising the language in any way possible 2021-01-13T10:13:31Z beach is working on it. 2021-01-13T10:14:14Z housel quit (Ping timeout: 246 seconds) 2021-01-13T10:14:26Z ludston: beach: Thanks :0 2021-01-13T10:15:40Z frodef can't seem to find the thumbs-up icon on this weird social media platform. 2021-01-13T10:16:07Z phoe: frodef: IRC does not have thumbs ups yet 2021-01-13T10:16:30Z beach: Some people disagree though. For example, stassats doesn't think that requiring two tests instead of one, for each loop over a list, is a problem. And he doesn't think registers are that much faster than the stack. 2021-01-13T10:16:45Z frodef: phoe: ..nor the irony icon ;) 2021-01-13T10:16:58Z phoe: :D 2021-01-13T10:17:17Z beach: But I think those problems are fun to work on, so I will continue doing so. 2021-01-13T10:18:15Z ludston: DAE notice that around Christmas every year, there is a surge of lisp related articles on all the programming news sites? 2021-01-13T10:18:25Z frodef: btw CPUs are becoming quite clever at optimizing... for C-type runtimes. It's fun/sad to think what the state of CPUs might have been if dynamic run-times weren't weeded out in the 80s. 2021-01-13T10:19:01Z ludston: frodef: Dynamic run-times are dominant currently 2021-01-13T10:19:15Z frodef: ludston: yes, but in a rather roundabout way. 2021-01-13T10:20:43Z White_Flame: there's still barely any hardware GC support (and afaik what is in there isn't even used in major languages like Java), and still no support for tagged words 2021-01-13T10:20:49Z ludston: frodef: In a direct, explicitly dynamic way: Javascript, Python and all the byte-code langs like C# and Java 2021-01-13T10:20:58Z HDurer joined #lisp 2021-01-13T10:23:01Z iskander quit (Ping timeout: 264 seconds) 2021-01-13T10:23:04Z iskander- joined #lisp 2021-01-13T10:23:05Z frodef: ludston: I might be outdated, but e.g. python is basically a huge interpreter written in C, no? 2021-01-13T10:26:53Z ludston: frodef: What language the interpreter is written in is not necessarily relevant to the assembler/bytecode it emits. Pypython used to be a python interpreter written in python, but I just searched for it and it doesn't look like it is anymore 2021-01-13T10:27:21Z surabax joined #lisp 2021-01-13T10:28:08Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-13T10:28:42Z iskander- quit (Read error: Connection reset by peer) 2021-01-13T10:29:45Z liberliver joined #lisp 2021-01-13T10:29:46Z frodef: ludston: is python typically ran as compiled machine code? Point is, iirc the "run-time" is basically a C program/state-machine driven by python text or bytecode. 2021-01-13T10:29:55Z iskander joined #lisp 2021-01-13T10:30:16Z ludston: You basically need c to bootstrap for any new CPU architecture these days regardless. i.e. step 1, someone writes a C compiler for the new architecture, step 2, compile common lisp interpreter written in C, step 3: compile sbcl using that interpreter 2021-01-13T10:31:02Z frodef: in other words, if you have a C compiler, you also have a python "run-time". 2021-01-13T10:31:41Z beach: ludston: But that's beside the point, no? Once you are done with that, you never use the C runtime again. 2021-01-13T10:31:50Z frodef: ludston: I don't think the CL compiler for the new CPU will magically appear just because you have a C compiler. 2021-01-13T10:32:30Z frodef: (is SBCL still based on C bootstrapping?) 2021-01-13T10:32:34Z ludston: frodef: Not sure how python works these days to be honest. They may or may not have a byte-code 2021-01-13T10:32:58Z ludston: No, to compile sbcl you need a common lisp runtime 2021-01-13T10:33:21Z scymtym joined #lisp 2021-01-13T10:35:02Z wxie quit (Ping timeout: 256 seconds) 2021-01-13T10:35:03Z frodef: ludston: but do you need a CL runtime that is running on the (hypothetical) new CPU? 2021-01-13T10:35:33Z ludston: beach: That's my point. You can't argue languages with dynamic runtime are c-based once you don't need c 2021-01-13T10:37:47Z ludston: frodef: Yes, so either you have to write your own CL interpreter for the new CPU archictecture (a massive effort), or, just compile clisp and then use clisp to compile sbcl 2021-01-13T10:39:18Z ludston: At some stage you're going to need to tweak sbcl so that it will compile for the new architecture, but the point is that you only write lisp code 2021-01-13T10:39:22Z frodef: fwiw by "C-based" I meant similar to typical C code. For example C# run-time I suspect is heavily influenced by the performance model of CPUs as of 20 years ago, which again comes basically from C. 2021-01-13T10:39:31Z aartaka_d joined #lisp 2021-01-13T10:40:37Z ludston: C# makes me sad 2021-01-13T10:40:54Z dim: well then make it 40/50 years ago maybe, about the CPU and memory model used in the C langauge 2021-01-13T10:41:23Z frodef: or to rephrase: If all the resources that have gone into developing the 8086 since 1970 rather had gone into developing e.g. the Symbolics CPUs, who know where we'd been. 2021-01-13T10:41:34Z frodef: s 2021-01-13T10:41:37Z aartaka quit (Ping timeout: 246 seconds) 2021-01-13T10:42:13Z iskander quit (Ping timeout: 264 seconds) 2021-01-13T10:42:23Z dim: remember Alan Kay said that hindsight is worth 80 points of IQ 2021-01-13T10:42:53Z iskander joined #lisp 2021-01-13T10:44:19Z ebrasca: frodef: There are other instruction sets, like ppc64. 2021-01-13T10:47:43Z beach: frodef: So what are your future plans, if any, for Common Lisp hacking? Movitz2? 2021-01-13T10:48:11Z ludston: frodef: I think that Intel/AMD are going to optimize for javascript, and CL will come along for the ride 2021-01-13T10:48:56Z iskander- joined #lisp 2021-01-13T10:49:19Z iskander quit (Ping timeout: 246 seconds) 2021-01-13T10:49:31Z VincentVega joined #lisp 2021-01-13T10:49:42Z housel joined #lisp 2021-01-13T10:49:44Z beach: "Fredman"? 2021-01-13T10:50:34Z frodef: ludston: hopefully, yes. 2021-01-13T10:51:00Z frodef: beach: Not sure, something Fredman-ish hopefully. 2021-01-13T10:51:15Z beach: Great! 2021-01-13T10:51:47Z frodef: seems to me run-times are woefully underdeveloped in software engineering. 2021-01-13T10:52:03Z beach: Can you elaborate on that? 2021-01-13T10:52:14Z beach: Oh, you mean in the SE curricula? 2021-01-13T10:52:17Z SpaceIgor2075 quit (Read error: Connection reset by peer) 2021-01-13T10:52:33Z frodef: beach: both in theory/school and in practice/industry. 2021-01-13T10:52:43Z beach: I can believe that. 2021-01-13T10:52:53Z beach: Does that suggest a direction of work? 2021-01-13T10:53:42Z frodef: Seems to me a bit ironic, Information Technology that isn't able to handle information about itself very well, or at all. 2021-01-13T10:54:04Z beach: There is lots of irony in the software industry. 2021-01-13T10:54:41Z beach: It has got to be one of the least efficient domains. At least I hope the others are better. 2021-01-13T10:54:42Z ck_: is that why mainframes used to be called "big iron" ? 2021-01-13T10:55:14Z VincentVega left #lisp 2021-01-13T10:55:27Z beach: "iron"ic? Oh dear! 2021-01-13T10:56:54Z frodef: my kids would call this a "dad-joke" and give me a look. 2021-01-13T10:57:47Z beach: frodef: Are you currently employed in the software industry? If so, is your plan to transform it? Seems kind of hard, no? 2021-01-13T10:58:23Z frodef: btw. I find that quicklisp and cliki.net are great for finding and loading libraries, but is there nothing in the way of "canonical" or "preferred" lists of library code? 2021-01-13T10:58:44Z ludston: frodef: the awesome-cl github repo is pretty good 2021-01-13T10:58:44Z beach: Nope, advice is given here. 2021-01-13T10:59:11Z beach: ludston: First time I hear about it. 2021-01-13T10:59:17Z ludston: https://github.com/CodyReichert/awesome-cl 2021-01-13T11:00:07Z frodef: beach: no plan to save the world quite yet... 2021-01-13T11:00:26Z phoe: +1 for awesome-cl 2021-01-13T11:00:38Z frodef: beach: ... wait for retirement, move somewhere warm, and start hacking maybe? :) 2021-01-13T11:02:54Z frodef: ludston: thanks 2021-01-13T11:07:30Z beach: Oh, but I don't see the crucial information that many people want, i.e., which of similar libraries is preferable and for what reason. 2021-01-13T11:09:12Z beach: For example, the other day we were told that CL-WHO is not recommended, because it is buggy and incomplete, and not being worked on. 2021-01-13T11:09:18Z beach: I don't see that information here. 2021-01-13T11:10:07Z ludston: TODO: Pull request 2021-01-13T11:11:25Z amb007 quit (Ping timeout: 240 seconds) 2021-01-13T11:11:31Z ludston: Ah actually, "For example, we prefer Spinneret over Cl-Who." 2021-01-13T11:11:59Z amb007 joined #lisp 2021-01-13T11:16:48Z ebrasca: ludston: Why Spinneret over Cl-Who? 2021-01-13T11:17:46Z ludston: ebrasca: No idea haha. Probably because CL-WHO is alegedly buggy and incomplete 2021-01-13T11:19:08Z ebrasca: ludston: I have never have any problem whith cl-who. 2021-01-13T11:19:41Z phoe: claims are easy, proof is hard; I guess the proper rationale could be linked there 2021-01-13T11:24:47Z beach: ebrasca: This information came from the author, so I assume it can be trusted. 2021-01-13T11:28:03Z kaftejiman joined #lisp 2021-01-13T11:33:48Z hlavaty joined #lisp 2021-01-13T11:36:41Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-13T11:37:21Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-13T11:43:44Z flip214: hmmm, > In the trade-off between 90% convenience and 10% correctness Spinneret is on the side of convenience. 2021-01-13T11:44:22Z Gnuxie[m]: Yeah that's a very strange thing to say 2021-01-13T11:44:39Z ebrasca: Updated my page to use spinneret. 2021-01-13T11:45:40Z flip214: Gnuxie[m]: I guess that means that if you have a function bound on a keyword symbol (I've got a few, for debugging), you can't easily call it - (:h2 ) gives you a

, after all. 2021-01-13T11:46:34Z Gnuxie[m]: Right ok 2021-01-13T11:48:31Z flip214: looks mostly cl-who compatible... I'll give it a try 2021-01-13T11:49:11Z flip214: beach: but wouldn't every (good) engineer warn about probable bugs in her code? 2021-01-13T11:52:40Z saganman quit (Ping timeout: 246 seconds) 2021-01-13T11:56:32Z random-nick joined #lisp 2021-01-13T11:58:54Z frodef quit (Remote host closed the connection) 2021-01-13T12:00:00Z frodef joined #lisp 2021-01-13T12:01:52Z cantstanya quit (Remote host closed the connection) 2021-01-13T12:09:11Z cantstanya joined #lisp 2021-01-13T12:10:48Z amb007 quit (Read error: Connection reset by peer) 2021-01-13T12:11:18Z amb007 joined #lisp 2021-01-13T12:12:01Z flip214: hmmm, spinneret seems to take 2x as long as cl-who for generating a simple HTML document... 2021-01-13T12:12:01Z amb007 quit (Read error: Connection reset by peer) 2021-01-13T12:12:27Z Nilby joined #lisp 2021-01-13T12:12:48Z amb007 joined #lisp 2021-01-13T12:12:58Z vegansbane6 joined #lisp 2021-01-13T12:13:06Z flip214: but it does so much more (indentation, counting header levels, quoting only when needed, etc) that it's no surprise 2021-01-13T12:18:06Z aartaka_d quit (Ping timeout: 272 seconds) 2021-01-13T12:18:07Z gzj quit (Remote host closed the connection) 2021-01-13T12:18:27Z gzj joined #lisp 2021-01-13T12:21:23Z totoro2021 quit (Quit: Leaving) 2021-01-13T12:27:49Z ljavorsk quit (Ping timeout: 264 seconds) 2021-01-13T12:37:47Z totoro2021 joined #lisp 2021-01-13T12:40:02Z totoro2021 quit (Client Quit) 2021-01-13T12:40:27Z totoro2021 joined #lisp 2021-01-13T12:45:52Z frodef: but why oh why won't spinneret do the ((:tag :attr ..) ..) syntax? 2021-01-13T12:48:19Z gzj quit (Remote host closed the connection) 2021-01-13T12:48:39Z gzj joined #lisp 2021-01-13T12:51:08Z rogersm joined #lisp 2021-01-13T12:52:32Z flip214: frodef: do you have a compelling reason to prefer that way? 2021-01-13T12:57:12Z gko_ joined #lisp 2021-01-13T12:58:04Z liberliver quit (Quit: liberliver) 2021-01-13T13:01:54Z liberliver joined #lisp 2021-01-13T13:02:07Z xificurC: ludston the canonical python implementation is CPython, which is written in C. Python code is either read from a .py file (source code) or from a .pyc file (bytecode). The interpreter automatically tucks away the generated .pyc files for later reuse and reloads the .py files if they are newer than the .pyc files 2021-01-13T13:02:58Z xificurC: then there's https://www.pypy.org/ , which is a tracing JIT compiler 2021-01-13T13:05:32Z catalinbostan joined #lisp 2021-01-13T13:05:35Z xificurC: the pypy toolchain is interesting, you write in a subset of python and the toolchain generates a tracing JIT for you 2021-01-13T13:06:45Z liberliver quit (Client Quit) 2021-01-13T13:07:23Z gzj quit (Remote host closed the connection) 2021-01-13T13:08:38Z frodef: flip214: better indenting, I also think it's more explict and clear. 2021-01-13T13:09:24Z orivej quit (Ping timeout: 272 seconds) 2021-01-13T13:17:00Z frgo_ quit (Read error: Connection reset by peer) 2021-01-13T13:17:12Z frgo joined #lisp 2021-01-13T13:21:35Z skapata quit (Quit: Leaving) 2021-01-13T13:26:11Z Bike joined #lisp 2021-01-13T13:27:50Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-13T13:32:30Z dbotton joined #lisp 2021-01-13T13:32:40Z rumbler31 joined #lisp 2021-01-13T13:35:02Z aartaka joined #lisp 2021-01-13T13:35:13Z mfiano: As beach mentioned, cl-who is quite buggy, and the author no longer maintains it and is not sure how to fix some of the issues it has, and we're talking about a pretty smart guy who is well-known in the community. He also authored 'Common Lisp Recipes', a book that makes no mention of cl-who for the topic of HTML generation, for the aforementioned reason. If the author recommends other libraries over 2021-01-13T13:35:14Z mfiano: his own, it says something I would think. 2021-01-13T13:36:08Z mfiano: Source: The author himself: 2021-01-13T13:36:21Z mfiano: Hi Michael,Thanks for your feedback. I'm not maintaining CL-WHO or my otherlibraries anymore and I'm pretty sure there are better HTML generationlibraries out there nowadays (two of which I'm also mentioning in mybook). The problem you're referring to is unfortunately inherent tothe way CL-WHO is implemented and I'm not aware of an easy fix.Best regards,Edi. 2021-01-13T13:36:44Z phoe: awesome-cl should get to know that via some sorta issue then 2021-01-13T13:37:00Z luckless quit (Remote host closed the connection) 2021-01-13T13:40:17Z rumbler31 quit (Read error: Connection reset by peer) 2021-01-13T13:40:26Z beach: I think the crucial information that frodef was looking for is absent in awesome-cl. Perhaps in most cases it is not as clear as for CL-WHO ("don't use it..."). But people often look for relative advantages and disadvantages, like generality, run-time performance, compilation time, ease of use, active development, existing maintainer, etc. 2021-01-13T13:40:53Z rumbler31 joined #lisp 2021-01-13T13:44:09Z mfiano: One thing I can say for certain after quite a few years doing web development in CL (though, admittedly, this was a few years ago), is there are about a dozen libraries fitting the purpose and they all fall flat. I think this is partially because of the mess that is the web itself, and partly because there is no concerted effort on such a library. One developer can do an 80% solution for their own 2021-01-13T13:44:11Z mfiano: use-case quite easily. 2021-01-13T13:44:12Z beach: So, ideally, a list like that should include such comparisons of similar libraries, and perhaps some absolute information when a library is fairly unique, like "embryonic", "needs work in ...", "performance could be better". 2021-01-13T13:44:39Z Xach: Sabra Crolleton has done some fantastic work for that for some domains 2021-01-13T13:45:02Z gko_ quit (Ping timeout: 256 seconds) 2021-01-13T13:45:05Z frodef: Seems to me that "canonical" libraries are an important aspect of a programming language. In some important sense, libraries for common functionality is really part of the common language itself. 2021-01-13T13:45:14Z Xach: https://sabracrolleton.github.io/json-review for example 2021-01-13T13:45:37Z gko_ joined #lisp 2021-01-13T13:45:46Z beach: frodef: Maybe, but we are far from that situation still. 2021-01-13T13:45:54Z frodef: having common libraries is important in the same sense it's important not to write your own macros for IF etc. 2021-01-13T13:46:46Z frodef just had a peek at the source for htmlgen from franz. 2021-01-13T13:49:22Z ralt: that makes me wonder, is parenscript maintained? 2021-01-13T13:50:12Z ralt: I made some extensions to it to support async/await a while ago but I'm not sure if I should contribute them back 2021-01-13T13:51:11Z ralt: it's also missing a tons of symbols (to make the symbol mangling work) of recent-ish additions (say, over the past 10 years), so that indicates to me that it's quite close to dead, but I never actually looked 2021-01-13T13:51:37Z frodef: btw. I did get a response from someone not Edi to my cl-who bug-report. 2021-01-13T13:52:48Z mfiano: ralt: It is not dead 2021-01-13T13:54:41Z ralt: ok. I'll try contributing back then. 2021-01-13T13:55:02Z mfiano: There seems to be recent activity on its issue tracker, and commits by the maintainer. 2021-01-13T13:59:48Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-13T13:59:49Z frodef quit (Remote host closed the connection) 2021-01-13T14:01:56Z frodef` joined #lisp 2021-01-13T14:06:30Z xificurC: I always browse the cliki recommended list of libraries, yet noone mentioned it here. Is it out of date? 2021-01-13T14:06:51Z wsinatra joined #lisp 2021-01-13T14:07:40Z xificurC: awesome-cl is nice but as beach points out there's when there's a list of libraries you have no idea which one is recommended 2021-01-13T14:07:54Z dbotton joined #lisp 2021-01-13T14:15:09Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-13T14:15:11Z orivej joined #lisp 2021-01-13T14:20:02Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-13T14:20:58Z mmmattyx joined #lisp 2021-01-13T14:23:12Z dbotton joined #lisp 2021-01-13T14:28:24Z aartaka quit (Read error: Connection reset by peer) 2021-01-13T14:31:13Z flip214: Well, as one(!) of the reasons I'm proposing CL is "speed" (as in "reduces number of required hardware boxes for given workload"), requiring twice the time to generate some HTML hurts quite a bit - that amounts to twice the hardware (compared to CL-WHO) and reduces the utility of my proposed solutions 2021-01-13T14:36:10Z thinkpad quit (Ping timeout: 272 seconds) 2021-01-13T14:37:14Z thinkpad joined #lisp 2021-01-13T14:37:32Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-13T14:38:01Z beach: To whom are you proposing Common Lisp? 2021-01-13T14:40:11Z galex-713 joined #lisp 2021-01-13T14:42:47Z cage_ joined #lisp 2021-01-13T14:47:10Z xificurC: is iterate usable without `use-package`ing it? From a REPL session I can't get it to work. Something like `(iter:iter (for i from 1 to 10) (collect i))` spurts a number of undefined function/variable warnings 2021-01-13T14:47:38Z mrios22 quit (Ping timeout: 265 seconds) 2021-01-13T14:49:08Z ech quit (Remote host closed the connection) 2021-01-13T14:49:25Z edgar-rft joined #lisp 2021-01-13T14:49:30Z xificurC: this works and is very readable `(iter:iter (iter:for iter::i iter::from 1 iter::to 10) (iter:collect iter::i))` 2021-01-13T14:51:19Z bitmapper joined #lisp 2021-01-13T14:53:16Z devon quit (Ping timeout: 246 seconds) 2021-01-13T14:53:49Z _death: you can use import-from 2021-01-13T14:54:38Z elflng quit (Read error: Connection reset by peer) 2021-01-13T14:55:10Z travv0: or `(iter:iter (iter:for i from 1 to 10) (iter:collect i))` 2021-01-13T14:55:16Z elflng joined #lisp 2021-01-13T14:56:44Z galex-713 quit (Ping timeout: 240 seconds) 2021-01-13T14:59:25Z ludston quit (Ping timeout: 240 seconds) 2021-01-13T14:59:41Z _death: sbcl has iter::(iter (for i from 1 to 10) (collect i)) but it's unlikely that you want that 2021-01-13T15:00:52Z flazh quit (Ping timeout: 272 seconds) 2021-01-13T15:01:31Z flazh joined #lisp 2021-01-13T15:03:04Z beach: xificurC: There should be no particular reason to put your own variables in the ITER package. 2021-01-13T15:03:21Z beach: xificurC: And you can use a package-local nickname, like I for ITER. 2021-01-13T15:03:23Z sjl joined #lisp 2021-01-13T15:04:27Z beach: xificurC: That would make it: (i:iter (i:for i i:from 1 i:to 10) (iter:collect i)) 2021-01-13T15:05:04Z travv0: iterate doesn't export from and to 2021-01-13T15:05:07Z charles` quit (Ping timeout: 260 seconds) 2021-01-13T15:05:12Z travv0: so just (i:iter (i:for i from 1 to 10) (i:collect i)) 2021-01-13T15:05:21Z beach: Then :USE-ing it won't help. 2021-01-13T15:06:06Z beach: Oh, so it uses the names for the other keywords. Got it. 2021-01-13T15:06:23Z travv0: yep 2021-01-13T15:08:16Z beach: That's not too bad then. 2021-01-13T15:08:59Z beach: I mean, the package prefixes don't clutter the form too much. 2021-01-13T15:09:25Z travv0: i agree 2021-01-13T15:14:53Z Codaraxis quit (Remote host closed the connection) 2021-01-13T15:15:01Z mgxm quit (Quit: ....) 2021-01-13T15:15:17Z mgxm joined #lisp 2021-01-13T15:15:28Z Codaraxis joined #lisp 2021-01-13T15:15:40Z flazh quit (Ping timeout: 246 seconds) 2021-01-13T15:17:32Z flazh joined #lisp 2021-01-13T15:26:06Z nicktick joined #lisp 2021-01-13T15:27:01Z Codaraxis quit (Remote host closed the connection) 2021-01-13T15:27:22Z Codaraxis joined #lisp 2021-01-13T15:29:27Z ech joined #lisp 2021-01-13T15:31:44Z luckless joined #lisp 2021-01-13T15:31:47Z mankaev quit (Ping timeout: 272 seconds) 2021-01-13T15:32:01Z joast quit (Quit: Leaving.) 2021-01-13T15:38:02Z saganman joined #lisp 2021-01-13T15:42:30Z Codaraxis quit (Remote host closed the connection) 2021-01-13T15:45:51Z Codaraxis joined #lisp 2021-01-13T15:47:08Z Codaraxis quit (Remote host closed the connection) 2021-01-13T15:48:04Z Codaraxis joined #lisp 2021-01-13T15:49:57Z galex-713 joined #lisp 2021-01-13T15:51:35Z Codaraxis quit (Remote host closed the connection) 2021-01-13T15:51:59Z Codaraxis joined #lisp 2021-01-13T15:54:22Z devon joined #lisp 2021-01-13T15:58:52Z Codaraxis quit (Remote host closed the connection) 2021-01-13T15:59:11Z Codaraxis joined #lisp 2021-01-13T15:59:13Z v88m joined #lisp 2021-01-13T16:02:12Z Codaraxis quit (Remote host closed the connection) 2021-01-13T16:02:42Z Codaraxis joined #lisp 2021-01-13T16:04:46Z waleee-cl joined #lisp 2021-01-13T16:06:51Z karlosz joined #lisp 2021-01-13T16:07:22Z gko_ quit (Ping timeout: 272 seconds) 2021-01-13T16:07:50Z thinkpad quit (Ping timeout: 256 seconds) 2021-01-13T16:09:48Z thinkpad joined #lisp 2021-01-13T16:11:25Z ramus quit (Quit: leaving) 2021-01-13T16:18:46Z frodef` quit (Ping timeout: 272 seconds) 2021-01-13T16:19:47Z kmeow joined #lisp 2021-01-13T16:20:46Z dbotton joined #lisp 2021-01-13T16:26:02Z je-suis-rpg joined #lisp 2021-01-13T16:26:49Z charles` joined #lisp 2021-01-13T16:27:41Z judson_ joined #lisp 2021-01-13T16:29:47Z je-suis-rpg quit (Quit: WeeChat 3.0) 2021-01-13T16:31:14Z frgo_ joined #lisp 2021-01-13T16:33:20Z orivej quit (Ping timeout: 272 seconds) 2021-01-13T16:33:47Z frgo quit (Ping timeout: 260 seconds) 2021-01-13T16:36:27Z hhdave quit (Quit: hhdave) 2021-01-13T16:36:41Z caret joined #lisp 2021-01-13T16:37:40Z Steeve joined #lisp 2021-01-13T16:37:53Z nicktick quit (Ping timeout: 260 seconds) 2021-01-13T16:38:25Z luckless quit (Remote host closed the connection) 2021-01-13T16:38:37Z Cymew quit (Ping timeout: 246 seconds) 2021-01-13T16:38:55Z luckless joined #lisp 2021-01-13T16:39:04Z iamFIREcracker quit (Read error: Connection reset by peer) 2021-01-13T16:39:29Z liberliver joined #lisp 2021-01-13T16:39:30Z iamFIREcracker joined #lisp 2021-01-13T16:40:04Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T16:40:22Z Lord_of_Life quit (Ping timeout: 246 seconds) 2021-01-13T16:40:45Z ioa quit (Ping timeout: 240 seconds) 2021-01-13T16:41:26Z arbv quit (Quit: ZNC - https://znc.in) 2021-01-13T16:42:31Z wigust quit (Remote host closed the connection) 2021-01-13T16:42:36Z eddof13 quit (Ping timeout: 240 seconds) 2021-01-13T16:42:43Z arbv joined #lisp 2021-01-13T16:42:48Z wigust joined #lisp 2021-01-13T16:43:27Z ioa joined #lisp 2021-01-13T16:43:30Z varjag quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-13T16:45:26Z Lord_of_Life joined #lisp 2021-01-13T16:45:35Z dbotton quit (Quit: This computer has gone to sleep) 2021-01-13T16:45:41Z hhdave joined #lisp 2021-01-13T16:47:54Z makomo quit (Ping timeout: 256 seconds) 2021-01-13T16:48:49Z devon quit (Ping timeout: 264 seconds) 2021-01-13T16:49:11Z judson_ joined #lisp 2021-01-13T16:50:44Z nicktick joined #lisp 2021-01-13T16:50:54Z dbotton joined #lisp 2021-01-13T16:54:14Z andreyorst` quit (Quit: andreyorst`) 2021-01-13T16:54:58Z andreyorst joined #lisp 2021-01-13T16:57:25Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-13T16:57:32Z thinkpad quit (Ping timeout: 256 seconds) 2021-01-13T16:57:46Z matryoshka joined #lisp 2021-01-13T16:58:16Z aeth quit (Ping timeout: 256 seconds) 2021-01-13T16:59:51Z hnOsmium0001 joined #lisp 2021-01-13T16:59:53Z thinkpad joined #lisp 2021-01-13T16:59:53Z aeth joined #lisp 2021-01-13T17:02:24Z makomo joined #lisp 2021-01-13T17:02:34Z devon joined #lisp 2021-01-13T17:04:21Z hendursaga joined #lisp 2021-01-13T17:10:42Z frodef joined #lisp 2021-01-13T17:16:44Z Jesin quit (Ping timeout: 256 seconds) 2021-01-13T17:19:34Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-13T17:20:07Z aorst joined #lisp 2021-01-13T17:20:52Z jeosol quit (Quit: Connection closed) 2021-01-13T17:23:37Z andreyorst_ quit (Ping timeout: 264 seconds) 2021-01-13T17:33:02Z seok quit (Quit: Connection closed) 2021-01-13T17:36:18Z luni joined #lisp 2021-01-13T17:37:44Z kaftejiman quit (Remote host closed the connection) 2021-01-13T17:39:40Z clintm quit (Remote host closed the connection) 2021-01-13T17:41:52Z devon: Unhappy with M-x irc, mainly because not comint based & randomly trashes command history. Any suggestions? 2021-01-13T17:42:47Z frodef: I'm using erc, but it's not that great really. 2021-01-13T17:43:05Z charles`: I was using erc, but switched to pidgin 2021-01-13T17:43:45Z thinkpad quit (Ping timeout: 240 seconds) 2021-01-13T17:46:26Z thinkpad joined #lisp 2021-01-13T17:46:38Z markasoftware: can someone recommend a quicklisp library for finding the roots of a polynomial with the given coefficients? 2021-01-13T17:46:43Z mankaev joined #lisp 2021-01-13T17:49:54Z xificurC quit (Quit: Connection closed) 2021-01-13T17:54:50Z andreyor1 joined #lisp 2021-01-13T17:55:28Z aorst quit (Ping timeout: 260 seconds) 2021-01-13T17:55:56Z aeth quit (Ping timeout: 240 seconds) 2021-01-13T17:57:05Z aartaka joined #lisp 2021-01-13T17:58:07Z aeth joined #lisp 2021-01-13T17:58:16Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T17:58:52Z judson_ joined #lisp 2021-01-13T17:58:59Z jeosol joined #lisp 2021-01-13T18:01:41Z mindCrime joined #lisp 2021-01-13T18:06:04Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T18:11:08Z judson_ joined #lisp 2021-01-13T18:12:03Z phoe: sounds like you could use maxima, in theory 2021-01-13T18:12:33Z phoe: I remember someone was working on an interface to use it from within CL 2021-01-13T18:12:56Z phoe: or even lapack maybe? 2021-01-13T18:15:31Z astronavt: are there GSL bindings for CL already? 2021-01-13T18:15:31Z astronavt: https://www.gnu.org/software/gsl/doc/html/poly.html 2021-01-13T18:15:44Z astronavt: https://common-lisp.net/project/gsll/ 2021-01-13T18:18:10Z anticrisis joined #lisp 2021-01-13T18:23:37Z hlavaty quit (Remote host closed the connection) 2021-01-13T18:30:12Z karlosz quit (Quit: karlosz) 2021-01-13T18:33:28Z aeth quit (Ping timeout: 256 seconds) 2021-01-13T18:33:53Z Jesin joined #lisp 2021-01-13T18:35:00Z aeth joined #lisp 2021-01-13T18:35:26Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-13T18:40:25Z mmmattyx quit (Quit: Connection closed for inactivity) 2021-01-13T18:41:03Z Lycurgus joined #lisp 2021-01-13T18:44:53Z lotuseater quit (Remote host closed the connection) 2021-01-13T18:45:28Z frodef: slightly off-topic, but can anyone tell me when I am editing a file in emacs that is under git, how can I get a buffer with a previous revision of that file? 2021-01-13T18:46:35Z ech quit (Remote host closed the connection) 2021-01-13T18:46:54Z saganman quit (Quit: WeeChat 1.6) 2021-01-13T18:47:09Z ech joined #lisp 2021-01-13T18:47:25Z aeth quit (Ping timeout: 246 seconds) 2021-01-13T18:48:23Z aeth joined #lisp 2021-01-13T18:49:06Z jeosol: you want to see the files side by side? 2021-01-13T18:49:10Z jeosol: Do you use magit? 2021-01-13T18:49:40Z luni quit (Quit: Connection closed) 2021-01-13T18:49:58Z frodef: I just want to see the old revision, plainly. 2021-01-13T18:50:15Z frodef: I use just the default vc thingy, I believe. 2021-01-13T18:50:20Z jeosol: frodef: I see 2021-01-13T18:50:31Z jeosol: so it's not possible? 2021-01-13T18:50:35Z frodef: (should I use magit?) 2021-01-13T18:50:55Z frodef: hopefully it's possible, but it's not obvious enough for me to figure out... 2021-01-13T18:51:10Z jeosol: I think it's possible, I just asked if you use magit as part of your workflow 2021-01-13T18:51:24Z ukari quit (Remote host closed the connection) 2021-01-13T18:51:38Z jeosol: but if you are just trying to view the diff, then magit is probably an overkill. 2021-01-13T18:51:40Z lotuseater joined #lisp 2021-01-13T18:52:24Z ukari joined #lisp 2021-01-13T18:53:10Z frodef: not even a diff, just the plain file version that I checked in some days ago.. seems to me the most basic of operations, but somehow it's not obvious how to do it. 2021-01-13T18:53:44Z aeth_ joined #lisp 2021-01-13T18:53:51Z jeosol: frodef: you'd check it out from git commit and then view it right. 2021-01-13T18:54:15Z aeth quit (Disconnected by services) 2021-01-13T18:54:28Z pfdietz joined #lisp 2021-01-13T18:55:13Z aeth_ is now known as aeth 2021-01-13T18:55:22Z v88m quit (Read error: Connection reset by peer) 2021-01-13T18:55:36Z v88m joined #lisp 2021-01-13T18:56:13Z frodef: or rather, I can do M-x vc-revision-other-window, but I don't know how to name an old revision. Probably I don't understand git. 2021-01-13T18:56:48Z ck_: you can say HEAD^ for the previous, or HEAD~23 for the 23th-previous one, for example 2021-01-13T18:58:01Z ck_: "23rd" even -- how embarrassing! I'll now hide before someone "off-topic!"s me out of here 2021-01-13T18:59:12Z frodef: ck_: thanks! (I'm surprised/frustrated that I can't seem to find a menu over old revisions, though.) 2021-01-13T18:59:57Z ck_: you should try magit, it's very helpful 2021-01-13T19:00:22Z pfdietz quit (Quit: Connection closed) 2021-01-13T19:01:04Z frodef: ck_: ok. I just thought I could use vc pretty much like I used to do with CVS, but I guess not. 2021-01-13T19:01:44Z lucasb joined #lisp 2021-01-13T19:02:14Z ck_: you probably can, I don't have experience with that though. Many things are probably just personal preference, but it's generally accepted that magit is very polished, and its menu system is (I think) easy to pick up 2021-01-13T19:03:43Z thinkpad quit (Ping timeout: 260 seconds) 2021-01-13T19:05:00Z karlosz joined #lisp 2021-01-13T19:05:03Z thinkpad joined #lisp 2021-01-13T19:06:06Z xanderle_ quit (Ping timeout: 256 seconds) 2021-01-13T19:16:25Z thinkpad quit (Ping timeout: 240 seconds) 2021-01-13T19:18:54Z andreyor1 is now known as andreyorst_ 2021-01-13T19:19:04Z thinkpad joined #lisp 2021-01-13T19:20:14Z andreyorst quit (Ping timeout: 265 seconds) 2021-01-13T19:20:16Z luni joined #lisp 2021-01-13T19:22:38Z MrFantastik is now known as technornancy 2021-01-13T19:25:11Z andreyorst joined #lisp 2021-01-13T19:25:13Z technornancy is now known as MrFantastik 2021-01-13T19:25:19Z sauvin quit (Read error: Connection reset by peer) 2021-01-13T19:25:39Z mmmattyx joined #lisp 2021-01-13T19:31:52Z andreyorst quit (Ping timeout: 246 seconds) 2021-01-13T19:33:56Z aeth_ joined #lisp 2021-01-13T19:33:59Z aeth quit (Disconnected by services) 2021-01-13T19:34:44Z aeth_ is now known as aeth 2021-01-13T19:37:50Z rumbler31_ quit (Ping timeout: 256 seconds) 2021-01-13T19:38:40Z Fir3 joined #lisp 2021-01-13T19:38:45Z jeosol quit (Quit: Connection closed) 2021-01-13T19:39:26Z Fir3 left #lisp 2021-01-13T19:40:28Z rumbler31_ joined #lisp 2021-01-13T19:40:41Z xanderle joined #lisp 2021-01-13T19:40:53Z trafaret1 joined #lisp 2021-01-13T19:42:26Z bitmapper joined #lisp 2021-01-13T19:48:36Z python476 joined #lisp 2021-01-13T19:53:57Z Lycurgus quit (Quit: Exeunt) 2021-01-13T19:59:18Z jeosol joined #lisp 2021-01-13T20:04:14Z random-nick quit (Quit: quit) 2021-01-13T20:07:15Z trafaret1 quit (Remote host closed the connection) 2021-01-13T20:08:03Z aartaka quit (Read error: Connection reset by peer) 2021-01-13T20:08:09Z aartaka_d joined #lisp 2021-01-13T20:11:23Z l1x joined #lisp 2021-01-13T20:15:28Z attila_lendvai quit (Ping timeout: 256 seconds) 2021-01-13T20:18:04Z thinkpad quit (Ping timeout: 256 seconds) 2021-01-13T20:19:08Z thinkpad joined #lisp 2021-01-13T20:20:28Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T20:21:11Z judson_ joined #lisp 2021-01-13T20:22:07Z catalinbostan quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T20:27:13Z aartaka_d quit (Ping timeout: 264 seconds) 2021-01-13T20:32:32Z karlosz_ joined #lisp 2021-01-13T20:34:40Z karlosz quit (Ping timeout: 265 seconds) 2021-01-13T20:34:40Z karlosz_ is now known as karlosz 2021-01-13T20:48:06Z orivej joined #lisp 2021-01-13T20:48:18Z ukari quit (Remote host closed the connection) 2021-01-13T20:49:02Z ukari joined #lisp 2021-01-13T20:50:36Z xanderle quit (Ping timeout: 256 seconds) 2021-01-13T20:51:00Z narimiran quit (Ping timeout: 256 seconds) 2021-01-13T20:57:08Z catalinbostan joined #lisp 2021-01-13T21:02:52Z mindCrime joined #lisp 2021-01-13T21:03:34Z jonatack quit (Ping timeout: 246 seconds) 2021-01-13T21:03:53Z xanderle joined #lisp 2021-01-13T21:05:21Z jonatack joined #lisp 2021-01-13T21:13:20Z dbotton quit (Quit: Leaving) 2021-01-13T21:16:17Z random-nick joined #lisp 2021-01-13T21:18:46Z aartaka joined #lisp 2021-01-13T21:29:45Z aartaka quit (Ping timeout: 240 seconds) 2021-01-13T21:30:05Z heisig quit (Quit: Leaving) 2021-01-13T21:34:42Z wsinatra quit (Quit: WeeChat 3.0) 2021-01-13T21:37:28Z luni quit (Quit: Connection closed) 2021-01-13T21:42:34Z akoana joined #lisp 2021-01-13T21:48:44Z jonatack quit (Ping timeout: 256 seconds) 2021-01-13T21:49:17Z jonatack joined #lisp 2021-01-13T21:50:37Z v88m quit (Ping timeout: 264 seconds) 2021-01-13T21:51:02Z kmeow quit (Quit: WeeChat 3.0) 2021-01-13T21:58:14Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-13T22:00:02Z matryoshka joined #lisp 2021-01-13T22:01:03Z saturn2 quit (Ping timeout: 260 seconds) 2021-01-13T22:02:02Z jonatack quit (Ping timeout: 272 seconds) 2021-01-13T22:03:36Z johnjay quit (Ping timeout: 265 seconds) 2021-01-13T22:03:38Z jonatack joined #lisp 2021-01-13T22:06:22Z cage_ quit (Quit: Leaving) 2021-01-13T22:06:39Z johnjay joined #lisp 2021-01-13T22:13:05Z skapata joined #lisp 2021-01-13T22:14:57Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T22:15:26Z frodef: I fell silly for asking this, but what is the preferred idiom for taking the subset of a list by some predicate? 2021-01-13T22:15:46Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-13T22:16:02Z frodef: "filter" I suppose. 2021-01-13T22:16:04Z matryoshka joined #lisp 2021-01-13T22:16:19Z travv0: remove-if-not 2021-01-13T22:16:32Z travv0: or remove-if 2021-01-13T22:16:54Z judson_ joined #lisp 2021-01-13T22:17:32Z frodef: yes, but remove-if-not and the :test-not args are "deprecated", which makes me suspect there's supposed to be another way... 2021-01-13T22:17:57Z Bike: nope, use remove-if-not. 2021-01-13T22:18:15Z Bike: it was deprecated like twenty years ago because they thought COMPLEMENT would be more useful. 2021-01-13T22:18:53Z Bike: but there is no problem using remove-if-not and even if there was somehow a new standard revision, they probably wouldn't actually remove it. 2021-01-13T22:18:53Z clone_of_saturn joined #lisp 2021-01-13T22:19:12Z clone_of_saturn is now known as saturn2 2021-01-13T22:22:05Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-13T22:25:50Z Nilby quit (Read error: Connection reset by peer) 2021-01-13T22:29:20Z mfiano: It's surprisingly actually smaller code size on SBCL, too (though code zie is not a good measure of performance). 2021-01-13T22:29:33Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T22:29:39Z mfiano: zie? size 2021-01-13T22:31:18Z judson_ joined #lisp 2021-01-13T22:31:49Z charles`: filter = remove-if right? 2021-01-13T22:32:36Z makomo quit (Ping timeout: 256 seconds) 2021-01-13T22:33:28Z mfiano: remove-if-not 2021-01-13T22:35:27Z pve quit (Quit: leaving) 2021-01-13T22:42:09Z jeosol quit (Quit: Connection closed) 2021-01-13T22:45:31Z ebrasca quit (Remote host closed the connection) 2021-01-13T22:49:03Z nydel quit (Quit: WeeChat 2.3) 2021-01-13T22:49:03Z bacterio quit (Quit: bacterio) 2021-01-13T22:49:22Z rumbler31 quit (Ping timeout: 256 seconds) 2021-01-13T22:52:06Z fiddlerwoaroof: Yeah, a falsey return value of the predicate to filter removes the value 2021-01-13T22:52:14Z fiddlerwoaroof: so, REMOVE-IF-NOT 2021-01-13T22:52:47Z jeosol joined #lisp 2021-01-13T22:54:28Z Alfr quit (Quit: Leaving) 2021-01-13T22:54:36Z frodef: Bike: right, thanks, COMPLEMENT was probably the piece of the puzzle I'd forgotten about. 2021-01-13T22:55:25Z frodef: I do find the double negative of remove-if-not quite annoying, though. 2021-01-13T22:56:16Z Posterdati quit (Ping timeout: 246 seconds) 2021-01-13T22:57:04Z frodef: ...and even more so for (remove keep-value ... :test-not 'eql), which is not very readable at all. 2021-01-13T23:00:49Z jeosol quit (Ping timeout: 248 seconds) 2021-01-13T23:00:57Z frodef: -- "Several alternative names for REMOVE-IF-NOT were suggested: KEEP-IF, ABSTRACT, FILTER. We did not pursue these suggestions." Oh well. 2021-01-13T23:03:52Z Alfr joined #lisp 2021-01-13T23:03:59Z skapata quit (Ping timeout: 272 seconds) 2021-01-13T23:09:36Z Steeve quit (Quit: end) 2021-01-13T23:09:43Z Posterdati joined #lisp 2021-01-13T23:10:31Z skapata joined #lisp 2021-01-13T23:13:16Z gaqwas quit (Ping timeout: 240 seconds) 2021-01-13T23:13:22Z phoe: RETAIN too 2021-01-13T23:18:57Z frodef: how about DONTUNREMOVE ? 2021-01-13T23:18:59Z frodef: :) 2021-01-13T23:21:00Z lucasb quit (Quit: Connection closed for inactivity) 2021-01-13T23:27:25Z sjl quit (Ping timeout: 240 seconds) 2021-01-13T23:29:19Z v88m joined #lisp 2021-01-13T23:31:16Z johnjay quit (Ping timeout: 240 seconds) 2021-01-13T23:31:17Z v88m quit (Read error: Connection reset by peer) 2021-01-13T23:34:27Z johnjay joined #lisp 2021-01-13T23:34:46Z catalinbostan quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-13T23:39:13Z nicktick quit (Ping timeout: 264 seconds) 2021-01-13T23:39:19Z asarch joined #lisp 2021-01-13T23:44:19Z ukari quit (Remote host closed the connection) 2021-01-13T23:44:46Z ukari joined #lisp 2021-01-13T23:50:08Z phoe: PLEASE-KINDLY-RETAIN-WHILST-PREDICATE-IS-NAUGHT 2021-01-13T23:54:22Z rgherdt quit (Ping timeout: 246 seconds) 2021-01-13T23:55:05Z gaqwas joined #lisp 2021-01-13T23:55:05Z gaqwas quit (Changing host) 2021-01-13T23:55:05Z gaqwas joined #lisp 2021-01-13T23:56:02Z eta: phoe: WHOMSTVE-DARE-RETAIN 2021-01-13T23:56:28Z surabax quit (Quit: Leaving) 2021-01-13T23:56:46Z phoe: yes 2021-01-13T23:56:59Z phoe: also s/WHILST/WHENEVER/ 2021-01-13T23:57:05Z phoe: it's IF, not WHILE, after all 2021-01-13T23:57:16Z Xach: eta: that is best 2021-01-14T00:04:24Z l1x quit (Quit: Connection closed for inactivity) 2021-01-14T00:04:49Z rumbler31 joined #lisp 2021-01-14T00:06:59Z aeth: I'm surprised that a possible alternative to REMOVE-IF-NOT wasn't REMOVE-UNLESS 2021-01-14T00:07:08Z aeth: UNLESS is (almost) IF-NOT in the language... 2021-01-14T00:07:34Z White_Flame: it's NOT-WHEN 2021-01-14T00:07:41Z aeth: right 2021-01-14T00:07:53Z aeth: a true IF-NOT in the language would have a second branch and just reverse the order of the IF 2021-01-14T00:08:08Z aeth: so (if-not test else then) 2021-01-14T00:08:52Z White_Flame: (remove-if-not (lambda (x) (not-when ...)) ... 2021-01-14T00:09:03Z aeth: (defmacro if-not (test then &optional else) `(if ,test ,else ,then)) 2021-01-14T00:09:16Z rumbler31 quit (Ping timeout: 265 seconds) 2021-01-14T00:14:21Z Xach: /win 2 2021-01-14T00:21:30Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-14T00:21:49Z matryoshka joined #lisp 2021-01-14T00:21:51Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-14T00:24:42Z judson_ joined #lisp 2021-01-14T00:32:35Z igemnace quit (Quit: WeeChat 3.0) 2021-01-14T00:36:40Z igemnace joined #lisp 2021-01-14T00:51:51Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-14T01:00:30Z random-nick quit (Ping timeout: 256 seconds) 2021-01-14T01:03:29Z judson_ joined #lisp 2021-01-14T01:12:06Z asarch quit (Quit: Leaving) 2021-01-14T01:12:36Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-14T01:12:55Z matryoshka joined #lisp 2021-01-14T01:13:36Z akoana left #lisp 2021-01-14T01:15:54Z matryoshka quit (Client Quit) 2021-01-14T01:16:14Z matryoshka joined #lisp 2021-01-14T01:17:55Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-14T01:18:44Z judson_ joined #lisp 2021-01-14T01:20:19Z ariedro quit (Ping timeout: 265 seconds) 2021-01-14T01:20:46Z judson_ quit (Client Quit) 2021-01-14T01:22:30Z judson_ joined #lisp 2021-01-14T01:24:45Z judson_ quit (Client Quit) 2021-01-14T01:25:05Z jeosol joined #lisp 2021-01-14T01:26:15Z ramus joined #lisp 2021-01-14T01:33:13Z rumbler31_ quit (Ping timeout: 264 seconds) 2021-01-14T01:33:45Z rumbler31_ joined #lisp 2021-01-14T01:34:54Z Demosthenex quit (Ping timeout: 256 seconds) 2021-01-14T01:37:21Z wxie joined #lisp 2021-01-14T01:37:31Z Demosthenex joined #lisp 2021-01-14T01:38:03Z ralt quit (Quit: Connection closed for inactivity) 2021-01-14T01:45:43Z bitmapper joined #lisp 2021-01-14T01:47:24Z judson_ joined #lisp 2021-01-14T01:50:05Z ramus quit (Quit: leaving) 2021-01-14T01:52:16Z secretmyth quit (Quit: Leaving) 2021-01-14T01:53:02Z rumbler31 joined #lisp 2021-01-14T01:54:07Z edgar-rft: I've heard REMOVE-UNLESS does the opposite of REMOVE-UNMORE 2021-01-14T01:56:00Z scymtym_ joined #lisp 2021-01-14T01:56:08Z White_Flame: for most cases, REMOVE-UNFEWER would be more grammatically correct 2021-01-14T01:57:18Z scymtym quit (Ping timeout: 260 seconds) 2021-01-14T01:57:34Z rumbler31 quit (Ping timeout: 256 seconds) 2021-01-14T02:09:15Z dbotton joined #lisp 2021-01-14T02:11:35Z ramus joined #lisp 2021-01-14T02:12:35Z dbotton: if anyone over next day or so has time and can try out my tutorial 8 from CLOG running at http://office.botton.com:8080/ I made some critical changes from last test (thank you for using it those that did). The source is at https://github.com/rabbibotton/clog/blob/main/tutorial/08-tutorial.lisp 2021-01-14T02:13:21Z brandflake11 joined #lisp 2021-01-14T02:14:13Z brandflake11: Hey all, I have a question for you all. I am writing a function in lisp, and need to create a list out of the function's arguments. Here is what I have for the function: 2021-01-14T02:14:23Z brandflake11: (defun pick-three (note1 note2 note3) 2021-01-14T02:14:24Z brandflake11: (let ((note-list (list (note1 note2 note3)))) 2021-01-14T02:14:24Z brandflake11: (nth (random 3) note-list))) 2021-01-14T02:14:24Z brandflake11: 2021-01-14T02:14:50Z brandflake11: Now, when I run this, it has errors of course 2021-01-14T02:14:56Z Bike: please use a pastebin service for multi-line pastes. anyway, so this function is supposed to randomly select and return one of its three arguments? 2021-01-14T02:15:15Z brandflake11: Yes, exactly, and sorry about the pastebin thing 2021-01-14T02:15:40Z Bike: The only problem I see in this paste is that you meant to write (list note1 note2 note3). 2021-01-14T02:15:57Z Alfr: brandflake11, assuming note1 isn't a function, there's your error. 2021-01-14T02:16:03Z Bike: other than that it works, though it might not be the best way to do it. 2021-01-14T02:16:42Z brandflake11: Alfr: What do you mean by this? 2021-01-14T02:17:07Z Bike: you wrote (note1 note2 note3). this means it will call the function NOTE1 with two arguments. Since there's no function called NOTE1, you get an error. 2021-01-14T02:17:26Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-14T02:17:29Z Alfr: brandflake11, what Bike said above. You want (list n1 n2 n3), not (list (n1 n2 n3)). 2021-01-14T02:17:45Z Bike: your compiler might alert you to this. SBCL says "Undefined function: NOTE1" when you compile, and "The function NOTE1 is undefined" when you actually call it. 2021-01-14T02:17:51Z brandflake11: Oh, I see 2021-01-14T02:18:08Z nicktick joined #lisp 2021-01-14T02:18:33Z brandflake11: Thanks so much all, it works now! 2021-01-14T02:18:41Z brandflake11: Is there a better way to take the arguments and make a list? 2021-01-14T02:19:11Z Bike: No, but if you all you want to do is pick one of the arguments randomly, you probably don't need to make a list. 2021-01-14T02:19:13Z brandflake11: I tried '(note1 note2 note3), but they gave me the literal variable names as members in the list 2021-01-14T02:19:48Z brandflake11: Bike: I see. I'm not sure what function would help with that though. 2021-01-14T02:19:59Z brandflake11: Is there a function that returns nth of arguments? 2021-01-14T02:20:05Z saturn2: you can do (defun pick-random (&rest args) (nth (random (length args)) args)) 2021-01-14T02:20:32Z brandflake11: I haven't learned about &rest yet, but that's something I need to look into 2021-01-14T02:22:06Z brandflake11: Oh shoot, does that mean I can use any number of arguments? 2021-01-14T02:22:15Z saturn2: yes 2021-01-14T02:22:28Z brandflake11: That's awesome! Thanks so much, I appreciate everyone's help 2021-01-14T02:23:24Z brandflake11: Does the &rest args stand for something? Like is it an abbreviation of a phrase in English? 2021-01-14T02:23:45Z Alfr: There's call-arguments-limit . 2021-01-14T02:24:49Z saturn2: rest is just the word rest, as in the rest of the arguments 2021-01-14T02:25:00Z saturn2: and args is short for arguments 2021-01-14T02:25:14Z brandflake11: saturn2: I see. That makes sense 2021-01-14T02:25:44Z saturn2: args is just a variable name which can be anything you want 2021-01-14T02:26:08Z brandflake11: Oh, and args can substitute where you want the arguments. 2021-01-14T02:26:18Z brandflake11: It's like a meta-variable 2021-01-14T02:27:07Z saturn2: it's just a regular variable, which holds a list of the rest of the arguments 2021-01-14T02:27:36Z brandflake11: That makes more sense 2021-01-14T02:33:02Z judson_ joined #lisp 2021-01-14T02:39:17Z ukari quit (Remote host closed the connection) 2021-01-14T02:40:23Z ukari joined #lisp 2021-01-14T02:40:25Z mmmattyx quit (Quit: Connection closed for inactivity) 2021-01-14T02:40:30Z brandflake11: One more question: can you use &rest with other mandatory variables? Like (note1 note2 &rest args) making note1 and note2 arguments mandatory? 2021-01-14T02:41:34Z brandflake11: Sorry, I meant mandatory arguments 2021-01-14T02:41:38Z wxie quit (Ping timeout: 260 seconds) 2021-01-14T02:43:18Z saturn2: yes, you can 2021-01-14T02:43:22Z fiddlerwoaroof: If you know you have 3 arguments, something like this is probably better: (define pick-three (a b c) (ecase (random 3) (0 a) (1 b) (2 c))) 2021-01-14T02:43:48Z brandflake11: saturn2: that is absolutely sweet 2021-01-14T02:44:16Z brandflake11: fiddlerwoaroof: thanks for this suggestion. I'll look into the ecase function! 2021-01-14T02:44:37Z python476 quit (Ping timeout: 264 seconds) 2021-01-14T02:45:43Z fiddlerwoaroof: My laptop autocorrected defun there... 2021-01-14T02:45:57Z brandflake11: Oh, I didn't even notice 2021-01-14T02:49:12Z pillton joined #lisp 2021-01-14T02:50:19Z saturn2: yes, fiddlerwoaroof's way is more efficient 2021-01-14T02:50:35Z brandflake11: saturn2: What makes it more efficient? Is it easier on memory? 2021-01-14T02:50:47Z brandflake11: saturn2: Or is just a matter of the programming notation 2021-01-14T02:50:47Z brandflake11: ? 2021-01-14T02:51:02Z saturn2: both memory and cpu, it doesn't have to allocate a list or iterate over the list 2021-01-14T02:52:02Z wxie joined #lisp 2021-01-14T02:53:47Z brandflake11: saturn2: That is good to know about and keep in mind 2021-01-14T02:54:12Z saturn2: you could also get the best of both by adding (define-compiler-macro pick-random (&rest args) `(ecase (random ,(length args)) ,@(loop for arg in args for i from 0 collect (list i arg)))) 2021-01-14T02:55:14Z brandflake11: saturn2: Oh jeez, this one looks a little above my head :D 2021-01-14T02:55:38Z brandflake11: That notation is interesting 2021-01-14T02:56:52Z saturn2: that's called quasiquote, it's basically a template 2021-01-14T02:57:17Z saturn2: that macro writes code like what fiddlerwoaroof wrote, but for any number of arguments 2021-01-14T02:58:16Z brandflake11: saturn2: So the macro writes the lisp code itself? 2021-01-14T02:58:41Z saturn2: yeah, that's how macros work 2021-01-14T02:59:38Z saturn2: they are functions that return lisp code, which is then inserted in place of the macro call 2021-01-14T02:59:57Z brandflake11: saturn2: I haven't learned about macros yet either. But man, that is really cool. 2021-01-14T03:01:26Z brandflake11: With a macro, could you create a loop that makes a series of lisp code? 2021-01-14T03:02:34Z saturn2: you mean a macro that recursively uses itself? yes, you can 2021-01-14T03:03:55Z saturn2: and of course you can have regular loops in your macro, the one i wrote above has one 2021-01-14T03:04:57Z brandflake11: :O Wow, that is insane. 2021-01-14T03:05:27Z brandflake11: Would you mind explaining what the ` , and ,@ means in the quasiquote? 2021-01-14T03:05:35Z brandflake11: Or direct me to a good page to read about them? 2021-01-14T03:05:52Z brandflake11: I am looking at the hyperspec, but sometimes it goes a bit over my head 2021-01-14T03:07:05Z aeth: brandflake11: So with quote, it basically follows the distributive property. '(a b c) is essentially like (list 'a 'b 'c) just like (* z (+ x y)) is like (+ (* z x) (* z y)) 2021-01-14T03:07:27Z aeth: Quasiquote is a quote you can unquote. `(a b c) is essentially the same as '(a b c) because there's nothing to unquote so it's just all quoted. 2021-01-14T03:07:49Z aeth: `(a ,b c) however, will "unquote" b and so it's like (list 'a b 'c) instead of like (list 'a 'b 'c) 2021-01-14T03:07:58Z aeth: i.e. it will try to look up the variable b 2021-01-14T03:08:32Z brandflake11: aeth: Thanks so much for the explanation. What does the ,@ mean? 2021-01-14T03:09:05Z aeth: ,@ is a bit more complicated. It's unquote splicing. It basically appends the inner list into the outer list 2021-01-14T03:09:11Z aeth: So `(a b ,@'(c d e) f) => (A B C D E F) 2021-01-14T03:09:26Z aeth: Notice that '(c d e) is quoted. Because otherwise it will try to funcall c 2021-01-14T03:09:49Z brandflake11: aeth: Thanks, I was just about to ask you about that last point 2021-01-14T03:09:54Z aartaka joined #lisp 2021-01-14T03:09:57Z aeth: This last part is because you'll probably really just do `(a b ,@(some-function) f) 2021-01-14T03:10:58Z aeth: As for why you'd need ,@ it's mostly for targeting some macros like LOOP, e.g. (loop repeat 3 do (print "hi")) 2021-01-14T03:11:09Z saturn2: my code above collects a list of ecase clauses and splices them into place 2021-01-14T03:11:39Z Cthulhux` quit (Excess Flood) 2021-01-14T03:11:49Z aeth: If you're writing a macro with quasiquote that generates a loop, you'll probably have to do something like this: (loop ,@(generate-the-clause-here) do (print "hi")) 2021-01-14T03:11:54Z Cthulhux joined #lisp 2021-01-14T03:12:01Z aeth: well, with loop quasiquoted, of course 2021-01-14T03:12:08Z dbotton quit (Quit: Leaving) 2021-01-14T03:12:09Z brandflake11: saturn2: That makes sense, since you don't want separate lists together. You want one lits 2021-01-14T03:12:12Z brandflake11: *list 2021-01-14T03:12:59Z aeth: The other time you see ,@ a lot is with `(progn ,@body) in macros that have an &body body which is essentially just giving you the rest as a list just like &rest rest 2021-01-14T03:14:56Z pfdietz joined #lisp 2021-01-14T03:15:31Z brandflake11: Do you all ever get confused with the amount of ' you have to apply? 2021-01-14T03:15:44Z aeth: The defmacro for WHEN might look something like this (name changed so you can evaluate it): (defmacro when* (test &body forms) `(if ,test (progn ,@forms) nil)) 2021-01-14T03:15:52Z aeth: nested 's aren't that big of a deal 2021-01-14T03:15:57Z aeth: nested `s are extremely confusing 2021-01-14T03:16:08Z aeth: At that point, just use helper functions to keep it simple 2021-01-14T03:18:33Z aeth: If a function is (defined in another file that's loaded first) or (wrapped in an EVAL-WHEN) then it can be used as a helper function... at least for macros; I've never really had to use compiler macros. 2021-01-14T03:19:42Z brandflake11: aeth: Oh, that makes more sense. 2021-01-14T03:20:33Z brandflake11: Is a helper function one that is previously defined to be used in another function? 2021-01-14T03:20:50Z brandflake11: Sorry if that's a silly question 2021-01-14T03:21:33Z aeth: I personally see it as a function that's designed to keep another function (or a macro) short/simple/easy even if it's only going to be called from one caller (at least, outside of unit tests) 2021-01-14T03:21:45Z aeth: but it doesn't have an official hyperspec definition afaik 2021-01-14T03:22:28Z brandflake11: I apologize again for another question, but what exactly is a unit test? 2021-01-14T03:22:30Z aeth: A lot of people don't like functions that are only called from one place, but I love them, especially in macros. 2021-01-14T03:22:45Z aeth: As for unit tests, those are tests of a unit... usually a function or a class or things like that afaik. 2021-01-14T03:23:18Z aeth: If you break up a big, messy macro into lots of functions, then you can test to make sure that any changes you make don't change any of those functions, which gives you more confidence to mess around with really tricky macros 2021-01-14T03:24:15Z aeth: If you just have the macro, then you'll have to write a lot of tests on the macro directly, probably with MACROEXPAND-1 to test expanding the macro 2021-01-14T03:27:16Z aeth: More concreately, you could have a function for your macro that turns (foo bar baz) into ((foo (make-quux 'foo)) (bar (make-quux 'bar)) (baz (make-quux 'baz))) and this is small, simple, and easy to test. 2021-01-14T03:28:08Z aeth: then the macro itself just does something like `(let ,(your-function input) ,@body) 2021-01-14T03:28:48Z brandflake11: aeth: Have you had to change the way you format your macros in professional environments because some people don't like formatting like that? 2021-01-14T03:30:20Z aeth: Try to match the style of the person who originally wrote the file. There are lots of little things that can be different in styles. 2021-01-14T03:30:49Z mrcom quit (Ping timeout: 265 seconds) 2021-01-14T03:30:53Z aeth: In general, though, writing macros is rare. 2021-01-14T03:33:14Z mrcom joined #lisp 2021-01-14T03:34:07Z mindCrime quit (Ping timeout: 260 seconds) 2021-01-14T03:39:03Z brandflake11: Thanks to all of the help I received on here. I have created my random sequencer in common music successfully! 2021-01-14T03:39:42Z saturn2: nice :) 2021-01-14T03:42:13Z gaqwas quit (Ping timeout: 264 seconds) 2021-01-14T03:43:11Z gaqwas joined #lisp 2021-01-14T03:43:12Z gaqwas quit (Changing host) 2021-01-14T03:43:12Z gaqwas joined #lisp 2021-01-14T03:45:44Z pfdietz quit (Quit: Connection closed) 2021-01-14T03:47:05Z zaquest quit (Quit: Leaving) 2021-01-14T03:47:57Z v88m joined #lisp 2021-01-14T03:48:49Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-14T03:49:35Z pfdietz joined #lisp 2021-01-14T03:49:57Z zaquest joined #lisp 2021-01-14T03:52:59Z galex-713 quit (Ping timeout: 246 seconds) 2021-01-14T03:53:17Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-14T03:53:34Z matryoshka joined #lisp 2021-01-14T03:58:51Z mrcom quit (Ping timeout: 265 seconds) 2021-01-14T04:02:44Z galex-713 joined #lisp 2021-01-14T04:09:30Z Dizidentu joined #lisp 2021-01-14T04:12:14Z beach: Good morning everyone! 2021-01-14T04:14:28Z Dizidentu: good morning 2021-01-14T04:19:53Z mrcom joined #lisp 2021-01-14T04:22:47Z brandflake11 quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-14T04:23:10Z _jrjsmrtn quit (Ping timeout: 246 seconds) 2021-01-14T04:23:14Z brandflake11 joined #lisp 2021-01-14T04:23:29Z __jrjsmrtn__ joined #lisp 2021-01-14T04:25:14Z bitmapper quit (Quit: Connection closed for inactivity) 2021-01-14T04:27:39Z stoneglass joined #lisp 2021-01-14T04:28:38Z manicennui left #lisp 2021-01-14T04:30:08Z beach: FILTER is not a great name for a filtering function, because it doesn't say whether the objects for which the predicate returns true are kept or discarded. REMOVE-IF and REMOVE-IF-NOT are much better. 2021-01-14T04:37:42Z judson_ joined #lisp 2021-01-14T04:39:44Z judson_ quit (Client Quit) 2021-01-14T04:40:01Z brandflake11 quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-14T04:43:50Z beach: Dizidentu: So I saw in the logs that you are a C++ programmer. I think it would be a good idea for you to learn some Common Lisp to get another perspective on programming. 2021-01-14T04:45:44Z rogersm quit (Ping timeout: 258 seconds) 2021-01-14T04:48:42Z rogersm joined #lisp 2021-01-14T04:57:01Z erronius quit 2021-01-14T04:59:24Z Bike quit (Quit: Lost terminal) 2021-01-14T05:00:54Z aeth_ joined #lisp 2021-01-14T05:01:00Z aeth quit (Disconnected by services) 2021-01-14T05:01:07Z aeth_ is now known as aeth 2021-01-14T05:04:35Z Khisanth quit (Ping timeout: 265 seconds) 2021-01-14T05:08:27Z v88m quit (Ping timeout: 265 seconds) 2021-01-14T05:17:31Z Khisanth joined #lisp 2021-01-14T05:17:33Z rogersm quit (Ping timeout: 258 seconds) 2021-01-14T05:22:07Z waleee-cl quit (Quit: Connection closed for inactivity) 2021-01-14T05:22:10Z andreyorst joined #lisp 2021-01-14T05:24:24Z johnjay quit (Ping timeout: 256 seconds) 2021-01-14T05:25:15Z judson_ joined #lisp 2021-01-14T05:25:20Z v88m joined #lisp 2021-01-14T05:26:59Z stoneglass quit (Read error: Connection reset by peer) 2021-01-14T05:27:31Z johnjay joined #lisp 2021-01-14T05:28:25Z orivej quit (Ping timeout: 264 seconds) 2021-01-14T05:28:46Z hineios4 joined #lisp 2021-01-14T05:30:49Z hineios quit (Ping timeout: 264 seconds) 2021-01-14T05:30:49Z hineios4 is now known as hineios 2021-01-14T05:31:19Z rogersm joined #lisp 2021-01-14T05:31:54Z galiant joined #lisp 2021-01-14T05:35:34Z rogersm quit (Ping timeout: 258 seconds) 2021-01-14T05:37:15Z galiant quit (Remote host closed the connection) 2021-01-14T05:38:29Z rogersm joined #lisp 2021-01-14T05:42:09Z aartaka_d joined #lisp 2021-01-14T05:45:45Z aartaka quit (Ping timeout: 240 seconds) 2021-01-14T05:46:36Z rogersm_ joined #lisp 2021-01-14T05:47:04Z rogersm quit (Ping timeout: 258 seconds) 2021-01-14T05:55:20Z Dizidentu: beach I have python on my list before lisp 2021-01-14T05:55:42Z beach: Oh, that's a bad idea. 2021-01-14T05:55:59Z Dizidentu: they are the same purpose? 2021-01-14T05:56:08Z Dizidentu: is lisp like python? 2021-01-14T05:56:13Z pillton quit (Quit: ERC (IRC client for Emacs 27.1)) 2021-01-14T05:56:17Z Dizidentu: anyways 2021-01-14T05:56:21Z beach: Python is a pure interpreter, which means you can't really get any performance out of it, unless you write your code in C. 2021-01-14T05:56:44Z beach: Most Common Lisp systems compile on the fly, so you can write all your code in a truly high-level language. 2021-01-14T05:57:02Z aeth quit (Ping timeout: 272 seconds) 2021-01-14T05:57:21Z beach: Furthermore, Python is not homoiconic, so you can't really do any metaprogramming in it, like macros. 2021-01-14T05:57:50Z White_Flame: each languages seems to have its own definition of "metaprogramming". For python, it seems to be adding hooks on object methods 2021-01-14T05:58:06Z White_Flame does not accept that definition 2021-01-14T05:58:13Z Dizidentu: :) 2021-01-14T05:58:28Z aeth joined #lisp 2021-01-14T05:58:29Z beach: White_Flame: Thanks. I am not following the Python terminology, so I appreciate the information. 2021-01-14T05:58:41Z Dizidentu: I would stay but I just got back and I want to catch this flight into slumber land while I still can :| 2021-01-14T05:59:19Z beach: Dizidentu: Sleep well. 2021-01-14T05:59:27Z Dizidentu: hey, thanks 2021-01-14T06:00:30Z wxie quit (Quit: wxie) 2021-01-14T06:00:38Z wxie1 joined #lisp 2021-01-14T06:01:17Z beach: And, no, I think the purpose of Python is as a "scripting language", whereas Common Lisp is a general-purpose programming language. 2021-01-14T06:02:59Z wxie1 is now known as wxie 2021-01-14T06:05:12Z saturn2: it doesn't seem like people care much about that distinction anymore 2021-01-14T06:05:50Z White_Flame: because most people don't actually do core programming anymore, but rather call libraries (iow scripting) 2021-01-14T06:05:50Z beach: But they should, shouldn't they? 2021-01-14T06:06:06Z White_Flame: one then should wonder where the libraries come from 2021-01-14T06:06:22Z beach: Mhm. 2021-01-14T06:06:50Z saturn2: i mean, people build full applications in python 2021-01-14T06:07:06Z White_Flame: and in tcl as well 2021-01-14T06:07:07Z beach: I am sorry to hear that. 2021-01-14T06:07:51Z beach: drmeister once showed us a site that gave the cost in electric power per computation unit for various languages, and Python is really bad. 2021-01-14T06:08:07Z beach: Sorry, electric ENERGY per computation unit. 2021-01-14T06:09:16Z saturn2: yeah, the python interpreter is astonishingly slow 2021-01-14T06:12:39Z parjanya joined #lisp 2021-01-14T06:16:18Z narimiran joined #lisp 2021-01-14T06:16:24Z parjanya: mornings! Is there a function, or an easy test... to check if an object can be printed readably? 2021-01-14T06:20:19Z sauvin joined #lisp 2021-01-14T06:23:46Z beach: Probably not. 2021-01-14T06:24:35Z beach: The answer would be influenced by things like methods on PRINT-OBJECT, and the existence of reader macros. 2021-01-14T06:24:53Z judson_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2021-01-14T06:29:18Z White_Flame: (handler-case (let ((*print-readably* t)) (write-to-string nil)) (t (t) t)) 2021-01-14T06:29:19Z White_Flame: "easy" test? 2021-01-14T06:29:29Z White_Flame: oops, NIL outside the write-to-string, as a return value 2021-01-14T06:30:54Z catalinbostan joined #lisp 2021-01-14T06:31:10Z White_Flame: actually, (ignore-errors (...try to print readably...) t), returning NIL if it isn't readable, is easier 2021-01-14T06:31:27Z White_Flame: *readably printable 2021-01-14T06:33:53Z parjanya: ah, very good idea, thanks! I tried finding a way to chase the method for printing, but no luck 2021-01-14T06:34:25Z iskander- quit (Ping timeout: 264 seconds) 2021-01-14T06:40:46Z mrcom quit (Ping timeout: 265 seconds) 2021-01-14T07:01:22Z fiddlerwoaroof: That'll still output #< reader macros 2021-01-14T07:02:58Z White_Flame: could be. Printing and testing for a "#<" prefix was my first idea 2021-01-14T07:03:19Z beach: White_Flame: That's a nice idea! 2021-01-14T07:03:44Z stargazesparkleM quit (Quit: Connection closed for inactivity) 2021-01-14T07:04:17Z White_Flame: I just tested with function objects, and those blew up when *print-readably* was set 2021-01-14T07:04:54Z flip214: how about reading the printed output in a ignore-case? 2021-01-14T07:04:58Z flip214: *ignore-errors 2021-01-14T07:05:09Z White_Flame: yep, read a few lines more 2021-01-14T07:05:19Z White_Flame: (irc lines) 2021-01-14T07:05:35Z andreyorst` joined #lisp 2021-01-14T07:05:54Z fiddlerwoaroof: This works (let ((*print-readably* t)) (write-to-string (make-hash-table))) 2021-01-14T07:05:55Z parjanya: it works ok here with ignore-case even with functions 2021-01-14T07:05:58Z andreyorst` quit (Remote host closed the connection) 2021-01-14T07:06:02Z fiddlerwoaroof: prints "#" 2021-01-14T07:06:16Z abhixec quit (Ping timeout: 246 seconds) 2021-01-14T07:06:58Z White_Flame: disclaimer: what I proposed was an idea, not a solution ;) 2021-01-14T07:08:36Z andreyorst quit (Ping timeout: 240 seconds) 2021-01-14T07:08:53Z flip214: White_Flame: sorry, I haven't seen READ mentioned yet. 2021-01-14T07:08:54Z flip214: (read-from-string (with-output-to-string (s) (write '(1 2) :stream s :readably t))) 2021-01-14T07:09:08Z White_Flame: ah, nifty 2021-01-14T07:09:25Z parjanya: https://edgard.bikelis.com/lisp/printablep.txt 2021-01-14T07:10:23Z White_Flame: if you truly do want to prune the values, then (values (thing-that-returns-multiple-values...)) does only return the first 2021-01-14T07:10:50Z parjanya: I suspected there was a better way :-$ tx 2021-01-14T07:11:36Z parjanya: works beautifully on all my extensive five tests : o ) 2021-01-14T07:11:57Z White_Flame: even hash tables? 2021-01-14T07:12:09Z parjanya: yep! 2021-01-14T07:12:27Z parjanya: I’m on CCL, so not sure about the others yet 2021-01-14T07:16:46Z parjanya: turns out clisp and sbcl do output something, sigh 2021-01-14T07:17:40Z edgar-rft quit (Quit: Leaving) 2021-01-14T07:17:50Z White_Flame: hmm, is that a bug re the standard? 2021-01-14T07:17:59Z White_Flame: implementation bugs, that is 2021-01-14T07:18:23Z White_Flame: "If printing an object readably is not possible, an error of type print-not-readable is signaled rather than using a syntax (e.g., the ``#<'' syntax) that would not be readable by the same implementation." 2021-01-14T07:20:40Z mindCrime joined #lisp 2021-01-14T07:24:13Z rgherdt joined #lisp 2021-01-14T07:25:13Z rumbler31 joined #lisp 2021-01-14T07:27:16Z jello_pudding joined #lisp 2021-01-14T07:28:01Z ralt joined #lisp 2021-01-14T07:29:30Z Blukunfando quit (Ping timeout: 272 seconds) 2021-01-14T07:30:38Z mindCrime quit (Ping timeout: 264 seconds) 2021-01-14T07:31:40Z attila_lendvai joined #lisp 2021-01-14T07:33:18Z rumbler31_ quit (Ping timeout: 260 seconds) 2021-01-14T07:33:31Z todun joined #lisp 2021-01-14T07:45:13Z scymtym__ joined #lisp 2021-01-14T07:49:08Z scymtym_ quit (Ping timeout: 272 seconds) 2021-01-14T07:54:01Z anticrisis quit (Read error: Connection reset by peer) 2021-01-14T07:56:06Z frgo_ quit (Remote host closed the connection) 2021-01-14T07:56:35Z frgo joined #lisp 2021-01-14T08:00:06Z rumbler31_ joined #lisp 2021-01-14T08:01:17Z frgo quit (Ping timeout: 260 seconds) 2021-01-14T08:12:13Z Tordek quit (Ping timeout: 264 seconds) 2021-01-14T08:12:19Z Cymew joined #lisp 2021-01-14T08:12:25Z vert2 quit (Ping timeout: 246 seconds) 2021-01-14T08:12:52Z dwts quit (Ping timeout: 256 seconds) 2021-01-14T08:13:57Z Tordek joined #lisp 2021-01-14T08:14:10Z vert2 joined #lisp 2021-01-14T08:14:33Z dwts joined #lisp 2021-01-14T08:17:03Z aeth quit (Ping timeout: 260 seconds) 2021-01-14T08:17:31Z todun quit (Quit: todun) 2021-01-14T08:19:01Z aeth joined #lisp 2021-01-14T08:21:52Z surabax joined #lisp 2021-01-14T08:23:14Z amb007 quit (Read error: Connection reset by peer) 2021-01-14T08:23:41Z amb007 joined #lisp 2021-01-14T08:24:25Z amb007 quit (Read error: Connection reset by peer) 2021-01-14T08:25:21Z amb007 joined #lisp 2021-01-14T08:27:35Z rgherdt quit (Remote host closed the connection) 2021-01-14T08:27:57Z rgherdt joined #lisp 2021-01-14T08:29:44Z xanderle_ joined #lisp 2021-01-14T08:30:37Z mrcom joined #lisp 2021-01-14T08:31:03Z xanderle quit (Ping timeout: 260 seconds) 2021-01-14T08:39:05Z xificurC joined #lisp 2021-01-14T08:40:22Z slyrus joined #lisp 2021-01-14T08:43:58Z frgo joined #lisp 2021-01-14T08:45:49Z frgo quit (Read error: Connection reset by peer) 2021-01-14T08:46:41Z frgo joined #lisp 2021-01-14T08:48:36Z devon quit (Ping timeout: 240 seconds) 2021-01-14T08:52:37Z varjag joined #lisp 2021-01-14T08:52:39Z pve joined #lisp 2021-01-14T08:57:49Z makomo joined #lisp 2021-01-14T08:58:33Z xificurC: yesterday someone pointed out I can define a package local nickname for a package, where can I do that? I don't see this option in the defpackage clhs page 2021-01-14T08:59:53Z rogersm_ quit (Ping timeout: 258 seconds) 2021-01-14T09:00:36Z karlosz quit (Quit: karlosz) 2021-01-14T09:00:46Z karlosz joined #lisp 2021-01-14T09:01:38Z rogersm joined #lisp 2021-01-14T09:01:38Z xificurC: found this https://gist.github.com/phoe/2b63f33a2a4727a437403eceb7a6b4a3 2021-01-14T09:02:54Z rogersm_ joined #lisp 2021-01-14T09:06:01Z rogersm quit (Ping timeout: 258 seconds) 2021-01-14T09:06:18Z xificurC: I'm really glad this is getting implemented, it's a huge boon in the lisp that doesn't like to get discussed here (or even be called a lisp) 2021-01-14T09:06:54Z hendursa1 joined #lisp 2021-01-14T09:07:15Z heisig joined #lisp 2021-01-14T09:07:25Z nicktick quit (Ping timeout: 240 seconds) 2021-01-14T09:09:23Z hendursaga quit (Ping timeout: 240 seconds) 2021-01-14T09:11:17Z beach: xificurC: What does "the lisp that doesn't like to get discussed here" mean? 2021-01-14T09:11:37Z xificurC: beach: clojure 2021-01-14T09:12:53Z flip214: well, the topic says "Common Lisp" 2021-01-14T09:13:00Z beach: xificurC: There is widespread agreement, even among the commercial Common Lisp vendors to implement package-local nicknames. But how does the implementation of package-local nicknames for Common Lisp benefit "other lisp"? 2021-01-14T09:13:26Z mfiano: PLN has been a thing for 9 years now 2021-01-14T09:13:41Z mfiano: Sorry 10 2021-01-14T09:15:40Z xificurC: I'm saying I've been using local nicknames (aliases) in clojure and am happy I can use them in CL now as well 2021-01-14T09:16:11Z xificurC: I mentioned it because I thought it might have been an inspiration to finally implement it 2021-01-14T09:18:42Z xificurC: the last thing I'd like is for `(i:iter (for i from 1 to 10) (collect i))` work. But the reader screws me over, even though `iter` could resolve `for` and `collect` during macroexpansion 2021-01-14T09:19:54Z beach: You need to complain to the person who wrote the ITER library. 2021-01-14T09:20:27Z beach: Or, you can use LOOP instead, which is standard. 2021-01-14T09:21:14Z mrios22 joined #lisp 2021-01-14T09:22:20Z xificurC: beach: you mean it would be possible to do that? I thought it's not possible 2021-01-14T09:22:32Z beach: To do what? 2021-01-14T09:23:02Z xificurC: that example, `(i:iter (for i from 1 to 10) (collect i))`, to work 2021-01-14T09:23:11Z mfiano: Not only possible but less code and more readable by others 2021-01-14T09:23:19Z mfiano: (loop for i from 1 to 10 collect i) 2021-01-14T09:23:36Z beach: LOOP can do it, so I don't see why ITER could not. But it would likely require a radical restructuring of the code. 2021-01-14T09:24:20Z xificurC: loop is a builtin, so it could have the privilege to do that while others can't 2021-01-14T09:24:43Z jonatack quit (Ping timeout: 260 seconds) 2021-01-14T09:24:49Z beach: xificurC: It is a simple matter of using the names of the symbols involved instead of the symbols themselves. 2021-01-14T09:25:00Z flip214: xificurC: how about i::(iter (for i from i to 10) (collect i))? but then the symbol "i" would be in the iter package... 2021-01-14T09:25:14Z beach: xificurC: But I am guessing that FOR is a local macro introduced by ITER, and that would have to change. 2021-01-14T09:25:19Z xificurC: I remember iter being praised, now I see it being, ehm, not praised 2021-01-14T09:25:31Z mfiano: A lot of people shy away from trying to understand codebases using ITER 2021-01-14T09:25:45Z mfiano: flip214: That's not standard 2021-01-14T09:26:24Z beach: xificurC: It is possible that ITER can do some things that LOOP can not, but the fact that ITER is not standard is an argument against it, especially since LOOP can handle most situations. 2021-01-14T09:26:30Z jonatack joined #lisp 2021-01-14T09:27:03Z beach: xificurC: The argument that people use in favor of ITER and against LOOP is often that "LOOP is not Lisp-y", which is silly of course, since it is part of the standard. 2021-01-14T09:27:13Z xificurC: mfiano why shy away? I don't find it much harder to read or understand than loop. Are there some inherent flaws in its implementation? 2021-01-14T09:28:36Z xificurC: beach I thought the main argument is that an external package can extend iter, e.g. a database library exposing a cursor can plug it into it 2021-01-14T09:28:47Z beach: xificurC: An external library that may or may not be maintained in the future, and that does little more than a standard facility should be given some thought before being used. 2021-01-14T09:28:52Z heisig: xificurC: It is a question of the amount of 'vocabulary' that I need to know to read your code. LOOP is (for good or for bad) part of the vocabulary we all know. ITER isn't. 2021-01-14T09:28:54Z hnOsmium0001 quit (Quit: Connection closed for inactivity) 2021-01-14T09:29:12Z mfiano: It's not standard Lisp which everyone is familiar with, it can have its forms broken up and spread out, it is often used like it is standard with use-package. 2021-01-14T09:29:23Z beach: xificurC: I don't see any extension being used by your code there. 2021-01-14T09:30:20Z flip214: heisig: but the same argument applies to lparallel, cl-who, alexandria, and so on and on. 2021-01-14T09:30:50Z beach: flip214: There is no standard facility corresponding to those. 2021-01-14T09:30:53Z beach: So that's different. 2021-01-14T09:31:12Z xificurC: beach I was showing the simplest example, not a real one. At this point in time I'm not using anything that loop doesn't handle, so it's easy to switch back 2021-01-14T09:31:26Z heisig: flip214: It is a difference whether you introduce functions or macros. And even with macros, there is a difference between introducing an obvious WITH-* macro, or an entirely new control-flow construct. 2021-01-14T09:31:38Z beach: xificurC: So in that case, use LOOP for everything that does not require an extension. 2021-01-14T09:32:32Z mfiano: In 15 years I have not needed LOOP to do anything else. One has to be careful about shiny things, features you think you might need, or think they will benefit you, but in turn do more harm than good. 2021-01-14T09:32:32Z xificurC: this is the lisp schizofrenia I never understood - an infinitely extensible language that nobody wants to extend 2021-01-14T09:32:47Z flip214: beach: I don't think that's a good argument. If something is being used often, it becomes mainstream - and then you'll see it so often that you'll just know it. 2021-01-14T09:33:04Z beach: I totally agree with mfiano. 2021-01-14T09:33:13Z flip214: so your argument sounds to me like "something must be used everywhere to be used everywhere", which is loopy ;) 2021-01-14T09:33:40Z beach: xificurC: It is extended most often on a per-application basis. That's the beauty of it. 2021-01-14T09:33:40Z xificurC: that was a reaction to "It is a question of the amount of 'vocabulary' that I need to know to read your code" 2021-01-14T09:34:09Z flip214: heisig: so a CPS transform is bad, as it produces new control-flow semantics? 2021-01-14T09:34:37Z jonatack quit (Quit: jonatack) 2021-01-14T09:34:57Z jonatack joined #lisp 2021-01-14T09:35:27Z beach: xificurC: Applications introduce new vocabulary in the form of functions, macros, classes, etc. That vocabulary becomes specific to the application and its domain. 2021-01-14T09:35:43Z xificurC: beach why deprive libraries of that extensibility? 2021-01-14T09:35:44Z beach: xificurC: That kind of extension is common and perfectly acceptable. 2021-01-14T09:36:09Z beach: xificurC: I have no intention of depriving anyone of anything. 2021-01-14T09:36:13Z heisig: xificurC: Extending Lisp is just something that shouldn't be done lightly. If you are working with music, this is a good reason to introduce custom notation. But 'I don't like LOOP' is not a very good reason for introducing custom notation. 2021-01-14T09:37:10Z flip214: heisig: but the big reason for ITER is that it's notation is more Lisp-like! 2021-01-14T09:37:42Z beach: "The argument that people use in favor of ITER and against LOOP is often that "LOOP is not Lisp-y", which is silly of course, since it is part of the standard." 2021-01-14T09:37:53Z mfiano: The flexibility of Lisp allows you to use iterate or extend the language with new syntax of your own. This is why Lisp suffers from NIH, being so flexible and thus designed for small teams, makes it often more desirable and easier to re-implement a piece of software yourself, than to try to understand someone else's code. After all, code is just a projection of your mind, and trying to understand 2021-01-14T09:37:55Z mfiano: someone else's moulding of the language for a particular domain usually doesn't map too well. 2021-01-14T09:41:40Z Khisanth quit (Ping timeout: 246 seconds) 2021-01-14T09:43:11Z xificurC: mfiano "In 15 years I have not needed LOOP to do anything else" - I find this thinking backwards. LOOP was chosen and implemented by a committee. That committee could have accepted SERIES just as well. Or it could have accepted none of them and we would be writing mapcars and the like. In that world if a user comes asking about LOOP, which is now a 2021-01-14T09:43:11Z xificurC: library, would the argument be "In 15 years I have not needed LOOP because mapcar and friends can do everything LOOP can"? 2021-01-14T09:43:56Z mfiano: xificurC: If we had series for decades of widespread use I would have "thought forward" 2021-01-14T09:44:24Z xificurC: what does that mean? 2021-01-14T09:46:59Z surabax quit (Quit: Leaving) 2021-01-14T09:47:05Z xificurC: I only picked up 2 dependencies so far. I see iterate is not, ehm, famous around here :) The second is trivia. Is trivia OK? 2021-01-14T09:47:20Z heisig: xificurC: I think I know how you feel about LOOP. It is not that I haven't used ITER myself because it is more powerful and flexible. But here I am, back to using LOOP. And why is that? Because having a powerful iteration construct is really not that important. 2021-01-14T09:47:27Z heisig: Readable code is much more important. 2021-01-14T09:48:05Z heisig: I think Trivia is OK though, but I don't know how others think about that. 2021-01-14T09:48:07Z mfiano: When I first began using Lisp I too used iterate for a short while, but I couldn't agree more with heisig. 2021-01-14T09:48:12Z flip214: heisig: and ITER isn't as readable as LOOP? Which difference (apart from the parens) do you see, in typical use? 2021-01-14T09:48:16Z xificurC: heisig so you're saying in the years you programmed you find LOOP more readable than ITER, is that correct? 2021-01-14T09:49:17Z flip214: another feature of ITER is that the clauses like COLLECT can be used in subforms as well - LOOP requires them at the loop-level, which is awful sometimes 2021-01-14T09:49:36Z heisig: xificurC: 100% of the Lisp programmers know about LOOP, but only at most 60% (at most) know about ITER. That settles it for me. 2021-01-14T09:50:33Z mfiano: LOOP only cares about the symbol name for LOOP keywords. Iterate requires you to modify symbol property lists for synonyms. 2021-01-14T09:50:43Z mfiano: Which even contradicts its own documentation in this regard. 2021-01-14T09:51:49Z catalinbostan quit (Ping timeout: 246 seconds) 2021-01-14T09:52:00Z xificurC: I'll be getting rid of iterate then, at least for now. 2021-01-14T09:52:07Z xificurC: thanks for the discussion 2021-01-14T09:52:20Z xificurC: mfiano it requires modification of what? 2021-01-14T09:53:43Z flip214: heisig: 10% of programmers know Java, but only 1% of programmers know Lisp. How is that an argument against Lisp? (numbers invented) 2021-01-14T09:54:24Z flip214: I just know that people have to learn new things all the time... 2021-01-14T09:54:41Z beach: flip214: Java does not have Common Lisp (with a different syntax) already built in. 2021-01-14T09:54:46Z mfiano: xificurC: symbol-plists of iterates symbols 2021-01-14T09:55:10Z flip214: of course, there's no reason to invent new code-flow macros all the time - but a nearly 1:1 translation of a construct defined in the standard is on the safe side, me thinks. 2021-01-14T09:55:12Z Khisanth joined #lisp 2021-01-14T09:56:01Z aeth quit (Ping timeout: 264 seconds) 2021-01-14T09:57:52Z aeth joined #lisp 2021-01-14T09:58:28Z luni joined #lisp 2021-01-14T10:01:15Z heisig: flip214: I think the benefits of using Lisp over Java are greater than those of using ITER over LOOP. But even then I occasionally choose Java or Python over Lisp for some projects, because it is more accessible for the target audience. (Not often though, and not gladly) 2021-01-14T10:10:49Z jeosol quit (Quit: Connection closed) 2021-01-14T10:13:03Z python476 joined #lisp 2021-01-14T10:14:45Z igemnace quit (Quit: WeeChat 3.0) 2021-01-14T10:15:45Z luni left #lisp 2021-01-14T10:20:43Z andreyorst` joined #lisp 2021-01-14T10:20:45Z mrios22 quit (Ping timeout: 240 seconds) 2021-01-14T10:24:12Z ludston joined #lisp 2021-01-14T10:24:17Z rumbler31 quit (Remote host closed the connection) 2021-01-14T10:24:22Z wxie quit (Ping timeout: 246 seconds) 2021-01-14T10:31:56Z ljavorsk joined #lisp 2021-01-14T10:41:37Z pfdietz quit (Quit: Connection closed) 2021-01-14T10:55:00Z mrcom quit (Ping timeout: 265 seconds) 2021-01-14T10:55:10Z johnjay quit (Ping timeout: 246 seconds) 2021-01-14T10:58:18Z johnjay joined #lisp 2021-01-14T10:58:19Z liberliver quit (Ping timeout: 246 seconds) 2021-01-14T10:59:57Z liberliver joined #lisp 2021-01-14T11:01:16Z ljavorsk quit (Ping timeout: 240 seconds) 2021-01-14T11:04:27Z frgo quit (Remote host closed the connection) 2021-01-14T11:05:31Z frgo joined #lisp 2021-01-14T11:08:41Z Nilby joined #lisp 2021-01-14T11:10:28Z frgo quit (Ping timeout: 265 seconds) 2021-01-14T11:13:25Z amb007 quit (Read error: Connection reset by peer) 2021-01-14T11:14:23Z amb007 joined #lisp 2021-01-14T11:15:40Z attila_lendvai quit (Ping timeout: 256 seconds) 2021-01-14T11:17:19Z rumbler31 joined #lisp 2021-01-14T11:21:34Z rumbler31 quit (Ping timeout: 256 seconds) 2021-01-14T11:23:46Z amerigo joined #lisp 2021-01-14T11:24:53Z aeth quit (Ping timeout: 260 seconds) 2021-01-14T11:26:33Z aeth joined #lisp 2021-01-14T11:27:59Z kaftejiman joined #lisp 2021-01-14T11:28:00Z frodef quit (Remote host closed the connection) 2021-01-14T11:29:32Z amb007 quit (Ping timeout: 272 seconds) 2021-01-14T11:29:58Z amb007 joined #lisp 2021-01-14T11:30:25Z frodef joined #lisp 2021-01-14T11:32:16Z hineios quit (Ping timeout: 240 seconds) 2021-01-14T11:32:37Z hineios joined #lisp 2021-01-14T11:32:48Z ukari quit (Remote host closed the connection) 2021-01-14T11:33:30Z ukari joined #lisp 2021-01-14T11:37:39Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-14T11:39:49Z vegansbane6 quit (Quit: The Lounge - https://thelounge.chat) 2021-01-14T11:48:46Z xificurC quit (Quit: Connection closed) 2021-01-14T11:57:19Z mrcom joined #lisp 2021-01-14T12:03:00Z mrios22 joined #lisp 2021-01-14T12:06:29Z vegansbane6 joined #lisp 2021-01-14T12:08:49Z galex-713 joined #lisp 2021-01-14T12:12:22Z fanta1 joined #lisp 2021-01-14T12:13:21Z skapata quit (Remote host closed the connection) 2021-01-14T12:15:34Z ukari quit (Remote host closed the connection) 2021-01-14T12:15:58Z random-nick joined #lisp 2021-01-14T12:16:08Z ukari joined #lisp 2021-01-14T12:16:44Z amb007 quit (Read error: Connection reset by peer) 2021-01-14T12:17:02Z amb007 joined #lisp 2021-01-14T12:27:35Z bitmapper joined #lisp 2021-01-14T12:33:05Z amb007 quit (Read error: Connection reset by peer) 2021-01-14T12:33:14Z amb007 joined #lisp 2021-01-14T12:40:12Z frgo joined #lisp 2021-01-14T12:40:56Z jonatack quit (Quit: jonatack) 2021-01-14T12:42:22Z frgo_ joined #lisp 2021-01-14T12:45:57Z frgo quit (Ping timeout: 260 seconds) 2021-01-14T12:49:46Z jonatack joined #lisp 2021-01-14T12:49:47Z rozenglass joined #lisp 2021-01-14T12:50:54Z fanta1 quit (Quit: fanta1) 2021-01-14T12:50:55Z Cthulhux quit (Changing host) 2021-01-14T12:50:55Z Cthulhux joined #lisp 2021-01-14T12:52:16Z catalinbostan joined #lisp 2021-01-14T12:53:13Z scymtym__ quit (Remote host closed the connection) 2021-01-14T12:53:28Z nmg joined #lisp 2021-01-14T12:53:43Z scymtym joined #lisp 2021-01-14T12:54:52Z jonatack quit (Ping timeout: 246 seconds) 2021-01-14T12:55:21Z jonatack joined #lisp 2021-01-14T13:01:30Z xificurC joined #lisp 2021-01-14T13:06:25Z ludston quit (Ping timeout: 240 seconds) 2021-01-14T13:18:25Z orivej joined #lisp 2021-01-14T13:19:47Z gko_ joined #lisp 2021-01-14T13:28:51Z Bike joined #lisp 2021-01-14T13:29:52Z jeosol joined #lisp 2021-01-14T13:30:39Z gko_ quit (Remote host closed the connection) 2021-01-14T13:33:22Z caret quit (Read error: Connection reset by peer) 2021-01-14T13:36:46Z rumbler31_ quit (Ping timeout: 256 seconds) 2021-01-14T13:37:46Z caret joined #lisp 2021-01-14T13:42:10Z aartaka joined #lisp 2021-01-14T13:43:08Z notzmv quit (Ping timeout: 260 seconds) 2021-01-14T13:43:09Z ebrasca joined #lisp 2021-01-14T13:44:11Z villanella joined #lisp 2021-01-14T13:44:57Z mankaev quit (Ping timeout: 272 seconds) 2021-01-14T13:45:08Z aartaka_d quit (Ping timeout: 265 seconds) 2021-01-14T13:45:54Z hendursa1 quit (Remote host closed the connection) 2021-01-14T13:46:48Z hendursa1 joined #lisp 2021-01-14T13:48:20Z wsinatra joined #lisp 2021-01-14T13:49:13Z mankaev joined #lisp 2021-01-14T13:51:30Z guaqua quit (Ping timeout: 256 seconds) 2021-01-14T13:51:59Z guaqua joined #lisp 2021-01-14T13:53:16Z mankaev quit (Ping timeout: 240 seconds) 2021-01-14T13:54:11Z hendursa1 quit (Quit: hendursa1) 2021-01-14T13:54:26Z hendursaga joined #lisp 2021-01-14T13:57:13Z mankaev joined #lisp 2021-01-14T13:57:33Z nmg quit (Remote host closed the connection) 2021-01-14T14:01:43Z jonatack quit (Ping timeout: 246 seconds) 2021-01-14T14:03:45Z rumbler31_ joined #lisp 2021-01-14T14:04:14Z frgo joined #lisp 2021-01-14T14:06:24Z gaqwas quit (Ping timeout: 265 seconds) 2021-01-14T14:06:24Z frgo_ quit (Ping timeout: 240 seconds) 2021-01-14T14:08:20Z dim: I didn't follow closely and am wondering if ABCL is relevant to this Java/Common-Lisp discussion 2021-01-14T14:09:08Z je-suis-rpg joined #lisp 2021-01-14T14:09:55Z pfdietz joined #lisp 2021-01-14T14:10:51Z je-suis-rpg quit (Client Quit) 2021-01-14T14:13:59Z ukari quit (Remote host closed the connection) 2021-01-14T14:16:04Z heisig: dim: No, I don't think so. But ABCL is a great thing to have. 2021-01-14T14:16:54Z xificurC: can someone enlighten me how to correctly generate unhygienic code here? http://ix.io/2M0v . `aif` is just an example 2021-01-14T14:17:07Z heisig: We recently had a project where we needed a computer algebra system in Scala. Our solution was to load ABCL into the same image, and to use ABCL to load Maxima. 2021-01-14T14:17:42Z xificurC: heisig nice solution 2021-01-14T14:18:13Z fanta1 joined #lisp 2021-01-14T14:19:21Z heisig: xificurC: Your code is unhygenic, but you are in the wrong package. You pollute c::it, but write a cl-user::it. 2021-01-14T14:20:33Z xificurC: heisig being unhygienic is the point in this case :) The fragment generates `C::IT` but I want to generate `IT` for whatever package is using the macro. Does that make sense? 2021-01-14T14:21:00Z beach: xificurC: Symbol names are handled at read time. At macro-expansion time it's too late. 2021-01-14T14:21:17Z Xach: LOOP handles it by comparing symbol-names. 2021-01-14T14:21:25Z heisig: xificurC: Be careful what you wish for :) I would suggest having the package C export IT, and to have other packages import it. 2021-01-14T14:21:45Z heisig: But if you really want to capture all kinds of IT, you need a substituting code walker. 2021-01-14T14:22:19Z xificurC: I don't remember Paul Graham talking about this stuff in On Lisp. Was he just avoiding this whole topic by not using any packages? 2021-01-14T14:22:23Z flip214: xificurC: get the symbol passed in 2021-01-14T14:22:29Z beach: xificurC: Also AIF is really strange, since it handles general values as if they were Booleans. You are much better off without it. 2021-01-14T14:22:49Z Xach: xificurC: paul graham did not document all the features of common lisp. packages are not discussed in detail. 2021-01-14T14:23:32Z heisig: xificurC: If you really want to try this, use a code walker like https://gitlab.common-lisp.net/mraskin/agnostic-lizard and have AIF replace all symbols named IT with C::IT. 2021-01-14T14:23:37Z heisig: (Please don't) 2021-01-14T14:24:05Z xificurC: so let me rephrase to see if I understood this: to use unhygienic macros across packages one would need to use a code walker 2021-01-14T14:24:14Z dbotton joined #lisp 2021-01-14T14:25:33Z beach: xificurC: In fact, most of the anaphoric macros are weird and should probably be avoided altogether. 2021-01-14T14:26:30Z beach: It's a cute exercise in how the macro system can be used, but not particularly useful, and not particularly conform with other software-engineering practices. 2021-01-14T14:26:59Z jonatack joined #lisp 2021-01-14T14:28:14Z heisig: xificurC: Here is one more solution: Your AIF macro could intern the name "IT" into the value of *package* that is used at macroexpansion time. But that would also violate some assumptions that readers of your code might have. 2021-01-14T14:28:50Z heisig: Usually it is a good idea to listen to beach's advice. 2021-01-14T14:29:38Z dbotton quit (Quit: Leaving) 2021-01-14T14:31:09Z cage_ joined #lisp 2021-01-14T14:31:56Z jonatack quit (Ping timeout: 240 seconds) 2021-01-14T14:34:47Z xificurC: as I said `aif` wasn't the particular example. This one was http://ix.io/2M0x . It's similar to what is in LOL but closer to a clojure-like anonymous function definition. I find the shortcut useful and code written with it clearer. However it doesn't work across package boundaries, just like any unhygienic code doesn't seem to 2021-01-14T14:35:59Z fanta1 quit (Quit: fanta1) 2021-01-14T14:36:56Z aeth quit (Ping timeout: 240 seconds) 2021-01-14T14:37:32Z xificurC: looking into the LOL codebase I see the same issues, the unhygienic symbols `a1` `a2` etc don't solve this issue. I wonder why are these books given such high praise then, when you take some code from it and use it in a standard way, failing immediately 2021-01-14T14:37:38Z xantoz quit (Ping timeout: 256 seconds) 2021-01-14T14:38:51Z catalinbostan quit (Quit: Textual IRC Client: www.textualapp.com) 2021-01-14T14:39:00Z aeth joined #lisp 2021-01-14T14:39:26Z catalinbostan joined #lisp 2021-01-14T14:40:12Z beach: xificurC: On Lisp is good for things like computations done at macro-expansion time, but not for anaphoric macros. 2021-01-14T14:40:38Z xificurC: beach and your thoughts on LOL? 2021-01-14T14:40:50Z beach: I haven't read it. Sorry. 2021-01-14T14:41:09Z mfiano: LOL should be taken with a large grain of salt 2021-01-14T14:42:38Z thinkpad quit (Ping timeout: 260 seconds) 2021-01-14T14:43:08Z mrcom quit (Ping timeout: 265 seconds) 2021-01-14T14:44:11Z thinkpad joined #lisp 2021-01-14T14:45:13Z mrios22 quit (Ping timeout: 264 seconds) 2021-01-14T14:46:02Z snits quit (Ping timeout: 265 seconds) 2021-01-14T14:46:07Z shka_: wow, clouseu displays rehash threshold as a progress bar 2021-01-14T14:46:11Z shka_: how neat! 2021-01-14T14:46:55Z snits joined #lisp 2021-01-14T14:48:05Z attila_lendvai joined #lisp 2021-01-14T14:48:05Z attila_lendvai quit (Changing host) 2021-01-14T14:48:05Z attila_lendvai joined #lisp 2021-01-14T14:48:30Z beach: Clouseau is a very nice program. 2021-01-14T14:48:58Z shka_: and i never can type the name properly 2021-01-14T14:49:05Z shka_: but yes, it is 2021-01-14T14:50:24Z beach: I never use the SLIME inspector anymore. 2021-01-14T14:51:28Z waleee-cl joined #lisp 2021-01-14T14:51:41Z xificurC: mfiano the book went really hardcore into some custom closure-based OO design and I didn't really understand why would one want to do that instead of using CLOS. The macros were interesting and the sorting networks too 2021-01-14T14:51:44Z scymtym: shka_: inspect a complex number :) 2021-01-14T14:52:15Z beach: xificurC: One absolutely wouldn't want to do that. 2021-01-14T14:52:35Z beach: ... closure-based OO design that is. 2021-01-14T14:53:07Z _death: xificurC: I would advise not using such macros in CL.. but in your particular, the issue likely stems from interning symbols in the current package where the reader macro is expanded (which is likely what you want) but the expansion refers to symbol (% %1) interned when the reader macro is defined.. so you should use the ones you interned instead 2021-01-14T14:53:13Z shka_: scymtym: cool 2021-01-14T14:53:42Z charles` quit (Ping timeout: 258 seconds) 2021-01-14T14:53:43Z _death: *symbols 2021-01-14T14:54:12Z shka_: xificurC: anaphoric macros have the use case, really 2021-01-14T14:54:26Z beach: shka_: Nah! :) 2021-01-14T14:54:36Z shka_: they do! 2021-01-14T14:54:43Z shka_: just don't reinvent the wheel 2021-01-14T14:55:12Z frodef: maybe for very application-specific things, where words have very particular meanings. 2021-01-14T14:55:37Z shka_: cl-ds:xpr is an anaphoric macro 2021-01-14T14:55:45Z shka_: it is quite useful 2021-01-14T14:56:03Z shka_: it is used to define lazy sequences 2021-01-14T14:57:00Z shka_: works by writing recursive-like code 2021-01-14T14:57:39Z heisig sees Clouseau's representation of complex numbers and goes on to rebind `C-c i'. 2021-01-14T14:57:55Z shka_: heisig: HOW DO I DO THAT? 2021-01-14T14:57:56Z sjl joined #lisp 2021-01-14T14:58:02Z shka_: i don't know emacs very well 2021-01-14T14:58:17Z xificurC: I guess the number of APL fans here is very close to 0. Anything that allows expressing yourself more concisely is worth consideration 2021-01-14T14:58:17Z shka_: but i wanted to do it for a few weeks now :P 2021-01-14T14:58:37Z xificurC: you just have to be careful not to reinvent perl 2021-01-14T14:58:45Z shka_: xificurC: not exactly zero 2021-01-14T14:59:16Z xificurC: shka_ I said close to 0. I see at least 1 familiar name in the channel 2021-01-14T14:59:46Z shka_: but lisp macros need to be done really well in order to be so useful 2021-01-14T14:59:52Z shka_: like, in the general case 2021-01-14T15:01:28Z shka_: and writing macros ad hock leads to macros that are used just once 2021-01-14T15:01:32Z shka_: and this is bad 2021-01-14T15:02:58Z xificurC: shka_  good or bad is subjective to your use case 2021-01-14T15:03:13Z mfiano: It's mostly a book about "Hey, look at what macros can do", but the very opinionated coding style that ignores conventions and the use of anaphors make it very rare you will ever see code like this in the real world. 2021-01-14T15:03:28Z mfiano: Common Lisp code, that is. 2021-01-14T15:07:16Z xificurC: like this? https://github.com/thephoeron/let-over-lambda/blob/master/let-over-lambda.lisp :) 2021-01-14T15:08:12Z jonatack joined #lisp 2021-01-14T15:11:54Z aeth: xificurC: Lexical closures are the only true way of doing encapsulation that's not just by convention (I say this, but now someone might think of something more obscure). Lexical scope is so encapsulated that lexical variables might not actually exist for things like debuggers without (optimize (debug 3)) 2021-01-14T15:12:12Z shka_: gosh, i guess heisig won't tell me 2021-01-14T15:12:16Z aeth: xificurC: So you could probably come up with a very niche situation where you need to do that. Very niche. 2021-01-14T15:12:43Z Xach: shka_: macrolet is its own thing 2021-01-14T15:13:20Z shka_: Xach: ? 2021-01-14T15:13:28Z jonatack quit (Ping timeout: 246 seconds) 2021-01-14T15:13:51Z Xach: shka_: ad hoc, single-use-ish macros with macrolet can be fun 2021-01-14T15:15:18Z shka_: oh, ok 2021-01-14T15:15:24Z shka_: agreed 2021-01-14T15:15:52Z xificurC: aeth I actually loathe enforced encapsulation that cannot be broken. In the few years I work on the JVM there have been several bugs in 3rd party libraries that I was close to unable to overcome because of it. I think we're all adults and know the risk of using internal, subject-to-change parts of a library. 2021-01-14T15:16:16Z jonatack joined #lisp 2021-01-14T15:16:41Z charles` joined #lisp 2021-01-14T15:19:16Z aeth_ joined #lisp 2021-01-14T15:20:36Z jonatack quit (Read error: Connection reset by peer) 2021-01-14T15:20:49Z aeth quit (Disconnected by services) 2021-01-14T15:20:50Z heisig: shka_: I am still experimenting. I will post my solution here as soon as it is presentable. 2021-01-14T15:20:51Z aeth_ is now known as aeth 2021-01-14T15:22:02Z HDurer quit (Remote host closed the connection) 2021-01-14T15:22:21Z HDurer joined #lisp 2021-01-14T15:22:25Z thinkpad quit (Ping timeout: 264 seconds) 2021-01-14T15:24:20Z thinkpad joined #lisp 2021-01-14T15:24:42Z shka_: heisig: thanks! 2021-01-14T15:28:08Z scymtym: heisig: one piece of the puzzle will probably involve updating the content of a persistent inspector window. one way to do that is (defvar *inspector* (nth-value 1 (clouseau:inspect INITIAL-VALUE :new-process t))) and later (setf (clouseau:root-object *inspector* :run-hook-p t) NEW-VALUE) 2021-01-14T15:29:41Z shka_: hmmm, it seems that the minimal size of sbcl hash-table is 7? 2021-01-14T15:29:58Z shka_: this gonna cost me some memory 2021-01-14T15:30:05Z shka_: maybe i can figure something out 2021-01-14T15:30:55Z flip214: shka_: make yourself a global readonly empty hashtable? 2021-01-14T15:32:25Z shka_: flip214: nah, i have other idea 2021-01-14T15:34:45Z mmmattyx joined #lisp 2021-01-14T15:37:00Z andreyorst` quit (Quit: andreyorst`) 2021-01-14T15:45:54Z mindCrime joined #lisp 2021-01-14T15:50:21Z mrcom joined #lisp 2021-01-14T15:58:56Z johnjay quit (Ping timeout: 240 seconds) 2021-01-14T16:00:35Z kapil_ quit (Read error: Connection reset by peer) 2021-01-14T16:02:51Z kapil_ joined #lisp 2021-01-14T16:02:58Z johnjay joined #lisp 2021-01-14T16:04:15Z hnOsmium0001 joined #lisp 2021-01-14T16:08:13Z Blukunfando joined #lisp 2021-01-14T16:13:56Z Madvax quit (Ping timeout: 240 seconds) 2021-01-14T16:13:58Z attila_lendvai quit (Ping timeout: 256 seconds) 2021-01-14T16:16:02Z Madvax joined #lisp 2021-01-14T16:17:09Z heisig: shka_: Here is my first draft: https://gist.github.com/marcoheisig/ddf35ad94e51fe9c3e5980759ef0fb70 2021-01-14T16:17:22Z thinkpad quit (Ping timeout: 256 seconds) 2021-01-14T16:17:38Z heisig: scymtym: Thanks for helping! That was exactly what I needed. 2021-01-14T16:17:50Z thinkpad joined #lisp 2021-01-14T16:19:07Z scymtym: heisig: sure. you could use a prefix argument to force inspecting in a new window 2021-01-14T16:21:43Z shka_: awesome 2021-01-14T16:22:04Z shka_: let me try this out 2021-01-14T16:22:22Z heisig: scymtym: Yes, there are plenty of potential tweaks. Also, I should overload more than just `C-c i'. But that was already enough of a digression for one day. 2021-01-14T16:22:35Z _death: slime has a slime-prefix-map 2021-01-14T16:22:46Z lotuseater quit (Ping timeout: 246 seconds) 2021-01-14T16:24:51Z heisig: Also, I am not exactly proud of referencing a symbol from clim-internals. Is there a better way to check whether a frame is still alive? 2021-01-14T16:28:44Z kapil_ quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-01-14T16:31:11Z kapil_ joined #lisp 2021-01-14T16:33:59Z sm2n_ joined #lisp 2021-01-14T16:34:04Z sm2n quit (Read error: Connection reset by peer) 2021-01-14T16:41:16Z thinkpad quit (Ping timeout: 240 seconds) 2021-01-14T16:41:55Z phoe6 joined #lisp 2021-01-14T16:45:03Z thinkpad joined #lisp 2021-01-14T16:47:14Z Lord_of_Life_ joined #lisp 2021-01-14T16:47:51Z aartaka_d joined #lisp 2021-01-14T16:49:48Z Lord_of_Life quit (Ping timeout: 260 seconds) 2021-01-14T16:49:49Z Lord_of_Life_ is now known as Lord_of_Life 2021-01-14T16:51:54Z aartaka quit (Ping timeout: 272 seconds) 2021-01-14T16:51:57Z scymtym: heisig: maybe http://bauhh.dyndns.org:8000/clim-spec/28-5.html#_1560 ? the states are defined at the top of the page 2021-01-14T16:54:15Z brandflake11 joined #lisp 2021-01-14T16:54:19Z galex-713 quit (Ping timeout: 272 seconds) 2021-01-14T16:54:22Z galex-713_ joined #lisp 2021-01-14T16:55:49Z parjanya quit (Remote host closed the connection) 2021-01-14T16:57:23Z andreyorst joined #lisp 2021-01-14T17:03:13Z jonatack joined #lisp 2021-01-14T17:07:48Z jonatack quit (Ping timeout: 256 seconds) 2021-01-14T17:09:19Z miasuji joined #lisp 2021-01-14T17:09:38Z jonatack joined #lisp 2021-01-14T17:10:04Z adlai joined #lisp 2021-01-14T17:11:22Z adlai: Oh boy, here I go bearing bad news again! ... if anyone both industrious and stupid wants to volunteer to maintain yet another library slipping towards gitrot, it appears that Anaphora has been soft-abandoned. 2021-01-14T17:12:00Z adlai: [ as hinted by the maintainer, at https://github.com/tokenrove/anaphora/pull/10#issuecomment-757917329 ] 2021-01-14T17:13:41Z adlai has anaphoric macros all over scalpl, even occasionally wrote a few of his own, although already has the volunteer hands more than full with wondering wtf to do about chanl's brokenness, an issue that blocks returning scalpl to official inclusion in various automated distributions. 2021-01-14T17:16:37Z adlai: while we're on bad news of abandonment: Henry Baker's paper archive has gone offline, apparently along with the entire webserver that hosted it. Wikipedia is already linking to https://web.archive.org/web/20200212080133/http://home.pipeline.com/~hbaker1/ although I do wonder whether anyone has available an archive of just the signal, to save others the trouble of sifting through HTML noise. 2021-01-14T17:17:07Z judson_ joined #lisp 2021-01-14T17:17:44Z varjag quit (Quit: ERC (IRC client for Emacs 26.3)) 2021-01-14T17:18:38Z miasuji quit (Ping timeout: 264 seconds) 2021-01-14T17:18:46Z thinkpad quit (Ping timeout: 246 seconds) 2021-01-14T17:19:32Z frodef quit (Ping timeout: 256 seconds) 2021-01-14T17:20:39Z lotuseater joined #lisp 2021-01-14T17:21:27Z thinkpad joined #lisp 2021-01-14T17:24:10Z secretmyth joined #lisp 2021-01-14T17:25:23Z gaqwas joined #lisp 2021-01-14