2020-05-01T00:00:03Z cantstanya quit (Remote host closed the connection) 2020-05-01T00:02:36Z cantstanya joined #lisp 2020-05-01T00:05:27Z Oladon quit (Quit: Leaving.) 2020-05-01T00:08:49Z hsaziz joined #lisp 2020-05-01T00:09:23Z mason joined #lisp 2020-05-01T00:13:58Z pjb joined #lisp 2020-05-01T00:24:14Z red-dot joined #lisp 2020-05-01T00:27:27Z buffergn0me quit (Ping timeout: 240 seconds) 2020-05-01T00:29:53Z hsaziz quit (Quit: hsaziz) 2020-05-01T00:33:16Z Necktwi joined #lisp 2020-05-01T00:35:01Z Necktwi_ quit (Ping timeout: 264 seconds) 2020-05-01T00:35:07Z karswell_ joined #lisp 2020-05-01T00:39:09Z zaquest quit (Quit: Leaving) 2020-05-01T00:43:17Z zaquest joined #lisp 2020-05-01T00:43:49Z karswell_ is now known as karswell 2020-05-01T00:45:33Z buffergn0me joined #lisp 2020-05-01T01:03:34Z bitmapper quit (Ping timeout: 246 seconds) 2020-05-01T01:08:02Z Jeanne-Kamikaze joined #lisp 2020-05-01T01:08:30Z Xach quit (Ping timeout: 260 seconds) 2020-05-01T01:08:37Z Xach joined #lisp 2020-05-01T01:13:17Z pjb quit (Ping timeout: 246 seconds) 2020-05-01T01:16:06Z MerlinTheWizard quit (Remote host closed the connection) 2020-05-01T01:16:26Z MerlinTheWizard joined #lisp 2020-05-01T01:40:56Z ArthurStrong quit (Quit: leaving) 2020-05-01T01:48:01Z karlosz quit (Quit: karlosz) 2020-05-01T01:50:27Z wxie joined #lisp 2020-05-01T01:54:40Z Aurora_iz_kosmos joined #lisp 2020-05-01T01:54:52Z Aurora_v_kosmose quit (Disconnected by services) 2020-05-01T01:54:58Z Aurora_iz_kosmos is now known as Aurora_v_kosmose 2020-05-01T02:02:19Z gko joined #lisp 2020-05-01T02:05:36Z nmg joined #lisp 2020-05-01T02:14:24Z pilne quit (Quit: Tis but a scratch) 2020-05-01T02:14:36Z Bike quit (Quit: Lost terminal) 2020-05-01T02:16:13Z monok joined #lisp 2020-05-01T02:17:53Z wxie1 joined #lisp 2020-05-01T02:18:28Z mono quit (Ping timeout: 246 seconds) 2020-05-01T02:19:45Z wxie quit (Ping timeout: 240 seconds) 2020-05-01T02:19:45Z wxie1 is now known as wxie 2020-05-01T02:20:06Z buffergn0me quit (Ping timeout: 240 seconds) 2020-05-01T02:27:02Z wxie quit (Read error: Connection reset by peer) 2020-05-01T02:29:14Z nmg` joined #lisp 2020-05-01T02:30:45Z nmg quit (Ping timeout: 240 seconds) 2020-05-01T02:35:35Z prefixt quit (Quit: Leaving) 2020-05-01T02:36:30Z karlosz joined #lisp 2020-05-01T02:41:52Z jruiz__ quit (Ping timeout: 258 seconds) 2020-05-01T02:45:50Z lxbarbos` joined #lisp 2020-05-01T02:46:11Z igemnace quit (Quit: WeeChat 2.8) 2020-05-01T02:50:25Z lxbarbosa quit (Ping timeout: 272 seconds) 2020-05-01T02:51:03Z turona quit (Ping timeout: 272 seconds) 2020-05-01T02:51:41Z turona joined #lisp 2020-05-01T02:55:48Z libertyprime joined #lisp 2020-05-01T03:01:56Z igemnace joined #lisp 2020-05-01T03:05:20Z buffergn0me joined #lisp 2020-05-01T03:11:03Z pjb joined #lisp 2020-05-01T03:12:13Z efm joined #lisp 2020-05-01T03:12:13Z efm quit (Remote host closed the connection) 2020-05-01T03:17:19Z lowryder quit (Ping timeout: 265 seconds) 2020-05-01T03:20:36Z lowryder joined #lisp 2020-05-01T03:22:12Z _jrjsmrtn joined #lisp 2020-05-01T03:22:44Z beach: Good morning everyone! 2020-05-01T03:23:00Z nmg` quit (Remote host closed the connection) 2020-05-01T03:24:13Z __jrjsmrtn__ quit (Ping timeout: 264 seconds) 2020-05-01T03:28:25Z lxbarbos` quit (Ping timeout: 272 seconds) 2020-05-01T03:40:24Z karayan joined #lisp 2020-05-01T03:44:15Z pjb quit (Ping timeout: 272 seconds) 2020-05-01T03:49:36Z toorevitimirp joined #lisp 2020-05-01T03:52:39Z slyrus__ joined #lisp 2020-05-01T03:55:04Z slyrus_ quit (Ping timeout: 246 seconds) 2020-05-01T03:59:03Z madage quit (Ping timeout: 240 seconds) 2020-05-01T03:59:15Z Jeanne-Kamikaze quit (Quit: Leaving) 2020-05-01T04:01:39Z madage joined #lisp 2020-05-01T04:01:57Z ayuce quit (Remote host closed the connection) 2020-05-01T04:10:44Z ayuce joined #lisp 2020-05-01T04:17:01Z vivit quit (Ping timeout: 264 seconds) 2020-05-01T04:17:26Z vivit joined #lisp 2020-05-01T04:27:58Z torbo quit (Remote host closed the connection) 2020-05-01T04:41:25Z narimiran joined #lisp 2020-05-01T04:43:43Z renzhi_ quit (Ping timeout: 246 seconds) 2020-05-01T04:50:16Z SGASAU quit (Remote host closed the connection) 2020-05-01T04:51:08Z SGASAU joined #lisp 2020-05-01T04:59:35Z Oladon joined #lisp 2020-05-01T05:02:12Z akoana left #lisp 2020-05-01T05:05:21Z buffergn0me quit (Quit: ERC (IRC client for Emacs 26.2)) 2020-05-01T05:06:13Z boeg: good morning 2020-05-01T05:10:32Z krid quit (Ping timeout: 256 seconds) 2020-05-01T05:10:45Z MerlinTheWizard quit (Ping timeout: 240 seconds) 2020-05-01T05:14:37Z karswell quit (Remote host closed the connection) 2020-05-01T05:15:51Z karswell joined #lisp 2020-05-01T05:19:20Z patlv quit (Quit: patlv) 2020-05-01T05:20:11Z luckless quit (Remote host closed the connection) 2020-05-01T05:23:07Z boeg: I have been fighting this weird error I didn't understand anything about for hours, yesterday, and I guess what helped was getting some sleep, because when I looked at it now after waking up, it suddenly occurred, that maybe its not an error i have introduced in my code. Surely enough, trying to run a different project using the same libraries (caveman2 and mito), and the error is suddenly also there. The only thing I can 2020-05-01T05:23:07Z boeg: think of 2020-05-01T05:23:07Z boeg: having introduced the bug is that I did a quicklisp dist upgrade yesterday. 2020-05-01T05:23:31Z boeg: If any one wants to have a look and see if they can see what is going on, here is the backtrace: https://pastebin.com/9RyRaaFK 2020-05-01T05:24:16Z boeg: is it just a bug that has been introduced in the quicklisp version of uax-15-20200325-git, whatever that is? 2020-05-01T05:24:22Z vlatkoB joined #lisp 2020-05-01T05:24:56Z beach: boeg: Your error is that you are trying to read a stream with an encoding that does not correspond to the contents. 2020-05-01T05:25:40Z beach: Perhaps you are reading with an encoding of UTF-8 and the stream contains LATIN-1? 2020-05-01T05:25:49Z boeg: right, i see that, but i guess what i'm asking is, what can be the culprit? I haven't changed the code, what has changed is that i did a dist upgrade of quicklisp 2020-05-01T05:26:26Z boeg: to be honest, I have changed the code in project A which i was working on, but testing project B now, that i haven't touched for days before the dist upgrade, and it suddenly doesn't work there either 2020-05-01T05:26:34Z boeg: obviously, i can be mistaken 2020-05-01T05:27:35Z boeg: beach: also, i'm not reading anything. It's when I try to connect to postgres with mito. Its in there the error occurs 2020-05-01T05:27:41Z boeg: as far as I can see at least 2020-05-01T05:27:55Z boeg: maybe mito was updated 2020-05-01T05:28:15Z beach: boeg: Look at the backtrace... 2020-05-01T05:28:40Z beach: It says sb-impl::fd-stream-read-n-characters/ascii 2020-05-01T05:29:14Z boeg: so it expects UTF-8 but ascii is provided? 2020-05-01T05:29:16Z beach: And you are trying to read a character  which is not ascii. 2020-05-01T05:29:18Z boeg: as you mentioned? 2020-05-01T05:29:37Z beach: It expects ascii and you are giving it  which is not ascii. 2020-05-01T05:29:47Z boeg: let me have a look around the code for that 2020-05-01T05:29:51Z boeg: 2sec 2020-05-01T05:30:44Z beach: It appears that the file CompositionExclusions.txt contains characters that are not ASCII. 2020-05-01T05:30:56Z beach: boeg: I mean, look at the backtrace. 2020-05-01T05:31:04Z boeg: yeah 2020-05-01T05:31:08Z boeg: but its no my file 2020-05-01T05:31:10Z boeg: not* 2020-05-01T05:31:16Z beach: I can't help you with that. 2020-05-01T05:31:19Z boeg: i dunno what that is 2020-05-01T05:31:32Z beach: I am just telling you how to interpret the backtrace and the error. 2020-05-01T05:31:33Z boeg: I believe it has been introduced with the dist-upgrade, as i said 2020-05-01T05:31:38Z boeg: yeah, i udnerstand 2020-05-01T05:31:41Z boeg: and thank you for that! 2020-05-01T05:31:47Z beach: Sure. 2020-05-01T05:32:43Z boeg: beach: looking at the path /Users/cb/.roswell/lisp/quicklisp/dists/quicklisp/software/uax-15-20200325-git/data/CompositionExclusions.txt doesnt it look like its part of uax-15, the library? 2020-05-01T05:33:21Z beach: It does. 2020-05-01T05:33:40Z beach: If I were you, I would start by looking at that file to make sure it does contain non-ASCII characters. 2020-05-01T05:33:49Z boeg: yeah, good idea 2020-05-01T05:40:09Z boeg: beach: there was one other filed called DerivedNormalizationProps.txt with same error - if I just empty those two files, the error goes away, so its something in uax-15 that is wrong and was introduced to my system with the dist-upgrade 2020-05-01T05:40:30Z pjb joined #lisp 2020-05-01T05:41:28Z boeg: is my guess anyways 2020-05-01T05:41:35Z beach: I think I have supplied all the information I can for this problem. I don't use any of the software you seem to be using here, so I can't reproduce it. 2020-05-01T05:41:55Z boeg: no problem, just wanted to share my findings 2020-05-01T05:42:11Z beach: Sure. 2020-05-01T05:43:56Z MerlinTheWizard joined #lisp 2020-05-01T05:44:53Z boeg: Do you know of a way where I can figure out where the dependency of uax-15 lies in the chain of dependencies? It's not directly with mito, so it must be one of its dependencies, is my guess. So save for going through them by hand, do you know if quicklisp can be utilities to easily show what dependents on a specific library 2020-05-01T05:44:55Z boeg: ? 2020-05-01T05:45:13Z boeg: utilised* 2020-05-01T05:46:18Z beach: I am afraid I don't. But you should be able to look at the ASDF file(s) in the :DEPENDS-ON option. 2020-05-01T05:47:09Z boeg: yes indeed, thanks 2020-05-01T05:53:36Z boeg: ah, its postmodern that has a dependency on uax-15 2020-05-01T05:54:57Z adlai hopes nobody will get too insulted if (defun ql:yolo () (mapcar 'funcall '(ql:update-client ql:update-all-dists))) 2020-05-01T05:55:28Z beach: boeg: There is no particular reason that file should contain non-ascii characters. You may want to check that it has not been corrupted. 2020-05-01T05:56:07Z karayan quit (Ping timeout: 240 seconds) 2020-05-01T05:56:26Z boeg: right, yeah, i ws also thinking that if a "big" library like postmodern uses uax-15, and I have a bug in it, but htere is nothing on the issue tracker about it, which there isn't, it's probably localized to my system 2020-05-01T05:56:31Z karayan joined #lisp 2020-05-01T05:58:20Z milanj joined #lisp 2020-05-01T05:59:17Z Oladon quit (Quit: Leaving.) 2020-05-01T05:59:40Z nmg` joined #lisp 2020-05-01T06:00:02Z libertyprime quit (Remote host closed the connection) 2020-05-01T06:02:41Z milanj quit (Client Quit) 2020-05-01T06:03:50Z boeg: beach: nope, overwriting them with those found on the github repository doesn't work, same errors, only emptying the files (or writing something random utf-8) makes it work... 2020-05-01T06:05:32Z boeg: and if I empty them, and then add "fkdsjfk Ã" into it, and reload everything, the error is there again, so it seems its because there is some non-ascii in it. Or maybe there should be, but it gets loaded now by mistake? 2020-05-01T06:05:37Z Nilby: (setf sb-impl::*default-external-format* :utf-8) ? 2020-05-01T06:06:00Z gravicappa joined #lisp 2020-05-01T06:06:19Z Nilby: It has a "© 2016 Unicode®, Inc" 2020-05-01T06:06:23Z boeg: Nilby: can I just run that in slime before loading the packages? 2020-05-01T06:06:39Z boeg: Nilby: indeed, i see that, but i wonder why it errors now, and didn't before - does it get loaded by mistake? 2020-05-01T06:06:39Z Nilby: Probably? 2020-05-01T06:06:47Z phoe: boeg: what is your SBCL version? 2020-05-01T06:06:59Z boeg: phoe: 2sec 2020-05-01T06:07:00Z phoe: the newer ones have utf-8 set by default 2020-05-01T06:07:01Z Nilby: I've had to do that only on some version windows. 2020-05-01T06:07:07Z phoe: (lisp-implementation-version) 2020-05-01T06:07:38Z boeg: 2.0.2 via roswell 2020-05-01T06:08:15Z Nilby: I seem to have that prefixed by: #+(and sbcl win32) in my .lisprc 2020-05-01T06:08:20Z phoe: 2.0.3 and newer defaults to utf-8 2020-05-01T06:08:39Z boeg: maybe I should see about upgrading it 2020-05-01T06:11:01Z quazimodo quit (Ping timeout: 264 seconds) 2020-05-01T06:12:45Z hdasch quit (Ping timeout: 240 seconds) 2020-05-01T06:12:52Z hdasch joined #lisp 2020-05-01T06:13:43Z pjb quit (Ping timeout: 272 seconds) 2020-05-01T06:17:48Z quazimodo joined #lisp 2020-05-01T06:18:37Z _paul0 quit (Remote host closed the connection) 2020-05-01T06:18:42Z toorevitimirp quit (Ping timeout: 256 seconds) 2020-05-01T06:18:47Z boeg: seems to be it - upgrading to sbcl 2.0.2 seems to have fixed the problem with uax-15, so it seems that after me dist-upgrading quicklisp yesterday, something was changed that didn't work with sbcl 2.0.2 anymore. With sbcl 2.0.4, it works, it seems 2020-05-01T06:18:51Z boeg: thank you for your help, everybody 2020-05-01T06:18:57Z paul0 joined #lisp 2020-05-01T06:19:05Z boeg: upgrading to sbcl 2.0.4 seems to have fixed the problem* 2020-05-01T06:19:34Z theosvoitha joined #lisp 2020-05-01T06:47:46Z vivit quit (Ping timeout: 260 seconds) 2020-05-01T06:56:54Z lacroixboy_ quit (Ping timeout: 240 seconds) 2020-05-01T06:57:51Z lacroixboy joined #lisp 2020-05-01T06:58:57Z vivit joined #lisp 2020-05-01T07:04:09Z sz0 joined #lisp 2020-05-01T07:05:44Z orivej quit (Ping timeout: 256 seconds) 2020-05-01T07:09:07Z micro joined #lisp 2020-05-01T07:09:20Z duncan_ joined #lisp 2020-05-01T07:20:47Z MerlinTheWizard quit (Ping timeout: 240 seconds) 2020-05-01T07:20:56Z luckless joined #lisp 2020-05-01T07:23:11Z ggole joined #lisp 2020-05-01T07:25:19Z zooey quit (Remote host closed the connection) 2020-05-01T07:25:40Z zooey joined #lisp 2020-05-01T07:25:44Z cyraxjoe quit (Quit: No Ping reply in 180 seconds.) 2020-05-01T07:25:54Z cyraxjoe joined #lisp 2020-05-01T07:26:32Z ayuce left #lisp 2020-05-01T07:27:18Z rgherdt joined #lisp 2020-05-01T07:39:18Z nmg`` joined #lisp 2020-05-01T07:40:26Z rgherdt quit (Quit: Leaving) 2020-05-01T07:41:10Z nmg` quit (Ping timeout: 246 seconds) 2020-05-01T07:46:08Z pve joined #lisp 2020-05-01T07:47:40Z SGASAU quit (Remote host closed the connection) 2020-05-01T07:48:22Z SGASAU joined #lisp 2020-05-01T07:49:45Z dddddd joined #lisp 2020-05-01T07:53:10Z vivit quit (Ping timeout: 256 seconds) 2020-05-01T07:55:31Z karayan quit (Ping timeout: 246 seconds) 2020-05-01T07:55:54Z karayan joined #lisp 2020-05-01T07:57:10Z duncan_ quit (Remote host closed the connection) 2020-05-01T08:03:03Z frgo_ joined #lisp 2020-05-01T08:03:06Z pjb joined #lisp 2020-05-01T08:03:22Z rwcom quit (Quit: Ping timeout (120 seconds)) 2020-05-01T08:04:01Z rwcom joined #lisp 2020-05-01T08:05:15Z pve quit (Quit: leaving) 2020-05-01T08:06:08Z frgo_ quit (Remote host closed the connection) 2020-05-01T08:06:16Z rwcom quit (Client Quit) 2020-05-01T08:06:27Z frgo quit (Ping timeout: 272 seconds) 2020-05-01T08:06:47Z frgo joined #lisp 2020-05-01T08:16:26Z decent-username joined #lisp 2020-05-01T08:19:24Z drewc quit (Ping timeout: 265 seconds) 2020-05-01T08:20:48Z pve joined #lisp 2020-05-01T08:21:14Z elflng quit (Read error: No route to host) 2020-05-01T08:26:22Z elflng joined #lisp 2020-05-01T08:35:34Z ln^ joined #lisp 2020-05-01T08:36:01Z pjb quit (Ping timeout: 265 seconds) 2020-05-01T08:38:02Z rgherdt joined #lisp 2020-05-01T08:39:03Z drewc joined #lisp 2020-05-01T08:39:47Z epony quit (Quit: reconfiguration) 2020-05-01T08:40:09Z micro quit (Quit: Lost terminal) 2020-05-01T08:40:40Z micro joined #lisp 2020-05-01T08:44:29Z epony joined #lisp 2020-05-01T08:44:44Z ln^ quit (Quit: Leaving) 2020-05-01T08:45:05Z micro quit (Client Quit) 2020-05-01T08:45:07Z shka_ joined #lisp 2020-05-01T08:45:55Z epony quit (Max SendQ exceeded) 2020-05-01T08:46:22Z epony joined #lisp 2020-05-01T08:51:03Z sth_ joined #lisp 2020-05-01T08:52:05Z sth_: hey yall. i'm very new to lisp and kinda overwhelmed with how many implementations there are. for 2020, what's the best way to go about getting an environment set up that works well for Practical Common Lisp? 2020-05-01T08:52:13Z fourier joined #lisp 2020-05-01T08:52:20Z phoe: minion: tell sth_ about portacle 2020-05-01T08:52:20Z minion: sth_: portacle: Portacle is a complete IDE for Common Lisp that you can take with you on a USB stick https://shinmera.github.io/portacle/ 2020-05-01T08:52:44Z phoe: a preconfigured distro of emacs + slime + sbcl + git 2020-05-01T08:53:10Z phoe: also contains the Quicklisp package manager if you want to download some Lisp code from the Internet. 2020-05-01T08:53:17Z boeg: indeed, it's the answer. Obviously, should come preconfigured with evil-mode, but other than that :) 2020-05-01T08:53:25Z boeg hides 2020-05-01T08:53:27Z phoe: let's not go into religious debates here 2020-05-01T08:53:34Z boeg: :P 2020-05-01T08:53:54Z Shinmera: boeg: you aren't the first to say that, but everyone that does tell me that is never ready to actually put in the work and submit a patch to actually include it. 2020-05-01T08:54:04Z Shinmera: so it stays not in. 2020-05-01T08:54:22Z boeg: Shinmera: indeed! :) 2020-05-01T08:54:43Z boeg: seems like the link has changed to https://portacle.github.io, regarding the link the minion posts 2020-05-01T08:54:57Z phoe: yes, but the redirect is there 2020-05-01T08:55:05Z boeg: indeed 2020-05-01T08:55:48Z jonatack_ joined #lisp 2020-05-01T08:56:01Z Shinmera is now annoyed 2020-05-01T08:56:06Z Shinmera: oh well, better turn to work. 2020-05-01T08:59:02Z jonatack quit (Ping timeout: 265 seconds) 2020-05-01T08:59:55Z sth_: cool thanks :) 2020-05-01T09:03:06Z sth_: evil mode is something i've heard a lot about and would probably appreciate, but i also want to actually learn emacs too so i've never bothered with it 2020-05-01T09:03:59Z ym quit (Remote host closed the connection) 2020-05-01T09:05:30Z SAL9000: sth_: my view on evil-mode -- basically, if you use emacs as more than just an editor, it'll get in the way of those things somewhat. There's been a lot of work on integrating e.g. org-mode into evil, but it's not the same. However, as an "Emacs-first" user I'm biased :-) 2020-05-01T09:05:45Z terpri quit (Remote host closed the connection) 2020-05-01T09:05:59Z sth_: that makes sense 2020-05-01T09:06:07Z terpri joined #lisp 2020-05-01T09:06:26Z boeg: for someone who prefers the vim way of giving commands, evil-mode is a blessing. However it doesn't stand too much in the way with regards to using emacs. It's mostly in the beginning, where you have to remember that if a feature is described in one way, you probably needs to figure out how to use it with evil, which is most likely another way. But other in that, I don't have any problems with it - i much prefer emacs + evil 2020-05-01T09:06:26Z boeg: to vim, and 2020-05-01T09:06:26Z boeg: I use emacs for everything. I'm in emacs now. 2020-05-01T09:06:26Z sth_: well im not interested in emacs as solely an editor so i probably wont bother 2020-05-01T09:06:57Z SAL9000: sth_: I wouldn't recommend starting out that way, at least. Give it a try at some point, as boeg said it might work for you. It's a very individual thing. 2020-05-01T09:07:02Z phoe: I've heard that slima for atom starts getting good 2020-05-01T09:07:07Z boeg: oh my god, i seem to have gotten a stroke while typing that... 2020-05-01T09:07:09Z phoe: that's an alternative 2020-05-01T09:07:12Z SAL9000: It helps if you're willing to put in the leg-work to customize emacs/evil to YOUR taste/needs. 2020-05-01T09:07:20Z sth_: ive been using vi/vim for over a decade but ive always been very envious of people who live in emacs 2020-05-01T09:07:35Z SAL9000: welcome to the dark side, we have cookies magit 2020-05-01T09:07:48Z boeg: sth_: i used vim for ~10 years before switching 100% to emacs + evil 2020-05-01T09:08:21Z boeg: but to make it work, as SAL9000 says, you need to want to spend the time configuring things, understanding things. It wont just work before most things are not evil-natives 2020-05-01T09:08:24Z doomlist3 joined #lisp 2020-05-01T09:08:33Z doomlist3: it's me 2020-05-01T09:08:43Z sth_: it's always just been an issue of pragmatism for me. i use vi because it's on the machines i administer 2020-05-01T09:08:51Z sth_: hmm ok 2020-05-01T09:09:01Z doomlist3: (list 2 3) is it the same as (quote (2 3)) the same as '(2 3) 2020-05-01T09:09:05Z SAL9000: sth_: are you doing remote admin (ssh)? 2020-05-01T09:09:13Z sth_: SAL9000: yeah for a lot of my work 2020-05-01T09:09:19Z SAL9000: consider Emacs' TRAMP. 2020-05-01T09:09:39Z beach: doomlist3: "is the same as" is ambiguous, and the answer is "no". 2020-05-01T09:09:43Z SAL9000: i.e. C-x C-f /ssh:user@host:file.py RET 2020-05-01T09:10:10Z sth_: SAL9000: cool 2020-05-01T09:10:15Z SAL9000: doomlist3: (list 2 3) constructs a new object every time, but '(2 3) or (quote 2 3) returns "the same" object -- constructed at read-time. 2020-05-01T09:10:38Z beach: SAL9000: You beat me to it. 2020-05-01T09:10:39Z beach: Thanks. 2020-05-01T09:10:56Z micro joined #lisp 2020-05-01T09:11:02Z SAL9000: sth_: there's some caveats -- unless they've fixed that bug already, watch out for editing as root remotely. In some cases it clobbers /dev/null with the bash history file... 2020-05-01T09:11:05Z SAL9000: beach: np :-) 2020-05-01T09:11:52Z boeg: sth_: also give eshell a try! although it cannot be used 100% as a shell replacement, it can be used for my usage most of the time, and then you have a emacs-shell with all that entails right in emacs. Its great! Check out these two articles about eshell: https://www.masteringemacs.org/article/complete-guide-mastering-eshell & http://www.howardism.org/Technical/Emacs/eshell-fun.html 2020-05-01T09:12:11Z luckless quit (Remote host closed the connection) 2020-05-01T09:12:16Z SAL9000: tbh I'm using eshell a lot more now that I'm stuck on Windoze for work 2020-05-01T09:12:21Z doomlist3: is quote and ' equivalent? 2020-05-01T09:12:24Z beach: doomlist3: To elaborate, when evaluated, the form (list 2 3) produces a fresh list with 2 CONS cells in it. When evaluated, the form (quote (2 3)) also returns a similar list, but it's the same list each time. 2020-05-01T09:12:36Z luckless joined #lisp 2020-05-01T09:12:40Z datajerk quit (Ping timeout: 256 seconds) 2020-05-01T09:12:54Z boeg: sth_: things it cannot be used for properly is for example some git output will not be shown correct, i find. However, for git, you'll probably want to use magit instead anyways 2020-05-01T09:12:56Z beach: doomlist3: ' is a "reader macro" so that when READ sees ', it returns the S-expression (quote ) 2020-05-01T09:12:56Z SAL9000: doomlist3: not 100% equivalent, but for most purposes yes. You only need to care about that difference if you're implementing a LISP yourself and/or doing seriously advanced macrology. 2020-05-01T09:12:57Z phoe: doomlist3: yes, 'foo = (quote foo) 2020-05-01T09:13:08Z beach: phoe: Not true. 2020-05-01T09:13:21Z phoe: beach: oh! what's the difference? 2020-05-01T09:13:24Z beach: phoe: Only true in a context of evaluation. 2020-05-01T09:13:46Z beach: That is why I don't want the words "same as", "equivalent" etc. 2020-05-01T09:13:48Z SAL9000: ''foo vs '(quote foo) will evaluate differently on most lisps, iirc 2020-05-01T09:14:36Z phoe: SAL9000: huh, it's the same on Lisp, MIT Scheme, and Racket 2020-05-01T09:15:10Z phoe: beach: I don't understand "context of evaluation"; the reader macro processing is done at read time 2020-05-01T09:15:27Z SAL9000: maybe it was only in the context of a macro arg? but I remember sbcl giving me different things 2020-05-01T09:15:46Z fourier quit (Ping timeout: 240 seconds) 2020-05-01T09:16:09Z beach: phoe: (= (length "'foo") (length "(quote foo)")) 2020-05-01T09:16:25Z beach: ... would be an example of a context when they are not the same. 2020-05-01T09:16:35Z phoe: beach: oh, you mean *before* read-time - yes, they aren't the same as strings 2020-05-01T09:16:45Z beach: That is why the context is important. 2020-05-01T09:17:05Z sth_: thanks boeg i'll check it out. i'm kinda limited on time so i think i wanna mainly start getting the hang of lisp but emacs is definitely the next thing on my list of things to get better with 2020-05-01T09:17:05Z beach: That is why "the same as" "equivalent" are bad choices of words. 2020-05-01T09:17:28Z SAL9000: on the other hand, for a newbie lisper subtle quote vs quasiquote vs (quote) isn't that big of a deal 2020-05-01T09:17:51Z SAL9000: I'm assuming they aren't going to be writing code walkers or macroexpand any time soon 2020-05-01T09:18:15Z doomlist3: I will be in 2months when i finish gigamonkeys 2020-05-01T09:18:22Z boeg: sth_: I understand! There is no better place to get to know either. Emacs is a lisp environment, so you cannot go wrong, and although emacs is elisp, you still learn a lot of things in emacs and common lisp that you can use in eithr place 2020-05-01T09:18:46Z SAL9000: (require 'cl) ;; get some bits of cl in elisp :-) 2020-05-01T09:19:04Z SAL9000: (cl-loop for dialect in lisp do (message "go wild!")) 2020-05-01T09:22:19Z no-defun-allowed: Emacs behaves subtly differently to Common Lisp (such as, say, how the printer handles new lines), and it's not fun to be reading Common Lisp references while debugging Elisp problems. 2020-05-01T09:22:33Z milanj joined #lisp 2020-05-01T09:23:00Z doomlist3: no-defun-allowed: why don't you allow defun? is there a better alteernative in your opinion? 2020-05-01T09:23:41Z Grue`: flet/labels is obviously superior because no global state :) 2020-05-01T09:24:01Z no-defun-allowed: doomlist3: (setf (fdefinition '...) ...) ;; No, I just thought it was a funny name. 2020-05-01T09:24:22Z beach: doomlist3: It's just a name, but DEFGENERIC is often better. :) 2020-05-01T09:25:31Z no-defun-allowed: I can't disagree with beach's interpretation. 2020-05-01T09:26:18Z doomlist3: I didn't knew setf can be used to define functions, can you give an example 2020-05-01T09:26:47Z phoe: (setf (fdefinition 'foo) (lambda () 42)) 2020-05-01T09:26:49Z luckless quit (Read error: Connection reset by peer) 2020-05-01T09:26:52Z no-defun-allowed: (setf (fdefinition 'the-more-you-know) (lambda () (write-line "The more you know"))) 2020-05-01T09:27:04Z phoe: no-defun-allowed: ... isn't a valid function name unless escaped 2020-05-01T09:27:09Z luckless joined #lisp 2020-05-01T09:27:25Z no-defun-allowed: It's a lousy indication you put something there. 2020-05-01T09:28:08Z no-defun-allowed: (So far, I haven't been able to make the Lisp printer draw the text in 3d with a rainbow and star underneath, but that should suffice as an example.) 2020-05-01T09:29:54Z SAL9000: no-defun-allowed: http://www.martin-loetzsch.de/gtfl/ 2020-05-01T09:30:43Z dale quit (Quit: My computer has gone to sleep) 2020-05-01T09:30:50Z datajerk joined #lisp 2020-05-01T09:31:25Z no-defun-allowed: "A Graphical Terminal For Lisp" Cool, but I think clim-listener beat the author to it. 2020-05-01T09:34:21Z beach: doomlist3: That's what happens when you do (DEFUN ...). 2020-05-01T09:39:23Z Grue`: https://i.imgur.com/1aFjoVU.jpg 2020-05-01T09:39:23Z heisig joined #lisp 2020-05-01T09:39:49Z karswell quit (Remote host closed the connection) 2020-05-01T09:40:05Z karswell_ joined #lisp 2020-05-01T09:42:53Z pjb joined #lisp 2020-05-01T09:43:54Z no-defun-allowed: Nice. 2020-05-01T09:48:33Z lnostdal joined #lisp 2020-05-01T09:49:10Z karswell_ quit (Read error: No route to host) 2020-05-01T09:49:25Z McParen joined #lisp 2020-05-01T09:51:35Z Grue` quit (Quit: ZNC 1.7.2 - https://znc.in) 2020-05-01T09:58:52Z SGASAU quit (Remote host closed the connection) 2020-05-01T09:58:53Z dxtr joined #lisp 2020-05-01T09:59:33Z SGASAU joined #lisp 2020-05-01T10:00:18Z Grue` joined #lisp 2020-05-01T10:00:51Z Grue`` joined #lisp 2020-05-01T10:04:43Z keep_learning quit (Quit: Leaving) 2020-05-01T10:04:46Z shifty quit (Ping timeout: 265 seconds) 2020-05-01T10:08:50Z doomlist3 quit (Ping timeout: 258 seconds) 2020-05-01T10:19:47Z doomlist3 joined #lisp 2020-05-01T10:22:50Z easye` joined #lisp 2020-05-01T10:23:18Z easye quit (Read error: Connection reset by peer) 2020-05-01T10:30:14Z random-nick joined #lisp 2020-05-01T10:30:38Z ffwacom joined #lisp 2020-05-01T10:34:07Z frgo quit (Remote host closed the connection) 2020-05-01T10:34:43Z frgo joined #lisp 2020-05-01T10:38:33Z ym555 joined #lisp 2020-05-01T10:39:05Z doomlist3: hey how to iterate using dolist over plist and list 2020-05-01T10:40:17Z ArthurStrong joined #lisp 2020-05-01T10:40:42Z beach: Don't use DOLIST 2020-05-01T10:40:57Z beach: (loop for element in list ...) for ordinary lists. 2020-05-01T10:41:10Z doomlist3: https://bpaste.net/WPCQ i read gigamonkeys chapter 3 database building 2020-05-01T10:41:43Z doomlist3: beach: i get u but just understanding my error 2020-05-01T10:43:25Z beach: What is your TAGBODY doing there? 2020-05-01T10:43:39Z beach: I need to see the source code. 2020-05-01T10:43:46Z phoe: beach: DOLIST expands into a TAGBODY. 2020-05-01T10:43:53Z beach: Right. 2020-05-01T10:43:53Z phoe: The FORMAT call doesn't have parentheses. 2020-05-01T10:44:02Z beach: Ah, I see it. 2020-05-01T10:44:05Z beach: You are right. 2020-05-01T10:44:17Z phoe: Therefore all four objects there are attempted to be interpreted as TAGBODY tags. 2020-05-01T10:44:21Z beach: Indeed. 2020-05-01T10:44:25Z doomlist3: print p-list 2020-05-01T10:44:30Z phoe: doomlist3: (dolist (n *db*) (format t "~a element~%" n)) 2020-05-01T10:44:46Z doomlist3: phoe: that is what i did 2020-05-01T10:44:52Z beach: No. 2020-05-01T10:45:03Z beach: You forgot the parentheses around the FORMAT form. 2020-05-01T10:45:04Z phoe: no 2020-05-01T10:45:06Z phoe: you did 2020-05-01T10:45:09Z phoe: doomlist3: (dolist (n *db*) format t "~a element~%" n) 2020-05-01T10:45:41Z phoe: count the parentheses in both cases 2020-05-01T10:45:42Z beach: doomlist3: To invoke a function, like FORMAT, you need to stick the function name and its argument forms in a list. 2020-05-01T10:46:08Z doomlist3: ok 2020-05-01T10:46:59Z Ven`` joined #lisp 2020-05-01T10:47:20Z doomlist3: (loop for i in *db* (format t "~a element~%" i)) too shows error 2020-05-01T10:47:37Z phoe: (loop for i in *db* do (format ...)) 2020-05-01T10:47:40Z beach: doomlist3: (loop for i in *db* DO (format t "~a element~%" i)) 2020-05-01T10:49:01Z phoe: beach: I'd like your opinion on https://gitlab.common-lisp.net/alexandria/alexandria/-/issues/15 2020-05-01T10:49:24Z Grue`` quit (Ping timeout: 256 seconds) 2020-05-01T10:50:45Z beach: phoe: Looks good to me. 2020-05-01T10:50:49Z ym555_ joined #lisp 2020-05-01T10:50:58Z ym555 quit (Ping timeout: 260 seconds) 2020-05-01T10:51:16Z phoe: OK. I wonder how much code relies on ROTATE and SHUFFLE for side effects only - I can imagine it being the case for vectors. That code will need to be updated. 2020-05-01T10:52:11Z phoe: Xach: do you have any tools for checking such? I remember pfdietz used to scan all of Quicklisp in some way; I'll ask him when he comes online. 2020-05-01T10:53:33Z marcoxa joined #lisp 2020-05-01T10:54:18Z doomlist3: how to iterate over plist using format t 2020-05-01T10:55:07Z phoe: doomlist3: (loop for (key value) on '(:a 1 :b 2 :c 3) by #'cddr do (format t "~A: ~A~%" key value)) 2020-05-01T10:55:41Z phoe: note that we bind two variables now, KEY and VALUE; note that we use ON instead of IN; and note that we use BY #'CDDR now to skip two elements on each iteration instead of just one 2020-05-01T10:57:20Z doomlist3: by #'cddr --> this syntax is really bad 2020-05-01T10:57:48Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-01T10:58:47Z phoe: why? BY is a standard LOOP keyword, and #'CDDR is standard syntax for named function objects 2020-05-01T10:59:39Z doomlist3: I am from python background 2020-05-01T10:59:50Z phoe: so it's not bad, it's new 2020-05-01T10:59:51Z beach: doomlist3: yes, we need a new Common Lisp standard to change that. 2020-05-01T10:59:57Z beach: *sigh* 2020-05-01T11:00:27Z adlai: another standard? but then you'd have four problems 2020-05-01T11:00:30Z marcoxa: doomlist3 will the following do 2020-05-01T11:01:01Z no-defun-allowed: I'm looking at making Postmodern work with byte arrays (bytea); why should (let ((array (make-array 10 :element-type '(unsigned-byte 8) :initial-element 10))) (postmodern:query (:select array))) produce a string? 2020-05-01T11:01:40Z marcoxa: [(key value) :on (list :a 1 :b 2) :by 'skip2] work for you? 2020-05-01T11:01:50Z phoe: no-defun-allowed: https://github.com/marijnh/Postmodern/issues/194 2020-05-01T11:01:54Z marcoxa: We can make CL do that for you :) 2020-05-01T11:02:19Z beach: marcoxa: I don't think that is helpful to a newbie. 2020-05-01T11:02:22Z phoe: marcoxa: I worry that if you introduce custom syntax for people who are just learning lisp then you have more than two problems 2020-05-01T11:02:35Z beach: What phoe said. 2020-05-01T11:02:42Z marcoxa: I know. I am just being an ass :) :) :) 2020-05-01T11:02:48Z no-defun-allowed: Bummer. 2020-05-01T11:02:48Z phoe: don't 2020-05-01T11:02:51Z marcoxa: Sorry :) 2020-05-01T11:02:56Z beach: Being an ass is also unhelpful to newbies. 2020-05-01T11:03:00Z phoe: ^ 2020-05-01T11:03:38Z phoe: no-defun-allowed: basically, postmodern coerces everything to a string internally because of how it uses the postgres wire protocol; the issue is triaged and diagnosed as you can see in the issue comments, it needs to be implemented 2020-05-01T11:03:53Z no-defun-allowed: I see, for now I could kludge that and do (:SELECT (:TYPE BYTEA)). 2020-05-01T11:03:53Z phoe: sabrac might use some help with that 2020-05-01T11:03:58Z nika joined #lisp 2020-05-01T11:04:05Z marcoxa: Well. By mean of some reader-macro magic you CAN make the above work. It should tickle the newbie curiosity :) 2020-05-01T11:04:10Z phoe: yes, that's a workaround 2020-05-01T11:04:34Z no-defun-allowed: When I get a break, I might take a look then. 2020-05-01T11:04:35Z ym555_ quit (Ping timeout: 260 seconds) 2020-05-01T11:06:13Z sabrac: no-defun-allowed: The first issue is that cl is dynamically typed and a database is statically typed. If you are selecting not from a table, you can specify the type with :: 2020-05-01T11:07:35Z sabrac: If you are selecting from a table, you need to know what how column is typed. int2 does not equal int4. Etc. 2020-05-01T11:07:59Z sabrac: But yes, I could use help thinking through how to deal with binaries. 2020-05-01T11:12:14Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-01T11:13:03Z Bike joined #lisp 2020-05-01T11:15:33Z no-defun-allowed: Sure, fair enough. 2020-05-01T11:16:32Z no-defun-allowed: I noticed a comment suggesting that the wire protocol for bytea was inefficient; do you have an opinion on that? 2020-05-01T11:17:54Z gargaml joined #lisp 2020-05-01T11:19:05Z karlosz quit (Quit: karlosz) 2020-05-01T11:19:11Z no-defun-allowed: I'm still on the fence on if I should store my binary data elsewhere. (I suppose I probably should, but I recall Heroku only has Postgres for free persistent storage.) 2020-05-01T11:20:16Z doomlist3 quit (Ping timeout: 246 seconds) 2020-05-01T11:22:15Z sabrac: no-defun-allowed: you planning on using the postgresql bytea hex format or escape format as the datatype inside the database? 2020-05-01T11:23:03Z no-defun-allowed: I don't know honestly. 2020-05-01T11:23:04Z Grue` quit (Ping timeout: 265 seconds) 2020-05-01T11:23:46Z sabrac: no-defun-allowed: generally recommended to use the hex format. See https://www.postgresql.org/docs/current/datatype-binary.html#id-1.5.7.12.9 2020-05-01T11:25:48Z no-defun-allowed: Okay. I've been poking at it from S-SQL which I think uses the escape format. 2020-05-01T11:26:18Z sabrac: Another thing to add to the list 2020-05-01T11:27:46Z Lord_of_Life_ joined #lisp 2020-05-01T11:30:04Z SGASAU quit (Remote host closed the connection) 2020-05-01T11:30:20Z Lycurgus joined #lisp 2020-05-01T11:30:22Z theosvoitha quit (Quit: Connection closed for inactivity) 2020-05-01T11:30:48Z Lord_of_Life quit (Ping timeout: 265 seconds) 2020-05-01T11:30:48Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-01T11:31:07Z SGASAU joined #lisp 2020-05-01T11:31:11Z boeg: I'm trying to find out how to organize my, specifically; I have a package where things are written and read from a database, and things that need that, do it via that package. So I have a function to update a post, and it then validates the data provided, and persists the change if its valid, and if errors happens - either invalid data or persistence failed - it collects these errors, and returns two values, a boolean stating 2020-05-01T11:31:11Z boeg: success or 2020-05-01T11:31:11Z boeg: failure, and a list which in the case of failure will contains a list of errors like so: https://pastebin.com/zafsB9HR - is this a "good way" to architecture such a thing in common lisp, is there a better way/pattern to use? 2020-05-01T11:31:29Z boeg: organize my code* 2020-05-01T11:32:32Z boeg: i'm not sure that code actually works, I just freewheeled it in pastebin, but it carries the idea i'm playing with 2020-05-01T11:33:03Z scymtym_ joined #lisp 2020-05-01T11:35:18Z scymtym quit (Ping timeout: 256 seconds) 2020-05-01T11:39:07Z Ven`` joined #lisp 2020-05-01T11:40:28Z beach: boeg: You should use the condition system to signal errors. 2020-05-01T11:40:44Z beach: boeg: LET has an implicit PROGN, so no PROGN needed there. 2020-05-01T11:41:34Z beach: Why do you return a list of errors? 2020-05-01T11:44:14Z boeg: beach: yes, I had thought about the condition system, but I haven't gotten into the weeds of it yet, and didn't know if I could return multiple errors with it like I need. I didn't know about the implicit progn in let, thank you! I need to return a list of errors because the errors, one or more, have to be shown to the user with the form fields that has errors, like if a required field is empty, or contains invalid content in 2020-05-01T11:44:14Z boeg: another 2020-05-01T11:44:14Z boeg: way 2020-05-01T11:44:47Z boeg: so there can be many errors in the content and they need all be signaled to the caller so the caller can render them to the client 2020-05-01T11:44:55Z boeg: in the provided content/data* 2020-05-01T11:44:56Z phoe: boeg: in the end you can signal a single error object that contains, as a slot, a list of all things that are wrong with the post 2020-05-01T11:45:12Z phoe: I'd separate the validation logic from the control flow 2020-05-01T11:45:55Z boeg: phoe: do you by chance have something about this specifically in your book? :P 2020-05-01T11:46:28Z boeg: well, something you would think i could use for this to understand how to properly model it? 2020-05-01T11:46:46Z boeg: because that would be a good reason to read your book now instead of later, or at least parts of it :P 2020-05-01T11:46:53Z phoe: boeg: lemme write an example 2020-05-01T11:47:07Z phoe: boeg: this issue is orthogonal to my book, so I don't have much about it 2020-05-01T11:47:17Z boeg: alright, could be, thought i'd ask :D 2020-05-01T11:50:38Z phoe: https://plaster.tymoon.eu/view/1791#1791 2020-05-01T11:50:42Z boeg: thanks 2020-05-01T11:50:43Z phoe: I'd suggest such structure 2020-05-01T11:50:53Z phoe: it separates validation from control flow 2020-05-01T11:51:14Z phoe: and also uses the condition system, signaling a validation error if the data doesn't pass validation 2020-05-01T11:51:33Z phoe: and doesn't handle the mito error, allowing it to bubble up and be handled by the logic that calls UPDATE-POST 2020-05-01T11:53:10Z phoe: a handler-case that handles *ALL* conditions, like you had it, is a big anti-pattern in general 2020-05-01T11:53:42Z phoe: mito is allowed to signal a non-error condition as a part of its normal functioning, and your original code is going to treat it as if it was an error 2020-05-01T11:54:13Z boeg: alright, that makes a lot of sense, although I think i'd want the mito error to not bubble up to the caller - I want it to be abstracted away, so I can easily change the persistence-layer if needed. But I could handle the mito error in update-post and then signal another that tells the same story, but isn't specifically a mito error. What do you think? 2020-05-01T11:54:29Z boeg: another custem error* 2020-05-01T11:55:11Z rozenglass joined #lisp 2020-05-01T11:56:15Z phoe: boeg: you could encapsulate the error into your own error condition, sure 2020-05-01T11:56:16Z Inline joined #lisp 2020-05-01T11:56:40Z theosvoitha joined #lisp 2020-05-01T11:56:40Z phoe: though, for modularity, I'd add one more layer above UPDATE-POST that actually performs error handling 2020-05-01T11:56:58Z phoe: that's for fulfilling the single responsibility principle 2020-05-01T11:58:22Z bitmapper joined #lisp 2020-05-01T11:59:38Z boeg: when you say performs error handling, what do you mean? Because I'm just thinking that the layer above that function is the place that calls update-post and if error(s) occurs, it presents it to the user, no? 2020-05-01T12:00:17Z Grue` joined #lisp 2020-05-01T12:01:46Z boeg: I guess in the case of a mito-error, there could be a layer above that could try persisting the data again if it fails before signaling to the user that something is wrong 2020-05-01T12:02:22Z boeg: but for the validation errors, they just need to be signaled to the caller say they can be rendered to the user so the user can fix them 2020-05-01T12:02:30Z boeg: so they can be* 2020-05-01T12:03:23Z boeg: before signaling to the caller to rendering the persistence-error/mito-error to the user 2020-05-01T12:03:27Z boeg: ** 2020-05-01T12:03:41Z boeg: render* 2020-05-01T12:04:03Z pjb: sabrac: sqlite is not statically typed. 2020-05-01T12:05:10Z SGASAU` joined #lisp 2020-05-01T12:05:19Z __lm__ joined #lisp 2020-05-01T12:05:34Z __lm__ quit (Remote host closed the connection) 2020-05-01T12:05:45Z SGASAU quit (Ping timeout: 258 seconds) 2020-05-01T12:06:01Z boeg: brb 2020-05-01T12:06:05Z phoe: sabrac: we're talking postgres here 2020-05-01T12:06:14Z phoe: boeg: https://plaster.tymoon.eu/view/1792#1792 2020-05-01T12:09:52Z bitmapper quit (Ping timeout: 256 seconds) 2020-05-01T12:12:36Z SGASAU` quit (Remote host closed the connection) 2020-05-01T12:12:41Z gxt quit (Remote host closed the connection) 2020-05-01T12:13:49Z SGASAU` joined #lisp 2020-05-01T12:14:03Z gxt joined #lisp 2020-05-01T12:15:11Z boeg: phoe: ah, so you meant to not mix the operation of validation and persisting, right? Makes sense, thank you! 2020-05-01T12:15:28Z boeg: well, obviously thats what you meant, it was just I who didn't understand :) 2020-05-01T12:15:58Z phoe: boeg: yes, these two are supposed to be separate; in general, it is worthwhile to separate parts of code that are pure and that have side effects, and that is just one practical example of that 2020-05-01T12:16:15Z boeg: indeed, thanks! 2020-05-01T12:16:57Z phoe: also now it is `update-posts` that controls the flow of this part of the code and decides whether it is okay to invoke `perform-update-posts` and therefore perform side effects 2020-05-01T12:17:25Z boeg: yes, i see that its a good way to organize it! 2020-05-01T12:17:25Z phoe: so we have three functions in effect: one for validation, one for side effects, and one that controls the program flow 2020-05-01T12:18:11Z phoe: and you will likely see similar structuring outside Lisp, too; it's a general programming pattern 2020-05-01T12:19:06Z boeg: Indeed! I wanted to ask - is it correct to the -p (for predicate) for stuff like a function that returns a bool for example in the above case of post-path-p that decides whether the path is valid? 2020-05-01T12:19:38Z boeg: as I understand it, thats the naming-scheme to use right? -p if multiple words (post-path), just "p" if it was "path" so "pathp", yes? 2020-05-01T12:19:47Z phoe: boeg: the naming scheme is correct 2020-05-01T12:19:51Z boeg: good! 2020-05-01T12:19:58Z phoe: in general, predicates answer "yes or no" questions 2020-05-01T12:20:02Z boeg: yes 2020-05-01T12:20:19Z phoe: so I wouldn't use that for `validate-post` because this function answers *what* is wrong with a post 2020-05-01T12:20:19Z boeg: thanks 2020-05-01T12:20:25Z phoe: since you need detailed information. 2020-05-01T12:20:35Z boeg: yes, good point! 2020-05-01T12:22:53Z Shinmera: Could also use check-post-valid, which signals different conditions depending on the problem. 2020-05-01T12:23:37Z phoe: Shinmera: the issue is that he needs not alter control flow of validate-post, he needs to go through all fields and collect the errors. 2020-05-01T12:23:55Z Shinmera: then just use cerror 2020-05-01T12:24:23Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-01T12:24:48Z phoe: Shinmera: that seems kinda backwards; cerror is going to either alter control flow or enter the debugger 2020-05-01T12:25:00Z SGASAU joined #lisp 2020-05-01T12:25:07Z phoe: or require a handler-bind with #'continue 2020-05-01T12:25:16Z Shinmera: ? obviously you gather the conditions in a handler 2020-05-01T12:25:20Z Shinmera: if that's what you want. 2020-05-01T12:26:08Z phoe: I understand that what is wanted here is a list of all things that are wrong with a post, e.g. ("post title is invalid" "post path is invalid" "attachments not recognized" ...) etc.. 2020-05-01T12:26:27Z phoe: because that is then needed to be sent over the network and presented to the user in a frontend 2020-05-01T12:26:35Z Shinmera: Yeah, I do too. 2020-05-01T12:26:44Z boeg: indeed, thats the need 2020-05-01T12:27:53Z phoe: I think that pushing to a list in validate-post is going to be the most effective here; I don't know how to include the condition system and handlers here without bloating that code 2020-05-01T12:28:34Z Shinmera: You could also use a library like ratify to do things like this. 2020-05-01T12:29:40Z phoe learns about the existence of RATIFY 2020-05-01T12:30:02Z Shinmera: Typically validation is repeated in very similar ways all over. Using the condition system you can factor a validation out into a single function per 'validation type'. then just group a bunch of these checks into a validation function for an object 2020-05-01T12:30:14Z Shinmera: then, if you need to gather all of the errors, use a handler. 2020-05-01T12:30:39Z Shinmera: this allows you to reuse the checks in interactive sessions as well where the intent is not to redirect to a web frontend. 2020-05-01T12:30:46Z phoe: I am more and more convinced of the truth of the statement "there's Shinmeraware for that" 2020-05-01T12:31:07Z phoe: damn, that's a big library 2020-05-01T12:31:10Z Shinmera: and it won't lose you the stack trace. 2020-05-01T12:31:35Z Shinmera: I should rewrite it, I don't like its current design. 2020-05-01T12:31:40Z Shinmera: It's one of my very early libraries. 2020-05-01T12:32:06Z boeg: that's an interesting library 2020-05-01T12:32:23Z red-dot joined #lisp 2020-05-01T12:34:05Z boeg: although I think I should do it without that library for now until I've done this same thing in common lisp (as opposed to python where I do indeed use such a library because its a task repeated often, as you say, Shinmera) so many times that I myself discover the need of the library in the context of common lisp, so I actually get used to how to do it in common lisp without a library for now 2020-05-01T12:40:05Z nmg`` quit (Remote host closed the connection) 2020-05-01T12:41:05Z SGASAU quit (Remote host closed the connection) 2020-05-01T12:42:27Z SGASAU` joined #lisp 2020-05-01T12:42:47Z dlowe: for any problem, there exists solutions in pjbware, Shinmeraware, and hu.dwim 2020-05-01T12:43:26Z boeg: lol 2020-05-01T12:43:35Z phoe: and, possibly, fukamachiware 2020-05-01T12:44:01Z SGASAU` quit (Remote host closed the connection) 2020-05-01T12:44:39Z jackdaniel: hu.pjb.fukashrine 2020-05-01T12:45:09Z SGASAU` joined #lisp 2020-05-01T12:45:25Z phoe takes a brief break from #lisp 2020-05-01T12:46:20Z SGASAU` quit (Remote host closed the connection) 2020-05-01T12:50:34Z Lycurgus quit (Remote host closed the connection) 2020-05-01T12:51:09Z SGASAU` joined #lisp 2020-05-01T12:54:45Z karayan quit (Ping timeout: 240 seconds) 2020-05-01T12:55:15Z karayan joined #lisp 2020-05-01T12:58:36Z ineiros joined #lisp 2020-05-01T13:00:04Z ineiros quit (Client Quit) 2020-05-01T13:00:37Z ineiros joined #lisp 2020-05-01T13:00:53Z ineiros quit (Client Quit) 2020-05-01T13:01:55Z ineiros joined #lisp 2020-05-01T13:01:59Z gabiruh joined #lisp 2020-05-01T13:02:41Z phoe: oh bother 2020-05-01T13:02:49Z phoe: (restart-case ... (abort () :report)) is allowed 2020-05-01T13:04:05Z phoe: I am more and more tempted to say that keyword options to restart cases should have been provided in a distinct pair of parens 2020-05-01T13:05:07Z phoe: like, a restart case could be destructured against (name (&rest arguments) (&key report interactive test) &body body) 2020-05-01T13:05:14Z phoe: that would avoid the terribly awkward keyword parsing 2020-05-01T13:12:19Z Bike: how is that allowed? 2020-05-01T13:12:26Z Bike: oh, like, :report is the body? 2020-05-01T13:12:29Z Bike: that's perverse. 2020-05-01T13:12:30Z phoe: yes 2020-05-01T13:12:35Z phoe: perverse, but standard 2020-05-01T13:12:54Z Bike: mmh. 2020-05-01T13:12:55Z phoe: is this the only place in standard CL that violates the no-&REST-after-&KEY rule? 2020-05-01T13:16:03Z shka_: phoe: well, i suspect that you know better ;-) 2020-05-01T13:16:26Z phoe: shka_: I'm only somewhat sure about the macros in the condition system, not about the other ones 2020-05-01T13:18:58Z EvW joined #lisp 2020-05-01T13:21:07Z White_Flame: what's the proper grammatical term for a verb that is involved in a closure? "The variable is closed over"? "The variable is closured in"? etc 2020-05-01T13:21:15Z White_Flame: in an active etnse 2020-05-01T13:21:16Z White_Flame: tense 2020-05-01T13:21:30Z p_l: White_Flame: closed over 2020-05-01T13:21:33Z shka_: uhm 2020-05-01T13:21:45Z Inline quit (Ping timeout: 240 seconds) 2020-05-01T13:21:53Z p_l: or possibly enclosed 2020-05-01T13:21:53Z shka_: is it the correct direction though? 2020-05-01T13:22:04Z Bike: well, active voice would be "the function closes over the variable" 2020-05-01T13:22:15Z shka_: i thought that it is the function is closed over 2020-05-01T13:22:21Z shka_: and not variable is closed over 2020-05-01T13:22:32Z dlowe: the binding is closed over 2020-05-01T13:22:38Z shka_: riight 2020-05-01T13:22:45Z dlowe: so functions and variables 2020-05-01T13:22:48Z White_Flame: Ok, when talking about deciding whether the variable is local/private or does closurey things, as the subject of the sentence? 2020-05-01T13:23:02Z TCZ joined #lisp 2020-05-01T13:23:15Z White_Flame: and yeah, none of these seemed rigt 2020-05-01T13:23:33Z TCZ left #lisp 2020-05-01T13:23:37Z White_Flame: erm, none that I posted seemed right, as you're pointing out 2020-05-01T13:23:55Z shka_: White_Flame: variable may be included into closure lexical environment 2020-05-01T13:24:05Z shka_: which i suspect is at least more correct term 2020-05-01T13:24:14Z orivej joined #lisp 2020-05-01T13:24:46Z White_Flame: I think "is enclosed" is probably correct enough and concise. I do like it 2020-05-01T13:25:38Z phoe: oh bother 2020-05-01T13:25:40Z phoe: clhs restart-bind 2020-05-01T13:25:41Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_rst_bi.htm 2020-05-01T13:25:44Z shka_: this sounds good 2020-05-01T13:25:47Z phoe: are declarations allowed in there? 2020-05-01T13:25:55Z phoe: like, in forms? 2020-05-01T13:26:04Z White_Flame: thx 2020-05-01T13:26:12Z Bike: doesn't look like it. it says "implicit progn". 2020-05-01T13:26:30Z Bike: and there's no opportunity for any bound declarations. 2020-05-01T13:27:18Z phoe: right - SBCL accepts them there, but CCL doesn't 2020-05-01T13:27:48Z phoe: heh, the spec could really use an "implicit locally" glossary term sometimes 2020-05-01T13:27:59Z phoe puts it in the ideas-for-cltl4 jar 2020-05-01T13:28:00Z Bike: well, sbcl is wrong 2020-05-01T13:28:21Z Bike: looks like it's just part of a let. easy to fix, just replace ,@forms with (progn ,@forms) 2020-05-01T13:28:51Z phoe: yes 2020-05-01T13:29:04Z phoe: do I care enough to put a bugticket for that though... 2020-05-01T13:29:06Z phoe: sigh 2020-05-01T13:29:39Z Inline joined #lisp 2020-05-01T13:30:40Z phoe: one second though 2020-05-01T13:30:49Z phoe: a spurious DECLARE invokes undefined behaviour 2020-05-01T13:30:50Z jmercouris: I believe in you phoe 2020-05-01T13:30:54Z jmercouris: you can do it 2020-05-01T13:30:58Z phoe: so SBCL is allowed to do what it does 2020-05-01T13:31:19Z phoe: so no bugticket time 2020-05-01T13:31:35Z phoe: clhs declare 2020-05-01T13:31:35Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_declar.htm 2020-05-01T13:34:14Z phoe: oh well 2020-05-01T13:35:16Z jrx joined #lisp 2020-05-01T13:45:45Z rozenglass quit (Quit: WeeChat 2.3) 2020-05-01T13:46:02Z rozenglass joined #lisp 2020-05-01T13:46:54Z fourier joined #lisp 2020-05-01T13:47:40Z rozenglass quit (Client Quit) 2020-05-01T13:47:50Z pve: Hello everyone 2020-05-01T13:48:47Z pve: I'm working on a smalltalk-like "mini language" (in lisp) that I would like to put up on github, and now I'm wondering what I should call it. 2020-05-01T13:49:30Z pve: Since its syntax basically consists of lisp symbols and forms I was thinking "symbolic smalltalk", but would that be inappropriate? 2020-05-01T13:49:31Z Shinmera: smallertalk 2020-05-01T13:49:41Z pve: (it's not a real smalltalk system by any means) 2020-05-01T13:49:50Z pve: Shinmera: great suggestion 2020-05-01T13:49:57Z fourier: tinytalk 2020-05-01T13:50:10Z _death: thmalltalk 2020-05-01T13:50:15Z pve: hehe 2020-05-01T13:50:41Z dlowe: chitchat 2020-05-01T13:50:51Z pve: dlowe: that one crossed my mind already 2020-05-01T13:51:02Z dlowe: yakity 2020-05-01T13:51:02Z jrx: lisp flavored smalltalk 2020-05-01T13:51:54Z jrx: like this one : http://lfe.io/ 2020-05-01T13:52:40Z jrx: "flavoured" 2020-05-01T13:54:33Z jrx: I see "Latest commit on 12 May 2019" on github page https://github.com/rvirding/lfe 2020-05-01T13:55:10Z jrx quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-01T13:57:20Z pve: i like "smaller" and "tiny" because they reflect the fact that it's something you embed in normal lisp code 2020-05-01T13:57:38Z shka_: commontalk ;-) 2020-05-01T13:57:52Z pve: really good suggestion too 2020-05-01T13:57:53Z Bike: lingua franca? 2020-05-01T13:58:44Z shka_: is (check-type something-p boolean) considered to be a pedantic or not? 2020-05-01T13:59:18Z phoe: yes 2020-05-01T13:59:23Z phoe: all Lisp data are booleans 2020-05-01T13:59:33Z phoe: generalized, but booleans 2020-05-01T13:59:53Z pve: Bike: perhaps a bit too dramatic :) 2020-05-01T14:00:02Z phoe: so limiting options to just (member t nil) may break existing code that passes e.g. 2 as a true value 2020-05-01T14:00:43Z shka_: eh, ok 2020-05-01T14:01:23Z jmercouris: can coerce to boolean? 2020-05-01T14:01:41Z phoe: (coerce x 'boolean) would be nice to have, but is undefined 2020-05-01T14:01:59Z jmercouris: shame 2020-05-01T14:02:03Z phoe: (define notnot (x) (not (not x))) is also commonly seen somewhere 2020-05-01T14:02:32Z dlowe: (if x t)? 2020-05-01T14:02:36Z jmercouris: that works 2020-05-01T14:02:39Z jmercouris: i know that one 2020-05-01T14:02:43Z shka_: i just want to say that i don't like this one bit 2020-05-01T14:02:48Z IRC-Source_21 joined #lisp 2020-05-01T14:02:50Z jmercouris: what about the other bit? 2020-05-01T14:02:54Z dlowe: shka_: ha ha 2020-05-01T14:03:12Z shka_: sbcl already accepts everything as boolean everywhere 2020-05-01T14:03:19Z shka_: so i will follow 2020-05-01T14:04:23Z phoe: as it should 2020-05-01T14:06:13Z phoe: nil is the only valse value in Lisp 2020-05-01T14:06:18Z jmercouris: false* 2020-05-01T14:06:22Z phoe: false, yes 2020-05-01T14:06:33Z shka_: eh, we have to accept difference of opinions on this subject 2020-05-01T14:06:43Z jmercouris: just in case someone in 2050 is reading this log and get's confused by the usage of the word valse 2020-05-01T14:06:49Z jmercouris: maybe valse means something in 2050 2020-05-01T14:06:53Z shka_: but as far as practical implications go, i agree 2020-05-01T14:07:04Z jmercouris: i don't mind the generalized boolean approach 2020-05-01T14:07:12Z dyelar quit (Quit: Leaving.) 2020-05-01T14:07:13Z jmercouris: it is very much inherited and implicit behavior from C I think 2020-05-01T14:07:30Z shka_: lisp didn't inherit anything from C 2020-05-01T14:07:33Z shka_: python did 2020-05-01T14:07:42Z jmercouris: lisp inherited things from C 2020-05-01T14:07:44Z shka_: so 0 casts to false 2020-05-01T14:07:56Z shka_: even though there are proper booleans 2020-05-01T14:08:03Z shka_: oh, and False casts to 0 2020-05-01T14:08:10Z shka_: this is as stupid as it gets 2020-05-01T14:08:18Z jmercouris: or maybe C inherited from lisp 2020-05-01T14:08:40Z shka_: ok, enough of ranting, back to programing 2020-05-01T14:09:26Z xkapastel joined #lisp 2020-05-01T14:10:22Z theosvoitha quit (Quit: Connection closed for inactivity) 2020-05-01T14:10:26Z Bike: checked the maclisp manual and the description of cond is in terms of generalized booleans (though it doesn't use the term), and it says this is "like the traditional LISP 1.5 cond" 2020-05-01T14:10:55Z phoe: generalized booleans saved us a ton of (not (eq ... nil)) 2020-05-01T14:11:20Z phoe: or, alternatively, (eq ... t) 2020-05-01T14:11:27Z Grue`: nil as false is more pragmatic than Scheme's #f, but sometimes 0/empty string/empty array not being false or all objects being always true leads to ugly code 2020-05-01T14:11:53Z Bike: i guess i can just check the 1.5 manual 2020-05-01T14:12:03Z shka_: well, beach writes (when (not stuff) …) and is pretty explicit about this in his style guide 2020-05-01T14:12:34Z beach: I write (when (null stuff) ...) but I don't think I write (when (not stuff)...) 2020-05-01T14:12:45Z shka_: ok, ok 2020-05-01T14:12:48Z shka_: null stuff 2020-05-01T14:12:52Z shka_: even better 2020-05-01T14:12:55Z beach: That's VERY different. 2020-05-01T14:12:57Z shka_: yes 2020-05-01T14:13:01Z shka_: you are right 2020-05-01T14:13:04Z Bike: "Semantically, any S-expression that is not NIL will be regarded as truth [...]" yeah ok. 2020-05-01T14:13:35Z Bike: though it's stricter about some things, like it says EQ returns *T* or NIL, not just a generalized boolean 2020-05-01T14:15:30Z beach: shka_: Since NOT should take a Boolean value, (WHEN (NOT ) ...) would be entirely equivalent to (UNLESS ...) 2020-05-01T14:15:46Z shka_: beach: i understand, pardon my mistake 2020-05-01T14:15:53Z arbv quit (Quit: ZNC - https://znc.in) 2020-05-01T14:15:58Z beach: No problem. 2020-05-01T14:16:14Z arbv joined #lisp 2020-05-01T14:16:21Z jmercouris: why isn't it nullp? 2020-05-01T14:16:49Z beach: For hysterical raisins. 2020-05-01T14:16:54Z phoe: same why atom isn't atomp 2020-05-01T14:16:59Z phoe: also, Bike: https://github.com/sbcl/sbcl/commit/db24d4230e7d13439ba43ce017801eb8b2c317de 2020-05-01T14:17:13Z jmercouris: hysterical raisins? 2020-05-01T14:17:21Z beach: *sigh* 2020-05-01T14:17:21Z Bike: historical reasons 2020-05-01T14:17:24Z shka_: :D 2020-05-01T14:17:25Z phoe: translating from beachspeak: historical reasons 2020-05-01T14:17:32Z jmercouris: man those grapes 2020-05-01T14:17:34Z jmercouris: they are out of control 2020-05-01T14:17:47Z shka_: grapes of the hysteria 2020-05-01T14:18:08Z splittist: What else would a Professor from his town say? 2020-05-01T14:19:00Z beach: "raisins hystériques" probably 2020-05-01T14:20:11Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-01T14:21:48Z shka_: this sounds like a french punk rock band name 2020-05-01T14:22:20Z jmercouris: this sounds like daft punk to me 2020-05-01T14:28:29Z sjl_ joined #lisp 2020-05-01T14:31:45Z fourier quit (Ping timeout: 240 seconds) 2020-05-01T14:32:18Z dyelar joined #lisp 2020-05-01T14:37:57Z corpix quit (Remote host closed the connection) 2020-05-01T14:38:12Z corpix joined #lisp 2020-05-01T14:42:13Z dyelar quit (Quit: Leaving.) 2020-05-01T14:42:20Z sabrac quit (Quit: Konversation terminated!) 2020-05-01T14:44:07Z gargaml quit (Ping timeout: 240 seconds) 2020-05-01T14:44:33Z gargaml joined #lisp 2020-05-01T14:44:49Z MerlinTheWizard joined #lisp 2020-05-01T14:49:54Z pve: Bike: I take it back, it's not necessarily too dramatic :) 2020-05-01T14:50:08Z pve: thank you all for your great suggestions 2020-05-01T14:58:36Z wsinatra joined #lisp 2020-05-01T14:59:56Z Aurora_v_kosmose quit (Remote host closed the connection) 2020-05-01T15:00:09Z red-dot joined #lisp 2020-05-01T15:00:35Z Aurora_v_kosmose joined #lisp 2020-05-01T15:00:37Z wsinatra quit (Client Quit) 2020-05-01T15:07:03Z efm joined #lisp 2020-05-01T15:09:00Z bitmapper joined #lisp 2020-05-01T15:09:15Z jackdaniel: histeryczne rodzynki? 2020-05-01T15:09:17Z jackdaniel: mmm 2020-05-01T15:12:58Z beach` joined #lisp 2020-05-01T15:13:39Z duncan_ joined #lisp 2020-05-01T15:14:26Z Inline quit (Ping timeout: 244 seconds) 2020-05-01T15:14:40Z beach quit (Disconnected by services) 2020-05-01T15:14:45Z beach` is now known as beach 2020-05-01T15:16:15Z constptr joined #lisp 2020-05-01T15:18:51Z vyorkin joined #lisp 2020-05-01T15:21:45Z borei quit (Ping timeout: 240 seconds) 2020-05-01T15:23:09Z v0|d quit (Remote host closed the connection) 2020-05-01T15:36:29Z gendl: Happy Mayday, everyone. 2020-05-01T15:36:41Z beach: Thanks. You too. 2020-05-01T15:36:50Z phoe: ^ 2020-05-01T15:37:06Z Inline joined #lisp 2020-05-01T15:37:38Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-01T15:38:17Z ahungry joined #lisp 2020-05-01T15:38:46Z EvW quit (Ping timeout: 240 seconds) 2020-05-01T15:39:20Z rozenglass joined #lisp 2020-05-01T15:47:19Z marcoxa quit (Ping timeout: 258 seconds) 2020-05-01T15:49:08Z red-dot joined #lisp 2020-05-01T15:52:30Z asarch joined #lisp 2020-05-01T15:52:44Z corpix quit (Remote host closed the connection) 2020-05-01T15:52:59Z corpix joined #lisp 2020-05-01T15:55:43Z duncan_ quit (Ping timeout: 246 seconds) 2020-05-01T15:58:45Z corpix quit (Remote host closed the connection) 2020-05-01T15:58:58Z corpix joined #lisp 2020-05-01T15:59:38Z Lycurgus joined #lisp 2020-05-01T16:00:07Z MerlinTheWizard quit (Ping timeout: 240 seconds) 2020-05-01T16:02:01Z lxbarbosa joined #lisp 2020-05-01T16:03:00Z corpix quit (Remote host closed the connection) 2020-05-01T16:03:11Z corpix joined #lisp 2020-05-01T16:09:42Z corpix quit (Remote host closed the connection) 2020-05-01T16:09:47Z MerlinTheWizard joined #lisp 2020-05-01T16:10:01Z corpix joined #lisp 2020-05-01T16:10:21Z rogersm joined #lisp 2020-05-01T16:10:35Z corpix quit (Remote host closed the connection) 2020-05-01T16:11:17Z corpix joined #lisp 2020-05-01T16:11:44Z phoe: In DEFCLASS, "slot-spec" means "slot specification", "slot specifier", or something completely different? 2020-05-01T16:12:36Z corpix quit (Remote host closed the connection) 2020-05-01T16:12:47Z scymtym__ joined #lisp 2020-05-01T16:13:20Z rogersm quit (Client Quit) 2020-05-01T16:13:34Z Bike: what do you mean "In DEFCLASS" 2020-05-01T16:13:36Z corpix joined #lisp 2020-05-01T16:13:43Z Bike: on CLHS there is "slot-specifier" in the grammar 2020-05-01T16:13:54Z scymtym_ quit (Ping timeout: 240 seconds) 2020-05-01T16:13:55Z phoe: oh wait 2020-05-01T16:13:58Z phoe: I meant in DEFINE-CONDITION 2020-05-01T16:14:03Z phoe: thanks, DEFCLASS clarifies that one 2020-05-01T16:15:15Z Bike: as we previously established, the define-condition grammar is weird and bad anyway 2020-05-01T16:15:20Z phoe: yes 2020-05-01T16:15:25Z phoe: I'm attempting to fix it a little bit now 2020-05-01T16:16:19Z phoe: ...why is a single symbol even legal as a condition slot specifier 2020-05-01T16:16:32Z efm quit (Read error: Connection reset by peer) 2020-05-01T16:16:36Z phoe: you cannot even portably access that slot 2020-05-01T16:17:40Z Bike: as we previously established, the define-condition grammar is weird and bad 2020-05-01T16:17:48Z phoe: point taken 2020-05-01T16:21:34Z even4void joined #lisp 2020-05-01T16:23:39Z even4void quit (Client Quit) 2020-05-01T16:27:47Z efm joined #lisp 2020-05-01T16:37:20Z luni joined #lisp 2020-05-01T16:39:53Z souron_the_evil quit (Quit: Leaving) 2020-05-01T16:40:55Z ljavorsk joined #lisp 2020-05-01T16:41:09Z fourier joined #lisp 2020-05-01T16:42:38Z Ven`` quit (Quit: Textual IRC Client: www.textualapp.com) 2020-05-01T16:44:15Z gko quit (Ping timeout: 240 seconds) 2020-05-01T16:46:59Z bitmapper: can i use defmacro in defmacro, i forget 2020-05-01T16:47:39Z Bike: you can expand to a defmacro, which is fine, or you can execute a defmacro which is technically legal but very weird to do. 2020-05-01T16:48:01Z bitmapper: i'm expanding to one 2020-05-01T16:48:05Z bitmapper: so, perfect 2020-05-01T16:48:47Z rgherdt quit (Remote host closed the connection) 2020-05-01T16:49:11Z rgherdt joined #lisp 2020-05-01T16:50:47Z phoe: yes, expanding into a defmacro is not too weird to do 2020-05-01T16:52:08Z fourier: 'programs generating programs generating programs' 2020-05-01T16:52:54Z phoe: I mean, DEFINE-FOO-DEFINER isn't unseen in the wild - and such expand into DEFMACROs usually 2020-05-01T16:55:38Z froggey: and it makes defmacro trivial to implement: (defmacro defmacro (name lambda-list &body body) `(defmacro ,name ,lambda-list ,@body)) 2020-05-01T16:55:51Z bitmapper: lol 2020-05-01T16:55:54Z phoe: froggey: hold on for a moment 2020-05-01T16:56:13Z Grue`: it needs to be a quine 2020-05-01T16:56:28Z Grue`: expand into its own definition 2020-05-01T16:56:31Z phoe: https://github.com/sbcl/sbcl/blob/28ddc79abc9f119e3b0e0b5ec9b74222366303e5/src/code/list.lisp#L30 2020-05-01T16:56:34Z phoe: obviously 2020-05-01T16:56:45Z ljavorsk quit (Ping timeout: 240 seconds) 2020-05-01T16:58:26Z rpg joined #lisp 2020-05-01T16:58:44Z bitmapper: aren't those function wrappers around primitives? 2020-05-01T16:58:49Z bitmapper: or is some satanic magic happening 2020-05-01T16:59:01Z phoe: they are open-coded into primitives, yes 2020-05-01T16:59:27Z Grue`: i like how nobody knows what a certain comment means anymore, happens too often with old codebases 2020-05-01T16:59:45Z Inline quit (Ping timeout: 240 seconds) 2020-05-01T17:00:38Z shukryzablah joined #lisp 2020-05-01T17:05:00Z dddddd quit (Remote host closed the connection) 2020-05-01T17:08:37Z karayan quit (Ping timeout: 264 seconds) 2020-05-01T17:09:04Z karayan joined #lisp 2020-05-01T17:11:29Z shifty joined #lisp 2020-05-01T17:18:15Z karayan quit (Ping timeout: 240 seconds) 2020-05-01T17:18:53Z karayan joined #lisp 2020-05-01T17:19:24Z marcoxa joined #lisp 2020-05-01T17:21:50Z zmt01 joined #lisp 2020-05-01T17:24:27Z efm quit (Remote host closed the connection) 2020-05-01T17:24:34Z rozenglass quit (Ping timeout: 240 seconds) 2020-05-01T17:24:45Z zmt00 quit (Ping timeout: 240 seconds) 2020-05-01T17:24:50Z efm joined #lisp 2020-05-01T17:26:48Z lnostdal quit (Read error: Connection reset by peer) 2020-05-01T17:33:09Z marcoxa quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2020-05-01T17:34:53Z marcoxa joined #lisp 2020-05-01T17:38:58Z xlarsx joined #lisp 2020-05-01T17:43:35Z xlarsx quit (Ping timeout: 260 seconds) 2020-05-01T17:44:20Z xlarsx joined #lisp 2020-05-01T17:45:12Z narimiran quit (Remote host closed the connection) 2020-05-01T17:45:20Z xlarsx quit (Remote host closed the connection) 2020-05-01T17:48:42Z narimiran joined #lisp 2020-05-01T17:49:04Z rozenglass joined #lisp 2020-05-01T17:50:14Z jackdaniel: that's nothing, function names and comments in McCLIM's geometry module *were* written in german :) 2020-05-01T17:50:45Z phoe: take a look at clisp source code if you want lots of german 2020-05-01T17:55:47Z rozenglass quit (Quit: WeeChat 2.3) 2020-05-01T17:57:32Z jfrancis joined #lisp 2020-05-01T17:57:32Z jfrancis_ quit (Read error: Connection reset by peer) 2020-05-01T18:08:05Z xkapastel quit (Quit: Connection closed for inactivity) 2020-05-01T18:14:52Z karlosz joined #lisp 2020-05-01T18:17:32Z asarch: If I have: ((pizza . 4) (beer . 5) (tacos . 8)), how would I get quickly the value of beers? 2020-05-01T18:17:46Z Josh_2: assoc 2020-05-01T18:17:51Z stepnem quit (Read error: Connection reset by peer) 2020-05-01T18:18:15Z z147 joined #lisp 2020-05-01T18:18:37Z asarch: Thank you! 2020-05-01T18:18:38Z Josh_2: well (cdr (assoc 'beer )) 2020-05-01T18:18:46Z karayan quit (Ping timeout: 256 seconds) 2020-05-01T18:19:17Z karayan joined #lisp 2020-05-01T18:19:45Z fourier quit (Ping timeout: 240 seconds) 2020-05-01T18:20:24Z phoe: alexandria:assoc-value 2020-05-01T18:20:50Z stepnem joined #lisp 2020-05-01T18:20:59Z choegusung joined #lisp 2020-05-01T18:21:03Z choegusung quit (Client Quit) 2020-05-01T18:21:47Z IRC-Source_21 quit (Quit: Connection closed) 2020-05-01T18:21:55Z Grue`: cdadr is the quickest. but only if the entries are in this specific order 2020-05-01T18:22:14Z asarch: Thank you very guys! :-) 2020-05-01T18:25:35Z EvW1 joined #lisp 2020-05-01T18:25:59Z fourier joined #lisp 2020-05-01T18:26:33Z asarch: And what if: ((food (tacos . 8) (pizza . 3) (beer . 6))), how could I get the value of beers? 2020-05-01T18:26:40Z rozenglass joined #lisp 2020-05-01T18:26:50Z Bike: it's gonna be various combinations of car, cdr, and assoc. 2020-05-01T18:27:06Z jackdaniel: Grue`: if the entries are in this specific order and have this specific values, then typing "5" in repl should do ,-) 2020-05-01T18:27:10Z Bike: in this case probably assoc of cdr of first of first. but it depends on your data structure. 2020-05-01T18:27:13Z Bike: which we can't tell you about. 2020-05-01T18:27:26Z Bike: er, only one first 2020-05-01T18:28:59Z barthandelous joined #lisp 2020-05-01T18:29:24Z shangul joined #lisp 2020-05-01T18:30:04Z Lycurgus quit (Remote host closed the connection) 2020-05-01T18:30:21Z asarch: (assoc 'beer (cdr (car '((food (pizza . 4) (beer . 5) (tacos . 8)))))) 2020-05-01T18:30:45Z z147 quit (Quit: z147) 2020-05-01T18:37:33Z ted_wroclaw joined #lisp 2020-05-01T18:38:13Z Inline joined #lisp 2020-05-01T18:44:17Z efm quit (Ping timeout: 256 seconds) 2020-05-01T18:44:24Z ahungry: assuming the assoc key 'food' is more relevant than whatever item is first in your data set, to get the value would likely be more clearly written as: (cdr (assoc 'beer (assoc 'food your-list-of-things-here))) 2020-05-01T18:44:27Z Fare joined #lisp 2020-05-01T18:44:50Z efm joined #lisp 2020-05-01T18:47:50Z ahungry: well, maybe a little off, I guess emacs cl-assoc doesn't quite map 1 to 1 with CL assoc, my bad 2020-05-01T18:51:09Z ahungry: yea, so adjust it similar to this and its an easy accessor for association lists: (assoc-cdr 'beer (assoc-cdr 'food food-menu)), where assoc-cdr is just a small function similar to: (defun assoc-cdr (k l) (cdr (assoc k l))) 2020-05-01T18:53:02Z eta quit (Ping timeout: 260 seconds) 2020-05-01T18:53:15Z fourier quit (Ping timeout: 240 seconds) 2020-05-01T18:54:36Z Fare: Somehow quicklisp won't find clx-truetype in ~/quicklisp/dists/quicklisp/software/clx-truetype-20160825-git -- how do I debug that? 2020-05-01T18:55:16Z efm quit (Remote host closed the connection) 2020-05-01T18:55:45Z karswell_ joined #lisp 2020-05-01T18:56:07Z phoe: Fare: might be related to https://github.com/quicklisp/quicklisp-projects/issues/1774 2020-05-01T18:56:17Z Fare: also, while downloading, I had to restart a lot of times because a package was downloaded with the wrong size 2020-05-01T18:56:54Z phoe: or are you using an older dist that still contains that system? 2020-05-01T18:57:13Z stepnem quit (Ping timeout: 264 seconds) 2020-05-01T18:57:38Z stepnem joined #lisp 2020-05-01T18:58:53Z efm joined #lisp 2020-05-01T18:59:18Z Fare: phoe: aha. I had updated my dist, but the source directory still existed from a previous dist. 2020-05-01T18:59:51Z Fare: when I did a (ql-dist::clean (ql-dist::dist "quicklisp")) it disappeared. 2020-05-01T19:00:00Z asarch: Or just (flet ((quantity (value) ....) (quantity 'beer')) 2020-05-01T19:00:16Z phoe: Fare: sounds like it "fixes" your problem, then 2020-05-01T19:00:39Z milanj quit (Quit: This computer has gone to sleep) 2020-05-01T19:00:40Z phoe: doesn't fix the fact that clx-truetype disappeared altogether, but should fix your dist structure 2020-05-01T19:01:23Z ChoHag joined #lisp 2020-05-01T19:02:05Z ChoHag: I know it begs the question "when would it even be called?" so does CLOS have the concept of automatic destructors? 2020-05-01T19:02:48Z lemoinem quit (Ping timeout: 244 seconds) 2020-05-01T19:02:56Z dlowe: they're called "finalizers" 2020-05-01T19:03:02Z eta joined #lisp 2020-05-01T19:03:08Z lemoinem joined #lisp 2020-05-01T19:03:12Z dlowe: and the answer is "not portably" 2020-05-01T19:03:24Z phoe: ChoHag: the first, incorrect answer is (ql:quickload :trivial-garbage) 2020-05-01T19:03:39Z phoe: the second, correct answer is "really, don't use finalizers" 2020-05-01T19:04:06Z dlowe: you really want to control when you release resources 2020-05-01T19:04:15Z ChoHag: No. I don't *want* to. 2020-05-01T19:04:39Z dlowe: then you will want to when you hit the error-prone nature of the idea 2020-05-01T19:04:49Z karswell_ quit (Remote host closed the connection) 2020-05-01T19:04:56Z ted_wroclaw quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-01T19:04:57Z ChoHag: I do every time I try and use it. 2020-05-01T19:05:02Z ChoHag: I want to like RAII. 2020-05-01T19:05:33Z Jesin quit (Quit: Leaving) 2020-05-01T19:05:45Z _death: huh, it seems hofstadter's copycat program is not too hard to port to modern common lisp, so far.. https://plaster.tymoon.eu/view/1794#1794 2020-05-01T19:05:48Z phoe: ChoHag: this sounds like initializing some resources with dynamic extent 2020-05-01T19:05:59Z phoe: which, in turn, sounds like a WITH-FOO macro 2020-05-01T19:06:11Z Fare: the correct answer is "Use Rust" ? 2020-05-01T19:06:24Z phoe: Fare: that's a weird answer to get on a Lisp channel 2020-05-01T19:06:31Z karswell_ joined #lisp 2020-05-01T19:06:33Z Inline: more rusty 2020-05-01T19:06:34Z Inline: lol 2020-05-01T19:06:38Z Fare: by which I mean "implement Rust in Lisp"? 2020-05-01T19:06:40Z dlowe: RAII (which I remain unsold on) requires definite lifetimes 2020-05-01T19:07:09Z dlowe: which you're not going to get via garbage collector 2020-05-01T19:07:16Z phoe: and definite lifetimes means that you can use a WITH-FOO macro to control resource releasing 2020-05-01T19:07:33Z dlowe: yes 2020-05-01T19:07:35Z Fare: isn't Lisp supposed to be every language? 2020-05-01T19:07:47Z Fare: I saw people implement parts of Rust in Racket. 2020-05-01T19:08:10Z phoe: (defmacro with-foo ((var) &body body) `(let ((,foo (make-foo))) (unwind-protect (progn, @body) (free-foo ,foo)))) 2020-05-01T19:08:12Z dlowe: some things in the runtime are harder to mess with than others without creating a new runtime 2020-05-01T19:08:14Z ChoHag: Fare: Other way around. 2020-05-01T19:08:16Z phoe: adapt to your needs 2020-05-01T19:08:20Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2020-05-01T19:08:43Z phoe: Fare: I don't know if Rust-style borrowers have ever been attempted in CL yet 2020-05-01T19:09:14Z Fare: ChoHag, you want to implement CL in Rust? 2020-05-01T19:09:22Z phoe: uh, s/foo/var/ 2020-05-01T19:09:23Z ChoHag: No thanks. 2020-05-01T19:09:34Z Fare: Lisp can be every language, and every language can be Lisp! 2020-05-01T19:14:22Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-01T19:14:35Z Jesin joined #lisp 2020-05-01T19:15:22Z barthandelous quit (Quit: barthandelous) 2020-05-01T19:16:21Z efm quit (Read error: Connection reset by peer) 2020-05-01T19:18:04Z jonatack_ quit (Read error: Connection reset by peer) 2020-05-01T19:18:15Z jonatack__ joined #lisp 2020-05-01T19:19:20Z jonatack__ quit (Client Quit) 2020-05-01T19:19:28Z efm joined #lisp 2020-05-01T19:19:39Z jonatack joined #lisp 2020-05-01T19:20:26Z Fare: "Guy Steele has been quoted as vaunting the programmability of Lisp’s syntax by saying: If you give someone Fortran, he has Fortran. If you give someone Lisp, he has any language he pleases. Unhappily, if he were speaking about CL specifically, he would have had to add: but it can’t be the same as anyone else’s." 2020-05-01T19:20:53Z rpg joined #lisp 2020-05-01T19:21:48Z fourier joined #lisp 2020-05-01T19:22:12Z _death: seems your quotation is putting words into Guy Steele's mouth 2020-05-01T19:22:29Z Fare: _death, I need more nested quotes? 2020-05-01T19:22:52Z Fare: "Guy Steele has been quoted as vaunting the programmability of Lisp’s syntax by saying: «If you give someone Fortran, he has Fortran. If you give someone Lisp, he has any language he pleases.» Unhappily, if he were speaking about CL specifically, he would have had to add: but it can’t be the same as anyone else’s." Better? 2020-05-01T19:23:13Z _death: now the dishonesty is clearer, yes 2020-05-01T19:24:06Z Fare: In the original, the Steele quote was in italic. 2020-05-01T19:24:15Z MerlinTheWizard quit (Ping timeout: 240 seconds) 2020-05-01T19:25:16Z Fare: How is that dishonest? 2020-05-01T19:26:04Z _death: because you have no idea what Guy Steele would have to add or not.. you just use his aura of authority to advance your own arguments 2020-05-01T19:26:10Z _death: or rather, claims 2020-05-01T19:27:02Z eta quit (Ping timeout: 260 seconds) 2020-05-01T19:27:29Z Fare: I'm shocked that my addendum is interpreted as being attributed to Steele or claiming his authority—--it undermines Steele as much as it reveres him. 2020-05-01T19:27:48Z Fare: That said, I should ask Steele next time he's in town. 2020-05-01T19:27:53Z dlowe: computer languages were a much simpler affair in the 80s 2020-05-01T19:28:02Z dlowe: there was much less of an ecosystem aspect 2020-05-01T19:28:04Z Fare: dlowe, indeed they were. 2020-05-01T19:28:31Z Fare: or rather, there was the ecosystem aspect, but at a smaller scale. 2020-05-01T19:29:19Z Fare: dlowe, I see that you maintain local-time. 2020-05-01T19:29:54Z dlowe: Fare: to some degree 2020-05-01T19:30:02Z vivit joined #lisp 2020-05-01T19:30:02Z vivit quit (Changing host) 2020-05-01T19:30:02Z vivit joined #lisp 2020-05-01T19:30:27Z Fare: the naggum document mentions allocating a large table of data and then other optimizations, and concludes that "this optimization is not implemented yet" or something, but it's unclear what is or isn't. Does local-time do that? 2020-05-01T19:31:14Z karlosz quit (Quit: karlosz) 2020-05-01T19:31:37Z phoe: Fare: the document mentions a fixnum space, which makes me wonder if Naggum worked with 64-bit machine words 2020-05-01T19:31:39Z dlowe: No. I realize that was most of the document, but I figured that computation was fast enough 2020-05-01T19:32:03Z dlowe: and so far no one has cared enough to add the speed/space tradeoff 2020-05-01T19:32:06Z ted_wroclaw joined #lisp 2020-05-01T19:32:51Z phoe: blah, I have less and less energy for writing this book; I already want to be done with it 2020-05-01T19:33:09Z phoe: glad that all that remains is writing the reference and stuffing the code on github 2020-05-01T19:37:28Z Fare: phoe, what does the book say / do? 2020-05-01T19:37:32Z shangul quit (Ping timeout: 256 seconds) 2020-05-01T19:38:38Z phoe: Fare: https://gist.github.com/phoe/5659f8e5d8ff85e99565de17e39e4449 2020-05-01T19:38:42Z SGASAU` quit (Remote host closed the connection) 2020-05-01T19:39:06Z phoe: tl;dr a book on the condition system. The abstract is at the beginning. 2020-05-01T19:39:24Z SGASAU` joined #lisp 2020-05-01T19:40:25Z shka_ quit (Ping timeout: 246 seconds) 2020-05-01T19:42:09Z aeth: Nested quotes? When you can just do this? '(GUY STEELE HAS BEEN QUOTED AS VAUNTING THE PROGRAMMABILITY OF |LISP'S| SYNTAX BY SAYING |:| (IF YOU ...)) 2020-05-01T19:43:16Z Fare: aeth, wow, back in the 1970s 2020-05-01T19:43:30Z ChoHag: phoe: What does var do in that macro? 2020-05-01T19:43:50Z ChoHag: It's not used anywhere. 2020-05-01T19:43:58Z Fare: phoe, not sure your long discussion on dynamic variables should be the chapter 1 rather than an appendix 2020-05-01T19:44:03Z ChoHag: Also FWIW I'm unused to lisp macros - I'm approaching lisp from scheme. 2020-05-01T19:44:05Z karlosz joined #lisp 2020-05-01T19:44:13Z phoe: Fare: what do you mean, appendix 2020-05-01T19:44:18Z phoe: oh, I see 2020-05-01T19:44:42Z Fare: phoe, I don't know who is your intended audience, but I would pick a few proofreaders and listen to their feedback on how to organize the book. 2020-05-01T19:44:44Z phoe: I chose to put it there because people were getting confused about how dynavars work, especially people who aren't lispers. 2020-05-01T19:44:52Z Fare: "Dynamic variables? Ah, you mean the reader monad!" 2020-05-01T19:44:52Z phoe: Fare: sure. 2020-05-01T19:45:25Z phoe: ChoHag: I screwed up, the valid macro is (defmacro with-foo ((var) &body body) `(let ((,var (make-foo))) (unwind-protect (progn, @body) (free-foo ,var)))) 2020-05-01T19:45:49Z ChoHag: Ah so var can be used within body? 2020-05-01T19:45:53Z phoe: correct 2020-05-01T19:45:56Z akoana joined #lisp 2020-05-01T19:46:11Z phoe: Fare: the target is beginner and intermediate Lisp programmers and intermediate non-Lisp programmers 2020-05-01T19:46:38Z phoe: the dynavar chapters are for the latter, since many languages simply don't provide dynavars and so even the concept is completely foreign for them. 2020-05-01T19:47:17Z phoe: and dynavars are the foundation of the whole handler and restart subsystems, so I don't think stashing the concept away to an appendix will do the book much good. 2020-05-01T19:49:10Z shukryzablah quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-01T19:49:28Z dlowe: phoe: (free-foo ,var) should probably be (ignore-error (free-foo ,var)) 2020-05-01T19:49:36Z lxbarbosa quit (Remote host closed the connection) 2020-05-01T19:50:35Z ChoHag: phoe: Do dynamic variables differ substantially from perl's globals? 2020-05-01T19:50:50Z ChoHag: Or whatever it calls what local does. 2020-05-01T19:51:26Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-01T19:51:43Z dlowe: actually, never mind. I misremembered a thing. 2020-05-01T19:51:53Z phoe: dlowe: wait a second, why 2020-05-01T19:52:08Z phoe: if you get an error freeing some resource, then that error must be meaningful for the programmer 2020-05-01T19:52:41Z dlowe: I had some vague recollection that having a non-local exit in a recovery was bad, but when I looked I saw no such thing. 2020-05-01T19:52:52Z ChoHag: Well presumably the expression normally evaluates to the result of body? 2020-05-01T19:52:55Z phoe: non-local exit? what do you mean? 2020-05-01T19:53:02Z MerlinTheWizard joined #lisp 2020-05-01T19:53:08Z dlowe: phoe: like another signal or a goto or a throw 2020-05-01T19:53:29Z dlowe: or invoking a restart 2020-05-01T19:53:39Z ChoHag: Also a good point - how *are* unexpected conditions in the unwinder 'supposed' to be handled? 2020-05-01T19:54:32Z phoe: ChoHag: that's not really the issue of the unwinder; if your freeing function signals an error, then it signals an error, and at some point it should be handled 2020-05-01T19:54:37Z MightyJoe joined #lisp 2020-05-01T19:54:49Z phoe: dlowe: I remember no such thing, the protecting forms can do whatever they want 2020-05-01T19:55:02Z cyraxjoe quit (Ping timeout: 256 seconds) 2020-05-01T19:55:04Z ChoHag: Hmm I should probably find out how CL does exceptions. 2020-05-01T19:55:07Z dlowe: phoe: how many times do I need to say I was mistaken. 2020-05-01T19:55:12Z phoe: welp, sorry 2020-05-01T19:55:20Z phoe: ChoHag: well that's what my book is about 2020-05-01T19:55:34Z ChoHag: I thought it was about dynamic variables? 2020-05-01T19:55:50Z phoe: its name is Common Lisp Condition System 2020-05-01T19:55:56Z ChoHag: Oh wow that scroll bar's actually quite small... 2020-05-01T19:55:57Z rozenglass quit (Quit: WeeChat 2.3) 2020-05-01T19:56:03Z phoe: which, in turn, is mostly about dynamic variables 2020-05-01T19:56:13Z phoe: and creative ways of using them 2020-05-01T19:56:28Z ChoHag: TOC would be nice. 2020-05-01T19:56:39Z pjb: dlowe: were you mistaken? 2020-05-01T19:56:58Z phoe: ChoHag: it's a markdown document, ToCs will be done when the book is finished. 2020-05-01T19:57:01Z phoe: and published. 2020-05-01T19:57:08Z phoe: it's still a WIP. 2020-05-01T19:57:20Z ChoHag: Just giving the gist of it? 2020-05-01T19:57:51Z phoe: just publishing an early version in hope I get some more proofreaders on it 2020-05-01T20:01:23Z ChoHag: Is there some concise description of what the condition system is/does before reading this for the details? 2020-05-01T20:01:39Z ChoHag: You make it sound like it's a common feature. 2020-05-01T20:02:15Z MightyJoe quit (Ping timeout: 240 seconds) 2020-05-01T20:02:33Z ChoHag: I like the idea of 'exceptions, but winding the stack UP'. 2020-05-01T20:03:15Z fourier quit (Ping timeout: 240 seconds) 2020-05-01T20:03:31Z phoe: ChoHag: the "Introduction" should give a brief glimpse of what it is 2020-05-01T20:04:21Z ChoHag: I'm just not a fan of "This book is supposed to be read in order" :( 2020-05-01T20:04:41Z cyraxjoe joined #lisp 2020-05-01T20:04:54Z phoe: I'm sorry; I have no idea how to make that book modular, since you need knowledge from the earlier chapters to understand later ones. 2020-05-01T20:05:15Z rwcom3 joined #lisp 2020-05-01T20:06:26Z Bike: even books that try to be modular still have internal dependencies 2020-05-01T20:06:42Z Bike: i guess you could do your technical book like Pale Fire. sounds innovative 2020-05-01T20:06:44Z ChoHag: Well I'll make a point to read it later. I've been thinking a lot about that side of things recently but taking a detour to actually learn lisp for real this time. 2020-05-01T20:07:26Z ahungry: phoe: typo in "Tom tends to call various people often and for various puroposes. " 2020-05-01T20:07:36Z phoe: ahungry: thanks, will fix. 2020-05-01T20:07:48Z phoe googles Pale Fire 2020-05-01T20:08:26Z Bike: well, the point is there's no particular order you have to read it in, though reading the individual sections linearly is probably a good idea 2020-05-01T20:09:34Z Bike: "Types and Programming Languages" does give a dependency graph of the chapters early on. i think a few other mathy books do that as well, but that's the one i remember 2020-05-01T20:09:46Z _death: you could make it hierarchical.. first the big picture, then more and more detailed reiterations 2020-05-01T20:09:49Z Bike: of coruse, this still establishes a _partial_ order, so technically, 2020-05-01T20:09:54Z ChoHag: Oh btw, as a general rule please try to give (a summarised version of) the expected result of any code samples. 2020-05-01T20:10:19Z Fare: phoe, some people understand the reader monad, or dependency injection, etc. You can appeal to their familiarity of it and/or to the fact that dynamic binding trivializes these things that are non-trivial in other languages. 2020-05-01T20:10:23Z ChoHag: It's one of the most frustrating things when reading documentation to see code and be expected to know what its output would be, given the API being documented. 2020-05-01T20:11:39Z MightyJoe joined #lisp 2020-05-01T20:11:42Z phoe: Fare: point taken, thank you. I'll do that. 2020-05-01T20:12:07Z phoe: ChoHag: I do that when I test things in the REPL. Or do you mean something else? 2020-05-01T20:12:50Z ChoHag: Mostly things that could be copy-pasted into a REPL, include in the book what the REPL would display. 2020-05-01T20:12:57Z phoe: ChoHag: I do that 2020-05-01T20:13:02Z ChoHag: Yes I've seen a few. 2020-05-01T20:13:06Z rumbler314 joined #lisp 2020-05-01T20:13:14Z cyraxjoe quit (Ping timeout: 256 seconds) 2020-05-01T20:13:57Z ChoHag: Maybe it's ubiquitous already, I don't know; I haven't read it in depth yet just a quick eyeball. 2020-05-01T20:14:19Z dale_ joined #lisp 2020-05-01T20:14:25Z dale_ is now known as dale 2020-05-01T20:14:40Z terpri quit (Remote host closed the connection) 2020-05-01T20:15:21Z terpri joined #lisp 2020-05-01T20:17:01Z phoe: okiedokie 2020-05-01T20:17:09Z gargaml quit (Quit: WeeChat 2.8) 2020-05-01T20:20:36Z shangul joined #lisp 2020-05-01T20:22:44Z cyraxjoe joined #lisp 2020-05-01T20:24:14Z MightyJoe quit (Ping timeout: 240 seconds) 2020-05-01T20:24:48Z eta joined #lisp 2020-05-01T20:29:24Z MightyJoe joined #lisp 2020-05-01T20:31:07Z cyraxjoe quit (Ping timeout: 260 seconds) 2020-05-01T20:33:07Z ted_wroclaw: phoe: I think it's great that someone is writing a lisp book. We need more of them. 2020-05-01T20:33:31Z phoe: ted_wroclaw: thanks, that's why I'm doing that 2020-05-01T20:33:35Z pve quit (Quit: leaving) 2020-05-01T20:33:41Z phoe: are you from Poland? your nickname sounds quite Polish 2020-05-01T20:33:51Z ted_wroclaw: I'm American, but I live in Wroclaw 2020-05-01T20:34:02Z phoe: oh! I see, amazing stuff 2020-05-01T20:34:09Z ted_wroclaw: you are polish? 2020-05-01T20:34:18Z phoe: yep, Kraków says hello 2020-05-01T20:34:26Z phoe: you can meet some Polish lispers on #lisp-pl if you want 2020-05-01T20:34:43Z ted_wroclaw: świetnie! 2020-05-01T20:35:25Z ted_wroclaw: but my Polish is limited to ordering tartar at the 1 eur bars 2020-05-01T20:35:27Z Josh_2: I have met polish lispers :O 2020-05-01T20:35:58Z SGASAU` quit (Remote host closed the connection) 2020-05-01T20:36:35Z narimiran quit (Quit: leaving) 2020-05-01T20:36:50Z SGASAU` joined #lisp 2020-05-01T20:41:13Z vladomiro joined #lisp 2020-05-01T20:42:13Z gravicappa quit (Ping timeout: 264 seconds) 2020-05-01T20:42:22Z shangul quit (Ping timeout: 246 seconds) 2020-05-01T20:44:54Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-01T20:46:51Z McParen left #lisp 2020-05-01T20:47:00Z Fare: phoe, next time you go to Wawel castle, please take pictures of the armor room 2020-05-01T20:47:14Z phoe: Fare: I remember that one, you asked me previously about it 2020-05-01T20:48:43Z nika quit 2020-05-01T20:50:55Z cyraxjoe joined #lisp 2020-05-01T20:52:54Z MightyJoe quit (Ping timeout: 260 seconds) 2020-05-01T20:55:45Z jonatack_ joined #lisp 2020-05-01T20:58:58Z jonatack quit (Ping timeout: 260 seconds) 2020-05-01T20:59:01Z MightyJoe joined #lisp 2020-05-01T21:00:54Z cyraxjoe quit (Ping timeout: 260 seconds) 2020-05-01T21:01:31Z cyraxjoe joined #lisp 2020-05-01T21:01:58Z quazimodo quit (Ping timeout: 246 seconds) 2020-05-01T21:02:15Z quazimodo joined #lisp 2020-05-01T21:03:12Z ted_wroclaw quit (Quit: Textual IRC Client: www.textualapp.com) 2020-05-01T21:03:42Z MightyJoe quit (Ping timeout: 260 seconds) 2020-05-01T21:05:11Z eta quit (Ping timeout: 260 seconds) 2020-05-01T21:07:22Z Bourne quit (Ping timeout: 260 seconds) 2020-05-01T21:08:01Z ChoHag: How can I adapt the with-foo macro so that arguments can be passed to make-foo? I presume (defmacro with-foo ((a b c) &body d) ... (make-foo a b c) ... would work, but how do I just say 'pass any arguments as-is'? 2020-05-01T21:08:18Z ChoHag: In scheme I'd have something like '(var . opt)' and '(apply make-foo opt)'. 2020-05-01T21:08:26Z MerlinTheWizard quit (Remote host closed the connection) 2020-05-01T21:08:41Z eta joined #lisp 2020-05-01T21:08:46Z MerlinTheWizard joined #lisp 2020-05-01T21:09:03Z ChoHag: Then '(with-foo var-name 42 43 44)'. 2020-05-01T21:10:31Z ChoHag: Oh and a body and an extra level of () around the arguments but you get the idea. 2020-05-01T21:10:41Z phoe: (defmacro with-foo ((var &rest args) &body body) `(let ((,var (make-foo ,@args))) (unwind-protect (progn, @body) (free-foo ,var)))) 2020-05-01T21:11:15Z ChoHag: Perfect thanks. 2020-05-01T21:11:31Z ChoHag: Macros look weird. 2020-05-01T21:11:44Z phoe: a macro is just a function that accepts Lisp data and spits out Lisp code 2020-05-01T21:12:09Z phoe: wait a second, I screwed it up 2020-05-01T21:12:17Z phoe: (defmacro with-foo ((var &rest args) &body body) `(let ((,var (make-foo ,@args))) (unwind-protect (progn ,@body) (free-foo ,var)))) 2020-05-01T21:12:20Z phoe: there 2020-05-01T21:12:20Z Bourne joined #lisp 2020-05-01T21:12:49Z ChoHag: Oh yeah you had that in the previous one. 2020-05-01T21:13:13Z ChoHag: I can read macros, they just look weird. 2020-05-01T21:13:20Z phoe: (defmacro with-foo ((var &rest args) &body body) (list 'let (list (list var (list* 'make-foo args))) (list 'unwind-protect (list* 'progn body) (list 'free-foo var)))) 2020-05-01T21:13:28Z phoe: there, have that instead 2020-05-01T21:13:36Z ChoHag: Oh for ... 2020-05-01T21:14:02Z ChoHag: Oh I see. God that's awful. 2020-05-01T21:15:04Z aeth: things like that are usually better with ` 2020-05-01T21:15:08Z ggole quit (Quit: Leaving) 2020-05-01T21:15:09Z phoe: yes 2020-05-01T21:15:12Z ChoHag: Yeah... Why am I a programmer again? 2020-05-01T21:17:46Z jruiz joined #lisp 2020-05-01T21:18:49Z quazimodo quit (Ping timeout: 264 seconds) 2020-05-01T21:20:12Z quazimodo joined #lisp 2020-05-01T21:20:37Z aeth: Well, I mean, it's a simple pattern so you could always do (defmacro define-with (binding cleanup &body body) ...) 2020-05-01T21:21:01Z karayan quit (Remote host closed the connection) 2020-05-01T21:21:18Z aeth: well, something along those lines 2020-05-01T21:21:32Z aeth: Always go one level more meta 2020-05-01T21:21:42Z karayan joined #lisp 2020-05-01T21:21:46Z phoe: ah yes, the definer definer 2020-05-01T21:23:45Z MerlinTheWizard quit (Ping timeout: 240 seconds) 2020-05-01T21:24:01Z aeth: define-modify-macro 2020-05-01T21:24:08Z ChoHag: The wrap-line symbol on the right hand side of the screen is the sign to go up another metalevel. 2020-05-01T21:24:26Z aeth: define-modify-macro is the sort of high level you should be going for 2020-05-01T21:24:40Z aeth: (yes, it's not a definer definer, but it's a one liner sort of thing) 2020-05-01T21:25:56Z SGASAU` quit (Remote host closed the connection) 2020-05-01T21:26:37Z vivit quit (Ping timeout: 264 seconds) 2020-05-01T21:27:50Z Aurora_iz_kosmos joined #lisp 2020-05-01T21:29:25Z heisig quit (Quit: Leaving) 2020-05-01T21:29:27Z ahungry quit (Remote host closed the connection) 2020-05-01T21:29:54Z Aurora_v_kosmose quit (Quit: Пока, мир.) 2020-05-01T21:30:54Z rumbler314 quit (Ping timeout: 245 seconds) 2020-05-01T21:32:22Z MerlinTheWizard joined #lisp 2020-05-01T21:33:49Z asarch quit (Quit: Leaving) 2020-05-01T21:41:03Z Aishawhite joined #lisp 2020-05-01T21:43:18Z Aishawhite quit (Client Quit) 2020-05-01T21:44:25Z Inline: so a 'has-a' relationship in oop cl is realized by adding a mixin ? 2020-05-01T21:45:40Z shangul joined #lisp 2020-05-01T21:48:54Z shifty quit (Ping timeout: 260 seconds) 2020-05-01T21:53:43Z vivit joined #lisp 2020-05-01T21:53:43Z vivit quit (Changing host) 2020-05-01T21:53:43Z vivit joined #lisp 2020-05-01T21:54:09Z _death: no, it is realized by defining a slot.. a mixin lets you reuse implementation 2020-05-01T21:59:24Z jruiz: Inline: say you have an engine class and want to define a car class 2020-05-01T21:59:29Z jruiz: a car 'has' an engine, so you could do 2020-05-01T21:59:37Z jruiz: (defclass car () ((engine :initform (make-engine) :reader car-engine))) 2020-05-01T22:00:17Z jruiz: assuming you have an engine constructor, make-engine 2020-05-01T22:02:04Z vyorkin` joined #lisp 2020-05-01T22:02:34Z kark joined #lisp 2020-05-01T22:02:58Z vyorkin quit (Ping timeout: 260 seconds) 2020-05-01T22:03:53Z Inline: allright 2020-05-01T22:06:15Z MerlinTheWizard quit (Ping timeout: 240 seconds) 2020-05-01T22:06:42Z hsaziz joined #lisp 2020-05-01T22:07:31Z shangul quit (*.net *.split) 2020-05-01T22:07:31Z Bourne quit (*.net *.split) 2020-05-01T22:07:31Z elflng quit (*.net *.split) 2020-05-01T22:07:31Z lowryder quit (*.net *.split) 2020-05-01T22:07:31Z zaquest quit (*.net *.split) 2020-05-01T22:07:31Z Necktwi quit (*.net *.split) 2020-05-01T22:07:32Z ft quit (*.net *.split) 2020-05-01T22:07:32Z cross quit (*.net *.split) 2020-05-01T22:07:32Z davsebam1e quit (*.net *.split) 2020-05-01T22:07:32Z Josh_2 quit (*.net *.split) 2020-05-01T22:07:32Z niceplace quit (*.net *.split) 2020-05-01T22:07:32Z vaporatorius quit (*.net *.split) 2020-05-01T22:07:32Z froggey quit (*.net *.split) 2020-05-01T22:07:32Z azrazalea quit (*.net *.split) 2020-05-01T22:07:32Z OMGOMG quit (*.net *.split) 2020-05-01T22:07:32Z dilated_dinosaur quit (*.net *.split) 2020-05-01T22:07:32Z edgar-rft quit (*.net *.split) 2020-05-01T22:07:32Z trittweiler quit (*.net *.split) 2020-05-01T22:07:32Z q-u-a-n23 quit (*.net *.split) 2020-05-01T22:07:32Z cylb quit (*.net *.split) 2020-05-01T22:07:32Z eagleflo quit (*.net *.split) 2020-05-01T22:07:33Z shenghi quit (*.net *.split) 2020-05-01T22:07:33Z kark quit (*.net *.split) 2020-05-01T22:07:33Z vyorkin` quit (*.net *.split) 2020-05-01T22:07:33Z karayan quit (*.net *.split) 2020-05-01T22:07:33Z terpri quit (*.net *.split) 2020-05-01T22:07:33Z EvW1 quit (*.net *.split) 2020-05-01T22:07:33Z zmt01 quit (*.net *.split) 2020-05-01T22:07:33Z luni quit (*.net *.split) 2020-05-01T22:07:34Z westerns quit (*.net *.split) 2020-05-01T22:07:34Z roelj quit (*.net *.split) 2020-05-01T22:07:34Z ralt quit (*.net *.split) 2020-05-01T22:07:34Z xantoz quit (*.net *.split) 2020-05-01T22:07:34Z nchambers quit (*.net *.split) 2020-05-01T22:07:34Z HiRE quit (*.net *.split) 2020-05-01T22:07:34Z Grauwolf quit (*.net *.split) 2020-05-01T22:07:35Z _whitelogger quit (*.net *.split) 2020-05-01T22:07:35Z |3b| quit (*.net *.split) 2020-05-01T22:07:35Z CEnnis91 quit (*.net *.split) 2020-05-01T22:07:35Z ult quit (*.net *.split) 2020-05-01T22:07:35Z thonkpod quit (*.net *.split) 2020-05-01T22:07:43Z roelj joined #lisp 2020-05-01T22:07:45Z OMGOMG joined #lisp 2020-05-01T22:07:45Z froggey joined #lisp 2020-05-01T22:07:45Z elflng joined #lisp 2020-05-01T22:07:45Z davsebamse joined #lisp 2020-05-01T22:07:46Z westerns joined #lisp 2020-05-01T22:07:47Z trittweiler joined #lisp 2020-05-01T22:07:48Z karayan joined #lisp 2020-05-01T22:07:49Z vaporatorius joined #lisp 2020-05-01T22:07:49Z Grauwolf joined #lisp 2020-05-01T22:07:55Z q-u-a-n2 joined #lisp 2020-05-01T22:07:55Z shenghi joined #lisp 2020-05-01T22:07:56Z EvW joined #lisp 2020-05-01T22:08:00Z zaquest joined #lisp 2020-05-01T22:08:06Z zmt01 joined #lisp 2020-05-01T22:08:10Z xantoz joined #lisp 2020-05-01T22:08:13Z lowryder joined #lisp 2020-05-01T22:08:14Z vaporatorius quit (Changing host) 2020-05-01T22:08:14Z vaporatorius joined #lisp 2020-05-01T22:08:14Z Grauwolf quit (Changing host) 2020-05-01T22:08:14Z Grauwolf joined #lisp 2020-05-01T22:08:17Z thonkpod joined #lisp 2020-05-01T22:08:20Z edgar-rft joined #lisp 2020-05-01T22:08:22Z ralt joined #lisp 2020-05-01T22:08:25Z hsaziz quit (Read error: Connection reset by peer) 2020-05-01T22:08:34Z cross joined #lisp 2020-05-01T22:08:38Z jruiz: a mixin is like an aggregate class that is not expected to stand alone 2020-05-01T22:09:07Z CEnnis91 joined #lisp 2020-05-01T22:09:22Z CEnnis91 quit (Changing host) 2020-05-01T22:09:22Z CEnnis91 joined #lisp 2020-05-01T22:09:22Z CEnnis91 quit (Changing host) 2020-05-01T22:09:22Z CEnnis91 joined #lisp 2020-05-01T22:09:44Z Inline: afaik it just adds a slot 2020-05-01T22:09:46Z jruiz: like, you could have a lifecycle-mixin with methods like start, started-p, and stop 2020-05-01T22:09:50Z _whitelogger joined #lisp 2020-05-01T22:09:52Z drewc quit (Ping timeout: 244 seconds) 2020-05-01T22:10:10Z Josh_2 joined #lisp 2020-05-01T22:10:17Z Inline: or a few slots which are not thought to be part of the normal instance 2020-05-01T22:10:21Z azrazalea joined #lisp 2020-05-01T22:10:24Z terpri joined #lisp 2020-05-01T22:10:24Z niceplace joined #lisp 2020-05-01T22:10:40Z terpri quit (Remote host closed the connection) 2020-05-01T22:10:52Z vyorkin` joined #lisp 2020-05-01T22:10:56Z nchambers joined #lisp 2020-05-01T22:11:01Z |3b| joined #lisp 2020-05-01T22:11:06Z HiRE joined #lisp 2020-05-01T22:11:13Z terpri joined #lisp 2020-05-01T22:11:22Z jruiz: mixins generally customize or enhance the behavior of other classes 2020-05-01T22:11:59Z Inline: right so thru slot inheritance it can modify the slot too 2020-05-01T22:12:12Z Inline: hmmm 2020-05-01T22:12:43Z eagleflo joined #lisp 2020-05-01T22:12:43Z kark joined #lisp 2020-05-01T22:12:46Z ft joined #lisp 2020-05-01T22:12:52Z Necktwi joined #lisp 2020-05-01T22:12:57Z ult joined #lisp 2020-05-01T22:14:27Z drewc joined #lisp 2020-05-01T22:15:31Z aeth: in Common Lisp, cars are called automobiles :-) 2020-05-01T22:16:25Z jruiz: aeth: oh yes, good point 2020-05-01T22:17:59Z jruiz: (defclass automobile () ((engine :initform (make-engine) :reader automobile-engine))) 2020-05-01T22:18:16Z seok joined #lisp 2020-05-01T22:18:29Z seok: morning guys 2020-05-01T22:18:45Z MerlinTheWizard joined #lisp 2020-05-01T22:19:15Z seok: Is there some kind of data structure that uses datetime as index? 2020-05-01T22:19:20Z seok: something like pandas in python 2020-05-01T22:20:15Z torbo joined #lisp 2020-05-01T22:22:02Z sjl_ quit (Ping timeout: 256 seconds) 2020-05-01T22:22:54Z vivit quit (Ping timeout: 240 seconds) 2020-05-01T22:29:26Z hsaziz joined #lisp 2020-05-01T22:33:03Z frgo quit (Remote host closed the connection) 2020-05-01T22:33:03Z hsaziz quit (Client Quit) 2020-05-01T22:33:08Z Necktwi quit (Ping timeout: 256 seconds) 2020-05-01T22:33:19Z efm quit (Ping timeout: 246 seconds) 2020-05-01T22:33:26Z hsaziz joined #lisp 2020-05-01T22:33:34Z frgo joined #lisp 2020-05-01T22:34:53Z hsaziz quit (Client Quit) 2020-05-01T22:35:06Z torbo quit (Remote host closed the connection) 2020-05-01T22:35:14Z torbo joined #lisp 2020-05-01T22:35:37Z marcoxa quit (Remote host closed the connection) 2020-05-01T22:36:16Z markasoftware: so, uh, why is loop way fastert han dotimes in sbcl? 2020-05-01T22:36:47Z markasoftware: (let ((total 0)) (dotimes (i 16000000) (incf total i)) vs (loop with total = 0 for i from 0 below 16000000 do (incf total i) finally (return i)) 2020-05-01T22:37:44Z markasoftware: *return total 2020-05-01T22:38:42Z Nilby quit (Read error: Connection reset by peer) 2020-05-01T22:39:24Z markasoftware: i guess i should just look at the macroexpand 2020-05-01T22:40:35Z saturn2: they produce almost the same disassembly for me 2020-05-01T22:41:16Z White_Flame: loop is a bit smaller than dolist for me as well (speed 3, safety 0 etc) 2020-05-01T22:41:21Z Bike: those both take about the same time for me. 2020-05-01T22:41:48Z Bike: also it varies by a not insubstantial fraction between runs. 2020-05-01T22:42:05Z markasoftware: i may have done something wrong 2020-05-01T22:42:11Z White_Flame: also, you should probably declare fixnum for such a test in case it's doing generic + calls 2020-05-01T22:43:08Z markasoftware: ah ok, the problem was when i didn't use let 2020-05-01T22:43:11Z ralt: so 2020-05-01T22:43:24Z markasoftware: so, just (setq total 0) then (dotimes (i 16000000) (incf total i)) 2020-05-01T22:43:24Z ralt: I have a system with :build-operation :static-program-op 2020-05-01T22:43:35Z markasoftware: but then the same thing happens with loop. So it is about global vs local variables, probably something type related 2020-05-01T22:43:41Z Bike: markasoftware: in that case it will use dynamic variables, which probably will be much slower. 2020-05-01T22:43:42Z markasoftware: my apologies 2020-05-01T22:43:47Z Bike: markasoftware: sbcl should have warned you about this? 2020-05-01T22:43:51Z markasoftware: yess 2020-05-01T22:43:53Z vivit joined #lisp 2020-05-01T22:43:53Z vivit quit (Changing host) 2020-05-01T22:43:53Z vivit joined #lisp 2020-05-01T22:44:24Z saturn2: dynamic variables are always going to be slower even with a declared type 2020-05-01T22:44:25Z ralt: my sbcl 2.0.4 was compiled with sb-linkable-runtime, the system defsystem-depends-on on cffi-grovel, and I even have a static library (.a) built 2020-05-01T22:44:26Z markasoftware: why is setting a dynamic variable slow? 2020-05-01T22:44:46Z ralt: but the compilation is failing with (.text+0x24): undefined reference to `main' 2020-05-01T22:44:54Z Bike: setting a dynamic variable means setting a global spot such as part of the environment or thread local storage 2020-05-01T22:45:06Z Bike: whereas setting a lexical variable might be setting a register, or a stack location, or nothing 2020-05-01T22:45:44Z ralt: looking on reddit/cl-mpi, it sounds like just having a correctly compiled sbcl should be enough, but mine definitely has that done, so I'm a bit at a loss 2020-05-01T22:45:48Z White_Flame: there's generally a test to see if it's dynamically bound, and if not then the write goes to the global symbol-value slot 2020-05-01T22:46:27Z White_Flame: and incf is doing both a read & a write, both which need to perform that test 2020-05-01T22:46:39Z White_Flame: (likely, not verified) 2020-05-01T22:46:52Z markasoftware: huh, cool stuff 2020-05-01T22:46:55Z markasoftware: thanks! 2020-05-01T22:47:12Z saturn2: most optimizations can't be done because the dynamic variable might be changed by other code and might be bound on the stack or globally 2020-05-01T22:47:49Z White_Flame: if you didn't defvar the variable, then it even calls through a SET function 2020-05-01T22:48:55Z White_Flame: since there's many other declarations that could define how it's stored, and it'd have to figure that out at runtime 2020-05-01T22:49:07Z igemnace quit (Quit: WeeChat 2.8) 2020-05-01T22:49:23Z White_Flame: markasoftware: in any case, DISASSEMBLE is your frient 2020-05-01T22:49:34Z White_Flame: even if just to see the general gist & size of the generated code 2020-05-01T22:49:51Z White_Flame: and how many embedded function calls occur vs inline work 2020-05-01T22:49:55Z saturn2: sbcl lets you optimize that slightly by using defglobal, but it still can't optimize away any reads or writes since other code might depend on them 2020-05-01T22:51:17Z White_Flame: a write to a defglobal is a plain MOV QWORD PTR [location], val 2020-05-01T22:51:41Z White_Flame: (with optimizations cranked up) 2020-05-01T22:51:53Z axion: CCL and LW also have globals. 2020-05-01T22:52:28Z White_Flame: do any of them have thread-local-only declarations? sbcl doesn't 2020-05-01T22:52:51Z White_Flame: that would help microoptimize a lot of my use 2020-05-01T22:52:54Z axion: There's even a portability library, if you call 3 implementations "portable", and any others, falling back to a symbol macro. 2020-05-01T22:53:27Z torbo` joined #lisp 2020-05-01T22:53:36Z markasoftware: it's pretty fast if i do defvar instead of just setq 2020-05-01T22:53:47Z karayan quit (Ping timeout: 240 seconds) 2020-05-01T22:54:24Z White_Flame: yep, then it knows what you're talking about when you use the variable name 2020-05-01T22:54:38Z torbo quit (Ping timeout: 260 seconds) 2020-05-01T22:54:40Z White_Flame: instead of needing to be ultra generic with runtime tests 2020-05-01T22:54:40Z theseb joined #lisp 2020-05-01T22:55:22Z jonatack_ quit (Ping timeout: 246 seconds) 2020-05-01T22:56:12Z jonatack_ joined #lisp 2020-05-01T22:56:25Z theseb: Do macros simply lead to the reader making various text substitutions? I'm looking at simple macro examples and wondering..."Why can't those substitutions happen during the evaluation phase"? 2020-05-01T22:57:27Z theseb: e.g. I'm looking at a macro definition of "let"......it is a lambda expression....Could we effectively get "let" my coding it to equal the correct lambda expression w/o macros? 2020-05-01T22:57:29Z no-defun-allowed: Macroexpansion happens as a part of evaluation. 2020-05-01T22:58:16Z saturn2: i don't understand the question 2020-05-01T22:58:44Z torbo` quit (Remote host closed the connection) 2020-05-01T22:59:12Z torbo joined #lisp 2020-05-01T23:00:02Z xkapastel joined #lisp 2020-05-01T23:01:26Z _death: you are looking at a macro definition of "let" and finding a lambda expression? 2020-05-01T23:01:36Z _death: what lisp is this 2020-05-01T23:03:09Z vladomiro quit (Quit: Leaving) 2020-05-01T23:06:27Z MerlinTheWizard quit (Ping timeout: 240 seconds) 2020-05-01T23:07:54Z aeth: in theory (let ((a 42) (b 53) (c 64)) (values a b c)) is the same thing as ((lambda (a b c) (values a b c)) 42 53 64) although an implementation might choose a more efficient representation (for its particular architecture) 2020-05-01T23:08:31Z _death: (let ((&key 42)) &key) 2020-05-01T23:09:27Z aeth: _death: that can be solved by gensym 2020-05-01T23:09:55Z _death: (let ((&key 42)) (declare (special &key)) &key) 2020-05-01T23:09:56Z aeth: so it's really `((lambda (,a ,b ,c) (values ,a ,b ,c)) 42 53 64) 2020-05-01T23:10:13Z SGASAU joined #lisp 2020-05-01T23:10:31Z aeth: _death: that fails in SBCL 2020-05-01T23:10:42Z aeth: So my implementation could still work :-) 2020-05-01T23:11:01Z aeth: "Lock on package COMMON-LISP violated when declaring &KEY special while in package COMMON-LISP-USER." 2020-05-01T23:11:06Z _death: right 2020-05-01T23:11:46Z aeth: And, anyway, you'd only have to gensym the &key, &rest, etc. 2020-05-01T23:11:52Z _death: it cannot be solved by a gensym unless you walk the body 2020-05-01T23:12:05Z White_Flame: theseb: the macroexpansion is not part of the reader. It's the early part of the evaluator 2020-05-01T23:12:09Z aeth: _death: which an implementation is safe to do 2020-05-01T23:12:22Z aeth: _death: tree walkers are only problematic from our perspective, trying to write one that's not fragile. Implementations can cheat 2020-05-01T23:13:16Z decent-username quit (Ping timeout: 265 seconds) 2020-05-01T23:13:56Z _death: aeth: yeah.. I can't think of a theoretical limitation at the moment.. but theseb claims to have a concrete case 2020-05-01T23:14:37Z aeth: _death: (1) I'm not sure, since the line seems poorly phrased. (2) It could be a Scheme. Schemes love lambda. 2020-05-01T23:15:09Z aeth: (And a Scheme wouldn't need these workarounds) 2020-05-01T23:15:18Z _death: a scheme is offtopic 2020-05-01T23:15:50Z SGASAU quit (Remote host closed the connection) 2020-05-01T23:16:10Z _death: hence my question: what lisp is theseb talking about 2020-05-01T23:16:57Z SGASAU joined #lisp 2020-05-01T23:17:10Z aeth: it could be a pedagogical example, which probably wouldn't include handling complex edge cases like &key, and probably wouldn't care about performance, either 2020-05-01T23:18:23Z MerlinTheWizard joined #lisp 2020-05-01T23:18:44Z _death: in Common Lisp, LET is not a macro; it is a special operator (it's true that an implementation may provide a macro function for it as well) 2020-05-01T23:19:13Z Inline: let let let let let...... 2020-05-01T23:19:46Z karswell_ quit (Read error: Connection reset by peer) 2020-05-01T23:19:58Z _death: so the answer to his question appears to be "yes" 2020-05-01T23:20:49Z aeth: and, anyway, even if the example let definition was Scheme, I don't see why it's off-topic because it also applies to CL and was asked in a CL context 2020-05-01T23:20:51Z ealfonso joined #lisp 2020-05-01T23:21:23Z aeth: but whether it was Scheme or just an example, you raise a valid complication for a naive implementation in CL. 2020-05-01T23:22:21Z aeth: Implementations could cheat in various ways that you can't, though, like with gensym, or even by having a lambda without the advanced lambda-list features. 2020-05-01T23:23:33Z aeth: (as e.g. %lambda) 2020-05-01T23:23:41Z _death: that's just saying LET can be implemented in some way 2020-05-01T23:24:11Z aeth: and, yeah, it can be implemented as a lambda expression, but doesn't have to be 2020-05-01T23:24:34Z aeth: And I think that's where the point of confusion is. 2020-05-01T23:24:43Z SGASAU quit (Ping timeout: 260 seconds) 2020-05-01T23:24:57Z aeth: Just because two things are equivalent, and the lambda is in some sense simpler, and you can define LET in terms of LAMBDA, doesn't mean that implementations actually do this, and they probably don't. 2020-05-01T23:25:25Z Inline: heh 2020-05-01T23:25:28Z Inline: lol 2020-05-01T23:25:55Z aeth: And unless the lambda is inline it's probably not the most efficient way to do it. 2020-05-01T23:26:59Z edgar-rft quit (Quit: Leaving) 2020-05-01T23:27:57Z aeth: So it really comes down to if the compiler is smart enough to inline such lambdas since they can't be declared inline. 2020-05-01T23:28:20Z aeth: And it still doesn't give you flet, labels, macrolet, or symbol-macrolet 2020-05-01T23:29:14Z random-nick quit (Ping timeout: 260 seconds) 2020-05-01T23:29:16Z aeth: Or even multiple-value-bind, since m-v-b inserts implicit NILs while multiple-value-call fails if something is too short. 2020-05-01T23:29:38Z Oladon joined #lisp 2020-05-01T23:29:42Z Lord_of_Life_ joined #lisp 2020-05-01T23:30:03Z aeth: (You could probably use &optional to get around that, but now you can't use a special %lambda that avoids the &rest, &optional, &key, etc., issue) 2020-05-01T23:30:39Z aeth: (I guess you could make an %lambda* that is always &optional) 2020-05-01T23:30:55Z edgar-rft joined #lisp 2020-05-01T23:31:44Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-01T23:32:31Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-01T23:36:51Z theseb: _death, aeth: i wrote my own lisp + macro system....i guess it is scheme like....here is my let implementation ... https://pastebin.com/3a6CJ8f1 2020-05-01T23:37:13Z theseb: _death, aeth: somehow i forgot why macros are necessary 2020-05-01T23:37:24Z theseb: trying to retrain my brain 2020-05-01T23:38:04Z Xach: nothing is necessary but many things are handy 2020-05-01T23:39:26Z theseb: Xach: what is simplest macro that has funtionality that cannot be done w/o macro system? (for pedagogical reasons) 2020-05-01T23:40:09Z _death: a definition for such a macro was given here today 2020-05-01T23:40:31Z theseb: preferably one that uses , and ,@ for pedagogical reasons too 2020-05-01T23:40:36Z no-defun-allowed: (defmacro delay (thing) `(lambda () ,thing)) maybe 2020-05-01T23:40:39Z _death: [19:55] and it makes defmacro trivial to implement: (defmacro defmacro (name lambda-list &body body) `(defmacro ,name ,lambda-list ,@body)) 2020-05-01T23:41:48Z theseb: i think i need to think on this more...i'm slow 2020-05-01T23:42:49Z _death: you can think of macros as a way to extend your interpreter.. 2020-05-01T23:46:11Z jason_m quit (Ping timeout: 260 seconds) 2020-05-01T23:46:55Z _death: you can always integrate operators into your interpreter, but the point of macros is to allow ad-hoc extension without modification 2020-05-01T23:55:46Z aeth: most macros are just sugar, like having a LET defined in terms of LAMBDA instead of having to just use LAMBDA for everything 2020-05-01T23:56:36Z aeth: they can also be optimizations, though, since the function (infix '(1 + 1)) is possible just like the macro (infix (1 + 1)) or (infix 1 + 1) but the macro will do things at macroexpansion time instead of at runtime 2020-05-01T23:57:54Z aeth: with an interpreter it's not necessarily a performance win unless you do bytecode compilation, though 2020-05-01T23:58:39Z aeth: With a naive intrepreter, the macro will probably be slower than the function because there's some extra steps involved. 2020-05-01T23:58:42Z pjb: aeth: interpreters still have to do minimal compilation when you call compile. 2020-05-01T23:58:57Z pjb: aeth: most interpreter will only macroexpand once the macros, caching the result. 2020-05-01T23:59:08Z aeth: pjb: yes, but the context is writing a Lisp-like language in Common Lisp, not writing a Common Lisp 2020-05-01T23:59:18Z pjb: (I know of no interpreter that doesn't just expand everything at defun time). 2020-05-01T23:59:18Z aeth: (the context wasn't clear before) 2020-05-01T23:59:31Z pjb: aeth: in that case, you do however you want. 2020-05-02T00:00:03Z pjb: aeth: but I find easier to write interpreters, by writing a byte-code compiler and interpreting the byte code… 2020-05-02T00:00:19Z pjb: interpreting the source is crazy. 2020-05-02T00:00:33Z aeth: yes 2020-05-02T00:00:46Z aeth: Most interpreters are afaik either a register machine or a stack machine with bytecode as the thing that's interpreted. 2020-05-02T00:00:48Z pjb: It was an optimization on memory starved computers, and even, usually keywords were "byte-coded" anyways. 2020-05-02T00:01:02Z ayuce joined #lisp 2020-05-02T00:01:20Z jeosol joined #lisp 2020-05-02T00:04:11Z _death: I see "interpreter" in a very wide sense.. it is a program that takes an input :) 2020-05-02T00:04:39Z aeth: pjb: Even if you did source interpreting you could probably still do ahead-of-time macros by seeing macros as defining new primitives, I guess. 2020-05-02T00:04:40Z hsaziz joined #lisp 2020-05-02T00:05:35Z pilne joined #lisp 2020-05-02T00:05:54Z theseb: aeth: yes many macros are just sugar to generate lisp code automagically....the more interesting thing to me is that macros can make it appear you are giving lisp new abilities 2020-05-02T00:06:08Z aeth: infix macros are an example of that 2020-05-02T00:06:11Z aeth: (infix 1 + 1) 2020-05-02T00:06:22Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-02T00:06:55Z aeth: Of course, that's boring, so I made a C++-style hello world in CL to demonstrate infix: https://gitlab.com/mbabich/lisp-hello-world 2020-05-02T00:07:26Z aeth: I even went further and made a reader macro #I(...) that translates to (infix ...) 2020-05-02T00:07:33Z karayan joined #lisp 2020-05-02T00:07:47Z aeth: With reader macros you could do true, full infix, though, and not just the s-expression hack 2020-05-02T00:10:07Z theseb: aeth: is this equivalent (defun infix (arg1 operator arg2) (operator arg1 arg2) ) ? 2020-05-02T00:10:21Z theseb: aeth: i just did it w/o macros? 2020-05-02T00:10:39Z theseb: aeth: then i can do (infix 3 * 7) 2020-05-02T00:10:52Z _death: aeth: it reminds me of an old hack.. https://gist.github.com/death/3673068498cbb6663010a67b0507319f 2020-05-02T00:12:03Z aeth: theseb: not quite, since my infix macro allows arbitrary length as long as they are the same operator (no attempt to teach it precedence) so you would necessarily have to cons up a list for that, either with &rest so you can do (infix 1 + 1 + 1) or with the syntax (infix '(1 + 1 + 1)) 2020-05-02T00:12:20Z aeth: whereas the macro itself would just turn it into (+ 1 1 1) with no need to funcall/apply/whatever + 2020-05-02T00:12:58Z theseb: ok....thanks. 2020-05-02T00:13:04Z theseb: must be brain now 2020-05-02T00:13:07Z theseb quit (Quit: Leaving) 2020-05-02T00:15:36Z aeth: and iirc it's also recursive so (infix 1 + 1 + (2 * 3)) is possible. 2020-05-02T00:16:41Z Kevslinger quit (Quit: Connection closed for inactivity) 2020-05-02T00:20:13Z torbo quit (Remote host closed the connection) 2020-05-02T00:21:57Z kark quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-02T00:27:44Z zaquest quit (Quit: Leaving) 2020-05-02T00:29:55Z hsaziz quit (Quit: hsaziz) 2020-05-02T00:30:05Z zaquest joined #lisp 2020-05-02T00:30:43Z red-dot joined #lisp 2020-05-02T00:33:19Z hsaziz joined #lisp 2020-05-02T00:33:35Z ahungry joined #lisp 2020-05-02T00:34:09Z hsaziz quit (Client Quit) 2020-05-02T00:36:56Z efm joined #lisp 2020-05-02T00:47:48Z Oladon quit (Quit: Leaving.) 2020-05-02T00:53:37Z lxbarbosa joined #lisp 2020-05-02T00:54:01Z lxbarbosa left #lisp 2020-05-02T00:54:44Z lxbarbosa joined #lisp 2020-05-02T00:57:13Z hsaziz joined #lisp 2020-05-02T00:57:16Z hsaziz quit (Client Quit) 2020-05-02T00:58:50Z jruiz quit (Ping timeout: 260 seconds) 2020-05-02T00:59:09Z rgherdt quit (Ping timeout: 272 seconds) 2020-05-02T01:00:04Z PuercoPope joined #lisp 2020-05-02T01:00:42Z PuercoPope is now known as PuercoPop 2020-05-02T01:02:44Z ayuce quit (Remote host closed the connection) 2020-05-02T01:05:14Z heeh joined #lisp 2020-05-02T01:05:18Z jruiz joined #lisp 2020-05-02T01:07:19Z bitmapper quit (Ping timeout: 246 seconds) 2020-05-02T01:07:56Z tessier joined #lisp 2020-05-02T01:07:57Z tessier quit (Changing host) 2020-05-02T01:07:57Z tessier joined #lisp 2020-05-02T01:15:47Z EvW quit (Ping timeout: 240 seconds) 2020-05-02T01:20:18Z lemoinem quit (Ping timeout: 260 seconds) 2020-05-02T01:20:32Z lemoinem joined #lisp 2020-05-02T01:24:29Z Inline quit (Ping timeout: 272 seconds) 2020-05-02T01:26:28Z asarch joined #lisp 2020-05-02T01:27:24Z renzhi_ joined #lisp 2020-05-02T01:27:52Z asarch: If (defparameter *values* '((food (pizza . 3) (beer . 5) (tacos . 8)))), the I can get the value of beers with: (cdr (assoc 'beer (cdr (car *values*)))) 2020-05-02T01:28:03Z CrazyPython joined #lisp 2020-05-02T01:28:47Z asarch: But, what if (defparameter *values* '(("food" ("pizza" . "3") ("beer" . "5") ("tacos" . "8")))), how could I get that value? 2020-05-02T01:29:50Z asarch: (cdr (assoc "beer" (cdr (car *values*)))) => NIL 2020-05-02T01:31:06Z kark joined #lisp 2020-05-02T01:32:43Z madage quit (Ping timeout: 240 seconds) 2020-05-02T01:33:55Z no-defun-allowed: :test #'string= 2020-05-02T01:35:12Z asarch: (cdr (assoc "beer" (cdr (car *values*)) :test #'string=)) => "5" 2020-05-02T01:35:23Z asarch: Thank you! 2020-05-02T01:35:48Z madage joined #lisp 2020-05-02T01:39:08Z lxbarbosa quit (Remote host closed the connection) 2020-05-02T01:40:37Z iAmDecim joined #lisp 2020-05-02T01:44:50Z iAmDecim quit (Quit: WeeChat 2.7.1) 2020-05-02T01:47:48Z bleepcord joined #lisp 2020-05-02T01:49:47Z ayuce joined #lisp 2020-05-02T02:01:19Z ayuce quit (Remote host closed the connection) 2020-05-02T02:02:23Z efm quit (Remote host closed the connection) 2020-05-02T02:02:46Z efm joined #lisp 2020-05-02T02:02:58Z gko joined #lisp 2020-05-02T02:03:44Z slyrus_ joined #lisp 2020-05-02T02:03:45Z pjb quit (Ping timeout: 272 seconds) 2020-05-02T02:05:39Z bleepcord quit (Quit: WeeChat 2.8) 2020-05-02T02:06:12Z slyrus__ quit (Ping timeout: 256 seconds) 2020-05-02T02:15:14Z mono joined #lisp 2020-05-02T02:15:52Z jruiz quit (Ping timeout: 260 seconds) 2020-05-02T02:17:42Z monok quit (Ping timeout: 260 seconds) 2020-05-02T02:19:26Z dtman34 joined #lisp 2020-05-02T02:25:08Z pilne quit (Quit: I cna ytpe 300 wrods pre mniuet!!!) 2020-05-02T02:27:24Z dtman34 quit (Remote host closed the connection) 2020-05-02T02:27:39Z dtman34 joined #lisp 2020-05-02T02:27:56Z dtman34 quit (Remote host closed the connection) 2020-05-02T02:28:11Z Josh_2 quit (Ping timeout: 246 seconds) 2020-05-02T02:36:47Z CrazyPython quit 2020-05-02T02:37:23Z pjb joined #lisp 2020-05-02T02:49:59Z turona quit (Ping timeout: 272 seconds) 2020-05-02T02:51:00Z turona joined #lisp 2020-05-02T02:59:13Z heeh quit (Remote host closed the connection) 2020-05-02T03:17:20Z beach: Good morning everyone! 2020-05-02T03:31:42Z moon-child quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-02T03:32:19Z westerns quit (Quit: Connection closed for inactivity) 2020-05-02T03:32:19Z beach: aeth: There is a case where LET can not be turned into a function form with a lambda expression as its operator. For example (let ((&rest 234)) (+ rest 345)) is not the same as ((lambda (&rest) (+ rest 345)) 234) 2020-05-02T03:33:11Z beach: aeth: And there are cases where it might be tough to inline the function, for example when there is an environment capture, like (let ((x 234)) (lambda (y) (+ x y))) 2020-05-02T03:33:43Z beach: aeth: I recommend you read up on how Common Lisp is compiled and how the run-time environment is represented. 2020-05-02T03:34:45Z pjb quit (Ping timeout: 265 seconds) 2020-05-02T03:35:57Z stepnem_ joined #lisp 2020-05-02T03:37:02Z moon-child joined #lisp 2020-05-02T03:37:06Z stepnem quit (Ping timeout: 256 seconds) 2020-05-02T03:39:52Z karayan quit (Ping timeout: 260 seconds) 2020-05-02T03:49:00Z Codaraxis quit (Remote host closed the connection) 2020-05-02T03:49:30Z Codaraxis joined #lisp 2020-05-02T03:51:45Z parjanya joined #lisp 2020-05-02T03:51:51Z parjanya quit (Remote host closed the connection) 2020-05-02T03:52:23Z parjanya joined #lisp 2020-05-02T03:53:42Z KDr22 joined #lisp 2020-05-02T03:54:58Z KDr21 quit (Ping timeout: 246 seconds) 2020-05-02T03:55:23Z MerlinTheWizard joined #lisp 2020-05-02T03:57:04Z EvW1 joined #lisp 2020-05-02T03:57:24Z westerns joined #lisp 2020-05-02T04:02:59Z parjanya left #lisp 2020-05-02T04:09:04Z karlosz quit (Quit: karlosz) 2020-05-02T04:09:23Z karlosz joined #lisp 2020-05-02T04:11:40Z gabiruh quit (Ping timeout: 256 seconds) 2020-05-02T04:11:45Z jruiz joined #lisp 2020-05-02T04:12:09Z pjb joined #lisp 2020-05-02T04:12:19Z ArthurStrong quit (Quit: leaving) 2020-05-02T04:16:19Z jruiz quit (Ping timeout: 246 seconds) 2020-05-02T04:20:49Z jruiz joined #lisp 2020-05-02T04:25:14Z shifty joined #lisp 2020-05-02T04:25:57Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-02T04:29:59Z ayuce joined #lisp 2020-05-02T04:31:08Z MerlinTheWizard joined #lisp 2020-05-02T04:33:34Z renzhi_ quit (Ping timeout: 240 seconds) 2020-05-02T04:35:17Z EvW1 quit (Ping timeout: 260 seconds) 2020-05-02T04:40:03Z Oladon joined #lisp 2020-05-02T04:40:58Z Codaraxis quit (Remote host closed the connection) 2020-05-02T04:41:23Z Codaraxis joined #lisp 2020-05-02T04:43:39Z gabiruh joined #lisp 2020-05-02T04:46:32Z hsaziz joined #lisp 2020-05-02T04:47:15Z hsaziz quit (Client Quit) 2020-05-02T04:47:24Z vivit quit (Quit: WeeChat 1.9.1) 2020-05-02T04:51:38Z ayuce quit (Remote host closed the connection) 2020-05-02T04:54:13Z jruiz quit (Ping timeout: 264 seconds) 2020-05-02T04:58:02Z gabiruh quit (Ping timeout: 260 seconds) 2020-05-02T05:05:30Z Necktwi joined #lisp 2020-05-02T05:08:42Z Bike quit (Quit: Lost terminal) 2020-05-02T05:09:08Z gabiruh joined #lisp 2020-05-02T05:09:11Z slyrus__ joined #lisp 2020-05-02T05:09:42Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-02T05:11:33Z slyrus_ quit (Ping timeout: 258 seconds) 2020-05-02T05:16:15Z pjb quit (Ping timeout: 265 seconds) 2020-05-02T05:18:42Z MerlinTheWizard joined #lisp 2020-05-02T05:19:42Z xkapastel quit (Quit: Connection closed for inactivity) 2020-05-02T05:26:51Z hsaziz joined #lisp 2020-05-02T05:27:43Z karayan joined #lisp 2020-05-02T05:29:50Z karayan quit (Read error: Connection reset by peer) 2020-05-02T05:30:47Z asarch: If I have: (let ((text "Lorem ipsum dolor sit amet, consectetur\nadipiscing elit, sed do eiusmod tempor\nincididunt ut labore et\ndolore magnaaliqua.")) ...), how could I remove all the '\n' from the string? 2020-05-02T05:31:06Z karayan joined #lisp 2020-05-02T05:31:47Z phoe: either cl-ppcre:regex-replace-all 2020-05-02T05:32:07Z phoe: or replace-all from https://lispcookbook.github.io/cl-cookbook/strings.html#manipulating-parts-of-a-string 2020-05-02T05:33:03Z asarch: Thank you!! 2020-05-02T05:33:11Z asarch: Thank you very much! :-) 2020-05-02T05:33:27Z markasoftware: does (remove) not work for \n? 2020-05-02T05:34:57Z phoe: oh 2020-05-02T05:35:08Z markasoftware: well i guess it depends on if they are literal "\n" or an actual newline 2020-05-02T05:35:10Z phoe: asarch: "\n" only has length 1 2020-05-02T05:35:22Z phoe: (length "\n") ;=> 1 2020-05-02T05:35:40Z phoe: you will want to escape the backslashes if you want to have actual backslashes in your strings 2020-05-02T05:35:50Z phoe: that is a source of bugs in Lisp strings 2020-05-02T05:36:08Z phoe: so, "Lorem ipsum\\ndolor sit amet\\nconsectetur ..." 2020-05-02T05:36:27Z phoe: markasoftware: remove doesn't work for multi-character sequences 2020-05-02T05:36:32Z markasoftware: Is there any reason to distinguish between functions and lists as datatypes, apart from performance? I.e, you could have a lisp where a function is just whenever you put a list, which represents a function body, at the beginning of a list? 2020-05-02T05:36:49Z phoe: markasoftware: what do you mean, functions and lists as datatypes 2020-05-02T05:37:01Z asarch: The code actually is for remove the '\r' of the end of the line 2020-05-02T05:37:05Z phoe: they're distinct types, and a function isn't really a datatype 2020-05-02T05:37:23Z phoe: asarch: ooh, clrf conversion 2020-05-02T05:37:52Z asarch: Where is that function? 2020-05-02T05:38:23Z phoe: asarch: which function? 2020-05-02T05:38:29Z asarch: clrf 2020-05-02T05:38:40Z phoe: uhhh, did I mention there is such a function 2020-05-02T05:38:46Z asarch: D'oh! 2020-05-02T05:38:48Z asarch: Sorry 2020-05-02T05:39:13Z asarch: The text inserted into the model has that end of line: '\r' 2020-05-02T05:39:35Z phoe: yes, that's Windows injecting its poison 2020-05-02T05:39:48Z phoe: also s/clrf/crlf/ 2020-05-02T05:39:49Z Oladon quit (Quit: Leaving.) 2020-05-02T05:39:51Z asarch: I just want to remove them before insert them 2020-05-02T05:40:04Z Fare quit (Ping timeout: 256 seconds) 2020-05-02T05:40:30Z no-defun-allowed: markasoftware: Closures would require functions to carry around information other than their lambda forms. 2020-05-02T05:40:34Z asarch: Can I use cl-ppcre:regex-replace-all for that? 2020-05-02T05:40:40Z phoe: well then, replace all occurrences of (string #\Return) with "" 2020-05-02T05:40:41Z phoe: yes 2020-05-02T05:41:04Z asarch: Ok 2020-05-02T05:41:17Z asarch: Thank you very much once again :-) 2020-05-02T05:43:14Z beach: markasoftware: What would you put in a list to represent a function? 2020-05-02T05:43:29Z markasoftware: it's body, though no-defun-allowed makes a good point about closures 2020-05-02T05:43:41Z beach: OK. 2020-05-02T05:43:46Z markasoftware: and idk about lambda list either 2020-05-02T05:43:48Z phoe: but then you just have a list of symbols, lists, and everything 2020-05-02T05:43:59Z phoe: it's not code, you can't really execute it 2020-05-02T05:44:10Z markasoftware: the interpreter can execute it 2020-05-02T05:44:10Z karlosz quit (Quit: karlosz) 2020-05-02T05:44:22Z markasoftware: because at some point it's going to just be built-in functions 2020-05-02T05:44:37Z karlosz joined #lisp 2020-05-02T05:44:39Z beach: markasoftware: In a language like Common Lisp with closures, a function needs to be represedetn by two items: code and a static environment. 2020-05-02T05:45:11Z phoe: but there's either overhead associated with compilation or overhead associated with interpreting that form 2020-05-02T05:45:14Z beach: markasoftware: Closure conversion turns nested functions into global functions represented as such a pair. 2020-05-02T05:45:17Z karayan quit (Read error: Connection reset by peer) 2020-05-02T05:45:22Z phoe: neither will be faster than calling a pre-compiled function 2020-05-02T05:45:45Z markasoftware: yeah i agree, i understand the performance reasons for making functions their own format 2020-05-02T05:46:42Z phoe: also, if you simply splice function bodies inside, you will have trouble figuring out what is code and what is data 2020-05-02T05:47:19Z phoe: the distinction between (+ x y) and '(+ x y) is clear because of quoting 2020-05-02T05:47:23Z beach: markasoftware: But as long as you have those two components, the code part can be anything. For example, in SICL bootstrapping the code part is basically an instruction graph (HIR) that is interpreted by a HIR interpreter. 2020-05-02T05:48:47Z ahungry quit (Ping timeout: 260 seconds) 2020-05-02T05:48:55Z karayan joined #lisp 2020-05-02T05:53:28Z karayan quit (Read error: Connection reset by peer) 2020-05-02T05:53:54Z kamid quit (Quit: WeeChat 2.7.1) 2020-05-02T05:54:15Z karayan joined #lisp 2020-05-02T06:00:29Z aeth: beach: yes, that &rest is the same as _death's example of &key afaik 2020-05-02T06:00:42Z beach: Oh, I missed that. Sorry. 2020-05-02T06:00:52Z aeth: beach: your second example is a new point, though 2020-05-02T06:01:20Z aeth: I think the implementation would have to special case that, or accept a slight performance loss there 2020-05-02T06:02:12Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-02T06:02:16Z vlatkoB joined #lisp 2020-05-02T06:02:21Z aeth: beach: I think the first example can be resolved by having a %lambda that doesn't recognize &rest, &key, &optional, &aux, etc., since we're talking about implementations implementing CL and they can cheat like that, but I'm not sure that would be worth it 2020-05-02T06:02:23Z beach: There is no special case. You "just" do an "escape analysis" to see whether there is a chance that the environment may be captured. 2020-05-02T06:03:34Z bacterio quit (Ping timeout: 260 seconds) 2020-05-02T06:06:41Z karayan quit (Read error: Connection reset by peer) 2020-05-02T06:07:12Z karayan joined #lisp 2020-05-02T06:08:33Z gravicappa joined #lisp 2020-05-02T06:09:23Z bacterio joined #lisp 2020-05-02T06:11:32Z karayan quit (Ping timeout: 260 seconds) 2020-05-02T06:12:24Z karayan joined #lisp 2020-05-02T06:17:30Z gabiruh quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-02T06:17:47Z gabiruh joined #lisp 2020-05-02T06:18:57Z _paul0 joined #lisp 2020-05-02T06:21:56Z MerlinTheWizard joined #lisp 2020-05-02T06:22:09Z paul0 quit (Ping timeout: 272 seconds) 2020-05-02T06:27:14Z karayan quit (Read error: Connection reset by peer) 2020-05-02T06:27:50Z karayan joined #lisp 2020-05-02T06:27:53Z beach: aeth: If you make LET a special case, then you are either going to miss out on inlining other functions (subject to capture), or you are going to have duplicate code; one instance for LET and another on for other functions. 2020-05-02T06:28:10Z beach: In the latter case, you have a maintenance problem. 2020-05-02T06:28:28Z beach: In the former case, you have a performance problem. 2020-05-02T06:30:55Z phoe: it is nice to learn that Common Lisp has five ARITHMETIC-ERROR subtypes to account for five IEEE floating point exception types 2020-05-02T06:31:47Z karayan quit (Ping timeout: 240 seconds) 2020-05-02T06:32:36Z beach: aeth: One main trick in compiler design is to reduce special constructs to some general problem, provided of course that you then have a way of handling the general problem. An example is looping constructs. If you handle them specially, you are going to miss out on someone writing a loop using TAGBODY. So the trick here is to discover loops in the intermediate code, no matter the origin in source code, and then process those loops 2020-05-02T06:32:36Z beach: with some general technique. 2020-05-02T06:33:14Z karayan joined #lisp 2020-05-02T06:35:59Z beach: In this case, discovering loops in intermediate code is one of many techniques in "control-flow analysis" which is part of compiler design. 2020-05-02T06:36:24Z karayan quit (Read error: Connection reset by peer) 2020-05-02T06:36:35Z karayan joined #lisp 2020-05-02T06:37:02Z asarch: It seems that CL-DBI is actually inserting the '\r' into the model 2020-05-02T06:37:51Z beach: asarch: As people pointed out, C escapes like \r and \n don't mean the same thing in Common Lisp. 2020-05-02T06:38:13Z asarch: I mean, the #\r character 2020-05-02T06:38:48Z beach: asarch: Then that's just the character r, with no backslash. 2020-05-02T06:39:47Z asarch: "READ error during COMPILE-FILE: radix missing in #R" 2020-05-02T06:39:48Z beach: asarch: And if so, you do not want to remove it. 2020-05-02T06:39:57Z phoe: asarch: wait, what 2020-05-02T06:40:03Z phoe: what file are you trying to read 2020-05-02T06:40:03Z asarch: (replace #r *text*) 2020-05-02T06:40:04Z beach: asarch: Because you would remove all the r characters. 2020-05-02T06:40:12Z phoe: asarch: #r is invalid syntax 2020-05-02T06:40:25Z beach: asarch: Try to understand what you are being told. 2020-05-02T06:40:48Z asarch: Lorem ipsum dolor sit amet,\r 2020-05-02T06:41:01Z asarch: consectetur adipiscing elit,\r 2020-05-02T06:41:09Z beach: asarch: That is not Common Lisp syntax, or if it is, there is no backslash nor a return in that string. 2020-05-02T06:41:12Z asarch: Etc. All the \r at the end of lines 2020-05-02T06:41:19Z beach: asarch: STOP IT. 2020-05-02T06:41:30Z karayan quit (Ping timeout: 272 seconds) 2020-05-02T06:41:31Z beach: asarch: There is no such thing as \r in Common Lisp strings. 2020-05-02T06:41:41Z asarch: Wow! 2020-05-02T06:41:47Z phoe: beach: "Lorem ipsum dolor sit amet,\\r" 2020-05-02T06:41:49Z beach: asarch: I mean, there could be a backslash followed by the letter r. 2020-05-02T06:42:01Z phoe: I understand that this is what asarch is getting 2020-05-02T06:42:03Z saturn2: asarch: you want #\Return 2020-05-02T06:42:04Z beach: asarch: But then that is two letters. 2020-05-02T06:42:36Z karayan joined #lisp 2020-05-02T06:42:41Z beach: asarch: So do you have #\Return characters in your string, or do you have backslashes, or just `r's? 2020-05-02T06:42:48Z phoe: asarch: could you paste some of the REPL input/output that shows the strings being printed? 2020-05-02T06:42:58Z phoe: use a pastebin for that 2020-05-02T06:43:00Z asarch: The text data comes from a ") 2020-05-04T14:43:19Z jmercouris: returns whereas I want ONLY strings with alphabetical ONLY 2020-05-04T14:43:34Z jmercouris: do I have to ^ at the front or something? 2020-05-04T14:44:32Z jmercouris: seems so... 2020-05-04T14:44:45Z jmercouris: I guess this does behave like Perl 2020-05-04T14:45:15Z igemnace joined #lisp 2020-05-04T14:45:33Z phoe: one of the letters in PPCRE stands for Perl, so 2020-05-04T14:52:00Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-04T14:56:20Z IRC-Source_2162 quit (Quit: Connection closed) 2020-05-04T14:56:45Z red-dot joined #lisp 2020-05-04T14:58:17Z duuqnd quit (Remote host closed the connection) 2020-05-04T14:58:44Z duuqnd joined #lisp 2020-05-04T14:58:59Z theseb joined #lisp 2020-05-04T15:00:25Z ayuce quit (Remote host closed the connection) 2020-05-04T15:01:27Z theseb quit (Read error: Connection reset by peer) 2020-05-04T15:05:07Z jmercouris: when in Lisp, how to print version and implementation? 2020-05-04T15:05:13Z theseb joined #lisp 2020-05-04T15:05:47Z motersen quit (Ping timeout: 260 seconds) 2020-05-04T15:06:20Z theseb: Are there different kinds of macros? i just read about reader, runtime, compile time and symbol macros!? The only kind i know are the kind that generate Lisp code....what kind is that? 2020-05-04T15:07:21Z _death: all of them generate lisp code 2020-05-04T15:07:47Z nmg` quit (Remote host closed the connection) 2020-05-04T15:08:23Z theseb: _death: all the code generation and substitution all happens before evaluation of the final code so they all seem the same 2020-05-04T15:08:35Z Bike: there's no distinction of "runtime" and "compile time" macros 2020-05-04T15:08:49Z Bike: reader macros are different in that they operate in the reader, rather than later in the evaluator or compiler 2020-05-04T15:09:03Z Bike: symbol macros are just macros that transform symbol forms intead of cons forms 2020-05-04T15:10:37Z ljavorsk quit (Ping timeout: 246 seconds) 2020-05-04T15:12:22Z travv0: jmercouris: http://www.lispworks.com/documentation/HyperSpec/Body/f_lisp_i.htm 2020-05-04T15:13:35Z fourier joined #lisp 2020-05-04T15:15:47Z theseb: Bike:whoa...symbol macros operate on symbols....interesting...thanks 2020-05-04T15:16:43Z phoe: not really "operate on symbols" 2020-05-04T15:16:59Z phoe: if normal macros are bound in the function namespace, then symbol macros are bound in the variable namespace 2020-05-04T15:17:41Z phoe: because of that, they can't directly accept arguments, but most symbol macros don't need to do that when used properly 2020-05-04T15:21:23Z whythat quit (Ping timeout: 240 seconds) 2020-05-04T15:24:29Z Aurora_v_kosmose: Is there some recommended FFI bridge for Objective C? 2020-05-04T15:25:34Z jmercouris: Aurora_v_kosmose: There is one by fiddlerwoaroof and one built into CCL 2020-05-04T15:25:37Z sdumi quit (Ping timeout: 260 seconds) 2020-05-04T15:25:40Z jmercouris: Aurora_v_kosmose: the one built into CCL is mature and works well 2020-05-04T15:25:59Z jmercouris: Aurora_v_kosmose: here is the fiddlerwoaroof one: https://github.com/fiddlerwoaroof/objc-lisp-bridge 2020-05-04T15:26:01Z sdumi joined #lisp 2020-05-04T15:26:23Z Aurora_v_kosmose: Ah thanks. 2020-05-04T15:26:42Z jmercouris: Aurora_v_kosmose: you can read about CCL here: https://ccl.clozure.com/docs/ccl.html#the-objective-c-bridge 2020-05-04T15:27:43Z Aurora_v_kosmose: I'll probably go with fiddlerwoaroof's, CCL isn't available in my distro. 2020-05-04T15:27:53Z jmercouris: good luck if you are trying to do anything with Cocoa 2020-05-04T15:28:55Z Aurora_v_kosmose: Does messing with GNUstep/WMaker count? 2020-05-04T15:28:59Z jmercouris: 2 2020-05-04T15:29:03Z jmercouris: no 2020-05-04T15:29:54Z Aurora_v_kosmose: Alright. Thanks. 2020-05-04T15:30:18Z jmercouris: no problem 2020-05-04T15:31:02Z jmercouris: so, no way to print current lisp implementation? 2020-05-04T15:31:21Z Bike: as travv0 said, it's lisp-implementation-type 2020-05-04T15:31:26Z jmercouris: oh I didn't see that 2020-05-04T15:31:48Z jmercouris: thank you travv0 2020-05-04T15:32:20Z whythat joined #lisp 2020-05-04T15:32:30Z travv0: no problem 2020-05-04T15:33:13Z Bike: if you look at the "Environment" dictionary you can see there are also functions to get information about the OS or machine, if you want that too 2020-05-04T15:33:23Z jmercouris: what about *features* 2020-05-04T15:33:34Z Bike: what about it? 2020-05-04T15:33:41Z jmercouris: could I look there too? 2020-05-04T15:33:52Z Bike: sure, but it's not very standardized. 2020-05-04T15:34:18Z Bike: i think there's a library for doing some normalization 2020-05-04T15:34:31Z jmercouris: Bike: what is the "Environment" dictionary you are talking about? 2020-05-04T15:34:41Z Bike: in clhs. 2020-05-04T15:34:45Z Bike: up from the page travv0 linked. 2020-05-04T15:34:55Z jmercouris: I'm on that page 2020-05-04T15:34:57Z fourier quit (Ping timeout: 260 seconds) 2020-05-04T15:34:58Z jmercouris: I don't see Environment 2020-05-04T15:35:06Z jmercouris: what do you mean "Up?" 2020-05-04T15:35:19Z jmercouris: oh the arrows 2020-05-04T15:37:41Z marcoxa: jmercouris quicklisp has a number of environment introspection functionalities, you could look at its guts. Same for UIOP, which caomes with ASDF (and which, IMHO, should be split from it). 2020-05-04T15:38:08Z marcoxa quit (Quit: Time's up!) 2020-05-04T15:43:00Z hiroaki joined #lisp 2020-05-04T15:44:12Z redeemed quit (Quit: q) 2020-05-04T15:47:16Z ajb` left #lisp 2020-05-04T15:51:11Z theseb quit (Remote host closed the connection) 2020-05-04T15:51:42Z Cymew quit (Ping timeout: 256 seconds) 2020-05-04T15:56:58Z ayuce joined #lisp 2020-05-04T15:57:35Z scymtym_ joined #lisp 2020-05-04T15:58:59Z scymtym quit (Ping timeout: 260 seconds) 2020-05-04T15:59:33Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-04T16:11:31Z gko quit (Ping timeout: 246 seconds) 2020-05-04T16:17:03Z whythat quit (Ping timeout: 240 seconds) 2020-05-04T16:18:10Z shka_ quit (Ping timeout: 246 seconds) 2020-05-04T16:19:27Z ayuce quit (Remote host closed the connection) 2020-05-04T16:19:29Z shka_ joined #lisp 2020-05-04T16:20:09Z ayuce joined #lisp 2020-05-04T16:22:33Z whythat joined #lisp 2020-05-04T16:23:34Z toorevitimirp joined #lisp 2020-05-04T16:23:44Z shangul quit (Ping timeout: 265 seconds) 2020-05-04T16:24:50Z jeosol joined #lisp 2020-05-04T16:27:10Z red-dot joined #lisp 2020-05-04T16:27:35Z toorevitimirp quit (Remote host closed the connection) 2020-05-04T16:31:10Z rozenglass quit (Quit: WeeChat 2.3) 2020-05-04T16:31:35Z rozenglass joined #lisp 2020-05-04T16:32:04Z notzmv joined #lisp 2020-05-04T16:32:51Z jmarciano joined #lisp 2020-05-04T16:33:34Z shka_ quit (Ping timeout: 256 seconds) 2020-05-04T16:35:55Z refpga quit (Read error: Connection reset by peer) 2020-05-04T16:36:47Z refpga joined #lisp 2020-05-04T16:36:57Z ayuce quit (Remote host closed the connection) 2020-05-04T16:37:54Z ayuce joined #lisp 2020-05-04T16:38:07Z akoana left #lisp 2020-05-04T16:38:15Z nwoob``` joined #lisp 2020-05-04T16:39:54Z nwoob`` quit (Ping timeout: 260 seconds) 2020-05-04T16:41:36Z rogersm joined #lisp 2020-05-04T16:47:24Z gravicappa quit (Ping timeout: 256 seconds) 2020-05-04T16:47:49Z rumbler3117 joined #lisp 2020-05-04T16:48:16Z gravicappa joined #lisp 2020-05-04T16:55:13Z rogersm quit (Quit: Leaving...) 2020-05-04T17:00:40Z phoe is now known as phoe_krk 2020-05-04T17:02:06Z phoe_krk is now known as phoe 2020-05-04T17:15:34Z IRC-Source_21 joined #lisp 2020-05-04T17:16:15Z rgherdt quit (Quit: Leaving) 2020-05-04T17:17:59Z rumbler3117 quit (Ping timeout: 245 seconds) 2020-05-04T17:18:23Z whythat quit (Ping timeout: 240 seconds) 2020-05-04T17:19:01Z efm_ joined #lisp 2020-05-04T17:19:11Z efm_ quit (Client Quit) 2020-05-04T17:19:19Z efm quit (Ping timeout: 265 seconds) 2020-05-04T17:26:12Z whythat joined #lisp 2020-05-04T17:31:01Z |Pirx| joined #lisp 2020-05-04T17:32:03Z whythat quit (Ping timeout: 240 seconds) 2020-05-04T17:34:33Z ahungry quit (Ping timeout: 260 seconds) 2020-05-04T17:35:22Z whythat joined #lisp 2020-05-04T17:36:13Z ahungry joined #lisp 2020-05-04T17:36:15Z efm joined #lisp 2020-05-04T17:38:47Z rumbler3161 joined #lisp 2020-05-04T17:44:24Z IRC-Source_21 quit (Ping timeout: 258 seconds) 2020-05-04T17:49:26Z Bourne quit (Read error: Connection reset by peer) 2020-05-04T17:50:04Z shka_ joined #lisp 2020-05-04T17:50:35Z AmyGoal joined #lisp 2020-05-04T17:51:51Z Lord_Nightmare quit (Quit: ZNC - http://znc.in) 2020-05-04T17:52:20Z heisig quit (Quit: Leaving) 2020-05-04T17:52:51Z AmyGoal quit (Client Quit) 2020-05-04T17:54:46Z Lord_Nightmare joined #lisp 2020-05-04T18:02:06Z choegusung joined #lisp 2020-05-04T18:02:08Z choegusung quit (Client Quit) 2020-05-04T18:04:06Z ayuce left #lisp 2020-05-04T18:04:29Z jmarciano quit (Read error: Connection reset by peer) 2020-05-04T18:06:03Z whythat quit (Quit: whythat) 2020-05-04T18:16:02Z karlosz joined #lisp 2020-05-04T18:16:57Z ebrasca joined #lisp 2020-05-04T18:22:09Z seok quit (Ping timeout: 245 seconds) 2020-05-04T18:26:30Z sauvin quit (Ping timeout: 265 seconds) 2020-05-04T18:33:26Z vutral joined #lisp 2020-05-04T18:33:27Z vutral quit (Changing host) 2020-05-04T18:33:27Z vutral joined #lisp 2020-05-04T18:43:54Z shifty joined #lisp 2020-05-04T18:44:21Z marcoxa joined #lisp 2020-05-04T18:45:54Z xuxuru joined #lisp 2020-05-04T19:02:18Z gendl: marcoxa: uiop is indeed split from asdf. We build production Gendl images which contain uiop but not asdf. 2020-05-04T19:03:40Z Fare: The hard problem is not splitting uiop from asdf. The hard problem is convincing vendors to deliver the two as separate modules. 2020-05-04T19:04:03Z gendl: the monolithic compile bundle stuff in asdf is a bit broken though the last time I checked for the case of systems which depend-on uiop — so we have to include its fasl explicitly in the build. 2020-05-04T19:05:14Z Fare: (although there *are* interesting issues with splitting uiop from asdf, they are comparatively simple) 2020-05-04T19:06:20Z gendl: yes, asdf by default comes as one inseparable thingie including uiop. You have to clone asdf sources to get uiop as a separate item. Or (I think) you can get it (some version of it) thru Quicklisp. 2020-05-04T19:13:56Z Bourne joined #lisp 2020-05-04T19:17:16Z duuqnd quit (Quit: Leaving) 2020-05-04T19:18:13Z Josh_2 quit (Remote host closed the connection) 2020-05-04T19:18:28Z Josh_2 joined #lisp 2020-05-04T19:18:32Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2020-05-04T19:22:32Z liberliver quit (Ping timeout: 272 seconds) 2020-05-04T19:34:43Z karayan quit (Ping timeout: 260 seconds) 2020-05-04T19:35:06Z karayan joined #lisp 2020-05-04T19:38:18Z cosimone quit (Ping timeout: 244 seconds) 2020-05-04T19:38:34Z ralt quit (Quit: Connection closed for inactivity) 2020-05-04T19:40:19Z karswell_ quit (Read error: Connection reset by peer) 2020-05-04T19:40:24Z jackdaniel: "asdf's" uiop should have a different package name than "a library" uiop 2020-05-04T19:40:47Z jackdaniel: same goes for the system name 2020-05-04T19:40:59Z jackdaniel: since uiop is a preloaded system, quicklisp does not download a new one unless it is manually placed in a known location 2020-05-04T19:41:21Z pilne joined #lisp 2020-05-04T19:41:43Z jackdaniel: furthermore if you upgrade asdf (imo the upgrade mechanism is pita), your "old" uiop is loaded over 2020-05-04T19:49:13Z cosimone joined #lisp 2020-05-04T19:55:42Z elinow quit (Ping timeout: 260 seconds) 2020-05-04T19:57:07Z ralt joined #lisp 2020-05-04T19:59:23Z milanj quit (Quit: This computer has gone to sleep) 2020-05-04T20:05:56Z ljavorsk joined #lisp 2020-05-04T20:07:09Z jonatack quit (Ping timeout: 272 seconds) 2020-05-04T20:08:01Z fourier joined #lisp 2020-05-04T20:08:50Z jonatack joined #lisp 2020-05-04T20:09:16Z xuxuru quit (Quit: xuxuru) 2020-05-04T20:10:54Z rumbler3161 quit (Ping timeout: 245 seconds) 2020-05-04T20:14:54Z yankM quit (Ping timeout: 240 seconds) 2020-05-04T20:16:46Z nymphet joined #lisp 2020-05-04T20:17:14Z ebrasca quit (Remote host closed the connection) 2020-05-04T20:18:27Z loli quit (Ping timeout: 260 seconds) 2020-05-04T20:18:33Z nymphet is now known as loli 2020-05-04T20:19:14Z shifty quit (Ping timeout: 260 seconds) 2020-05-04T20:20:01Z shifty joined #lisp 2020-05-04T20:22:27Z Lycurgus joined #lisp 2020-05-04T20:27:59Z pve quit (Quit: leaving) 2020-05-04T20:29:26Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-04T20:30:39Z yankM joined #lisp 2020-05-04T20:31:05Z McParen left #lisp 2020-05-04T20:35:38Z dvdmuckle quit (Remote host closed the connection) 2020-05-04T20:36:25Z ggole quit (Quit: Leaving) 2020-05-04T20:38:00Z dvdmuckle joined #lisp 2020-05-04T20:43:47Z bendersteed joined #lisp 2020-05-04T20:48:14Z narimiran quit (Ping timeout: 256 seconds) 2020-05-04T20:48:47Z fourier quit (Ping timeout: 260 seconds) 2020-05-04T20:49:15Z ljavorsk quit (Ping timeout: 260 seconds) 2020-05-04T21:00:19Z jackdaniel: is there a rule somewhere in the spec which says, that you can't use custom keyword argument names in long defsetf variant? 2020-05-04T21:00:45Z jackdaniel: i.e (defsetf abc (place &key ((x a))) (arg) `(setf (car ,place) (+ ,a ,arg))) 2020-05-04T21:00:50Z phoe: clhs defsetf 2020-05-04T21:00:50Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_defset.htm 2020-05-04T21:01:13Z phoe: clhs 3.4.7 2020-05-04T21:01:13Z specbot: Defsetf Lambda Lists: http://www.lispworks.com/reference/HyperSpec/Body/03_dg.htm 2020-05-04T21:01:13Z Bike: the page on defsetf lambda list explicitly allows that. 2020-05-04T21:01:14Z jackdaniel: and then (setf (abc *something* 'x 1) 2) 2020-05-04T21:01:46Z jackdaniel: on both ecl and sbcl I get, that x is an unknown keyword during macroexpansion 2020-05-04T21:01:51Z phoe: seems like this is allowed: note (keyword-name var) in there 2020-05-04T21:02:08Z jackdaniel: that's why I'm confused 2020-05-04T21:02:29Z jackdaniel: let's see what ccl says 2020-05-04T21:03:06Z jackdaniel: on ccl it works 2020-05-04T21:03:22Z jackdaniel: hm, thank you 2020-05-04T21:03:41Z phoe: on SBCL it says that 'X is an unknown keyword argument 2020-05-04T21:03:42Z jackdaniel: or rather "thank you", and separately "hm" 2020-05-04T21:03:45Z jackdaniel: indeed 2020-05-04T21:03:52Z phoe: that smells of bugs: it's still quoted 2020-05-04T21:04:55Z phoe: perhaps it worked until now because no one did things like (setf (abc *something* ':x 1) 2) 2020-05-04T21:05:19Z phoe: that, the way I understand, would be equivalent to the version without the quote 2020-05-04T21:07:00Z notzmv quit (Remote host closed the connection) 2020-05-04T21:07:06Z ahungry quit (Remote host closed the connection) 2020-05-04T21:10:37Z marcoxa quit (Quit: Time to go to bed.) 2020-05-04T21:13:13Z shifty quit (Ping timeout: 246 seconds) 2020-05-04T21:13:32Z shifty joined #lisp 2020-05-04T21:16:46Z karayan quit (Remote host closed the connection) 2020-05-04T21:17:48Z gravicappa quit (Ping timeout: 272 seconds) 2020-05-04T21:19:31Z karayan joined #lisp 2020-05-04T21:19:42Z shifty quit (Ping timeout: 260 seconds) 2020-05-04T21:21:43Z corpix quit (Ping timeout: 240 seconds) 2020-05-04T21:22:03Z corpix joined #lisp 2020-05-04T21:23:22Z duncan_ quit (Ping timeout: 246 seconds) 2020-05-04T21:23:47Z Fare quit (Ping timeout: 260 seconds) 2020-05-04T21:24:02Z Bike: defsetf is more like defmacro, though, so it doesn't evaluate the arguments 2020-05-04T21:24:27Z Bike: so maybe you should do (setf (abc *something* x 1) 2) instead 2020-05-04T21:25:42Z phoe: oh! is that allowed? 2020-05-04T21:25:48Z phoe reads more 2020-05-04T21:25:50Z jackdaniel: Bike: then I have "Unknown &key argument: #:A2059", so the problem is still there 2020-05-04T21:26:06Z Bike: that's because of defsetf arranging for once-only 2020-05-04T21:26:22Z Bike: so uh. i don't know how to make it work. 2020-05-04T21:26:55Z phoe: ... 2020-05-04T21:27:07Z phoe: short form of defsetf calls the update-fn with newval as its *last* argument 2020-05-04T21:27:09Z phoe: why 2020-05-04T21:27:38Z phoe: #'(setf foo) is supposed to get newval as its *first* argument 2020-05-04T21:28:11Z Bike: you don't use defsetf for setf functions. 2020-05-04T21:28:40Z dddddd_ joined #lisp 2020-05-04T21:28:52Z Bike: having it get the new value last means evaluation order can work in the more obvious way, i suppose 2020-05-04T21:29:26Z phoe: Bike: I'm aware 2020-05-04T21:29:38Z phoe: wait a second though... 2020-05-04T21:29:40Z phoe: clhs defsetf 2020-05-04T21:29:40Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_defset.htm 2020-05-04T21:29:46Z phoe: "It must be the case that the function or macro named by access-fn evaluates all of its arguments." 2020-05-04T21:30:27Z phoe: if I understand this correctly, then 'X must be evaluated to produce X in jackdaniel's example 2020-05-04T21:30:28Z random-nick quit (Ping timeout: 272 seconds) 2020-05-04T21:30:49Z phoe: to have it consistent with (abc *something* 'x 1) which would be a function call or a macro call that evaluates all arguments 2020-05-04T21:31:18Z shka_ quit (Ping timeout: 256 seconds) 2020-05-04T21:31:20Z dddddd quit (Ping timeout: 258 seconds) 2020-05-04T21:31:48Z Bike: evaluated by the expansion. 2020-05-04T21:31:53Z jackdaniel: I'm not using ccl daily, but when I do it often surprises me how it got right things which are wrong/unsatisfying in ecl and even in sbcl 2020-05-04T21:32:35Z phoe: Bike: I don't understand, evaluated by the expansion 2020-05-04T21:32:55Z Bike: okay, so when you write a long form defsetf you're kind of writing a macroexpander. 2020-05-04T21:33:05Z phoe: no no, I understand that 2020-05-04T21:33:06Z Bike: the macroexpander gets forms. 2020-05-04T21:33:21Z phoe: it's just that this sentence says nothing about the expansion; just about the original function for which we define setf 2020-05-04T21:33:53Z Bike: i just mean the macroexpander isn't going to get the symbol X if you write (abc 'x), because evaluation isn't don eyet. 2020-05-04T21:34:20Z phoe: yes, it gets (QUOTE X) at that point 2020-05-04T21:35:09Z phoe: but I mean that if ACCESS-FN must evaluate all its arguments, then it seems weird if SETF ACCESS-FN does something different 2020-05-04T21:35:20Z Bike: well yes, but that doesn't affect what the macroexpander gets. 2020-05-04T21:35:27Z phoe: that's correct 2020-05-04T21:35:31Z Bike: the thing is that defsetf also has to arrange that the macroexpander doesn't have to take care of once-only. 2020-05-04T21:35:48Z Bike: so the expander doesn't get the actual input forms. 2020-05-04T21:36:40Z phoe: ...this gets complicated really quickly though 2020-05-04T21:36:50Z phoe: ...so if it gets a &key, it should actually recognize that it is given quoted symbols, unquote them, and properly bind them 2020-05-04T21:37:01Z jackdaniel: setf expansions are a real brain stretch :) 2020-05-04T21:37:09Z phoe: worse, what if it's given symbols bound to lexical variables, or provided via function calls 2020-05-04T21:37:15Z phoe: oh golly 2020-05-04T21:37:33Z jackdaniel: either way there is a bug, I'm happy with this conclusion and I carry on :) 2020-05-04T21:37:44Z jackdaniel: no-defun-allowed: thank you for fixing the issue in flexichain for ecl 2020-05-04T21:39:10Z jackdaniel: or, to be correct, thank you kpoeck, got mislead by the commiter 2020-05-04T21:39:50Z phoe: no-thanks-allowed 2020-05-04T21:40:16Z Bike: if defsetf has to handle keywords but also work like a function then it probably can't handle keywords that will be evaluated. sorta like define-compiler-macro. 2020-05-04T21:40:23Z Bike: i figure the spec writers just did not consider this scenario. 2020-05-04T21:41:18Z phoe: so, basically, all symbols that aren't from the KEYWORD package and that don't name constants 2020-05-04T21:42:02Z phoe: it should be possible to defer some lambda list parsing to execution-time though, if that's required 2020-05-04T21:42:05Z Bike: i mean, say you have a function foo with lambda list (&key x), and you write a defsetf foo, and then you write (setf (foo y 4) nv). what's the defsetf expander get? 2020-05-04T21:42:15Z Bike: y might evaluate to be :x, or it might not. 2020-05-04T21:43:02Z phoe: that should be doable with a execution-time destructuring-bind that will signal a destructuring error if Y does not evaluate to :X and will signal a compile-time warning if Y turns out to be unbound 2020-05-04T21:43:13Z phoe: dirty and execution-time, but would work 2020-05-04T21:44:13Z Bike: what, like, it expands the macro at runtime and evaluates the result? 2020-05-04T21:45:10Z Bike: or you expand the macro ahead of time under the assumption that x will be the 4 form? 2020-05-04T21:45:24Z phoe: the macro expands into something like (let ((args (list y 4))) (destructuring-bind (&key x) args ...)) 2020-05-04T21:45:51Z phoe: with once-only and such 2020-05-04T21:46:07Z Bike: (defsetf foo (&key x) (nv) (print x) nv), what's printed at compile time? 2020-05-04T21:46:45Z Bike: if there are multiple evaluated keys does it expand more than once and select between them at runtime? 2020-05-04T21:46:45Z jfrancis quit (Read error: Connection reset by peer) 2020-05-04T21:46:50Z Bike: it's just way too stupid. 2020-05-04T21:46:54Z jfrancis joined #lisp 2020-05-04T21:47:44Z jackdaniel: ccl expands into (let (yadayada) (other-yada () ((lambda (place &key ((a #:a))) ,@do-magic) ,@yada-arguments))) 2020-05-04T21:48:12Z jackdaniel: (expands the setf form into*) 2020-05-04T21:49:04Z shifty joined #lisp 2020-05-04T21:55:55Z shifty quit (Ping timeout: 246 seconds) 2020-05-04T21:56:34Z shifty joined #lisp 2020-05-04T22:01:19Z edgar-rft didn't know that Common Lisp is a yada-oriented language 2020-05-04T22:01:20Z shifty quit (Ping timeout: 256 seconds) 2020-05-04T22:02:36Z shifty joined #lisp 2020-05-04T22:05:54Z |Pirx| quit (Ping timeout: 240 seconds) 2020-05-04T22:09:17Z shifty quit (Ping timeout: 260 seconds) 2020-05-04T22:09:26Z shifty joined #lisp 2020-05-04T22:12:26Z MichaelRaskin quit (Ping timeout: 256 seconds) 2020-05-04T22:17:45Z notzmv joined #lisp 2020-05-04T22:21:11Z ArthurStrong joined #lisp 2020-05-04T22:24:01Z Kingsy joined #lisp 2020-05-04T22:24:13Z Kingsy: anyone here use paredit with vim? 2020-05-04T22:24:13Z amerlyq quit (Quit: amerlyq) 2020-05-04T22:26:50Z shifty quit (Ping timeout: 272 seconds) 2020-05-04T22:27:06Z shifty joined #lisp 2020-05-04T22:28:34Z MichaelRaskin joined #lisp 2020-05-04T22:31:04Z Xach: Kingsy: i don't know, but i didn't think that existed - does it? 2020-05-04T22:31:32Z cosimone quit (Quit: Quit.) 2020-05-04T22:31:42Z stepnem quit (Ping timeout: 256 seconds) 2020-05-04T22:32:33Z stepnem joined #lisp 2020-05-04T22:32:44Z Kingsy: yeah I have it installed but its just an absolute pain in the ass. 2020-05-04T22:33:04Z Kingsy: I am thinking about removing it but I wanted to see if anyone finds it useful first. 2020-05-04T22:38:16Z pjb quit (Ping timeout: 256 seconds) 2020-05-04T22:38:39Z dlowe: it's definitely a shift in thinking and I don't know how well the vim translation is 2020-05-04T22:38:45Z dlowe: s/well/good/ 2020-05-04T22:40:23Z pjb joined #lisp 2020-05-04T22:51:52Z shifty quit (Ping timeout: 260 seconds) 2020-05-04T22:52:15Z shifty joined #lisp 2020-05-04T22:55:42Z Kingsy: yeah I removed it, I didnt like it :D 2020-05-04T22:58:34Z jonatack quit (Ping timeout: 246 seconds) 2020-05-04T22:58:53Z sjl_ quit (Ping timeout: 260 seconds) 2020-05-04T23:00:41Z Oladon joined #lisp 2020-05-04T23:00:55Z jonatack joined #lisp 2020-05-04T23:04:18Z stepnem_ joined #lisp 2020-05-04T23:05:11Z stepnem quit (Read error: Connection reset by peer) 2020-05-04T23:09:46Z shifty quit (Ping timeout: 246 seconds) 2020-05-04T23:10:11Z dvdmuckle quit (Remote host closed the connection) 2020-05-04T23:10:37Z shifty joined #lisp 2020-05-04T23:10:40Z dvdmuckle joined #lisp 2020-05-04T23:12:06Z Fare joined #lisp 2020-05-04T23:23:09Z SGASAU quit (Remote host closed the connection) 2020-05-04T23:25:02Z shifty quit (Ping timeout: 256 seconds) 2020-05-04T23:25:23Z SGASAU joined #lisp 2020-05-04T23:25:25Z shifty joined #lisp 2020-05-04T23:29:03Z asarch joined #lisp 2020-05-04T23:34:40Z shifty quit (Ping timeout: 256 seconds) 2020-05-04T23:34:44Z Lord_of_Life_ joined #lisp 2020-05-04T23:35:42Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-04T23:37:35Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-04T23:38:50Z shifty joined #lisp 2020-05-04T23:41:15Z markasoftware: Can I (find-symbol) using the package that was at read time, rather than the dynamic *package*? 2020-05-04T23:41:34Z markasoftware: i know i can manually specify a package as the last argument. But is there a way without specifically naming the package? 2020-05-04T23:41:51Z Bike: the runtime code doesn't know what *package* was when the code was read. 2020-05-04T23:42:10Z Bike: you could save it, and do something like (find-symbol name #.*package*) 2020-05-04T23:42:16Z Bike: kind of ugly to use symbols like this, tho 2020-05-04T23:43:07Z Lycurgus quit (Remote host closed the connection) 2020-05-04T23:43:49Z markasoftware: oof 2020-05-04T23:45:04Z pjb: (find-symbol name #.*package*) or more sturdy: (find-symbol name #.(package-name *package*)) 2020-05-04T23:45:09Z markasoftware: i'm mainly trying to convert keyword symbols to symbols in my package. 2020-05-04T23:45:33Z markasoftware: because i'm using them for equality checks. 2020-05-04T23:46:00Z pjb: you can use string= 2020-05-04T23:46:06Z pjb: (string= 'foo :foo) #| --> t |# 2020-05-04T23:46:13Z markasoftware: woah 2020-05-04T23:46:22Z markasoftware: it gets th e names? That's neat 2020-05-04T23:46:41Z pjb: clhs string= 2020-05-04T23:46:41Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_stgeq_.htm 2020-05-04T23:47:06Z markasoftware: cool, string1 and string2 are indeed string designators 2020-05-04T23:47:09Z markasoftware: i would never have guessed. Thank you! 2020-05-04T23:47:27Z pjb: (find-symbol name #.(package-name *package*)) contains a string in the source, while (find-symbol name #.*package*) contains a package. The CL system may have difficulties storing the package in the object file when compiling this. 2020-05-04T23:51:24Z Fare: or, use Scheme hygienic macros. 2020-05-04T23:51:55Z jeosol quit (Remote host closed the connection) 2020-05-04T23:53:12Z aeth: oh, weird, I'd normally intern or manually stringify in such situations 2020-05-04T23:54:43Z markasoftware: i had no idea string designators worked for all these functions, including string-downcase and stuff 2020-05-05T00:01:05Z dvdmuckle quit (Remote host closed the connection) 2020-05-05T00:01:34Z dvdmuckle joined #lisp 2020-05-05T00:03:21Z dvdmuckle quit (Remote host closed the connection) 2020-05-05T00:04:51Z dvdmuckle joined #lisp 2020-05-05T00:12:56Z Oladon quit (Quit: Leaving.) 2020-05-05T00:20:35Z red-dot joined #lisp 2020-05-05T00:28:51Z ahungry joined #lisp 2020-05-05T00:33:14Z monokrom quit (Remote host closed the connection) 2020-05-05T00:37:28Z bitmapper: ecl got a new release a couple of days ago? 2020-05-05T00:38:14Z nwoob```` joined #lisp 2020-05-05T00:39:47Z nwoob``` quit (Ping timeout: 260 seconds) 2020-05-05T00:41:26Z ralt: couple of weeks ago now, but yes 2020-05-05T00:45:05Z Oladon joined #lisp 2020-05-05T00:45:26Z shifty quit (Ping timeout: 256 seconds) 2020-05-05T00:48:32Z SGASAU quit (Remote host closed the connection) 2020-05-05T00:49:23Z SGASAU joined #lisp 2020-05-05T00:59:39Z jeosol joined #lisp 2020-05-05T01:04:56Z bitmapper quit (Ping timeout: 256 seconds) 2020-05-05T01:06:04Z bendersteed quit (Ping timeout: 256 seconds) 2020-05-05T01:08:04Z Fare quit (Ping timeout: 246 seconds) 2020-05-05T01:18:26Z SGASAU quit (Remote host closed the connection) 2020-05-05T01:19:05Z SGASAU joined #lisp 2020-05-05T01:22:55Z ayuce joined #lisp 2020-05-05T01:36:04Z zaquest quit (Quit: Leaving) 2020-05-05T01:49:01Z zaquest joined #lisp 2020-05-05T01:49:43Z Josh_2 quit (Ping timeout: 246 seconds) 2020-05-05T01:59:20Z Oladon quit (Quit: Leaving.) 2020-05-05T02:06:19Z Fare joined #lisp 2020-05-05T02:06:39Z SGASAU quit (Remote host closed the connection) 2020-05-05T02:07:22Z SGASAU joined #lisp 2020-05-05T02:16:05Z ahungry quit (Remote host closed the connection) 2020-05-05T02:17:45Z ahungry joined #lisp 2020-05-05T02:17:59Z nmg joined #lisp 2020-05-05T02:21:45Z igemnace quit (Quit: WeeChat 2.8) 2020-05-05T02:21:56Z SGASAU quit (Remote host closed the connection) 2020-05-05T02:22:39Z SGASAU joined #lisp 2020-05-05T02:23:03Z dddddd_ quit (Ping timeout: 260 seconds) 2020-05-05T02:25:27Z igemnace joined #lisp 2020-05-05T02:26:05Z White_Flame: When the name of a macro is mistyped, usually the reported error is related to the parameters not evaluating properly, instead of a function name not found. Is this behavior required by the spec? 2020-05-05T02:27:25Z pilne quit (Quit: Give a man a fish and he will eat for a day. Teach him how to fish, and he will sit in a boat and drink beer all day) 2020-05-05T02:28:03Z pjb: White_Flame: no, error messages are not specified. 2020-05-05T02:28:29Z pjb: White_Flame: but (foo a b c) is interpreted by default as a function call, when foo is not a special operator or a macro. There's no otherway to interpret it! 2020-05-05T02:28:35Z White_Flame: I speciificall mean which error situation is reached first 2020-05-05T02:28:48Z pjb: White_Flame: therefore a b and c will be interpreted as expressions. If they're ill-formed, you get an error. 2020-05-05T02:29:10Z pjb: So most often, the error situation reached first is that. 2020-05-05T02:29:10Z White_Flame: right, but could it check for FOO being a validly callable function before attempting to evaluate the arguments? 2020-05-05T02:29:42Z pjb: No, it could not. More precisely, it doesn't have to: it is not specified if the function is evaluated before the arguments. 2020-05-05T02:29:46Z White_Flame: and throw an error before the arguments have a chance to do so? 2020-05-05T02:29:56Z pjb: (foo (defun foo (x y) (list x y)) 42) #| --> (foo 42) |# 2020-05-05T02:30:11Z pjb: But also possible, an error message about undefined function foo. 2020-05-05T02:30:29Z pjb: left to right evaluation only applies to arguments. 2020-05-05T02:30:46Z White_Flame: argh, yeah taht would be a confounding example 2020-05-05T02:30:49Z pjb: (foo (defun foo (x y) (list x x y y)) 42) #| --> (foo foo 42 42) |# but (foo 42) is also possible (the old foo). 2020-05-05T02:31:11Z White_Flame: a warning would suffice for debug assistance, but yeah that's a valid case where the function doesn't exist before the arguments are evaluated 2020-05-05T02:31:43Z pjb: White_Flame: happily, lisp is sexp-based and provides you with READ, so you can easily write your own code analyser to signal such problems. 2020-05-05T02:31:51Z pjb: Go ahead, write tools! 2020-05-05T02:32:04Z White_Flame: well, I'm talking about basic REPL use 2020-05-05T02:32:14Z White_Flame: although similar situations occur for source code files on occasion 2020-05-05T02:32:15Z pjb: Me too. 2020-05-05T02:39:07Z Oladon joined #lisp 2020-05-05T02:41:20Z nwoob```` left #lisp 2020-05-05T02:45:58Z turona quit (Ping timeout: 265 seconds) 2020-05-05T02:47:38Z turona joined #lisp 2020-05-05T02:48:07Z rozenglass quit (Ping timeout: 260 seconds) 2020-05-05T02:57:38Z beach: Good morning everyone! 2020-05-05T02:59:16Z ayuce quit (Read error: Connection reset by peer) 2020-05-05T03:05:03Z Tordek quit (Ping timeout: 260 seconds) 2020-05-05T03:06:27Z dyelar quit (Quit: Leaving.) 2020-05-05T03:06:46Z vert2 quit (Ping timeout: 256 seconds) 2020-05-05T03:15:13Z karlosz quit (Quit: karlosz) 2020-05-05T03:19:35Z v3ga quit (Quit: WeeChat 2.7.1) 2020-05-05T03:19:39Z mrcom quit (Read error: Connection reset by peer) 2020-05-05T03:19:56Z Tordek joined #lisp 2020-05-05T03:21:43Z vert2 joined #lisp 2020-05-05T03:24:57Z marusich joined #lisp 2020-05-05T03:25:34Z Lord_Nightmare2 joined #lisp 2020-05-05T03:25:52Z marusich quit (Remote host closed the connection) 2020-05-05T03:26:41Z Lord_Nightmare quit (Ping timeout: 258 seconds) 2020-05-05T03:26:44Z Lord_Nightmare2 is now known as Lord_Nightmare 2020-05-05T03:29:55Z mrcom joined #lisp 2020-05-05T03:34:56Z rozenglass joined #lisp 2020-05-05T03:35:09Z FennecCode joined #lisp 2020-05-05T03:37:24Z asarch quit (Quit: Leaving) 2020-05-05T03:44:39Z karlosz joined #lisp 2020-05-05T03:49:37Z Fare: beach: bonjour! 2020-05-05T03:57:34Z ayuce joined #lisp 2020-05-05T03:58:49Z Bike quit (Quit: Lost terminal) 2020-05-05T04:00:21Z ayuce quit (Remote host closed the connection) 2020-05-05T04:00:32Z jeosol: Fare: you are here? been a while 2020-05-05T04:00:55Z jeosol: Good morning beach! 2020-05-05T04:05:30Z Fare: jeosol, occasionally. But I don't program new stuff in CL anymore. I'm a Gerbil Schemer, these days. 2020-05-05T04:05:42Z twelvemonkeys quit (Ping timeout: 256 seconds) 2020-05-05T04:05:52Z Fare: I still help maintain the same old CL systems, though. 2020-05-05T04:05:54Z jeosol: Yeah, I remember who told me that 2020-05-05T04:06:05Z Fare: But I'm eager to pass the baton on these. 2020-05-05T04:06:07Z jeosol: So I figured you came back, bu not 2020-05-05T04:06:50Z Fare: Even on ASDF, I let Robert do things I would have redone differently if still the maintainer. 2020-05-05T04:06:53Z jeosol: So how has your experience with Gerbil been, remember you said something it not having CLOS, not sure it was you 2020-05-05T04:07:19Z Fare: Yeah, its object system has many of the features of CLOS, but not all 2020-05-05T04:07:34Z twelvemonkeys joined #lisp 2020-05-05T04:07:57Z Fare: I'm sometimes missing on method combinations, for instance, though it's easy enough to work around with conventions or macros. 2020-05-05T04:08:18Z jeosol: on the asdf, I still have to go do that POIU/graph dependency thing we chatted about. I'd find sometime after I move 2020-05-05T04:08:40Z jeosol: I did start to look at the codes though 2020-05-05T04:08:43Z Fare: It should not be *that* hard. 2020-05-05T04:09:34Z Fare: POIU passes its tests, it just issues a lot warnings, because it's confused by how ASDF now correctly manages multiple phases in one session. 2020-05-05T04:09:35Z jeosol: hahaha, I am not at your level ... 2020-05-05T04:09:49Z nmg` joined #lisp 2020-05-05T04:10:05Z Fare: yeah... you know the story about the expert and the screw. 2020-05-05T04:10:10Z jeosol: I will put some time to it. 2020-05-05T04:10:42Z jeosol: lol. 2020-05-05T04:10:46Z nmg quit (Ping timeout: 246 seconds) 2020-05-05T04:10:50Z jeosol: not quite, but i'd look it up. 2020-05-05T04:11:24Z heisig joined #lisp 2020-05-05T04:11:43Z jeosol: Using numerous suggestions here, from you, and Rob, the code was stable, and I just left it as it and focused on other things for now. I use a corefile to reduce load time and all. 2020-05-05T04:11:50Z Fare: https://www.bhavinionline.com/2011/06/the-ship-repair-man-story-why-experts-get-paid-more/ 2020-05-05T04:12:15Z Fare: The POIU repair looks like a case of that ^ 2020-05-05T04:13:26Z Fare: cl-launch (and/or uiop:dump-image and asdf:program-op) can help you automate the corefile dumping. 2020-05-05T04:14:38Z jeosol: oh ok, cool. I use sbcl and calling save-lisp-and-die. I'd certainly like to automate things 2020-05-05T04:15:48Z jeosol: yeah, not portable, but I only use SBCL. I'd try above 2020-05-05T04:17:21Z jeosol: fare: cool story. Yeah, knowing where to tap is key 2020-05-05T04:21:01Z slyrus joined #lisp 2020-05-05T04:22:38Z refpga quit (Ping timeout: 260 seconds) 2020-05-05T04:23:01Z narimiran joined #lisp 2020-05-05T04:23:39Z refpga joined #lisp 2020-05-05T04:27:08Z ArthurStrong quit (Quit: leaving) 2020-05-05T04:27:49Z sdumi quit (Ping timeout: 264 seconds) 2020-05-05T04:34:30Z sdumi joined #lisp 2020-05-05T04:34:43Z gxt quit (Ping timeout: 240 seconds) 2020-05-05T04:37:17Z gxt joined #lisp 2020-05-05T04:44:45Z patlv quit (Quit: patlv) 2020-05-05T04:45:12Z Oddity quit (Ping timeout: 256 seconds) 2020-05-05T04:45:32Z zulu-inuoe quit (Read error: Connection reset by peer) 2020-05-05T04:51:29Z Oddity joined #lisp 2020-05-05T04:53:28Z markasoftware: Can I make a CLOS initarg mandatory? 2020-05-05T04:55:49Z no-defun-allowed: You mean the initarg for a slot? Sure. 2020-05-05T04:55:57Z nmg`` joined #lisp 2020-05-05T04:56:03Z heisig: markasoftware: You can supply an initform that signals an error. See also alexandria:required-argument. 2020-05-05T04:56:07Z no-defun-allowed: (slot-name :initarg :some-name :error (error "Please supply :SOME-NAME") ...) 2020-05-05T04:56:08Z nmg`` left #lisp 2020-05-05T04:57:07Z markasoftware: i like heisig's idea. no-defun-allowed, I don't see :error listed as a slot option on CLOS defclass 2020-05-05T04:57:21Z no-defun-allowed: Oops, I meant :initform, not :error 2020-05-05T04:57:25Z markasoftware: ah ok lol 2020-05-05T04:57:33Z no-defun-allowed: ...which is precisely heisig's idea. 2020-05-05T04:57:40Z nmg` quit (Ping timeout: 246 seconds) 2020-05-05T04:58:37Z markasoftware: well yes when typed correctly it is 2020-05-05T04:58:40Z markasoftware: thank yo uboth 2020-05-05T04:59:01Z akoana joined #lisp 2020-05-05T04:59:56Z vlatkoB joined #lisp 2020-05-05T05:03:18Z Oladon quit (Quit: Leaving.) 2020-05-05T05:06:22Z refpga quit (Ping timeout: 260 seconds) 2020-05-05T05:08:19Z pjb quit (Remote host closed the connection) 2020-05-05T05:10:16Z sdumi quit (Ping timeout: 272 seconds) 2020-05-05T05:14:27Z refpga joined #lisp 2020-05-05T05:17:10Z dale quit (Quit: My computer has gone to sleep) 2020-05-05T05:18:07Z shka_ joined #lisp 2020-05-05T05:18:31Z aeth: alternatively, you could MOP up a :required? or :requiredp or :required-p 2020-05-05T05:19:10Z sauvin joined #lisp 2020-05-05T05:20:17Z ayuce joined #lisp 2020-05-05T05:21:01Z aeth: which method(s) to override is an exercise for the reader 2020-05-05T05:21:13Z axion quit (Ping timeout: 264 seconds) 2020-05-05T05:21:39Z Aurora_v_kosmose quit (Remote host closed the connection) 2020-05-05T05:21:46Z axion joined #lisp 2020-05-05T05:23:03Z rozenglass quit (Ping timeout: 260 seconds) 2020-05-05T05:26:50Z rozenglass joined #lisp 2020-05-05T05:32:49Z gravicappa joined #lisp 2020-05-05T05:36:34Z Aurora_v_kosmose joined #lisp 2020-05-05T05:37:28Z holycow joined #lisp 2020-05-05T05:37:56Z oxum joined #lisp 2020-05-05T05:38:12Z oxum quit (Remote host closed the connection) 2020-05-05T05:44:31Z refpga quit (Ping timeout: 260 seconds) 2020-05-05T05:45:19Z pjb joined #lisp 2020-05-05T05:45:25Z refpga joined #lisp 2020-05-05T05:46:04Z holycow quit (Quit: Lost terminal) 2020-05-05T05:49:17Z White_Flame: aeth: verbing a noun into a pun. I've not seen that before (though it's likely quite old) but I like it 2020-05-05T05:49:38Z ahungry quit (Remote host closed the connection) 2020-05-05T05:49:41Z White_Flame: *I've not seen that particular punning of MOP before, but I like it 2020-05-05T05:52:28Z EvW joined #lisp 2020-05-05T05:53:51Z flip214: aeth: it would be awesome if keyword arguments could be T just by putting the keyword in the argument list, like with most unix shell commands 2020-05-05T05:54:44Z White_Flame: it would be ambiguous, just like with most unix shell commands 2020-05-05T05:55:04Z beach: That would create lots of interesting ambiguities. 2020-05-05T05:55:25Z White_Flame: I agree in concept that there should be a non-arg way of representing it, but there isn't and the T is simply more regular and clear 2020-05-05T05:56:03Z cgay: In Dylan we call that `required-init-keyword:` 2020-05-05T05:56:18Z White_Flame: shell commands have --foo vs -foo in some programs, but that's wildly inconsistent as well 2020-05-05T05:57:24Z White_Flame: and does windows still do /foo ? 2020-05-05T05:57:53Z doomlist3 joined #lisp 2020-05-05T05:58:24Z beach: cgay: Wouldn't that make it hard to use the trick that is often used in Common Lisp, which is that an intermediate function that doesn't care about some keyword arguments, just APPPLYs the callee to the &REST arguments? 2020-05-05T05:59:18Z sdumi joined #lisp 2020-05-05T05:59:49Z cgay: I was responding to " Can I make a CLOS initarg mandatory?" 2020-05-05T06:00:09Z beach: Oh, I see. Sorry! 2020-05-05T06:00:10Z Grue`: White_Flame: it does, DOS command flags were designed to be typed without spaces, for example "xcopy/e/i/h/r/y/c/k" 2020-05-05T06:00:37Z White_Flame: ew, I never knew that, and I lived through DOS 2020-05-05T06:03:16Z aeth: White_Flame: I only seem to pun CLOS things, e.g. CLOSify 2020-05-05T06:03:40Z White_Flame: well, that's just verbing a noun, not making an english pun 2020-05-05T06:03:49Z Grue`: regarding mandatory initargs, simply omitting the initform will cause an error the first time the slot is accessed. and this access can be forced in initialize-instance :after 2020-05-05T06:05:16Z Grue`: although the initform can be inherited, I guess 2020-05-05T06:05:34Z aeth: White_Flame, flip214: I think you might be able to use the MOP to create an API like :flags '(:foo :bar :baz :quux) 2020-05-05T06:06:08Z aeth: Of course, :flags '(:required-p) is a loss over :required-p t, but you could probably have enough of them 2020-05-05T06:09:54Z Codaraxis_ joined #lisp 2020-05-05T06:12:37Z p_l: White_Flame: unix uses - because + was too hard to hit and / was taken by directory separator, DOS and Windows use / because of CP/M (and through CP/M, Digital's OSes), and because of that they had to use \ for directories when they ported the idea from Unix 2020-05-05T06:12:56Z beneroth joined #lisp 2020-05-05T06:13:15Z p_l: (which nicely dovetails into why I like CL path apis :D) 2020-05-05T06:13:16Z beneroth left #lisp 2020-05-05T06:13:32Z Codaraxis quit (Ping timeout: 256 seconds) 2020-05-05T06:14:31Z aeth: Would a Lisp OS use : for paths? Or? 2020-05-05T06:15:19Z p_l: aeth: MIT-derived Lisp Machines used Multics style ">" as path separator 2020-05-05T06:15:27Z no-defun-allowed: Where we're going, we don't need paths^W^W^W^W^W^W^WJust a list of directory names? Why not '("foo" "bar" "baz")? 2020-05-05T06:15:42Z aeth: why not a flat filesystem? :-p 2020-05-05T06:16:01Z no-defun-allowed: That wasn't very 🆑🅾︎🆘 of you 2020-05-05T06:16:19Z p_l: no-defun-allowed: writing a quoted list is more annoying than special syntax for paths, this is lisp which means we got the power to make things easier through non-hairy means 2020-05-05T06:17:21Z no-defun-allowed: p_l: I'm kidding; drop the quote at least? :) 2020-05-05T06:17:43Z p_l: no-defun-allowed: and doublequotes adn... :P 2020-05-05T06:18:12Z p_l: that said, LispM systems used foreign path syntax for foreign hosts 2020-05-05T06:18:42Z p_l: HOSTNAME: 2020-05-05T06:19:08Z pjb quit (Ping timeout: 246 seconds) 2020-05-05T06:23:58Z EvW quit (Ping timeout: 260 seconds) 2020-05-05T06:24:47Z jprajzne quit (Quit: jprajzne) 2020-05-05T06:25:12Z jprajzne joined #lisp 2020-05-05T06:27:33Z FennecCode quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-05T06:27:39Z JohnMS_WORK joined #lisp 2020-05-05T06:27:53Z Fare: aeth: : is used for the logical or physical "host" 2020-05-05T06:28:09Z Fare: CL pathnames are a horrible mess 2020-05-05T06:28:20Z doomlist3 quit (Ping timeout: 256 seconds) 2020-05-05T06:28:26Z Fare: as are files in general 2020-05-05T06:29:19Z jprajzne quit (Client Quit) 2020-05-05T06:29:44Z jprajzne joined #lisp 2020-05-05T06:34:48Z jprajzne quit (Quit: jprajzne) 2020-05-05T06:35:12Z jprajzne joined #lisp 2020-05-05T06:36:46Z cgay: Amen, brother. 2020-05-05T06:38:29Z cgay: p_l: for that to work the machine type would've had to be in the namespace system i think. was that in fact the case? i can't remember. 2020-05-05T06:39:09Z cgay: or was there enough info in the by itself perhaps. 2020-05-05T06:39:19Z jprajzne quit (Client Quit) 2020-05-05T06:39:35Z p_l: cgay: partially - different path syntax also corresponded to different remote FS protocols 2020-05-05T06:39:40Z jprajzne joined #lisp 2020-05-05T06:40:15Z p_l: But yes, namespace system had system type as a standard attribute 2020-05-05T06:40:16Z doomlist3 joined #lisp 2020-05-05T06:40:52Z p_l: At least on symbolics, I'm less versed with CADR, Lambda and TI 2020-05-05T06:41:07Z cgay: Better memory than I... 2020-05-05T06:43:43Z random-nick joined #lisp 2020-05-05T06:44:56Z doomlist3 quit (Ping timeout: 256 seconds) 2020-05-05T06:46:11Z frgo quit (Remote host closed the connection) 2020-05-05T06:48:04Z ayuce quit (Remote host closed the connection) 2020-05-05T06:55:56Z Fare: on Genera you had to register the host in the machine's namespace before you could use it, indeed. 2020-05-05T06:57:14Z Fare: I don't know whether or how you could delegate the namespace service. I believe you could bootstrap access to a server that would thereafter fulfill further namespace queries 2020-05-05T06:57:53Z doomlist3 joined #lisp 2020-05-05T06:58:11Z Fare: the most modern protocol it supported was only NFS 2. 2020-05-05T06:58:14Z ayuce joined #lisp 2020-05-05T06:58:22Z toorevitimirp joined #lisp 2020-05-05T07:01:53Z Fare: Which makes it interesting to setup a server for it on Nix 2020-05-05T07:02:01Z emacsomancer quit (Ping timeout: 264 seconds) 2020-05-05T07:03:58Z GreaseMonkey quit (Ping timeout: 256 seconds) 2020-05-05T07:04:04Z simplegauss quit (Ping timeout: 265 seconds) 2020-05-05T07:05:59Z funnel_ joined #lisp 2020-05-05T07:06:01Z [df]_ joined #lisp 2020-05-05T07:06:05Z tankman joined #lisp 2020-05-05T07:06:40Z p_l: Fare: I guess you had only one Genera running at a time, right? 2020-05-05T07:06:44Z greaser|q joined #lisp 2020-05-05T07:06:59Z p_l: normal network used a namespace server which every other machine delegated to 2020-05-05T07:08:34Z nmg joined #lisp 2020-05-05T07:08:42Z simplegauss joined #lisp 2020-05-05T07:08:56Z p_l: I think you had to configure the system with the network name of the namespace server then save that as boot image, and that worked as having enough "proto-namespace" to bring up the rest from namespace server 2020-05-05T07:09:46Z refpga quit (*.net *.split) 2020-05-05T07:09:46Z narimiran quit (*.net *.split) 2020-05-05T07:09:46Z slyrus quit (*.net *.split) 2020-05-05T07:09:46Z zaquest quit (*.net *.split) 2020-05-05T07:09:47Z rwcom341 quit (*.net *.split) 2020-05-05T07:09:47Z elflng quit (*.net *.split) 2020-05-05T07:09:47Z whiteline_ quit (*.net *.split) 2020-05-05T07:09:47Z ineiros quit (*.net *.split) 2020-05-05T07:09:47Z Krystof quit (*.net *.split) 2020-05-05T07:09:47Z rixard quit (*.net *.split) 2020-05-05T07:09:47Z mgr_ quit (*.net *.split) 2020-05-05T07:09:48Z bkst quit (*.net *.split) 2020-05-05T07:09:48Z kingcons quit (*.net *.split) 2020-05-05T07:09:48Z Mandus quit (*.net *.split) 2020-05-05T07:09:48Z AdmiralBumbleBee quit (*.net *.split) 2020-05-05T07:09:48Z funnel quit (*.net *.split) 2020-05-05T07:09:48Z luis quit (*.net *.split) 2020-05-05T07:09:48Z payphone quit (*.net *.split) 2020-05-05T07:09:48Z aap quit (*.net *.split) 2020-05-05T07:09:48Z alandipert quit (*.net *.split) 2020-05-05T07:09:48Z gabot quit (*.net *.split) 2020-05-05T07:09:49Z [df] quit (*.net *.split) 2020-05-05T07:09:49Z matijja quit (*.net *.split) 2020-05-05T07:09:49Z gko` quit (*.net *.split) 2020-05-05T07:09:53Z funnel_ is now known as funnel 2020-05-05T07:10:43Z refpga joined #lisp 2020-05-05T07:11:42Z shifty joined #lisp 2020-05-05T07:12:25Z femi quit (Ping timeout: 246 seconds) 2020-05-05T07:13:21Z pve joined #lisp 2020-05-05T07:16:01Z narimiran joined #lisp 2020-05-05T07:16:01Z slyrus joined #lisp 2020-05-05T07:16:01Z zaquest joined #lisp 2020-05-05T07:16:01Z rwcom341 joined #lisp 2020-05-05T07:16:01Z elflng joined #lisp 2020-05-05T07:16:01Z whiteline_ joined #lisp 2020-05-05T07:16:01Z ineiros joined #lisp 2020-05-05T07:16:01Z rixard joined #lisp 2020-05-05T07:16:01Z mgr_ joined #lisp 2020-05-05T07:16:01Z bkst joined #lisp 2020-05-05T07:16:01Z kingcons joined #lisp 2020-05-05T07:16:01Z Mandus joined #lisp 2020-05-05T07:16:01Z AdmiralBumbleBee joined #lisp 2020-05-05T07:16:01Z luis joined #lisp 2020-05-05T07:16:01Z payphone joined #lisp 2020-05-05T07:16:01Z aap joined #lisp 2020-05-05T07:16:01Z alandipert joined #lisp 2020-05-05T07:16:01Z matijja joined #lisp 2020-05-05T07:16:01Z gko` joined #lisp 2020-05-05T07:17:02Z Cymew joined #lisp 2020-05-05T07:17:20Z toorevitimirp quit (Remote host closed the connection) 2020-05-05T07:18:08Z gabot joined #lisp 2020-05-05T07:18:19Z refpga quit (Ping timeout: 259 seconds) 2020-05-05T07:18:43Z refpga joined #lisp 2020-05-05T07:18:48Z toorevitimirp joined #lisp 2020-05-05T07:23:00Z frgo joined #lisp 2020-05-05T07:23:01Z frgo quit (Remote host closed the connection) 2020-05-05T07:23:18Z frgo joined #lisp 2020-05-05T07:24:05Z frgo quit (Remote host closed the connection) 2020-05-05T07:25:12Z toorevitimirp quit (Remote host closed the connection) 2020-05-05T07:25:30Z frgo joined #lisp 2020-05-05T07:26:36Z emacsomancer joined #lisp 2020-05-05T07:27:34Z toorevitimirp joined #lisp 2020-05-05T07:30:47Z liberliver joined #lisp 2020-05-05T07:32:10Z shifty quit (Read error: Connection reset by peer) 2020-05-05T07:32:20Z shifty joined #lisp 2020-05-05T07:33:32Z toorevitimirp quit (Remote host closed the connection) 2020-05-05T07:34:02Z toorevitimirp joined #lisp 2020-05-05T07:35:39Z ayuce quit (Remote host closed the connection) 2020-05-05T07:38:36Z duncan_ joined #lisp 2020-05-05T07:39:21Z p_l: fun bit about CL pathnames - if one was willing to implement some more windows-specific code in I/O part of a Lisp implementation, all pathname components in CL pathname would get represented 2020-05-05T07:39:34Z refpga quit (Ping timeout: 240 seconds) 2020-05-05T07:39:48Z refpga joined #lisp 2020-05-05T07:43:19Z duncan_ quit (Client Quit) 2020-05-05T07:44:59Z toorevitimirp quit (Remote host closed the connection) 2020-05-05T07:45:08Z rogersm joined #lisp 2020-05-05T07:45:35Z phoe: do you mean NTFS-specific stuff? 2020-05-05T07:46:20Z ljavorsk joined #lisp 2020-05-05T07:47:07Z White_Flame: likely \\FOO\ for the host portion, and FOO: for the device portion 2020-05-05T07:47:13Z Fare: p_l, correct, I only ever had one Genera at a time, but I could see that you could bootstrap your namespace to define a namespace server. Kind of like there are bootstrap mechanisms for DNS. 2020-05-05T07:47:20Z refpga quit (Ping timeout: 272 seconds) 2020-05-05T07:47:39Z refpga joined #lisp 2020-05-05T07:47:44Z White_Flame: does ntfs do automatic file versioning though? 2020-05-05T07:48:05Z JohnMS_WORK quit (Read error: Connection reset by peer) 2020-05-05T07:48:14Z White_Flame: it obviously has its multiple data streams or whatever they're called per file, but I don't recall versioning specifically 2020-05-05T07:48:25Z wxie1 joined #lisp 2020-05-05T07:50:10Z p_l: White_Flame: there's versioning support in NT API and ways to implement it over NTFS and not only 2020-05-05T07:50:43Z White_Flame: so not an actual filesystem feature? 2020-05-05T07:51:23Z White_Flame: but yeah, would at least map CL files -> OS file api 2020-05-05T07:52:08Z p_l: White_Flame: it's part of OS API, but details on implementation are left to drivers. There's feature that runs over NTFS to implement it (check "previous versions" tab in file properties) and there's support for CIFS to do it, which is implemented on Samba for example 2020-05-05T07:53:06Z p_l: NT pathnames "kind of" lost the device part, as formally it's \\HOST\path\to\object, but there's a registry key of symbolic aliases for DOS-style device names 2020-05-05T07:53:36Z p_l: so "C:" doesn't exist once you pass from winapi to NT, it's an alias for real path 2020-05-05T07:53:45Z White_Flame: yeah, and becomes more like the Amiga ;) 2020-05-05T07:54:35Z p_l: didn't see any Amiga relationship there. Would be closer to Sun Spring, but of course the real source for pretty much everything in NT core is VMS 2020-05-05T07:54:42Z p_l: including NTFS 2020-05-05T07:55:52Z White_Flame: the amiga let you define any path as any NAME: which are global aliases, and included some standard ones like LIB: 2020-05-05T07:56:29Z White_Flame: so you could move standard locations to different drives quite easily 2020-05-05T07:57:02Z p_l: White_Flame: ah, VMS had similar setup though it was more similar to using environment variables 2020-05-05T07:57:12Z White_Flame: or create different machine contexts by moving to new mappings 2020-05-05T07:58:41Z p_l: in this case, it's more to ease the support for DOS-derived code etc. 2020-05-05T08:00:49Z frgo quit (Ping timeout: 264 seconds) 2020-05-05T08:06:27Z refpga quit (Read error: Connection reset by peer) 2020-05-05T08:06:43Z refpga joined #lisp 2020-05-05T08:07:35Z frgo joined #lisp 2020-05-05T08:08:02Z tankman quit (Quit: Leaving) 2020-05-05T08:08:34Z Fare quit (Ping timeout: 260 seconds) 2020-05-05T08:16:12Z pjb joined #lisp 2020-05-05T08:24:43Z karswell_ joined #lisp 2020-05-05T08:27:17Z c_nix joined #lisp 2020-05-05T08:27:32Z c_nix: is 2020 going to be a year of LISP? 2020-05-05T08:27:38Z c_nix: :P 2020-05-05T08:27:53Z phoe: c_nix: sure, just like 2019 2020-05-05T08:28:18Z no-defun-allowed: What I learnt in physics class is that things remain at rest unless external forces affect them. 2020-05-05T08:29:05Z c_nix: that explains why I see greenskinned multieyed elephants waving flags everywhere 2020-05-05T08:29:12Z flazh quit (Ping timeout: 256 seconds) 2020-05-05T08:29:32Z no-defun-allowed: Other than that, everything went over my head, but you probably should consider making it so if you want a year of Lisp. 2020-05-05T08:30:11Z refpga quit (Ping timeout: 260 seconds) 2020-05-05T08:31:06Z dvdmuckle quit (Remote host closed the connection) 2020-05-05T08:31:50Z dvdmuckle joined #lisp 2020-05-05T08:33:24Z beach: Lets hope that 2020 is NOT going to be the year of "LISP", since that would represent a step backward of a few decades. I vote for it to be the year of Common Lisp instead. 2020-05-05T08:34:04Z no-defun-allowed: That's a good point. I don't know if I have any left over teletypes. 2020-05-05T08:34:10Z beach: Otherwise, we would all have to write our programs in all capital letters and with no indentation. 2020-05-05T08:36:36Z beach: c_nix: You seem to be new here. If you don't already know Common Lisp, I recommend you learn it, whether it becomes the language of this year or not. 2020-05-05T08:37:02Z c_nix: im not unfamiliar with lisp 2020-05-05T08:37:20Z beach: Great! 2020-05-05T08:37:28Z doomlist3 quit (Ping timeout: 256 seconds) 2020-05-05T08:37:59Z refpga joined #lisp 2020-05-05T08:39:06Z orivej quit (Ping timeout: 265 seconds) 2020-05-05T08:39:35Z orivej joined #lisp 2020-05-05T08:42:10Z frgo quit (Ping timeout: 258 seconds) 2020-05-05T08:44:22Z flazh joined #lisp 2020-05-05T08:45:07Z wxie1 quit (Ping timeout: 260 seconds) 2020-05-05T08:49:41Z pjb quit (Ping timeout: 272 seconds) 2020-05-05T08:55:35Z Zakkor joined #lisp 2020-05-05T09:00:09Z dddddd joined #lisp 2020-05-05T09:00:34Z orivej quit (Ping timeout: 240 seconds) 2020-05-05T09:03:23Z cantstanya quit (Ping timeout: 240 seconds) 2020-05-05T09:05:13Z femi joined #lisp 2020-05-05T09:10:54Z cantstanya joined #lisp 2020-05-05T09:34:10Z sdumi quit (Ping timeout: 246 seconds) 2020-05-05T09:38:47Z sdumi joined #lisp 2020-05-05T09:41:34Z femi quit (Ping timeout: 256 seconds) 2020-05-05T09:42:49Z bendersteed joined #lisp 2020-05-05T09:45:50Z rogersm quit (Quit: Leaving...) 2020-05-05T09:47:25Z femi joined #lisp 2020-05-05T09:51:08Z doomlist3 joined #lisp 2020-05-05T09:52:31Z refpga quit (Read error: Connection reset by peer) 2020-05-05T09:52:41Z refpga joined #lisp 2020-05-05T09:54:22Z marcoxa joined #lisp 2020-05-05T10:08:37Z shka_ quit (Ping timeout: 264 seconds) 2020-05-05T10:08:42Z frgo joined #lisp 2020-05-05T10:09:18Z joshcom joined #lisp 2020-05-05T10:12:50Z milanj joined #lisp 2020-05-05T10:13:52Z joshcom quit (Ping timeout: 256 seconds) 2020-05-05T10:16:03Z tichun joined #lisp 2020-05-05T10:17:09Z jello_pudding quit (Ping timeout: 244 seconds) 2020-05-05T10:17:45Z karlosz quit (Quit: karlosz) 2020-05-05T10:19:56Z tichun: Hi, wanted to study MIT SICP book that uses Scheme, but the software is not available on Raspberry Pi, hence the question: can scheme be replaced by sbcl/clisp/gcl? 2020-05-05T10:22:03Z Shinmera: No 2020-05-05T10:22:41Z tichun: Thanks 2020-05-05T10:22:57Z jello_pudding joined #lisp 2020-05-05T10:26:02Z phoe: tichun: you can do the SICP exercises in Common Lisp, but note it's a different dialect of Lisp, and therefore some (if not most) of the exercises will need a little bit of adaptation 2020-05-05T10:27:05Z marcoxa` joined #lisp 2020-05-05T10:27:07Z lacroixboy_ joined #lisp 2020-05-05T10:27:28Z rumbler3_ joined #lisp 2020-05-05T10:27:29Z jello_pudding quit (Ping timeout: 244 seconds) 2020-05-05T10:27:40Z minion quit (Disconnected by services) 2020-05-05T10:27:43Z minion joined #lisp 2020-05-05T10:28:05Z frgo quit (Read error: Connection reset by peer) 2020-05-05T10:28:20Z no-defun-allowed: tichun: https://www.raspberrypi.org/forums/viewtopic.php?t=14408 says MIT Scheme would run on a Pi, but that's heading into off-topic land. 2020-05-05T10:28:26Z Kaisyu7 quit (Remote host closed the connection) 2020-05-05T10:28:40Z frgo joined #lisp 2020-05-05T10:28:48Z Kaisyu7 joined #lisp 2020-05-05T10:29:03Z jprajzne_ joined #lisp 2020-05-05T10:29:08Z gravicappa quit (Ping timeout: 246 seconds) 2020-05-05T10:29:18Z no-defun-allowed: You may just have to compile it (which may be a "just have to" thing, I haven't tried that before) which should take much less than the 24 hours in that post on a newer Pi. 2020-05-05T10:29:28Z rumbler31 quit (Ping timeout: 246 seconds) 2020-05-05T10:29:29Z dxtr quit (Ping timeout: 246 seconds) 2020-05-05T10:29:29Z acolarh quit (Ping timeout: 246 seconds) 2020-05-05T10:29:29Z jfb4 quit (Remote host closed the connection) 2020-05-05T10:29:37Z thecoffemaker quit (Ping timeout: 264 seconds) 2020-05-05T10:29:40Z jfb4 joined #lisp 2020-05-05T10:29:43Z specbot quit (Disconnected by services) 2020-05-05T10:29:47Z specbot joined #lisp 2020-05-05T10:29:49Z gravicappa joined #lisp 2020-05-05T10:30:10Z marcoxa quit (Ping timeout: 246 seconds) 2020-05-05T10:30:11Z jprajzne quit (Ping timeout: 246 seconds) 2020-05-05T10:30:11Z lacroixboy quit (Ping timeout: 246 seconds) 2020-05-05T10:30:11Z jprajzne_ is now known as jprajzne 2020-05-05T10:30:13Z shenghi quit (Ping timeout: 264 seconds) 2020-05-05T10:30:29Z dxtr joined #lisp 2020-05-05T10:30:31Z karswell_ quit (Ping timeout: 246 seconds) 2020-05-05T10:30:34Z dxtr quit (Changing host) 2020-05-05T10:30:34Z dxtr joined #lisp 2020-05-05T10:30:35Z flip214: debian has a package mit-scheme, that exists also for the ARM architectures and so for the Rpi. 2020-05-05T10:30:52Z acolarh joined #lisp 2020-05-05T10:31:02Z shenghi joined #lisp 2020-05-05T10:31:05Z ayuce joined #lisp 2020-05-05T10:31:09Z no-defun-allowed: Raspbian does its own thing and doesn't use Debian packages, though. 2020-05-05T10:31:45Z flip214: raspbian is a debian derivate too, I just "moved over" to debian packages 2020-05-05T10:31:50Z karswell_ joined #lisp 2020-05-05T10:31:55Z flip214: my RPI3 (amd64, debian) offers a chezscheme package 2020-05-05T10:32:14Z flip214: but doing the exercises in CL is very valueable! I did them in CL as well. 2020-05-05T10:32:38Z thecoffemaker joined #lisp 2020-05-05T10:32:55Z no-defun-allowed: Alright, I recall someone telling me to not just "move over" to Debian packages, but if it works... 2020-05-05T10:33:23Z flip214: mit-scheme is x86 only 2020-05-05T10:33:36Z flip214: no-defun-allowed: which rpi do you have? 2, 3, 4? 2020-05-05T10:33:43Z no-defun-allowed: 2 2020-05-05T10:33:56Z joshcom joined #lisp 2020-05-05T10:34:16Z flip214: yeah, that's where I switched from raspbian over... on the 3 I had a 64bit suse first 2020-05-05T10:35:32Z flip214: no-defun-allowed: if you want a clean install, do a debootstrap on some other machine for the armel architecture, copy the boot things over, and so on... but that's quite some more effort 2020-05-05T10:36:42Z flip214: or is rpi2 armhf? 2020-05-05T10:37:35Z no-defun-allowed: hf = hardware float, right? 2020-05-05T10:37:55Z no-defun-allowed: I think it is armhf. 2020-05-05T10:38:48Z p_l: Rpi3 can run hard float 2020-05-05T10:38:51Z p_l: not sure about 2 2020-05-05T10:38:56Z p_l: (4 can, as well) 2020-05-05T10:39:06Z p_l: hmm 2020-05-05T10:39:27Z p_l: ahh, yes, all Pi support hard float but no linux distro compiles for 32bit hard float 2020-05-05T10:39:57Z karswell_ is now known as karswell 2020-05-05T10:41:29Z milanj quit (Quit: This computer has gone to sleep) 2020-05-05T10:43:18Z no-defun-allowed: So far I haven't heard of any 64-bit Raspbian images (for newer Pis), which is quite a let down for running Lisp programs. 2020-05-05T10:43:45Z ayuce quit (Remote host closed the connection) 2020-05-05T10:43:46Z p_l: Raspbian is keeping direct compatibility with Rpi1 and Rpi2, thus no 64bit 2020-05-05T10:43:58Z p_l: but you can get 64 bit ubuntu image 2020-05-05T10:44:18Z flip214: no-defun-allowed: I made myself a debootstrap image and put that on an sdcard 2020-05-05T10:44:30Z flip214: using debian testing/unstable 2020-05-05T10:44:45Z no-defun-allowed: Oh, there are as of last November. I still can't use them of course, but that's still cool. 2020-05-05T10:44:57Z Shinmera: archlinux arm has images for hard float arms and 64bit arm. 2020-05-05T10:45:13Z TMA: #lispcafe 2020-05-05T10:45:20Z Shinmera: But yes, o/t 2020-05-05T10:45:55Z flip214: TMA: how did you know I'm drinking coffee? 2020-05-05T10:45:57Z ayuce joined #lisp 2020-05-05T10:46:24Z pjb joined #lisp 2020-05-05T10:46:56Z TMA: flip214: no sane person does, hence exceedingly common :) 2020-05-05T10:48:05Z jello_pudding joined #lisp 2020-05-05T10:48:28Z refpga quit (Ping timeout: 272 seconds) 2020-05-05T10:48:33Z amerlyq joined #lisp 2020-05-05T10:49:06Z refpga joined #lisp 2020-05-05T10:52:30Z flip214: sad but mostly true, though I believe it's more correlation than causation 2020-05-05T10:52:39Z sammich joined #lisp 2020-05-05T10:55:14Z jonatack_ joined #lisp 2020-05-05T10:55:14Z dvdmuckle quit (Ping timeout: 256 seconds) 2020-05-05T10:57:28Z refpga quit (Ping timeout: 246 seconds) 2020-05-05T10:57:51Z refpga joined #lisp 2020-05-05T10:58:42Z jonatack quit (Ping timeout: 260 seconds) 2020-05-05T11:05:49Z tichun quit (Quit: Leaving) 2020-05-05T11:05:59Z duncan_ joined #lisp 2020-05-05T11:17:40Z scymtym__ joined #lisp 2020-05-05T11:18:57Z scymtym_ quit (Ping timeout: 258 seconds) 2020-05-05T11:19:44Z pjb quit (Remote host closed the connection) 2020-05-05T11:20:45Z pjb joined #lisp 2020-05-05T11:29:00Z doomlist3 quit (Ping timeout: 272 seconds) 2020-05-05T11:32:48Z flazh quit (Read error: Connection reset by peer) 2020-05-05T11:33:09Z flazh joined #lisp 2020-05-05T11:34:20Z narimiran quit (Ping timeout: 256 seconds) 2020-05-05T11:34:53Z Lord_of_Life_ joined #lisp 2020-05-05T11:35:54Z dvdmuckle joined #lisp 2020-05-05T11:35:55Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-05T11:36:12Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-05T11:43:08Z heisig quit (Quit: Leaving) 2020-05-05T11:46:14Z shifty quit (Ping timeout: 256 seconds) 2020-05-05T11:48:34Z joshcom quit (Ping timeout: 246 seconds) 2020-05-05T11:55:21Z Zakkor quit (Quit: Connection closed for inactivity) 2020-05-05T11:59:21Z milanj joined #lisp 2020-05-05T12:02:18Z gko joined #lisp 2020-05-05T12:08:31Z refpga quit (Ping timeout: 246 seconds) 2020-05-05T12:09:28Z shka_ joined #lisp 2020-05-05T12:11:03Z refpga joined #lisp 2020-05-05T12:17:36Z epony quit (Ping timeout: 258 seconds) 2020-05-05T12:19:05Z monokrom joined #lisp 2020-05-05T12:23:21Z stoneglass joined #lisp 2020-05-05T12:25:56Z Bike joined #lisp 2020-05-05T12:37:15Z kmeow: are you guys telling me that 32 bit ARMs don't have FPUs 2020-05-05T12:38:07Z dvdmuckle quit (Remote host closed the connection) 2020-05-05T12:39:34Z dvdmuckle joined #lisp 2020-05-05T12:40:06Z kmeow: good thing they can hardware execute jvm bytecode I guess 2020-05-05T12:40:15Z White_Flame: linux is too scared to require FPUs for all of them, so it's a software support issue 2020-05-05T12:41:27Z ayuce quit (Read error: Connection reset by peer) 2020-05-05T12:41:36Z White_Flame: really cheap ARMs like on wifi routers don't have hf 2020-05-05T12:42:00Z White_Flame: (or at least didn't, last time I intersected that topic) 2020-05-05T12:42:44Z ayuce joined #lisp 2020-05-05T12:49:57Z kmeow: WE DO NOT BREAK NETGEAR! seriously 2020-05-05T12:52:11Z cosimone joined #lisp 2020-05-05T12:52:47Z refpga quit (Read error: Connection reset by peer) 2020-05-05T12:53:37Z refpga joined #lisp 2020-05-05T12:57:59Z momozor joined #lisp 2020-05-05T13:01:27Z epony joined #lisp 2020-05-05T13:04:49Z karswell quit (Read error: Connection reset by peer) 2020-05-05T13:06:52Z EvW1 joined #lisp 2020-05-05T13:10:04Z montxero joined #lisp 2020-05-05T13:15:46Z Josh_2 joined #lisp 2020-05-05T13:19:41Z patlv joined #lisp 2020-05-05T13:23:38Z liberliver quit (Ping timeout: 272 seconds) 2020-05-05T13:25:40Z liberliver joined #lisp 2020-05-05T13:26:34Z narimiran joined #lisp 2020-05-05T13:27:47Z fourier joined #lisp 2020-05-05T13:28:08Z p_l: kmeow: it's not a matter of not having FPU, it's a matter of linux ARM ABI starting out in ancient times on hw that makes cheapest home router look like supercomputer 2020-05-05T13:29:01Z p_l: soft-float compatible API worked on systems with FPU and those without 2020-05-05T13:29:37Z p_l: "armhf" ABI is a misnomer as it's actually dependant on presence of vector floating unit, iirc 2020-05-05T13:30:29Z |Pirx| joined #lisp 2020-05-05T13:30:53Z developernotes joined #lisp 2020-05-05T13:35:22Z jonatack_ quit (Quit: jonatack_) 2020-05-05T13:35:48Z jonatack joined #lisp 2020-05-05T13:39:59Z benderst` joined #lisp 2020-05-05T13:40:25Z shka_ quit (Ping timeout: 264 seconds) 2020-05-05T13:40:41Z shka_ joined #lisp 2020-05-05T13:41:12Z bendersteed quit (Ping timeout: 256 seconds) 2020-05-05T13:48:16Z theBlackDragon quit (Remote host closed the connection) 2020-05-05T13:49:04Z dyelar joined #lisp 2020-05-05T13:49:36Z momozor quit (Quit: leaving) 2020-05-05T13:50:03Z dyelar quit (Client Quit) 2020-05-05T13:54:14Z hvxgr quit (Quit: leaving) 2020-05-05T13:58:31Z theBlackDragon joined #lisp 2020-05-05T13:58:57Z fourier quit (Ping timeout: 260 seconds) 2020-05-05T14:04:49Z liberliver1 joined #lisp 2020-05-05T14:04:56Z benderst` quit (Ping timeout: 258 seconds) 2020-05-05T14:05:41Z benderst` joined #lisp 2020-05-05T14:06:47Z liberliver quit (Ping timeout: 256 seconds) 2020-05-05T14:06:47Z liberliver1 is now known as liberliver 2020-05-05T14:10:01Z ahungry joined #lisp 2020-05-05T14:12:32Z doomlist3 joined #lisp 2020-05-05T14:15:20Z nmg left #lisp 2020-05-05T14:22:11Z SGASAU quit (Remote host closed the connection) 2020-05-05T14:22:13Z elinow joined #lisp 2020-05-05T14:22:32Z easye quit (Ping timeout: 272 seconds) 2020-05-05T14:22:37Z montxero quit (Remote host closed the connection) 2020-05-05T14:22:53Z SGASAU joined #lisp 2020-05-05T14:27:40Z hvxgr joined #lisp 2020-05-05T14:28:18Z _Posterdati_ joined #lisp 2020-05-05T14:31:19Z phoe: marcoxa`: you could try using https://github.com/Zulu-Inuoe/trivial-cltl2/blob/master/cltl2.lisp in place of your own implementation-specific code for clast, it'd save you writing a portability layer for cltl2 functionality inside clast. 2020-05-05T14:32:02Z Posterdati quit (Ping timeout: 272 seconds) 2020-05-05T14:34:06Z Bike: oh i just saw you read my compiler macrolet snippet yesterday, phoe 2020-05-05T14:34:32Z Bike: for the record, i think compiler-let probably shouldn't be kept around, the idea seemed to be that it did a dynamic binding within the compiler, but that's just... confusing for multiple reasons 2020-05-05T14:38:23Z phoe: Bike: yes 2020-05-05T14:39:00Z Bike: using symbol macrolet makes more sense, although having to macroexpand isn't quite as convenient as just writing a variable 2020-05-05T14:39:17Z Bike: you could write a (compiler-variable x env) macro, i guess 2020-05-05T14:43:23Z sjl_ joined #lisp 2020-05-05T14:43:32Z X-Scale quit (Quit: Try HydraIRC -> http://www.hydrairc.com <-) 2020-05-05T14:46:04Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-05T14:54:54Z refpga quit (Read error: Connection reset by peer) 2020-05-05T14:55:07Z refpga joined #lisp 2020-05-05T14:56:27Z easye joined #lisp 2020-05-05T15:00:31Z easye quit (Read error: No route to host) 2020-05-05T15:04:37Z rogersm joined #lisp 2020-05-05T15:08:14Z Cymew quit (Ping timeout: 240 seconds) 2020-05-05T15:08:36Z easye joined #lisp 2020-05-05T15:09:54Z efm quit (Ping timeout: 240 seconds) 2020-05-05T15:11:08Z red-dot joined #lisp 2020-05-05T15:11:31Z sdumi quit (Ping timeout: 260 seconds) 2020-05-05T15:11:39Z rippa joined #lisp 2020-05-05T15:11:48Z efm joined #lisp 2020-05-05T15:13:40Z doomlist3 quit (Ping timeout: 246 seconds) 2020-05-05T15:15:28Z CrazyPython joined #lisp 2020-05-05T15:22:58Z EvW1 quit (Ping timeout: 256 seconds) 2020-05-05T15:24:25Z akoana left #lisp 2020-05-05T15:24:42Z marcoxa`: phoe I wrote the portability layer inside CLAST many years ago. It works. And the real solution is, in any case, to have the implementors provide the proper interfaces. And, above all, not changing them (as one implmentation did). 2020-05-05T15:24:42Z _jrjsmrtn quit (Ping timeout: 260 seconds) 2020-05-05T15:25:47Z __jrjsmrtn__ joined #lisp 2020-05-05T15:26:44Z phoe: marcoxa`: OK 2020-05-05T15:27:11Z marcoxa`: Speaking of which... let me check the latest ABCL. 2020-05-05T15:27:14Z developernotes quit (Ping timeout: 256 seconds) 2020-05-05T15:28:30Z phoe: that was my concern; the lib I linked seems to support ABCL 2020-05-05T15:29:52Z heisig joined #lisp 2020-05-05T15:36:35Z shangul joined #lisp 2020-05-05T15:37:58Z rpg joined #lisp 2020-05-05T15:38:01Z efm quit (Ping timeout: 264 seconds) 2020-05-05T15:38:41Z rpg: On SBCL, what's the right element type for a MAKE-STRING-OUTPUT-STREAM for UTF-8? On ACL I was using (UNSIGNED-BYTE 8), but that seems to be wrong for SBCL. 2020-05-05T15:39:04Z phoe: rpg: character? 2020-05-05T15:39:44Z rpg: phoe: Thanks, that seems to be right. 2020-05-05T15:41:36Z rpg: Related question (HTTP client-ing): is there some way to make Drakma print out its full HTTP transmission for debugging purposes? 2020-05-05T15:43:12Z travv0: you were using (UNSIGNED-BYTE 8) for UTF-8? 2020-05-05T15:44:39Z nullniverse joined #lisp 2020-05-05T15:44:39Z nullniverse quit (Changing host) 2020-05-05T15:44:39Z nullniverse joined #lisp 2020-05-05T15:46:42Z phoe: rpg: just headers, AFAIK. 2020-05-05T15:47:06Z dvdmuckle quit (Remote host closed the connection) 2020-05-05T15:48:06Z dvdmuckle joined #lisp 2020-05-05T15:49:32Z CrazyPython quit (Read error: Connection reset by peer) 2020-05-05T15:55:25Z developernotes joined #lisp 2020-05-05T15:57:31Z orivej joined #lisp 2020-05-05T15:58:12Z sdumi joined #lisp 2020-05-05T15:58:46Z benderst` quit (Quit: bye) 2020-05-05T15:58:52Z cosimone quit (Read error: Connection reset by peer) 2020-05-05T15:59:02Z cosimone joined #lisp 2020-05-05T15:59:53Z sdumi quit (Read error: Connection reset by peer) 2020-05-05T16:00:13Z sdumi joined #lisp 2020-05-05T16:01:10Z developernotes quit (Ping timeout: 256 seconds) 2020-05-05T16:02:15Z PuercoPope joined #lisp 2020-05-05T16:02:17Z PuercoPope is now known as PuercoPop 2020-05-05T16:04:38Z gko quit (Ping timeout: 256 seconds) 2020-05-05T16:05:23Z developernotes joined #lisp 2020-05-05T16:11:04Z CrazyPython joined #lisp 2020-05-05T16:19:28Z theseb joined #lisp 2020-05-05T16:21:44Z Oladon joined #lisp 2020-05-05T16:21:52Z CrazyPython quit (Read error: Connection reset by peer) 2020-05-05T16:23:05Z Fare joined #lisp 2020-05-05T16:23:10Z dvdmuckle quit (Remote host closed the connection) 2020-05-05T16:24:05Z theseb: Are these the only 2 differences between macros and regular functions?..... 1. macros receive *unevaluated arguments* while regular functions get evaluated versions......and... 2. macros are evaluated *twice* ? 2020-05-05T16:24:27Z Bike: no, because 2 is you misunderstanding something. 2020-05-05T16:25:12Z theseb: Bike: i thought 1st eval makes the expanded source....then 2nd eval evaluates it along with rest of lisp code in program no? 2020-05-05T16:25:34Z Bike: No. 2020-05-05T16:25:53Z theseb: Bike: is #1 correct? 2020-05-05T16:26:27Z Bike: First, the macroexpansion function is called. It gets the macro form as an argument and returns the expanded form. For example if you write (and x y), the macroexpander gets the form (and x y), and returns something like (if x (and y)). 2020-05-05T16:26:40Z Bike: Then the (if x (and y)) is compiled/evaluated instead of the original (and x y). 2020-05-05T16:27:16Z dvdmuckle joined #lisp 2020-05-05T16:28:40Z theseb: Bike: maybe i didn't communicate what i meant well...to use your example....."(and x y) ==> (if x (and y))" is the 1st eval and then when executing the program you do the second eval on "(if x (and y))" 2020-05-05T16:28:44Z Krystof joined #lisp 2020-05-05T16:29:05Z Bike: describing that as "macros are evaluated twice" is not great, since they're two completely different operations. 2020-05-05T16:29:37Z theseb: Bike: oh..i think i see what you mean.... 2020-05-05T16:29:52Z SGASAU quit (Remote host closed the connection) 2020-05-05T16:30:01Z phoe: the "first eval" that you mention actually has a name 2020-05-05T16:30:03Z phoe: it's called macroexpansion 2020-05-05T16:30:05Z theseb: Bike: once you do the 1st eval (macroexpansion)....the macros is gone and so it isn't really correct to say that you then evaluate the "macro" again 2020-05-05T16:30:11Z beach: theseb: The other problem with your description is that macro functions are typically called at compile time, so that no macro expansion is done when the program is executing. 2020-05-05T16:30:46Z SGASAU joined #lisp 2020-05-05T16:31:58Z beach: phoe: Well, it is an evaluation. It is just that the form happens to be a macro call, so the result of the evaluation is macro-expansion. 2020-05-05T16:32:18Z theseb: beach: i think that is correct for a "real" lisp.....i'm implementing an interpreter so i guess everything sort of seems to happen at same time w/o a compilation phase beforehand 2020-05-05T16:33:22Z beach: theseb: I see. But it is very confusing (at least to me) that you ask questions about how Common Lisp is doing it, and then, you tell us what your own Lisp is doing. 2020-05-05T16:33:58Z beach: theseb: So if your Lisp is a Common Lisp implementation, there are things it must do, but if it is not, you can do whatever you like. 2020-05-05T16:34:47Z beach: theseb: So do you plan for it to be an implementation of Common Lisp? 2020-05-05T16:36:02Z Bike: that said, even if you are just implementing a toy lisp you should go at least as far as having a compiler 2020-05-05T16:36:10Z pjb: theseb: macros can be evaluated more or less than twice! They are evaluated at least once. 2020-05-05T16:37:17Z pjb: theseb: note that even if you only have a CL interpreter, you can use COMPILE (or COMPILE-FILE) to perform minimal compilation, which involves expanding the macros once for all. 2020-05-05T16:38:01Z beach: pjb: Do you mean "expanded" rather than "evaluated"? 2020-05-05T16:38:06Z pjb: Yes. 2020-05-05T16:38:44Z theseb: beach: it will be similar to CL...don't know that it will be precisely equivalent 2020-05-05T16:38:49Z pjb: expansion of macros consists in evaluating (funcall (macro-function 'moo) '(moo …) the-environment) 2020-05-05T16:39:13Z CrazyPython joined #lisp 2020-05-05T16:39:18Z dvdmuckle quit (Quit: Bouncer Surgery) 2020-05-05T16:39:25Z theseb: beach: sorry..i thought the stuff i was asking was basically the same for all lisps...guess i was wrong 2020-05-05T16:39:32Z rogersm quit (Quit: Leaving...) 2020-05-05T16:40:09Z Bike: lisp isn't really a well defined category. 2020-05-05T16:40:17Z dvdmuckle joined #lisp 2020-05-05T16:40:42Z Bike: or, you know, it's more like a family resemblance than a set of commonalities. 2020-05-05T16:41:34Z beach: theseb: What Bike says. There is no agreement on what makes a language "a Lisp". 2020-05-05T16:42:16Z ikki joined #lisp 2020-05-05T16:42:22Z theseb: Bike: oh...i have a thought about that...because it is so easy to make trivial changes to names of funcs and so forth....it seems at least superficially it would be possible for me to make a thin layer that made my lisp interpreter act like CL one day and then Scheme the next! ;) 2020-05-05T16:42:32Z X-Scale joined #lisp 2020-05-05T16:42:38Z Bike: it's more complicated than function names. 2020-05-05T16:42:42Z theseb: Bike: everyone can have their own custom lang 2020-05-05T16:42:54Z Bike: for example, in scheme, macroexpansion does not work like how i described. 2020-05-05T16:42:54Z theseb: Bike: yea...for real work the differences matter 2020-05-05T16:43:03Z wheelsucker joined #lisp 2020-05-05T16:43:18Z theseb: it uses something called hygiene 2020-05-05T16:43:21Z theseb: i need to learn about that 2020-05-05T16:43:56Z Bike: racket has some stuff about different languages in the same system. i don't know much about it. i don't think it goes as far as implementing common lisp. 2020-05-05T16:44:13Z Bike: common lisp and scheme are both complicated languages. implementing either is not something you can half-ass, let alone both. 2020-05-05T16:44:33Z theseb: yea 2020-05-05T16:45:32Z jackdaniel: theseb: if you are interested in analysis of different decisions you can make when impelemnting lisp you may read a book "Lisp in Small Pieces" 2020-05-05T16:45:51Z shymega quit (Quit: Ciao.) 2020-05-05T16:47:45Z pjb: Bike: however, you can half ass some lisp that runs both on common lisp, emacs lisp and scheme: Have a look at (intersection common-lisp emacs-lisp scheme) http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/intersection-r5rs-common-lisp-emacs-lisp/ 2020-05-05T16:47:47Z shymega joined #lisp 2020-05-05T16:48:10Z theseb: jackdaniel: i've heard good things about that book 2020-05-05T16:48:21Z bitmapper joined #lisp 2020-05-05T16:48:55Z jackdaniel: if you want to join a half of CL community who works on CL implementations then you must read it ;) 2020-05-05T16:48:56Z dyelar joined #lisp 2020-05-05T16:49:04Z jackdaniel: s/a half/the half/ 2020-05-05T16:53:58Z CrazyPython quit (Ping timeout: 260 seconds) 2020-05-05T16:55:10Z sdumi quit (Ping timeout: 272 seconds) 2020-05-05T16:55:31Z sdumi joined #lisp 2020-05-05T17:02:08Z ljavorsk quit (Ping timeout: 272 seconds) 2020-05-05T17:07:49Z zooey_ joined #lisp 2020-05-05T17:08:23Z corpix quit (Ping timeout: 240 seconds) 2020-05-05T17:08:42Z zooey quit (Quit: quit) 2020-05-05T17:09:11Z corpix joined #lisp 2020-05-05T17:18:58Z scymtym__ quit (Ping timeout: 246 seconds) 2020-05-05T17:20:43Z ggole joined #lisp 2020-05-05T17:23:38Z dale_ joined #lisp 2020-05-05T17:23:44Z dale_ is now known as dale 2020-05-05T17:25:46Z shangul quit (Ping timeout: 260 seconds) 2020-05-05T17:29:37Z shifty joined #lisp 2020-05-05T17:30:23Z Oladon quit (Quit: Leaving.) 2020-05-05T17:38:57Z rgherdt joined #lisp 2020-05-05T17:46:46Z Codaraxis joined #lisp 2020-05-05T17:49:11Z gravicappa quit (Ping timeout: 258 seconds) 2020-05-05T17:49:24Z Codaraxis_ quit (Ping timeout: 256 seconds) 2020-05-05T17:51:06Z gravicappa joined #lisp 2020-05-05T17:53:00Z vliss joined #lisp 2020-05-05T17:53:29Z scymtym joined #lisp 2020-05-05T17:53:42Z vliss quit (Quit: Quit) 2020-05-05T17:55:23Z jeosol quit (Remote host closed the connection) 2020-05-05T17:56:59Z zmt01 quit (Read error: Connection reset by peer) 2020-05-05T17:57:26Z zmt01 joined #lisp 2020-05-05T17:58:27Z markasoftware: should i use a new asdf system or just a new module to put my examples and test code in? 2020-05-05T17:58:39Z phoe: markasoftware: I'd use separate systems. 2020-05-05T17:58:39Z pjb: I use new systems. 2020-05-05T17:59:09Z phoe: If I want to load FOO, I don't always want to load FOO/TESTS and FOO/EXAMPLES, especially in code that is meant to be deployed. 2020-05-05T18:00:33Z markasoftware: makes sense 2020-05-05T18:03:48Z Fare quit (Ping timeout: 256 seconds) 2020-05-05T18:09:18Z gravicappa quit (Ping timeout: 256 seconds) 2020-05-05T18:09:54Z ggole quit (Quit: Leaving) 2020-05-05T18:14:36Z developernotes quit (Quit: Lost terminal) 2020-05-05T18:16:27Z efm joined #lisp 2020-05-05T18:16:53Z Fare joined #lisp 2020-05-05T18:20:39Z Cymew joined #lisp 2020-05-05T18:26:10Z shka_ quit (Ping timeout: 246 seconds) 2020-05-05T18:27:15Z shka_ joined #lisp 2020-05-05T18:28:55Z sauvin quit (Ping timeout: 260 seconds) 2020-05-05T18:33:46Z ym joined #lisp 2020-05-05T18:34:27Z ym quit (Remote host closed the connection) 2020-05-05T18:42:13Z Fare quit (Ping timeout: 264 seconds) 2020-05-05T18:46:30Z vladomiro joined #lisp 2020-05-05T18:50:02Z karlosz joined #lisp 2020-05-05T18:54:51Z cosimone quit (Remote host closed the connection) 2020-05-05T18:55:17Z cosimone joined #lisp 2020-05-05T18:58:07Z fourier joined #lisp 2020-05-05T19:01:34Z akoana joined #lisp 2020-05-05T19:05:54Z westerns joined #lisp 2020-05-05T19:06:58Z heisig quit (Quit: Leaving) 2020-05-05T19:09:08Z PuercoPop quit (Remote host closed the connection) 2020-05-05T19:09:28Z Lycurgus joined #lisp 2020-05-05T19:13:28Z gravicappa joined #lisp 2020-05-05T19:16:34Z EvW joined #lisp 2020-05-05T19:18:18Z Cymew quit (Ping timeout: 272 seconds) 2020-05-05T19:20:10Z karlosz quit (Quit: karlosz) 2020-05-05T19:20:25Z lucasb joined #lisp 2020-05-05T19:20:55Z jprajzne quit (Quit: jprajzne) 2020-05-05T19:21:12Z elinow quit (Ping timeout: 256 seconds) 2020-05-05T19:22:15Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2020-05-05T19:24:10Z Zakkor joined #lisp 2020-05-05T19:29:28Z vladomiro quit (Quit: Leaving) 2020-05-05T19:35:02Z pjb quit (Ping timeout: 246 seconds) 2020-05-05T19:36:44Z mixfix41 quit (Ping timeout: 256 seconds) 2020-05-05T19:37:07Z ayuce quit (Remote host closed the connection) 2020-05-05T19:40:28Z shifty quit (Ping timeout: 272 seconds) 2020-05-05T19:40:29Z stepnem_ quit (Read error: Connection reset by peer) 2020-05-05T19:41:02Z shifty joined #lisp 2020-05-05T19:41:19Z pilne joined #lisp 2020-05-05T19:41:46Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-05T19:42:31Z constptr quit (Quit: Connection closed for inactivity) 2020-05-05T19:43:11Z zulu-inuoe joined #lisp 2020-05-05T19:43:21Z pilne left #lisp 2020-05-05T19:44:17Z yankM quit (Ping timeout: 260 seconds) 2020-05-05T19:45:50Z stepnem joined #lisp 2020-05-05T19:47:10Z karlosz joined #lisp 2020-05-05T19:48:42Z marcoxa` quit (Ping timeout: 272 seconds) 2020-05-05T19:51:11Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-05T19:55:26Z rpg joined #lisp 2020-05-05T19:58:06Z shifty quit (Ping timeout: 256 seconds) 2020-05-05T19:59:11Z shifty joined #lisp 2020-05-05T19:59:38Z yankM joined #lisp 2020-05-05T20:06:57Z remexre quit (Quit: WeeChat 2.7.1) 2020-05-05T20:08:47Z fourier quit (Ping timeout: 260 seconds) 2020-05-05T20:09:53Z ikki quit (Ping timeout: 272 seconds) 2020-05-05T20:10:08Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-05T20:11:10Z pjb joined #lisp 2020-05-05T20:11:24Z Hssanalajmi joined #lisp 2020-05-05T20:11:46Z Hssanalajmi: hello 2020-05-05T20:12:01Z Hssanalajmi left #lisp 2020-05-05T20:12:06Z phoe: heyyy 2020-05-05T20:12:24Z travv0: lol they're gone 2020-05-05T20:14:31Z phoe: such is life™ 2020-05-05T20:18:28Z boeg: i'm here though 2020-05-05T20:18:28Z orivej quit (Ping timeout: 272 seconds) 2020-05-05T20:18:29Z boeg: hello 2020-05-05T20:20:29Z travv0: howdy 2020-05-05T20:21:32Z ikki joined #lisp 2020-05-05T20:26:37Z duncan_ quit (Ping timeout: 264 seconds) 2020-05-05T20:30:39Z red-dot joined #lisp 2020-05-05T20:31:34Z Fare joined #lisp 2020-05-05T20:32:22Z milanj quit (Quit: This computer has gone to sleep) 2020-05-05T20:36:27Z EvW quit (Ping timeout: 240 seconds) 2020-05-05T20:38:16Z shka_ quit (Ping timeout: 256 seconds) 2020-05-05T20:42:13Z shifty quit (Ping timeout: 264 seconds) 2020-05-05T20:42:33Z shifty joined #lisp 2020-05-05T20:44:43Z pjb quit (Ping timeout: 272 seconds) 2020-05-05T20:44:57Z rozenglass quit (Ping timeout: 260 seconds) 2020-05-05T20:45:00Z shka_ joined #lisp 2020-05-05T20:51:49Z shka_ quit (Ping timeout: 264 seconds) 2020-05-05T20:51:57Z Jesin quit (Quit: Leaving) 2020-05-05T20:53:31Z pve quit (Quit: leaving) 2020-05-05T20:53:42Z narimiran quit (Ping timeout: 260 seconds) 2020-05-05T20:56:02Z Lycurgus quit (Quit: Exeunt) 2020-05-05T20:57:24Z EvW1 joined #lisp 2020-05-05T21:03:56Z Jesin joined #lisp 2020-05-05T21:04:19Z Soltex joined #lisp 2020-05-05T21:04:35Z Soltex left #lisp 2020-05-05T21:05:55Z Sully_ joined #lisp 2020-05-05T21:06:47Z rozenglass joined #lisp 2020-05-05T21:09:54Z Fare quit (Ping timeout: 240 seconds) 2020-05-05T21:11:06Z Fare joined #lisp 2020-05-05T21:15:11Z karayan quit (Remote host closed the connection) 2020-05-05T21:15:22Z karayan joined #lisp 2020-05-05T21:15:32Z ahungry quit (Remote host closed the connection) 2020-05-05T21:19:13Z wheelsucker quit (Remote host closed the connection) 2020-05-05T21:19:25Z gravicappa quit (Ping timeout: 264 seconds) 2020-05-05T21:20:22Z remexre joined #lisp 2020-05-05T21:22:23Z stoneglass quit (Read error: Connection reset by peer) 2020-05-05T21:23:37Z shifty quit (Ping timeout: 264 seconds) 2020-05-05T21:24:33Z shifty joined #lisp 2020-05-05T21:28:26Z CrazyPython joined #lisp 2020-05-05T21:28:37Z karlosz quit (Quit: karlosz) 2020-05-05T21:28:53Z karlosz joined #lisp 2020-05-05T21:30:09Z pjb joined #lisp 2020-05-05T21:36:02Z cosimone quit (Quit: Quit.) 2020-05-05T21:36:25Z efm_ joined #lisp 2020-05-05T21:36:55Z efm quit (Ping timeout: 246 seconds) 2020-05-05T21:38:02Z CrazyPython quit (Ping timeout: 260 seconds) 2020-05-05T21:44:23Z rpg joined #lisp 2020-05-05T21:57:02Z amerlyq quit (Quit: amerlyq) 2020-05-05T21:58:48Z sjl_ quit (Ping timeout: 256 seconds) 2020-05-05T22:03:53Z |Pirx| quit (Ping timeout: 246 seconds) 2020-05-05T22:06:23Z gxt quit (Ping timeout: 240 seconds) 2020-05-05T22:11:53Z karlosz quit (Quit: karlosz) 2020-05-05T22:13:19Z random-nick quit (Ping timeout: 246 seconds) 2020-05-05T22:17:02Z efm_ quit (Quit: Konversation terminated!) 2020-05-05T22:17:51Z efm joined #lisp 2020-05-05T22:25:59Z karlosz joined #lisp 2020-05-05T22:27:05Z frgo quit (Read error: Connection reset by peer) 2020-05-05T22:27:42Z frgo joined #lisp 2020-05-05T22:29:53Z lucasb quit (Quit: Connection closed for inactivity) 2020-05-05T22:31:40Z shifty quit (Ping timeout: 256 seconds) 2020-05-05T22:32:25Z shifty joined #lisp 2020-05-05T22:33:13Z lxbarbosa joined #lisp 2020-05-05T22:33:24Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-05T22:33:58Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-05T22:41:15Z ArthurStrong joined #lisp 2020-05-05T22:45:50Z rand_t joined #lisp 2020-05-05T22:48:37Z mmkarakaya joined #lisp 2020-05-05T22:56:32Z mmkarakaya quit (Ping timeout: 256 seconds) 2020-05-05T23:13:16Z Josh_2 quit (Ping timeout: 272 seconds) 2020-05-05T23:18:18Z Oladon joined #lisp 2020-05-05T23:29:29Z ineiros quit (Ping timeout: 256 seconds) 2020-05-05T23:29:29Z AdmiralBumbleBee quit (Ping timeout: 256 seconds) 2020-05-05T23:29:58Z red-dot joined #lisp 2020-05-05T23:30:20Z gxt joined #lisp 2020-05-05T23:31:17Z ineiros joined #lisp 2020-05-05T23:34:46Z orivej joined #lisp 2020-05-05T23:36:50Z Lord_of_Life_ joined #lisp 2020-05-05T23:36:51Z AdmiralBumbleBee joined #lisp 2020-05-05T23:37:40Z Lord_of_Life quit (Ping timeout: 246 seconds) 2020-05-05T23:39:43Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-05T23:43:23Z gxt quit (Ping timeout: 240 seconds) 2020-05-05T23:45:59Z Josh_2 joined #lisp 2020-05-05T23:53:14Z karlosz quit (Quit: karlosz) 2020-05-05T23:53:29Z karlosz joined #lisp 2020-05-05T23:53:37Z jonatack quit (Ping timeout: 264 seconds) 2020-05-05T23:55:15Z jonatack joined #lisp 2020-05-05T23:58:45Z dyelar quit (Quit: Leaving.) 2020-05-06T00:00:56Z theseb: .1302566+ 2020-05-06T00:08:14Z karlosz quit (Quit: karlosz) 2020-05-06T00:13:34Z rgherdt quit (Ping timeout: 265 seconds) 2020-05-06T00:25:29Z terpri quit (Remote host closed the connection) 2020-05-06T00:26:01Z terpri joined #lisp 2020-05-06T00:28:33Z ArthurStrong: theseb: .1302567+ 2020-05-06T00:29:33Z ahungry joined #lisp 2020-05-06T00:37:47Z Zakkor quit (Quit: Connection closed for inactivity) 2020-05-06T00:39:42Z asarch joined #lisp 2020-05-06T00:41:15Z pjb: .1302567+ #| ERROR: Unbound variable: 1302567+ |# 2020-05-06T00:44:56Z asarch quit (Quit: Leaving) 2020-05-06T00:45:59Z terpri quit (Remote host closed the connection) 2020-05-06T00:46:19Z terpri joined #lisp 2020-05-06T01:03:42Z slyrus_ joined #lisp 2020-05-06T01:05:48Z bitmapper quit (Ping timeout: 256 seconds) 2020-05-06T01:06:23Z slyrus quit (Ping timeout: 256 seconds) 2020-05-06T01:10:16Z karlosz joined #lisp 2020-05-06T01:15:11Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-06T01:15:52Z ikki quit (Quit: Leaving) 2020-05-06T01:18:06Z CrazyPython joined #lisp 2020-05-06T01:21:28Z Oladon quit (Quit: Leaving.) 2020-05-06T01:25:47Z ArthurStrong: .1302568+? 2020-05-06T01:26:20Z terpri quit (Quit: Leaving) 2020-05-06T01:30:43Z terpri joined #lisp 2020-05-06T01:31:46Z efm quit (Ping timeout: 246 seconds) 2020-05-06T01:33:37Z CrazyPython quit (Read error: Connection reset by peer) 2020-05-06T01:38:34Z efm joined #lisp 2020-05-06T01:38:35Z wsinatra joined #lisp 2020-05-06T01:42:03Z Oladon joined #lisp 2020-05-06T01:51:01Z duncan_ joined #lisp 2020-05-06T01:53:01Z arpunk joined #lisp 2020-05-06T01:54:56Z pjb: .1302568+? #| ERROR: Unbound variable: 1302568+? |# 2020-05-06T01:55:46Z rand_t quit (Quit: rand_t) 2020-05-06T01:56:34Z dtman34 joined #lisp 2020-05-06T01:59:55Z lxbarbosa quit (Remote host closed the connection) 2020-05-06T02:01:08Z EvW1 quit (Ping timeout: 260 seconds) 2020-05-06T02:01:42Z dtman34 quit (Ping timeout: 260 seconds) 2020-05-06T02:03:16Z Josh_2 quit (Ping timeout: 246 seconds) 2020-05-06T02:05:23Z dtman34 joined #lisp 2020-05-06T02:07:35Z wsinatra_ joined #lisp 2020-05-06T02:07:48Z wsinatra_ quit (Client Quit) 2020-05-06T02:10:32Z ArthurStrong: .1302566+? 2020-05-06T02:10:48Z mono joined #lisp 2020-05-06T02:13:10Z monokrom quit (Ping timeout: 256 seconds) 2020-05-06T02:19:01Z Fare quit (Ping timeout: 246 seconds) 2020-05-06T02:20:53Z Aurora_iz_kosmos joined #lisp 2020-05-06T02:22:43Z Aurora_v_kosmose quit (Ping timeout: 240 seconds) 2020-05-06T02:24:18Z mono quit (Remote host closed the connection) 2020-05-06T02:26:51Z dtman34 quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-06T02:28:35Z ralt quit (Quit: Connection closed for inactivity) 2020-05-06T02:40:43Z Sully_ quit (Quit: Who reads Quit messages anyway?) 2020-05-06T02:45:05Z turona quit (Ping timeout: 272 seconds) 2020-05-06T02:45:39Z Fare joined #lisp 2020-05-06T02:46:20Z turona joined #lisp 2020-05-06T02:54:06Z ArthurStrong: you know, it's like number stations 2020-05-06T02:58:25Z luckless quit (Remote host closed the connection) 2020-05-06T03:02:54Z sdumi quit (Ping timeout: 240 seconds) 2020-05-06T03:06:40Z nullniverse quit (Quit: Leaving) 2020-05-06T03:13:35Z pjb quit (Ping timeout: 272 seconds) 2020-05-06T03:17:15Z jasom: Is there a CL library that just wraps an OS specific source of entropy (e.g. getrandom() getentropy() /dev/urandom/ CryptGenRandom)? 2020-05-06T03:18:49Z aeth: I hope so. Would that be usable as a seed for (random)? 2020-05-06T03:18:57Z aeth: (Not every implementation lets you seed (random) of course) 2020-05-06T03:20:40Z jasom: aeth: it's an overkill for seeding (random) on most implementations, since (random) is typically not secure 2020-05-06T03:21:09Z Bike quit (Quit: Lost terminal) 2020-05-06T03:21:32Z theseb quit (Ping timeout: 272 seconds) 2020-05-06T03:22:02Z jasom: get-internal-real-time is probably sufficient for most places that cl:random is also sufficient. 2020-05-06T03:22:26Z patlv quit (Quit: patlv) 2020-05-06T03:22:41Z no-defun-allowed: (g-i-r-t) would be close to 0 on startup, no? 2020-05-06T03:23:09Z jasom: no-defun-allowed: get-internal-run-time is close to 0 on startup, get-internal-real-time probably not 2020-05-06T03:23:22Z no-defun-allowed: Well, in implementations like Clozure and SBCL that count how many milli/microseconds since the process started. 2020-05-06T03:23:25Z jasom: I guess it's allowed to be close to 0 2020-05-06T03:23:28Z beach: Good morning everyone! 2020-05-06T03:23:30Z orivej quit (Ping timeout: 256 seconds) 2020-05-06T03:23:46Z ArthurStrong: beach: good morning indeed 2020-05-06T03:24:23Z sdumi joined #lisp 2020-05-06T03:24:50Z jasom: no-defun-allowed: so it is. 2020-05-06T03:25:01Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-06T03:25:09Z jasom: I guess there's no portable way to get the nominal real-world time to a higher precision than 1 second. 2020-05-06T03:29:10Z jasom: and a 1 second time-based seed allows attacks like what happened to nethack 3.4.3 2020-05-06T03:31:42Z refpga quit (Read error: Connection reset by peer) 2020-05-06T03:32:12Z refpga joined #lisp 2020-05-06T03:33:54Z jasom: I found no library for accessing the OS CSPRNG so I guess I'll write one. 2020-05-06T03:34:01Z pjb joined #lisp 2020-05-06T03:34:20Z jasom: Well Ironclad has something like that in it, but that's a massive dependency for making a single system-call. 2020-05-06T03:34:31Z Oladon: I was going to mention Ironclad 2020-05-06T03:35:32Z no-defun-allowed: The one package for which it is funny to make "my code is compiling" jokes. 2020-05-06T03:37:30Z karlosz quit (Quit: karlosz) 2020-05-06T03:38:10Z LdBeth: good even 2020-05-06T03:39:06Z karlosz joined #lisp 2020-05-06T03:40:31Z LdBeth: making a system call would only take a few lines of code, the dependency is the part responsible for making the code portable 2020-05-06T03:40:55Z pjb quit (Ping timeout: 265 seconds) 2020-05-06T03:47:30Z Nilby joined #lisp 2020-05-06T03:52:14Z dddddd quit (Remote host closed the connection) 2020-05-06T03:56:12Z duncan_ quit (Quit: Leaving) 2020-05-06T04:01:50Z orivej joined #lisp 2020-05-06T04:03:58Z karlosz quit (Quit: karlosz) 2020-05-06T04:09:03Z _whitelogger quit (Remote host closed the connection) 2020-05-06T04:09:18Z pjb joined #lisp 2020-05-06T04:11:16Z _whitelogger joined #lisp 2020-05-06T04:17:09Z vlatkoB joined #lisp 2020-05-06T04:17:59Z narimiran joined #lisp 2020-05-06T04:30:24Z holycow joined #lisp 2020-05-06T04:39:00Z theseb joined #lisp 2020-05-06T04:40:03Z terpri quit (Remote host closed the connection) 2020-05-06T04:40:36Z terpri joined #lisp 2020-05-06T04:41:08Z beach: Hmm, can two classes have direct slots in common, as in the direct-slot metaobject? 2020-05-06T04:42:14Z beach: Er, I think I made a mistake. Ignore my question. At least for now. 2020-05-06T04:43:02Z aeth: high precision time would be a good extension. 2020-05-06T04:43:07Z LdBeth: I don’t think it’s possible unless did sharing 2020-05-06T04:43:26Z beach: LdBeth: Yeah, thanks. 2020-05-06T04:48:37Z beach: [*blush*] I didn't remember that DO-ALL-SYMBOLS may execute the body several times for each symbol. 2020-05-06T04:48:42Z beach: Thanks LdBeth. 2020-05-06T04:50:29Z pjb quit (Ping timeout: 272 seconds) 2020-05-06T04:52:23Z ArthurStrong quit (Quit: leaving) 2020-05-06T04:58:51Z ahungry quit (Remote host closed the connection) 2020-05-06T05:17:49Z holycow: some of you might enjoy this: https://www.youtube.com/watch?v=6avJHaC3C2U 2020-05-06T05:18:45Z beach: What is it about? 2020-05-06T05:20:04Z holycow: art as code, presenter strings us along through interesting art / code experiences from game of life through languages designed as drawings or rock songs 2020-05-06T05:20:08Z holycow: on the one hand its fun 2020-05-06T05:20:36Z holycow: on the other hand it's like watching slowly realize that we are about to be exterminated by machines like a giant cosmic joke 2020-05-06T05:21:53Z beach: Thanks for the description. 2020-05-06T05:22:23Z zooey_ quit (Ping timeout: 240 seconds) 2020-05-06T05:22:34Z holycow: hope it peaks peoples interest. 2020-05-06T05:23:02Z zooey joined #lisp 2020-05-06T05:23:11Z holycow: like watching HUMANITY slowly 2020-05-06T05:24:24Z sdumi quit (Ping timeout: 272 seconds) 2020-05-06T05:25:08Z sdumi joined #lisp 2020-05-06T05:25:09Z karlosz joined #lisp 2020-05-06T05:29:08Z karlosz quit (Client Quit) 2020-05-06T05:30:33Z no-defun-allowed: not Common Lisp, don't care 2020-05-06T05:33:14Z buffergn0me joined #lisp 2020-05-06T05:34:04Z Cymew joined #lisp 2020-05-06T05:34:21Z sauvin joined #lisp 2020-05-06T05:37:56Z fbmnds joined #lisp 2020-05-06T05:38:24Z fbmnds left #lisp 2020-05-06T05:38:43Z rwcom341 quit (Remote host closed the connection) 2020-05-06T05:40:10Z rwcom341 joined #lisp 2020-05-06T05:43:24Z louxiu` joined #lisp 2020-05-06T05:50:31Z fishdev joined #lisp 2020-05-06T05:52:19Z ayuce joined #lisp 2020-05-06T05:53:18Z Oladon quit (Quit: Leaving.) 2020-05-06T05:53:33Z terpri quit (Remote host closed the connection) 2020-05-06T05:53:55Z terpri joined #lisp 2020-05-06T05:56:20Z JohnMS_WORK joined #lisp 2020-05-06T05:57:39Z fishdev: I can't seem to find the ansi common lisp standard draft, it is down on the common-lisp.net site 2020-05-06T05:58:42Z gravicappa joined #lisp 2020-05-06T05:59:47Z buffergn0me quit (Ping timeout: 240 seconds) 2020-05-06T06:01:25Z karlosz joined #lisp 2020-05-06T06:02:25Z louxiu` left #lisp 2020-05-06T06:05:11Z beach: I remember that it was tricky to find. 2020-05-06T06:06:35Z ayuce quit (Remote host closed the connection) 2020-05-06T06:07:39Z beach: fishdev: http://metamodular.com/dpans3.tar 2020-05-06T06:10:47Z sdumi quit (Ping timeout: 260 seconds) 2020-05-06T06:10:50Z fishdev: Thank you, I appreciate the link! 2020-05-06T06:11:14Z beach: Sure. Let me know when you have downloaded it. 2020-05-06T06:11:28Z fishdev: Just have downloaded it 2020-05-06T06:11:38Z sdumi joined #lisp 2020-05-06T06:11:45Z beach: Great! Good luck! 2020-05-06T06:12:19Z fishdev: Thanks! 2020-05-06T06:15:52Z phoe: beach: fishdev: also https://github.com/antoszka/dpANS3/ 2020-05-06T06:16:03Z phoe: same files, just on a git repo 2020-05-06T06:16:04Z beach: Oh, good. 2020-05-06T06:16:12Z Bourne quit (Read error: Connection reset by peer) 2020-05-06T06:17:33Z fishdev: Ah good, bookmarking that. 2020-05-06T06:23:38Z ayuce joined #lisp 2020-05-06T06:24:26Z Lycurgus joined #lisp 2020-05-06T06:26:48Z Bourne joined #lisp 2020-05-06T06:31:25Z froggey quit (Ping timeout: 264 seconds) 2020-05-06T06:33:01Z froggey joined #lisp 2020-05-06T06:36:58Z gravicappa quit (Ping timeout: 246 seconds) 2020-05-06T06:38:28Z shka_ joined #lisp 2020-05-06T06:39:22Z gravicappa joined #lisp 2020-05-06T06:39:46Z davsebam1e quit (Ping timeout: 272 seconds) 2020-05-06T06:44:21Z random-nick joined #lisp 2020-05-06T06:44:50Z hiroaki quit (Ping timeout: 272 seconds) 2020-05-06T06:46:28Z davsebamse joined #lisp 2020-05-06T06:47:13Z fishdev quit (Quit: Leaving) 2020-05-06T06:47:47Z pjb joined #lisp 2020-05-06T07:03:49Z pve joined #lisp 2020-05-06T07:05:14Z Necktwi joined #lisp 2020-05-06T07:20:27Z pjb quit (Ping timeout: 240 seconds) 2020-05-06T07:21:31Z sivleg joined #lisp 2020-05-06T07:23:40Z SGASAU quit (Remote host closed the connection) 2020-05-06T07:24:22Z SGASAU joined #lisp 2020-05-06T07:30:18Z vliss joined #lisp 2020-05-06T07:30:43Z frgo_ joined #lisp 2020-05-06T07:31:14Z Necktwi quit (Ping timeout: 240 seconds) 2020-05-06T07:33:02Z frgo quit (Ping timeout: 260 seconds) 2020-05-06T07:33:12Z ayuce quit (Remote host closed the connection) 2020-05-06T07:34:08Z rwcom341 quit (Quit: Ping timeout (120 seconds)) 2020-05-06T07:34:35Z ayuce joined #lisp 2020-05-06T07:35:04Z rwcom341 joined #lisp 2020-05-06T07:39:42Z v88m joined #lisp 2020-05-06T07:42:17Z jprajzne joined #lisp 2020-05-06T07:43:55Z sivleg quit (Quit: Quit) 2020-05-06T07:44:05Z ralt joined #lisp 2020-05-06T07:45:23Z madage quit (Ping timeout: 240 seconds) 2020-05-06T07:45:38Z yankM quit (Ping timeout: 272 seconds) 2020-05-06T07:51:09Z hiroaki joined #lisp 2020-05-06T07:53:54Z rgherdt joined #lisp 2020-05-06T08:00:57Z holycow quit (Quit: leaving) 2020-05-06T08:07:55Z Nilby quit (Ping timeout: 260 seconds) 2020-05-06T08:08:58Z shangul joined #lisp 2020-05-06T08:12:05Z pjb joined #lisp 2020-05-06T08:12:48Z fbmnds joined #lisp 2020-05-06T08:15:11Z fbmnds left #lisp 2020-05-06T08:15:40Z refpga quit (Ping timeout: 246 seconds) 2020-05-06T08:17:01Z constptr joined #lisp 2020-05-06T08:17:17Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2020-05-06T08:25:59Z rogersm joined #lisp 2020-05-06T08:26:27Z Lycurgus quit (Quit: Exeunt) 2020-05-06T08:29:53Z doomlist3 joined #lisp 2020-05-06T08:38:28Z quazimodo quit (Ping timeout: 265 seconds) 2020-05-06T08:41:30Z ljavorsk joined #lisp 2020-05-06T08:44:25Z ayuce quit (Remote host closed the connection) 2020-05-06T08:45:42Z quazimodo joined #lisp 2020-05-06T08:46:07Z doomlist3: (dolist (met ((2 3) (4 5)) 2020-05-06T08:46:09Z doomlist3: (format t "~{~a and ~a~%~}~%" met))) 2020-05-06T08:46:35Z doomlist3: what is the right code. 2020-05-06T08:47:08Z doomlist3: gigamonkeys chapter 2 has : (dolist (cd *db*) 2020-05-06T08:47:08Z aeth: quote the list 2020-05-06T08:47:10Z doomlist3: (format t "~{~a:~10t~a~%~}~%" cd)) 2020-05-06T08:47:27Z doomlist3: no in *db* list is not quoted at all... in gigamonkeys.com 2020-05-06T08:47:34Z aeth: yes, that's a variable 2020-05-06T08:47:47Z aeth: ((2 3) (4 5)) is an attempt to call the function (2 3) 2020-05-06T08:47:52Z ayuce joined #lisp 2020-05-06T08:48:28Z aeth: you would need (list (list 2 3) (list 4 5)) or '((2 3) (4 5)) to get a list as a data structure. 2020-05-06T08:48:40Z aeth: (or any other combination, e.g. (list '(2 3) '(4 5))) 2020-05-06T08:48:49Z doomlist3: (dolist (cd *db*) ... is an attempt to all the function cd? 2020-05-06T08:48:57Z phoe: nope, DOLIST has a special syntax 2020-05-06T08:49:06Z aeth: no, because dolist is a macro so it doesn't have to evaluate its forms 2020-05-06T08:49:10Z phoe: CD is the variable that is bound to the successive values of *DB* 2020-05-06T08:49:25Z aeth: *db* is getting evaluated, though. Or ((2 3) (4 5)) 2020-05-06T08:49:49Z aeth: You just kind of have to know what the macro is doing. In this case, binding each successive value of the list to the variable cd 2020-05-06T08:49:55Z doomlist3: but writing *db* is the same as writing it's value 2020-05-06T08:50:25Z frgo_ quit (Remote host closed the connection) 2020-05-06T08:50:36Z beach: doomlist3: If you look at the description of DOLIST, you see that it says (dolist (var list-form) ...) 2020-05-06T08:50:54Z beach: doomlist3: The list-form is a FORM meaning it is evaluated. 2020-05-06T08:51:03Z frgo joined #lisp 2020-05-06T08:51:07Z aeth: doomlist3: ((2 3) (4 5)) can't be written without being quoted or the language will attempt to evaluate it, unless in the correct spot of a macro. Even if *db* returns ((2 3) (4 5)) in the REPL, you can only get it directly with something like '((2 3) (4 5)) 2020-05-06T08:51:21Z beach: doomlist3: When you write *DB* as the form, the form is a variable, and evaluating it means to take its value. 2020-05-06T08:51:36Z aeth: s/you can only get it directly/you can only run it directly/ 2020-05-06T08:51:44Z beach: doomlist3: But when you write ((2 3) (4 5)) the form is a list, meaning it's a function applications. 2020-05-06T08:52:30Z beach: doomlist3: So you attempt to call the function named (2 3), giving it an argument which is the value of the form (4 5), which is another function application. 2020-05-06T08:52:51Z doomlist3: https://bpaste.net/R3GA i am unable to print out the values of met variable 2020-05-06T08:53:15Z no-defun-allowed: You are missing a paren on the right of your list. 2020-05-06T08:53:18Z phoe: doomlist3: mismatched parens 2020-05-06T08:53:24Z phoe: (dolist (met '((2 3) (4 5)) )(format t "~{~a and ~a~%~}~%" met)) 2020-05-06T08:53:34Z phoe: or even (dolist (met '((2 3) (4 5))) (format t "~{~a and ~a~%~}~%" met)) 2020-05-06T08:53:50Z beach: doomlist3: Even though you now have something that works, it is important that you read and understand what people told you. 2020-05-06T08:54:10Z beach: doomlist3: Otherwise, you will never learn, and you will ask essentially the same questions over and over again. 2020-05-06T08:54:25Z aeth: doomlist3: '(foo) is syntactic sugar for (quote (foo)) and macros and special operators do not have to evaluate their arguments. But they can, and DOLIST happens to evaluate the list-form part of its syntax (as well as the body part) 2020-05-06T08:54:27Z beach: doomlist3: And that, in turn, means that people are going to get fed up with helping you. 2020-05-06T08:54:29Z doomlist3: clhs dolist 2020-05-06T08:54:29Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_dolist.htm 2020-05-06T08:55:22Z aeth: doomlist3: Quote more or less uses the distributive property of an algebra, so '(a b c) is the same as (list 'a 'b 'c) with the caveat (that's not too important right now) that the first list is "literal" and the second is not. 2020-05-06T08:56:28Z jasom: why-oh-why is CFFI missing a way to get "errno" :( 2020-05-06T08:56:39Z frgo_ joined #lisp 2020-05-06T08:56:44Z frgo_ quit (Remote host closed the connection) 2020-05-06T08:56:50Z frgo quit (Read error: Connection reset by peer) 2020-05-06T08:57:01Z aeth: doomlist3: The important thing here is that a list either needs to be quoted (or quasiquoted with `) or written with LIST, or else the language is going to try to funcall the first element... unless it's in a special part of a macro that's not evaluated, which isn't the case. 2020-05-06T08:57:09Z phoe: jasom: https://github.com/cffi-posix/cffi-errno 2020-05-06T08:57:23Z frgo joined #lisp 2020-05-06T08:58:08Z phoe: also, https://common-lisp.net/project/cffi/manual/html_node/defcvar.html has an errno example 2020-05-06T08:58:19Z phoe: with a note, "Note that accessing errno this way won’t work with every implementation of the C standard library." 2020-05-06T08:58:24Z jasom: phoe: does POSIX require that errno be a variable? 2020-05-06T08:58:38Z Shinmera: Isn't errno more complicated due to threading and crap 2020-05-06T08:59:15Z phoe: jasom: nope, that's why it's more complicated 2020-05-06T08:59:33Z phoe: also what Shinmera said 2020-05-06T08:59:51Z jasom: pho so cffi-posix doesn't do what I asked for :P 2020-05-06T09:00:45Z phoe: huh, well then 2020-05-06T09:01:20Z jasom: The proper way would be to compile a C function like "int get_errno() { return errno; }" but that's non-trivial 2020-05-06T09:01:34Z phoe: yes, it requires a C compiler, since errno is allowed to be a macro 2020-05-06T09:01:52Z Shinmera: Better question is: why oh why did they fuck up error mechanisms so bad 2020-05-06T09:02:10Z White_Flame: legacy knows no bounds of poor decision making 2020-05-06T09:02:56Z aeth: an error number makes sense in a 'low level' sense. 2020-05-06T09:03:10Z aeth: now, the execution of the concept is still messed up 2020-05-06T09:03:11Z phoe: White_Flame: except for (unsigned-byte 64) after which you go back to 0 2020-05-06T09:05:07Z mmkarakaya joined #lisp 2020-05-06T09:10:42Z jasom: most lisp ffi implementations have a way of gettinr errno (which they would have to in order to do any system-calls that might yield EINTR properly) 2020-05-06T09:11:30Z jasom: which makes me wonder why CFFI doesn't wrap those 2020-05-06T09:13:07Z aeth: are they exposed? 2020-05-06T09:14:44Z ayuce quit (Remote host closed the connection) 2020-05-06T09:15:03Z doomlist3: phoe: CL is too messy syntax, unlike scheme. (loop for x in L do...) instead of (for x in L...) 2020-05-06T09:15:27Z no-defun-allowed: So Scheme has (for x in l ...)? 2020-05-06T09:15:34Z doomlist3: idk 2020-05-06T09:15:47Z doomlist3: but python has neat syntax like that. 2020-05-06T09:16:00Z beach: doomlist3: I think you had better use Scheme instead then. 2020-05-06T09:16:06Z aeth: no-defun-allowed: Schemes can have for loops, but not portably. 2020-05-06T09:16:09Z doomlist3: no i wont scheme. 2020-05-06T09:16:12Z aeth: Well, I mean, not portably built into Scheme 2020-05-06T09:16:14Z pjb quit (Ping timeout: 256 seconds) 2020-05-06T09:16:15Z no-defun-allowed: I'm very tempted to say "no", but in either case, you admit you're talking out of your butt. 2020-05-06T09:16:17Z aeth: Portably, Scheme uses tail recursion 2020-05-06T09:16:37Z beach: doomlist3: There is no point in complaining about Common Lisp syntax. It is what it is. It won't change. 2020-05-06T09:17:02Z beach: doomlist3: Besides, you are not in a position (yet) to have any valid complaints. 2020-05-06T09:17:45Z aeth: Yes. Lisp syntax will change. It isn't set in stone. Let's do a revision right now. (defmacro for (&rest forms) `(loop for ,@forms)) 2020-05-06T09:17:51Z aeth: (for x in (list 1 2 3 4) do (print x)) 2020-05-06T09:17:51Z toorevitimirp joined #lisp 2020-05-06T09:17:55Z aeth: Problem solved. Next? 2020-05-06T09:17:57Z no-defun-allowed: doomlist3: Of course, you could write (defmacro for (&body body) `(loop for ,@body)) if you were upset about one symbol. 2020-05-06T09:18:06Z rogersm quit (Ping timeout: 240 seconds) 2020-05-06T09:19:00Z ayuce joined #lisp 2020-05-06T09:20:06Z aeth: (technically SBCL uses "keywords-and-forms" instead of "forms" and that's more accurate) 2020-05-06T09:20:51Z doomlist3: nice i got my for but I don't want 'do' at the end, i want it to be more pythonic 2020-05-06T09:21:11Z aeth: doomlist3: you have to have a do because you can have multiple FORs 2020-05-06T09:21:11Z phoe: doomlist3: seriously, write Python instead 2020-05-06T09:21:17Z beach: doomlist3: You had better use Python then. 2020-05-06T09:21:34Z phoe: you come to a CL channel complaining that CL is not Pythonlike enough 2020-05-06T09:21:49Z no-defun-allowed: Okay, now how would you simplify (for x in xs sum x)? 2020-05-06T09:21:56Z aeth: using the keyword style because it's clearer in a long one-liner: (loop :for x :in y :for i :from 0 :for alternating := t :then (not alternating) :do ...) 2020-05-06T09:22:08Z jasom: doomlist3: (defmacro for (var in form &body b) (assert (string= (symbol-name in) "IN")) `(loop for ,var in ,form do ,@b)) 2020-05-06T09:22:18Z doomlist3: phoe: i do write python but I want to design my own language, and i want to implement my own lisp. hence I came here. I do python as a toy. 2020-05-06T09:22:21Z rogersm joined #lisp 2020-05-06T09:22:40Z dale quit (Quit: My computer has gone to sleep) 2020-05-06T09:22:45Z beach: Oh, another Lisp. Fantastic! 2020-05-06T09:22:48Z phoe: doomlist3: there's repositories for that, most famous being Make A Lisp (mal) 2020-05-06T09:23:06Z phoe: https://github.com/kanaka/mal 2020-05-06T09:23:07Z aeth: phoe: I don't think MAL is a good source for writing a Lisp in Common Lisp. I think it's an unusual Lisp. 2020-05-06T09:23:14Z aeth: I haven't looked into it closely. 2020-05-06T09:23:18Z jasom: doomlist3: implementing a lisp is probably off-topic for this channel unless you are implementing it in CL, or the lisp you are implementing is common lisp 2020-05-06T09:23:22Z lavaflow quit (Ping timeout: 258 seconds) 2020-05-06T09:23:30Z phoe: there's also Roots of Lisp, http://www.paulgraham.com/rootsoflisp.html, if you want to get to the very theoretical sources 2020-05-06T09:23:36Z doomlist3: I am naturally attracted towards the writing lisp interpreter in lisp. Of course I will implement by lisp in CL 2020-05-06T09:23:41Z aeth: jasom: I think doomlist3 is talking about the former, i.e. writing a Lisp in Common Lisp. 2020-05-06T09:23:47Z aeth: And it's a smart decision. 2020-05-06T09:23:58Z aeth: The best language for writing a Lisp is probably Common Lisp, followed by Racket. 2020-05-06T09:24:04Z aeth: Everything else is going to add a lot of friction. 2020-05-06T09:24:15Z jasom: anyway my suggested macro gets rid of the pesky "do" 2020-05-06T09:24:26Z aeth: If you write a Lisp in Common Lisp, you can just focus on the interesting bits. 2020-05-06T09:24:31Z no-defun-allowed: phoe: I am a simple woman, I see fn, I C-w the website 2020-05-06T09:24:48Z phoe: doomlist3: in that case you're welcome to design the syntax of your new lisp in any way you'd like 2020-05-06T09:24:51Z jasom: Everyone knows the only correct language for implementing a lisp in is that lisp itself :P 2020-05-06T09:25:01Z aeth: doomlist3: Instead of writing a Lisp interpreter, you can write something that compiles to Common Lisp, sort of like a super-macro. 2020-05-06T09:25:03Z phoe: but complaining about the syntax of the host language won't get you far, really 2020-05-06T09:25:15Z phoe: which is, in this case, CL 2020-05-06T09:25:34Z aeth: jasom: but if your Lisp is written in Common Lisp, then you can eventually rewrite it in the guest Lisp by using the CLFFI, but you first need to write it in CL itself to get started. 2020-05-06T09:25:55Z jasom: aeth: right, CL is a perfectly cromulent bootstrap language 2020-05-06T09:26:05Z no-defun-allowed: aeth: wait, Mal does that "Let's write EVAL without an environment, then screw you, write an environment and another EVAL cause I lied to you" thing 2020-05-06T09:26:29Z aeth: the correct way to implement an eval is to call the compiler from it. 2020-05-06T09:26:47Z jasom: LiSP is decent for writing a lisp in scheme, which is pretty close to writing a lisp in common lisp 2020-05-06T09:27:34Z jasom: minion: tell me about LiSP 2020-05-06T09:27:34Z minion: jasom: have a look at LiSP: "Lisp in Small Pieces". This book covers Lisp, Scheme and other related dialects, their interpretation, semantics and compilation. To sum it up in a few figures: 500 pages, 11 chapters, 11 interpreters and 2 compilers. 2020-05-06T09:28:06Z jasom: aha, minion does know about LiSP 2020-05-06T09:29:55Z aeth: hmm, I wonder 2020-05-06T09:29:58Z aeth: minion: tell me about Lisp 2020-05-06T09:29:58Z minion: aeth: please look at Lisp: "Lisp in Small Pieces". This book covers Lisp, Scheme and other related dialects, their interpretation, semantics and compilation. To sum it up in a few figures: 500 pages, 11 chapters, 11 interpreters and 2 compilers. 2020-05-06T09:30:03Z aeth: case insensitive 2020-05-06T09:30:50Z beach: I think minion used to answer "I am written in Lisp", or something to that effect, for that query. 2020-05-06T09:31:21Z phoe: "I am lisp, lisp is me" 2020-05-06T09:31:26Z rogersm quit (Ping timeout: 240 seconds) 2020-05-06T09:31:32Z aeth: we are all Lisp 2020-05-06T09:33:35Z phoe: I got really annoyed at lisp-koans yesterday 2020-05-06T09:34:12Z phoe: bad indentation, "throwing" errors, calling QUOTE a function, having tons of dead code in the framework, etc., etc.. 2020-05-06T09:35:08Z aeth: phoe: I am going to disagree with you a bit. Complaining about the syntax of the host language is exactly how you justify a new Lisp. Sure, a lot can be done with macros and utility libraries and so on, but defaults and idioms do matter. 2020-05-06T09:35:25Z aeth: However, interesting complaints about the language only come after years of experience and large projects. 2020-05-06T09:35:36Z aeth: So this might be a situation where you have to build one to throw it away 2020-05-06T09:35:48Z aeth: https://wiki.c2.com/?PlanToThrowOneAway 2020-05-06T09:37:10Z aeth: (Of course, ideally, it wouldn't just be the syntax. There are lots of other things you might complain about, like the type system, although if you go too radical then you have no choice but to target native code and your work is much harder.) 2020-05-06T09:39:07Z toorevitimirp quit (Remote host closed the connection) 2020-05-06T09:40:01Z aeth: And, as we saw with Arc, if all you do is change the syntax to perfectly match your tastes, no one will switch. You need to offer something interesting. 2020-05-06T09:41:02Z toorevitimirp joined #lisp 2020-05-06T09:41:58Z jackdaniel: A new Lisp dialect! KleptoLisp (KL), it shares the standard with Common Lisp but has different idioms! :-) 2020-05-06T09:42:08Z aeth: jackdaniel: I mean, yes. 2020-05-06T09:42:18Z aeth: jackdaniel: for example, the use of foo? instead of foop or foo-p 2020-05-06T09:43:04Z jackdaniel: aeth: I agree that defaults and idioms matter (I'm already comfortable with CL idioms, but I remember when I was not, and foo? looked way more elegant) 2020-05-06T09:43:30Z bendersteed joined #lisp 2020-05-06T09:44:24Z jackdaniel: n.b, such shift resembles more "a new dialect" (as opposed to "a new programming language"), than saying that elisp and common lisp are "different dialects" of LISP 2020-05-06T09:44:34Z jackdaniel: they grew way beyond a "dialectical" difference 2020-05-06T09:44:38Z jackdaniel: but that's offtopic, sorry :) 2020-05-06T09:46:34Z aeth: Anyway, if you compile to Common Lisp and are mostly runtime compatible with Common Lisp with the ability to call libraries in your language from Common Lisp or vice versa, then you have an interesting project. Well, in theory. 2020-05-06T09:46:50Z jasom: aeth: only ClozureCL of what I tried does not expose a way of getting at errno (though the only way I could find on ECL was with ffi:c-inline) 2020-05-06T09:46:50Z cosimone joined #lisp 2020-05-06T09:46:53Z aeth: Pretty much every language has at least one compile-to-CL implementation, but without much use. Python, JavaScript, Ruby, Clojure, etc. 2020-05-06T09:47:12Z aeth: Maybe because there wasn't that big of a focus on library interop or maybe because the languages differed too much for useful library interop 2020-05-06T09:47:29Z jasom: aeth: it has CCL::%get-errno, but that is a non-exported symbol that starts with %, so it screams "don't rely on me" 2020-05-06T09:47:32Z phoe: jasom: https://github.com/Clozure/ccl/pull/264 2020-05-06T09:47:45Z phoe: I am afraid that your news are old 2020-05-06T09:47:55Z aeth: olds? 2020-05-06T09:48:06Z phoe: olds, sure 2020-05-06T09:48:08Z jackdaniel: nobody marvelled on a wonderful name KleptoLisp :( 2020-05-06T09:48:18Z jasom: phoe: that's great news 2020-05-06T09:48:27Z jasom: Now I just need to write trivial-errno 2020-05-06T09:48:31Z phoe: jackdaniel: I had some marvels but I don't know where I left them, maybe someone took them when I wasn't looking 2020-05-06T09:48:43Z phoe: jasom: do it, and please submit it to CFFI 2020-05-06T09:49:37Z ayuce quit (Remote host closed the connection) 2020-05-06T09:49:46Z jasom: though I should note that the majority of lisp implementations do not provide access to errno on windows. 2020-05-06T09:50:19Z toorevitimirp quit (Remote host closed the connection) 2020-05-06T09:50:49Z toorevitimirp joined #lisp 2020-05-06T09:50:58Z aeth: jackdaniel: Anyway, I think that a future for Common Lisp is mainly as a compilation target because it is very good at being a compilation target and languages that are much worse at doing so (e.g. JS) are already popular, successful compilation targets (obviously for different reasons). 2020-05-06T09:51:00Z jasom: e.g. http://www.lispworks.com/documentation/lw50/LWRM/html/lwref-293.htm 2020-05-06T09:51:22Z aeth: In a sense, every time you write a macro, you're using Common Lisp as a compilation target, and sometimes macros are practically their own languages, anyway. 2020-05-06T09:52:02Z CommanderViral quit (Quit: ZNC 1.7.1+deb1+bionic1 - https://znc.in) 2020-05-06T09:52:03Z mjsir911 quit (Remote host closed the connection) 2020-05-06T09:52:20Z mjsir911 joined #lisp 2020-05-06T09:52:21Z CommanderViral joined #lisp 2020-05-06T09:53:05Z yankM joined #lisp 2020-05-06T09:53:20Z phoe quit (Ping timeout: 244 seconds) 2020-05-06T09:53:37Z aeth: CL gives you a lot of things for free: GC, the numeric tower, conditions, etc. But unless you have a tiny, underspecified language (e.g. Scheme) you're probably going to have too much of a mismatch using CL as a host language to take advantage of these features. 2020-05-06T09:54:24Z phoe joined #lisp 2020-05-06T09:55:19Z doomlist3: I have an important generic query- is CL sbcl as optimized as scheme's best implementations? 2020-05-06T09:55:51Z doomlist3: it's fair to compare C is faster than python, so it's fair to compare different languages provided they execute same algorithms. 2020-05-06T09:56:42Z aeth: doomlist3: I would wager that SBCL is faster, with the caveat that it has different performance characteristics, being an AOT compiled language that heavily relies on type declarations in the fastest code 2020-05-06T09:57:20Z aeth: this is highly flawed (and it doesn't have Chez Scheme since it's fairly niche, although it does have Racket) but there aren't too many sites like this: https://benchmarksgame-team.pages.debian.net/benchmarksgame/which-programs-are-fastest.html 2020-05-06T09:57:50Z LdBeth: Racket is way too slow 2020-05-06T09:57:56Z aeth: But 2x to 5x slower than microoptimized C (which you won't really see in the wild anyway) does sound about right... 2020-05-06T09:58:12Z aeth: pretty much anything within 10x is usable 2020-05-06T09:59:27Z phoe: oh wonderful, I go into the lisp koan file named special-forms 2020-05-06T09:59:33Z phoe: and what's inside? SETF, CASE, COND 2020-05-06T09:59:39Z phoe catches fire 2020-05-06T09:59:55Z jasom: ... those are macros :( 2020-05-06T09:59:57Z jackdaniel: don't forget to halt first 2020-05-06T10:00:10Z phoe: jackdaniel: thanks for the reminder 2020-05-06T10:00:13Z LdBeth: WUT RINGS U GOT 2020-05-06T10:00:16Z phoe halts, then catches fire 2020-05-06T10:01:01Z aeth: doomlist3: the difference between CL and Scheme is that all of us can, if we choose to, choose whatever the fastest implementation happens to be, and we mostly have since SBCL is the most popular (although others have other interests, and use other implementations) 2020-05-06T10:01:25Z aeth: Portable Scheme is hard, and implementations differ, sometimes considerably. Scheme is more of a language family at this point. 2020-05-06T10:01:48Z aeth: Until Racket-on-Chez is complete, fast Schemes and popular (with libraries!) Schemes are different groups 2020-05-06T10:02:57Z no-defun-allowed extinguishes phoe 2020-05-06T10:04:26Z amerlyq joined #lisp 2020-05-06T10:05:37Z flip214: aeth: so you advocate Common SCHEME? 2020-05-06T10:06:04Z phoe: flip214: not only advocate, he's been writing one for a long while 2020-05-06T10:06:04Z aeth: flip214: Yes. Unironically. You might not know who I am. :-p 2020-05-06T10:06:39Z phoe: aeth: you're the author of trivial-left-pad 2020-05-06T10:06:40Z phoe: (ql:quickload :trivial-left-pad) 2020-05-06T10:07:43Z aeth: but also in the other sense, too 2020-05-06T10:08:07Z flip214: aeth: That wasn't meant to be ironically.... I was more thinking about some remark that the better wording would have been "Garden Lisp" 2020-05-06T10:08:09Z aeth: Although it's a side side project and is taking its time to complete, R7RS-large is also taking its time to complete, so I might still have one of the first R7RS-larges 2020-05-06T10:08:24Z flip214: which also would have a nice "saving the trees" name 2020-05-06T10:08:36Z karlosz quit (Quit: karlosz) 2020-05-06T10:08:38Z no-defun-allowed: Whoooooooo are--no, we've already done that joke before. aeth has another Scheme implementation though. 2020-05-06T10:08:50Z aeth: well, no 2020-05-06T10:09:06Z aeth: I called it Airship Scheme after Imperial Airship Scheme. https://en.wikipedia.org/wiki/Imperial_Airship_Scheme 2020-05-06T10:09:18Z aeth: Not really a scam, just a failed plan 2020-05-06T10:10:16Z aeth: It also has a minor advantage of being first in alphabetical lists. 2020-05-06T10:10:54Z LdBeth: Better starts off with a number 2020-05-06T10:11:00Z aeth: or _ 2020-05-06T10:11:12Z aeth: ___xXx_Scheme_69_xXx___ 2020-05-06T10:11:16Z aeth: That was my second choice in names 2020-05-06T10:13:09Z aeth: but I settled for Airship 2020-05-06T10:13:11Z toorevitimirp quit (Remote host closed the connection) 2020-05-06T10:14:02Z toorevitimirp joined #lisp 2020-05-06T10:14:25Z beach: aeth: So what you are predicting that the future of Common Lisp is mainly precisely the way YOU use it? 2020-05-06T10:15:21Z aeth: beach: Yes. I am predicting that Common Lisp will be used for a game engine and as a compiler target. 2020-05-06T10:15:27Z aeth: These are safer predictions. 2020-05-06T10:15:30Z ayuce joined #lisp 2020-05-06T10:15:35Z aeth: Since I am doing projects along these lines. :-) 2020-05-06T10:16:05Z ayuce quit (Client Quit) 2020-05-06T10:16:09Z beach: I sincerely hope you were joking with that future prediction. 2020-05-06T10:16:11Z aeth: beach: I did mean to delete mainly, but I forgot to delete it, and I guess you noticed. 2020-05-06T10:16:18Z aeth: s/mainly/"mainly"/ 2020-05-06T10:17:44Z aeth: In fact, I wonder what word I accidentally deleted instead. :-) 2020-05-06T10:18:01Z toorevitimirp quit (Remote host closed the connection) 2020-05-06T10:18:53Z LdBeth: grilly 2020-05-06T10:22:29Z aeth: beach: I'm sure you could say that a future is writing compilers, but that's not really a future, that's a present, too. 2020-05-06T10:24:02Z vliss left #lisp 2020-05-06T10:25:02Z aeth: beach: What I was meaning to imply is that a currently underutilized feature is taking advantage of mature, fast CL compilers as a compilation target for other languages. 2020-05-06T10:26:26Z aeth: That is, there's potential, but "no one" is using things that take advantage of this at the moment. 2020-05-06T10:26:46Z constptr quit (Quit: Connection closed for inactivity) 2020-05-06T10:27:23Z ayuce joined #lisp 2020-05-06T10:28:48Z milanj joined #lisp 2020-05-06T10:31:50Z dddddd joined #lisp 2020-05-06T10:38:33Z scymtym quit (Remote host closed the connection) 2020-05-06T10:41:13Z heisig joined #lisp 2020-05-06T10:41:42Z sdumi quit (Ping timeout: 272 seconds) 2020-05-06T10:48:27Z doomlist3 quit (Ping timeout: 260 seconds) 2020-05-06T10:48:46Z bendersteed quit (Read error: Connection reset by peer) 2020-05-06T10:49:14Z bendersteed joined #lisp 2020-05-06T10:58:28Z cosimone quit (Quit: Terminated!) 2020-05-06T11:10:55Z scymtym joined #lisp 2020-05-06T11:13:06Z sdumi joined #lisp 2020-05-06T11:13:27Z pjb joined #lisp 2020-05-06T11:16:38Z Bike joined #lisp 2020-05-06T11:26:02Z tutti joined #lisp 2020-05-06T11:35:58Z Lord_of_Life_ joined #lisp 2020-05-06T11:38:19Z Lord_of_Life quit (Ping timeout: 246 seconds) 2020-05-06T11:38:33Z mmkarakaya quit (Quit: Connection closed) 2020-05-06T11:38:48Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-06T11:45:40Z orivej quit (Ping timeout: 272 seconds) 2020-05-06T11:47:13Z pjb quit (Ping timeout: 272 seconds) 2020-05-06T11:49:10Z sdumi quit (Ping timeout: 246 seconds) 2020-05-06T11:50:22Z jonatack_ joined #lisp 2020-05-06T11:50:49Z sdumi joined #lisp 2020-05-06T11:53:30Z jonatack quit (Ping timeout: 256 seconds) 2020-05-06T11:57:06Z akoana quit (Quit: leaving) 2020-05-06T12:01:22Z tutti quit (Ping timeout: 260 seconds) 2020-05-06T12:02:17Z jonatack_ quit (Quit: jonatack_) 2020-05-06T12:17:18Z jonatack joined #lisp 2020-05-06T12:21:08Z shifty quit (Ping timeout: 272 seconds) 2020-05-06T12:21:09Z jonatack_ joined #lisp 2020-05-06T12:21:46Z jonatack quit (Ping timeout: 272 seconds) 2020-05-06T12:21:57Z jonatack_ quit (Client Quit) 2020-05-06T12:22:15Z jonatack joined #lisp 2020-05-06T12:24:03Z ayuce quit (Remote host closed the connection) 2020-05-06T12:25:00Z bendersteed quit (Read error: Connection reset by peer) 2020-05-06T12:25:19Z bendersteed joined #lisp 2020-05-06T12:28:34Z monokrom joined #lisp 2020-05-06T12:29:08Z gko joined #lisp 2020-05-06T12:30:46Z ggole joined #lisp 2020-05-06T12:42:13Z ljavorsk quit (Ping timeout: 264 seconds) 2020-05-06T12:46:25Z heisig quit (Ping timeout: 264 seconds) 2020-05-06T12:47:57Z rogersm joined #lisp 2020-05-06T13:01:22Z patlv joined #lisp 2020-05-06T13:01:52Z jruiz joined #lisp 2020-05-06T13:04:03Z sunwukong joined #lisp 2020-05-06T13:18:15Z marcoxa joined #lisp 2020-05-06T13:18:59Z refpga joined #lisp 2020-05-06T13:21:34Z dyelar joined #lisp 2020-05-06T13:23:35Z terrorjack joined #lisp 2020-05-06T13:39:53Z SGASAU quit (Remote host closed the connection) 2020-05-06T13:40:49Z SGASAU joined #lisp 2020-05-06T13:43:47Z pjb joined #lisp 2020-05-06T13:46:13Z gxt joined #lisp 2020-05-06T13:46:38Z Bourne quit (Ping timeout: 272 seconds) 2020-05-06T13:50:09Z JohnMS_WORK quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2020-05-06T13:59:02Z jmercouris: does @rpath still work with Lisp CFFI? 2020-05-06T13:59:35Z jmercouris: that is using @executable_path? 2020-05-06T14:00:06Z Bike: cffi tries to use the operating system's search systems as much as possible, i think 2020-05-06T14:00:33Z jmercouris: when a shared library depends on another library, will it be able to figure out what @executable_path is when loaded by CFFI? 2020-05-06T14:00:59Z jmercouris: that is otool -L randomlib.dylib -> /some/path/to/some/second.dylib 2020-05-06T14:01:11Z jmercouris: will second.dylib be possible to be found if it is a special '@' style path? 2020-05-06T14:01:57Z jmercouris: well I guess there is one way to find out, time to try 2020-05-06T14:02:06Z ahungry joined #lisp 2020-05-06T14:03:03Z flip214: jmercouris: LD_DEBUG=all ./my-executable (or some other value, see "man ld.so") 2020-05-06T14:04:51Z EvW joined #lisp 2020-05-06T14:04:58Z Josh_2 joined #lisp 2020-05-06T14:06:20Z jmercouris: here is something interesting 2020-05-06T14:06:46Z jmercouris: http://dpaste.com/2STXSXQ 2020-05-06T14:06:52Z jmercouris: why is it loading osicat from the wrong location? 2020-05-06T14:07:04Z jmercouris: http://dpaste.com/2RYW1T6 2020-05-06T14:07:22Z SGASAU quit (Remote host closed the connection) 2020-05-06T14:08:00Z SGASAU joined #lisp 2020-05-06T14:08:02Z jmercouris: aha: Runtime directory is /Users/jmercouris/Source/Lisp/xyz/bin/xyz.app/Contents/MacOS/ 2020-05-06T14:08:13Z jmercouris: so @rpath using executable appears to be possible 2020-05-06T14:09:06Z jmercouris: libfixposix is correct, but osicat not... 2020-05-06T14:09:14Z jmercouris: maybe I'll have to do some of this deploy stuff 2020-05-06T14:09:38Z doomlist3 joined #lisp 2020-05-06T14:11:50Z selwyn quit 2020-05-06T14:12:13Z selwyn joined #lisp 2020-05-06T14:15:34Z SGASAU quit (Remote host closed the connection) 2020-05-06T14:16:37Z SGASAU joined #lisp 2020-05-06T14:16:39Z dyelar quit (Quit: Leaving.) 2020-05-06T14:17:19Z pjb quit (Ping timeout: 272 seconds) 2020-05-06T14:18:21Z rpg joined #lisp 2020-05-06T14:21:49Z Cymew quit (Ping timeout: 264 seconds) 2020-05-06T14:23:35Z sjl_ joined #lisp 2020-05-06T14:24:24Z jmercouris: anyone see anything: http://dpaste.com/0AR2VE2 ? 2020-05-06T14:25:59Z dlowe: is there a difference between "unable to find" and "unable to load"? 2020-05-06T14:26:08Z dlowe: more detail would have been helpful on that message :p 2020-05-06T14:26:50Z jmercouris: there is not 2020-05-06T14:26:55Z jmercouris: I wish there was 2020-05-06T14:27:14Z jmercouris: I'm just wondering if I have set the relative paths correctly 2020-05-06T14:27:29Z jmercouris: and what's even stranger it couldn't find the shared libraries when they were at their original paths in /opt/local/lib 2020-05-06T14:27:32Z jmercouris: which makes no sense to me... 2020-05-06T14:32:25Z jmercouris: DYLD_PRINT_LIBRARIES=1 doesn't help either because if I hit the lisp debugger, nothing is shown 2020-05-06T14:32:38Z jmercouris: Aha! 2020-05-06T14:32:42Z jmercouris: unless I press continue 2020-05-06T14:32:47Z phoe: jmercouris: hah 2020-05-06T14:33:54Z bitmapper joined #lisp 2020-05-06T14:35:42Z jmercouris: more joy :-) 2020-05-06T14:35:48Z lavaflow joined #lisp 2020-05-06T14:36:03Z jmercouris: literally the worst part of programming is distribution 2020-05-06T14:38:51Z stoneglass joined #lisp 2020-05-06T14:39:34Z Josh_2 quit (Ping timeout: 240 seconds) 2020-05-06T14:39:39Z ayuce joined #lisp 2020-05-06T14:40:25Z stoneglass quit (Client Quit) 2020-05-06T14:42:08Z stoneglass joined #lisp 2020-05-06T14:42:16Z p_l: jmercouris: everything that works for opening a dylib by Objective-C program will work CFFI 2020-05-06T14:42:22Z lukego: So here's a n00by question. I'm making a little database like (DEFVENDOR ACME) and (DEFPRODUCT FOO :VENDOR ACME) and I'm wondering how to maintain the links e.g. from product object to vendor object. Mostly if I re-evaluate (DEFVENDOR ACME) later I'd like the existing FOO object to reference the new ACME object. So, like, should I use symbols to get the necessary indirection instead of objects directly? 2020-05-06T14:43:10Z p_l: I believe symbols would be the classic approach 2020-05-06T14:43:31Z lukego: Guess that I like the idea of using objects directly so that the inspector can see them and know what they are. If I lose that with symbols it seems like an annoying side-effect. 2020-05-06T14:43:55Z phoe: lukego: either use symbols, or create an update protocol for the objects that will be similar to the one used in classes. 2020-05-06T14:44:18Z lukego: If this were Smalltalk I might use #become: to rewrite the heap with all references to the old object referring to the new one, but I don't think SBCL indulges us in such tomfoolery? 2020-05-06T14:44:18Z phoe: Like, if the vendor named ACME already exists, you update its slots instead of creating a new instance. 2020-05-06T14:44:22Z splittist: update-products-for-redefined-vendor? 2020-05-06T14:44:32Z Bike: the swank inspector is extensible... i dunno if users are supposed to do that, though 2020-05-06T14:45:09Z phoe: splittist: Not really, more like reinitialize-instance. 2020-05-06T14:45:11Z Bike: lukego: you could use reinitialize-instance 2020-05-06T14:45:15Z phoe: http://metamodular.com/CLOS-MOP/ensure-class-using-class.html 2020-05-06T14:45:19Z phoe: Bike: ha 2020-05-06T14:45:30Z Bike: edits the existing object to have the new properties, basically 2020-05-06T14:45:31Z lukego reads about reinitialize-instance 2020-05-06T14:45:34Z bendersteed quit (Ping timeout: 246 seconds) 2020-05-06T14:45:54Z Bike: the system uses this internally for, for example, defgeneric and defclass redefinitions 2020-05-06T14:46:11Z dlowe: you could also define a class vendor-ref that contains a symbol slot, and the print-object method looks up the reference in the vendor table 2020-05-06T14:46:27Z phoe: lukego: also read about ENSURE-CLASS and ENSURE-CLASS-USING-CLASS, since these are used heavily in the MOP to implement the class and GF redefinition behaviour 2020-05-06T14:46:40Z phoe: and ENSURE-GENERIC-FUNCTION{,-USING-CLASS} 2020-05-06T14:47:13Z theseb quit (Remote host closed the connection) 2020-05-06T14:47:31Z Bike: well, i dunno if all the details are relevant 2020-05-06T14:47:40Z lukego: MOP scares me a bit, feels like it might be simpler to just roll my own mechanism e.g. walking my whole little database and patching things myself 2020-05-06T14:48:01Z Bike: basically you lookup the name (acme in this case), if there's no binding you make a new object, if there's an existing binding you reinitialize the object 2020-05-06T14:48:04Z phoe: nothing really scary in that part of the MOP though 2020-05-06T14:48:07Z Bike: no mop required, the mop is just an example of using this 2020-05-06T14:48:10Z lukego: simpler in the sense of allowing me to maintain more blissful ignorance about CLOS :) 2020-05-06T14:48:23Z phoe: DEFCLASS FOO expands into ENSURE-CLASS (FIND-CLASS FOO) 2020-05-06T14:48:34Z phoe: and this calls ENSURE-CLASS-USING-CLASS with either NIL or a class object 2020-05-06T14:48:42Z phoe: if called with NIL, a new instance is created and set 2020-05-06T14:48:46Z lukego: first glance at reinitialize-object bothers me a bit because if I drop some slots from the new definition they will retain their old values, right? 2020-05-06T14:48:49Z phoe: if called with a class object, that class object is mutated 2020-05-06T14:51:02Z phoe: lukego: yes 2020-05-06T14:52:00Z phoe: calling REINITIALIZE-INSTANCE with no keyword arguments is a no-op in the general case 2020-05-06T14:52:39Z jmercouris: p_l: OK, time to try llvm then :-) 2020-05-06T14:52:48Z phoe: lukego: https://plaster.tymoon.eu/view/1808#1808 2020-05-06T14:52:49Z Shinmera: lukego: CLOS is the best part about CL! 2020-05-06T14:52:49Z Bike: you could call shared-initialize yourself, i guess. 2020-05-06T14:53:04Z lukego: thanks for all the pointers. I will meditate on this and then probably do something dumb like revert to plists :) 2020-05-06T14:53:05Z p_l: jmercouris: I spent way too much time fixing paths using otool for CCL :P 2020-05-06T14:53:05Z phoe: Bike: or have reinitialize-instance call shared-initialize for you 2020-05-06T14:53:24Z Bike: i mean, to control which slots are filled with initforms again. 2020-05-06T14:53:42Z phoe: oh, I see, yes 2020-05-06T14:54:05Z phoe: reinitialize-instance calls shared-initialize in a way that causes no slots to be re-initform'd 2020-05-06T14:54:21Z jmercouris: p_l: do you know of a tool that will do it recursively? 2020-05-06T14:54:31Z jmercouris: p_l: for example lib A depends on lib B and lib B on C etc 2020-05-06T14:54:40Z jmercouris: p_l: to just take them all and copy them into the Resources dir 2020-05-06T14:54:48Z jmercouris: and then update their paths of course 2020-05-06T14:55:11Z p_l: jmercouris: not really, closest I did my own scripts. Some libs have the paths done right by default, some had tools to help correct code for that 2020-05-06T14:55:12Z jmercouris: I'm literally seconds away from writing such a tool 2020-05-06T14:55:38Z jmercouris: OK, that's it I'm going to write a tool called recursive-lib-copy or something 2020-05-06T14:55:38Z p_l: jmercouris: generally read up on the path variables, as there are some that are explicitly there to support your cause 2020-05-06T14:56:19Z jmercouris: like DYLD_LIBRARY_PATH 2020-05-06T14:56:34Z Shinmera: DYLD_LIBRARY_PATH will not work on recent macOS. 2020-05-06T14:57:02Z Shinmera: At least probably not in the way you expect. 2020-05-06T14:57:07Z jmercouris: ah, so I must make the tool 2020-05-06T14:57:59Z louxiu joined #lisp 2020-05-06T14:58:36Z louxiu quit (Client Quit) 2020-05-06T15:00:50Z pjb joined #lisp 2020-05-06T15:01:02Z doomlist3 quit (Ping timeout: 260 seconds) 2020-05-06T15:02:34Z jfrancis_ joined #lisp 2020-05-06T15:05:43Z jfrancis quit (Ping timeout: 260 seconds) 2020-05-06T15:07:12Z madage joined #lisp 2020-05-06T15:10:06Z rogersm quit (Ping timeout: 240 seconds) 2020-05-06T15:13:09Z ayuce quit (Read error: Connection reset by peer) 2020-05-06T15:13:33Z lukego: Hey maybe REINITIALIZE-INSTANCE "just works" if the defining macros always provide values for all the slots i.e. put default values into the arglist to the defining macro (where it is picked up every time) instead of the class definition (where REINITIALIZE-INSTANCE will retrain old values by default) 2020-05-06T15:15:05Z Josh_2 joined #lisp 2020-05-06T15:15:17Z rippa joined #lisp 2020-05-06T15:17:37Z sdumi quit (Ping timeout: 264 seconds) 2020-05-06T15:18:14Z phoe: lukego: one second though, it doesn't need to "just work" 2020-05-06T15:18:20Z phoe: the slots that you don't provide retain their value. 2020-05-06T15:20:16Z phoe: REINITIALIZE-INSTANCE only mutates the slots which you tell it to mutate 2020-05-06T15:20:18Z phoe: see https://plaster.tymoon.eu/view/1808#1809 2020-05-06T15:20:33Z phoe: unless you have some custom methods defined, that is 2020-05-06T15:21:09Z sdumi joined #lisp 2020-05-06T15:26:34Z jprajzne quit (Quit: Leaving.) 2020-05-06T15:27:47Z lukego: phoe: Right. But when I re-evaluate a defining macro I expect it to set/reset every slot in the object. (You wouldn't want DEFUN to retain an old docstring if you didn't supply a new one for example.) And maybe I can achieve that easily with REINITIALIZE-INSTANCE even though it's not the default behaviour 2020-05-06T15:28:42Z phoe: lukego: yes, correct, that's doable. 2020-05-06T15:28:55Z Xach: lukego: defun doesn't mutate a function, though, it just drops the old and adds a new one under the same name. 2020-05-06T15:29:28Z lukego: true. 2020-05-06T15:29:32Z Xach: defclass is hairier for sure 2020-05-06T15:29:50Z Xach: there's a whole book about it 2020-05-06T15:30:09Z lukego: Maybe I'll reread some PAIP for back-to-basic lists-and-sometimes-structs inspiration. 2020-05-06T15:30:30Z Xach: noooo! embrace the complexity! 2020-05-06T15:31:06Z selwyn: there's a book about defclass? 2020-05-06T15:31:30Z Josh_2: theres a book about OO in CL yes 2020-05-06T15:31:51Z phoe: selwyn: there's two 2020-05-06T15:31:55Z Xach: selwyn: how to implement it (and everything around it), yes 2020-05-06T15:32:00Z phoe: Sonja Keene's, for using it; AMOP, for implementing it 2020-05-06T15:32:07Z Xach: i was thinking of amop 2020-05-06T15:32:13Z phoe: I kinda wish both of them were reprinted 2020-05-06T15:32:22Z Josh_2: phoe: you can get copies of both 2020-05-06T15:32:30Z Josh_2: I have physical copies of both that I got from Amazon 2020-05-06T15:32:39Z Xach: i have seen them on used book sites for relatively cheap prices (in the USA) 2020-05-06T15:32:51Z phoe: Josh_2: yes, but only dead-tree. I'm hoping for modern epub versions that also have working code; Sonja's book contains multiprocessing code that no longer compiles 2020-05-06T15:33:03Z Josh_2: Well dead tree is best 2020-05-06T15:33:58Z phoe: and BEST is a person-local variable 2020-05-06T15:34:06Z Josh_2: yes 2020-05-06T15:35:06Z EvW quit (Ping timeout: 240 seconds) 2020-05-06T15:37:56Z sunwukong quit (Quit: Leaving) 2020-05-06T15:41:45Z jmercouris: BEST is a symbol actually 2020-05-06T15:41:47Z phoe: clhs structure 2020-05-06T15:41:47Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_docume.htm 2020-05-06T15:42:18Z Achylles joined #lisp 2020-05-06T15:42:29Z phoe: aah, the legendary third symbol that does not deserve its own spec page 2020-05-06T15:42:31Z phoe: along with VARIABLE 2020-05-06T15:45:45Z ArthurStrong joined #lisp 2020-05-06T15:46:04Z marcoxa quit (Quit: Time to go home.) 2020-05-06T15:48:21Z lukego: Maybe indirecting through symbols and then extending the inspector with niceties is a good idea 2020-05-06T15:51:44Z EvW joined #lisp 2020-05-06T15:53:15Z rgherdt_ joined #lisp 2020-05-06T15:53:35Z pfdietz joined #lisp 2020-05-06T15:55:27Z Achylles quit (Read error: Connection reset by peer) 2020-05-06T15:55:50Z refpga quit (Read error: Connection reset by peer) 2020-05-06T15:56:15Z refpga joined #lisp 2020-05-06T16:02:22Z ArthurStrong quit (Quit: leaving) 2020-05-06T16:22:54Z scymtym: lukego: is that the SLIME inspector or something else? 2020-05-06T16:23:42Z Bourne joined #lisp 2020-05-06T16:25:24Z lukego: SLIME inspector is what I'm thinking of but I guess it's a made-up problem at the moment because I'm not actually running my code yet. Just a feeling that with object references I'd get a better amount of pretty-printing happening in various places easily. but maybe it's a data model mess and I should just write pretty printing methods 2020-05-06T16:25:35Z kpoeck joined #lisp 2020-05-06T16:25:37Z lukego: hard not to overthink these small things sometimes... 2020-05-06T16:26:11Z beach: lukego: scymtym rewrite Clouseau to be highly configurable. 2020-05-06T16:26:23Z beach: rewrote 2020-05-06T16:27:11Z lukego: I should check that out. I've recently been burned by GUI stuff, on a sojourn into Smalltalk land, so I'm a little more oriented towards text at the moment e.g. Emacs and org-mode to generate static html/pdf 2020-05-06T16:28:01Z lukego: but I guess inspection might be a good use case for using GUI tools since I don't really need to generate publishable artifacts from the inspector and it doesn't need to play with org-babel etc. 2020-05-06T16:28:05Z refpga quit (Remote host closed the connection) 2020-05-06T16:28:11Z lukego: will check it out, thanks for the nudge 2020-05-06T16:28:14Z beach: Sure. 2020-05-06T16:28:58Z scymtym: lukego: thanks. indeed hard to tell what the best approach is. the CLIM-based inspector (Clouseau) that beach mentioned could have an advantage in case you have to throw in non-text representations as can be the case for graph-but-not-tree data 2020-05-06T16:28:59Z refpga joined #lisp 2020-05-06T16:30:12Z jruiz quit (Ping timeout: 256 seconds) 2020-05-06T16:30:58Z lukego: Something more dynamic could be nice. I'm rolling a little database of electronic components that I'm considering to use in my n00b hardware projects and a bunch of it is effectively scraped from sites like mouser.com. but what was I saying about over-thinking before getting started... 2020-05-06T16:32:02Z asarch joined #lisp 2020-05-06T16:32:07Z lukego: I'm not automating too much though because the database is supposed to represent my notes from actually reading and thinking about these things. optimizing away the "comprehension" part of the process could be suboptimal :) 2020-05-06T16:35:06Z sdumi quit (Ping timeout: 272 seconds) 2020-05-06T16:35:24Z sdumi joined #lisp 2020-05-06T16:39:49Z gelatram joined #lisp 2020-05-06T16:43:01Z anewuser joined #lisp 2020-05-06T16:43:48Z rogersm joined #lisp 2020-05-06T16:48:12Z Cymew joined #lisp 2020-05-06T16:49:28Z ggole quit (Quit: Leaving) 2020-05-06T16:51:29Z ahungry quit (Remote host closed the connection) 2020-05-06T16:52:04Z phoe: why am I mad at lisp-koans, abbreviated in two lines 2020-05-06T16:52:05Z phoe: ; returns sign x 2020-05-06T16:52:05Z phoe: (defun sign-of (x) (if (< x 0) (return-from sign-of -1)) (if (eq x 0) (return-from sign-of 0)) 1) 2020-05-06T16:52:33Z phoe: there are at least three things that are wrong with this code, both style- and correctness-wise 2020-05-06T16:52:52Z scymtym quit (Ping timeout: 244 seconds) 2020-05-06T16:53:22Z jackdaniel: let me try! 2020-05-06T16:53:35Z phoe: lo and behold, this is the flagship Google-branded beginner resource for people who would like to start learning Lisp 2020-05-06T16:53:40Z jackdaniel: (setf (fdefinition 'sign-of) #'signum) 2020-05-06T16:53:42Z phoe continues quietly burning in the corner 2020-05-06T16:53:49Z phoe: jackdaniel: correct, that's the first one 2020-05-06T16:54:03Z Bike: plus it uses eq on a fixnum and the control flow is stupidly arranged 2020-05-06T16:54:09Z phoe: Bike: correct 2020-05-06T16:54:16Z Bike: and it won't work for floats 2020-05-06T16:54:20Z anewuser quit (Ping timeout: 256 seconds) 2020-05-06T16:54:26Z phoe: that's the fourth one 2020-05-06T16:54:31Z _death: return-froms everywhere 2020-05-06T16:54:39Z phoe: the others are kind of nullified by jackdaniel's point, but still 2020-05-06T16:54:44Z Bike: and it poisoned our water supply, burned our crops, and delivered a plague unto our houses 2020-05-06T16:55:00Z jackdaniel: that explains why google collects so much data -- bugs! 2020-05-06T16:55:00Z phoe: Bike: correct 2020-05-06T16:55:14Z jackdaniel: no privacy violation ;] 2020-05-06T16:55:37Z pjb: (mapcar 'cl:signum '(-2 0 +2)) #| --> (-1 0 1) |# 2020-05-06T16:56:14Z _death: why am I mad at series, in two forms.. (defun scan-lines (file) (declare (optimizable-series-function)) (scan-file file #'read-line)) (collect (scan-lines "/etc/passwd")) 2020-05-06T16:56:50Z _death: (I did implement a fix, but the code is likely suboptimal) 2020-05-06T16:56:57Z phoe: _death: uhhh, what did it do? 2020-05-06T16:57:32Z _death: what did what do 2020-05-06T17:00:18Z phoe: this SERIES stuff 2020-05-06T17:00:29Z phoe: I mean, I know the package 2020-05-06T17:00:32Z _death: try it? 2020-05-06T17:00:37Z phoe tries 2020-05-06T17:01:32Z phoe: I got a list of all entries from my passwd file, line by line 2020-05-06T17:01:39Z _death: you also need (series::install) to use series's defun 2020-05-06T17:01:44Z phoe: ooh 2020-05-06T17:02:16Z phoe: ...it worked better with my previous defun 2020-05-06T17:02:38Z _death: phoe: if you just do (scan-lines ...) without the collect it will also work (return a stream) 2020-05-06T17:02:44Z phoe: I see 2020-05-06T17:03:18Z _death: see, series defines both a function and an "optimizer" that contains code fragments 2020-05-06T17:03:50Z _death: (collect ...) will macroexpand into a tidy loop, using the optimizer 2020-05-06T17:04:56Z _death: the code fragment has a slot for wrappers, like (with-open-file (...) ...) which scan-file defines 2020-05-06T17:05:34Z _death: there's also some argument name renaming going on, but the new names are not substituted in the wrappers :/ 2020-05-06T17:06:10Z phoe: the joys of code walkin' 2020-05-06T17:06:53Z _death: so here's the tentative patch: https://gist.github.com/death/cec04d179e607657f409364442bf2a04 2020-05-06T17:07:24Z Cymew quit (Ping timeout: 272 seconds) 2020-05-06T17:10:51Z _death: otherwise, series is great.. I also played with arrows/nest + series.. for example defining a TSEN operator (defmacro tsen (&body things) `(uiop:nest ,@(reverse things))) is useful with simple series calls: (tsen (scan-fn ...) (map-fn ...) (choose-if ...) (collect)) 2020-05-06T17:12:02Z _death: the TSEN operator is also named cl-arrows:->> .. now, more complicated series calls may have arguments both on the left and right.. so you'd need to use the diamond arrow cl-arrows:-<> 2020-05-06T17:18:53Z pjb: phoe: you can also use: (first (com.informatimago.common-lisp.unix.passwd:read-passwd)) #| --> #S(user :login "nobody" :passwd "*" :uid -2 :gid -2 :gecos ("Unprivileged User") :home "/var/empty" :shell "/usr/bin/false") |# 2020-05-06T17:19:08Z phoe: pjb: TIL, nice. 2020-05-06T17:20:49Z _death: then, you see that you could define small series functions that have conceptual value, and the arrows may get in the way of re-factoring.. but I suppose with series or clojure's lazy sequences they make a little more sense (but not much...) 2020-05-06T17:23:24Z _death: pjb: this reminds me of a Naggum post.. https://www.xach.com/naggum/articles/3229353106350910@naggum.net.html 2020-05-06T17:24:27Z gko quit (Ping timeout: 258 seconds) 2020-05-06T17:26:47Z pjb: _death: you should post a bug report on com.informatimago.common-lisp.unix.passwd since it uses a defstruct, you cannot add :after methods to (setf user-uid) to walk the file system… 2020-05-06T17:26:56Z Misha_B joined #lisp 2020-05-06T17:27:11Z dlowe: one of my "if I ever get around to" projects is to make a sbcl-native version of series 2020-05-06T17:27:22Z dlowe: so it doesn't do the code-walker hackery of the library 2020-05-06T17:27:36Z jackdaniel: I like series in principle 2020-05-06T17:27:43Z jackdaniel: but using them in practice is hard 2020-05-06T17:28:41Z jackdaniel: not because of bugs or something in this spirit, the thing is that series objects are hardly composable with the rest of a language, so you either make "everything-series", or you have a hard time with marshalling/demarshalling objects between representations 2020-05-06T17:28:43Z _death: pjb: I'm not sure setf is the right place for such functionality.. 2020-05-06T17:28:58Z dlowe: jackdaniel: right. an implementation-native version would fix this 2020-05-06T17:29:09Z pjb: _death: it depends on the level of the object you are setting. 2020-05-06T17:29:17Z dlowe: the other gotcha in series is that it's easy to break the efficient path 2020-05-06T17:29:37Z jackdaniel: dlowe: not really, it is about the fact that common lisp standard does not take into account series, so basically nothing works on them 2020-05-06T17:29:48Z mangul joined #lisp 2020-05-06T17:29:55Z jackdaniel: (at least in my use case, of course it may fix your problems with the library) 2020-05-06T17:30:14Z _death: I think Joe Marshall wrote some interesting "experience reports" about series 2020-05-06T17:30:14Z choegusung joined #lisp 2020-05-06T17:30:32Z dlowe: jackdaniel: just treat a series like a sequence 2020-05-06T17:30:47Z Bike: can't a series have no finite length? 2020-05-06T17:31:01Z jackdaniel: they can 2020-05-06T17:31:03Z dlowe: that's correct. 2020-05-06T17:31:07Z pjb: _death: see for example (setf (com.informatimago.common-lisp.cesarum.file:text-file-contents "/tmp/foo.txt") "Hello world") or (push :hello (com.informatimago.common-lisp.cesarum.file:sexp-file-contents "/tmp/counter.sexp")) 2020-05-06T17:31:09Z Bike: because if so most of the sequence functions are not going to work 2020-05-06T17:31:16Z jackdaniel: dlowe: series are not sequences, so you can't treat them as such 2020-05-06T17:31:25Z jackdaniel: (at least it is hard to imagine for me how that could work) 2020-05-06T17:31:26Z dlowe: itym most of the sequence functions will infinitely loop 2020-05-06T17:31:40Z Bike: i mean, not even in a good way 2020-05-06T17:31:46Z dlowe: like which? 2020-05-06T17:31:48Z Bike: like MAP might freeze on calculating a length before actually mapping anything 2020-05-06T17:32:22Z shangul quit (Ping timeout: 256 seconds) 2020-05-06T17:32:23Z dlowe: a series-aware map wouldn't try to calculate a length 2020-05-06T17:33:25Z Bike: what if it's mapping into a vector? does map now have to just collect elements into a list and then make a vector after the fact? 2020-05-06T17:33:45Z dlowe: or use an adjustable vector 2020-05-06T17:33:45Z _death: in fact series is usually about transforming the code into a tidy loop 2020-05-06T17:33:57Z pjb: cl:map can expect a proper-list. 2020-05-06T17:34:02Z pjb: So it can call cl:length 2020-05-06T17:34:07Z _death: so what would be the point of using CL sequence functions? 2020-05-06T17:34:23Z Bike: adjustable vector still means a lot more consing 2020-05-06T17:34:51Z dlowe: you didn't claim that it would be inefficient, you claimed that it wouldn't "work" 2020-05-06T17:34:56Z Bike: especially since you still have to do a full copy if the result sequence type isn't adjustable 2020-05-06T17:35:14Z pjb: Bike: adjustability is not a type. 2020-05-06T17:35:15Z dlowe: by which I thought you meant that it couldn't fulfill its spec 2020-05-06T17:35:17Z phoe: dlowe: CL sequences need to be finite, even extensible ones. Hence an infinite series cannot be a sequence. 2020-05-06T17:35:24Z Bike: i meant that as these functions are written now they can't handle infinite sequences. 2020-05-06T17:35:45Z Bike: i don't know off the top of my head if they all work with infinite sequences, but i have my doubts, because the possibility clearly wasn't considered 2020-05-06T17:35:49Z phoe: I've been munching on the extensible sequence protocol for a while 2020-05-06T17:35:52Z dlowe: phoe: "an ordered collection of elements" doesn't specify finite 2020-05-06T17:36:11Z phoe: dlowe: CL:LENGTH must return a non-negative integer 2020-05-06T17:36:27Z Bike: well, okay, so obviously reverse and nreverse don't 2020-05-06T17:36:47Z dlowe: phoe: ok, got me there 2020-05-06T17:36:50Z phoe: you could hack the system and try to specify most-positive-bignum there, except that would not be correct 2020-05-06T17:36:54Z Bike: it's possible you could respecify the language to allow infinite sequences, but it's not anything obvious to do 2020-05-06T17:37:18Z phoe: like, it would be correct-like-in-C correct, but nothing that would suit Lisp 2020-05-06T17:37:18Z Bike: i mean, we HAVE infinite sequences, with circular lists, and they already break most things 2020-05-06T17:37:35Z dlowe: phoe: that didn't even occur to me 2020-05-06T17:38:03Z Bike: i read a language spec once where if you mapped on circular lists you had to calculate the least common multiple of all the cycle lengths and return a circular list with that cycle 2020-05-06T17:38:06Z Bike: pretty good stuff 2020-05-06T17:39:28Z Bike: hm, and there's some weird subtle stuff, like if you did SUBSTITUTE on a lazy sequence you could return another lazy sequence, but then does it count as still a "traversal" for the purposes of 3.6 2020-05-06T17:39:38Z phoe: clhs 3.6 2020-05-06T17:39:38Z specbot: Traversal Rules and Side Effects: http://www.lispworks.com/reference/HyperSpec/Body/03_f.htm 2020-05-06T17:40:19Z phoe: huh, a lazyseq is neither a list nor an array though 2020-05-06T17:40:21Z dlowe: anyway, my original point wasn't to make existing CL functions operate on series 2020-05-06T17:40:22Z Bike: i was also thinking about this in the context of extensible sequences, since you could generalize the protocol pretty easily 2020-05-06T17:40:32Z Bike: but as-is it pretty much expects finitude 2020-05-06T17:40:38Z dlowe: it was to make series be a more dependable tool 2020-05-06T17:40:59Z dlowe: by integrating it into the implementation instead of shadowing CL symbols and codewalking 2020-05-06T17:41:08Z Bike: well, losing that sounds good, yeah 2020-05-06T17:41:10Z _death: one post I remember is https://groups.google.com/d/msg/comp.lang.lisp/ivdxXQuWic4/W0lqS8PpOwgJ 2020-05-06T17:41:28Z refpga quit (Remote host closed the connection) 2020-05-06T17:41:47Z refpga joined #lisp 2020-05-06T17:42:18Z dlowe: _death: yeah, I think that's an implementation detail rather than a limitation of the model 2020-05-06T17:42:57Z dlowe: like I said, it's really easy to break the abstraction of the current library 2020-05-06T17:45:33Z buffergn0me joined #lisp 2020-05-06T17:50:56Z frgo quit 2020-05-06T17:51:33Z terpri quit (Remote host closed the connection) 2020-05-06T17:51:55Z terpri joined #lisp 2020-05-06T17:53:58Z _death: according to Marshall it's a difficult data-flow analysis problem 2020-05-06T17:55:07Z orivej joined #lisp 2020-05-06T17:56:41Z phoe: dlowe: also, POSITION 2020-05-06T17:56:52Z _death: the actual post of interest is https://groups.google.com/d/msg/comp.lang.lisp/G41dfBKaolk/RGXgwIxGTvAJ 2020-05-06T17:57:19Z dlowe: phoe: works fine as long as the item if found 2020-05-06T18:00:22Z gareppa joined #lisp 2020-05-06T18:00:26Z phoe: dlowe: if you have an infinite sequence, you need to specify a predicate that tells you whether an item is found 2020-05-06T18:00:40Z phoe: which is okay as long as it's POSITION 2020-05-06T18:00:58Z phoe: but imagine POSITION-IF where the user can specify arbitrary predicates of their own 2020-05-06T18:01:14Z mangul quit (Ping timeout: 272 seconds) 2020-05-06T18:01:42Z gareppa quit (Remote host closed the connection) 2020-05-06T18:02:16Z Bike: er, i don't understand the issue? 2020-05-06T18:02:31Z Bike: if you're prepared for position to never return if the thing isn't in the sequence, anyway 2020-05-06T18:02:44Z SGASAU quit (Remote host closed the connection) 2020-05-06T18:03:25Z SGASAU joined #lisp 2020-05-06T18:04:14Z phoe: "if you're prepared" is the non-trivial thing here 2020-05-06T18:04:34Z phoe: it's another standard violation since the standard CL:POSITION always returns 2020-05-06T18:06:58Z Bike: well, yeah, for infinite sequences a lot of things would never return 2020-05-06T18:07:11Z Bike: i don't understand why position-if versus position is a problem, though? 2020-05-06T18:07:11Z doomlist3 joined #lisp 2020-05-06T18:07:35Z Bike: position can have some arbitrary test and key, too 2020-05-06T18:07:38Z pjb: (position nil '#1=(a . #1#)) ; infinite loop 2020-05-06T18:09:38Z phoe: pjb: invalid, the sequence must be proper according to the standard. 2020-05-06T18:09:40Z _death: it's an improper list.. 2020-05-06T18:10:15Z _death: a wiseass implementation could have some tortoise/hare and return NIL :) 2020-05-06T18:10:33Z pjb: more fun is: (position nil '(nil . #1=(a . #1#)) :from-end t) 2020-05-06T18:11:20Z jackdaniel: feature request: more objects of type null, which are eq to nil 2020-05-06T18:11:32Z jackdaniel: then we could return perhaps ;) 2020-05-06T18:11:44Z phoe: jackdaniel: more objects of type NIL, I've always considered that type to be sorta empty 2020-05-06T18:11:53Z jackdaniel: type null° 2020-05-06T18:12:01Z jackdaniel: I don't think there is a type NIL 2020-05-06T18:12:12Z phoe: http://clhs.lisp.se/Body/t_nil.htm 2020-05-06T18:12:37Z jackdaniel: OK, thank you 2020-05-06T18:12:50Z phoe: there actually is; it makes sense when you play with types and do stuff like (and string integer) 2020-05-06T18:12:50Z jackdaniel: no I *know* there is a type NIL :) 2020-05-06T18:13:08Z phoe: it can be safely reduced to NIL that way 2020-05-06T18:13:13Z pjb: (defun xnullp (x) (or (null x) (zerop x) (eq x 'null))) (positions-if (function xnullp) '(0 null nil)) -> (0 1 2) 2020-05-06T18:14:26Z jackdaniel: s/no/now/ 2020-05-06T18:15:20Z karlosz joined #lisp 2020-05-06T18:20:30Z sauvin quit (Read error: Connection reset by peer) 2020-05-06T18:21:29Z jasom: I was trying to make a wrapper for each implementation's errno, but ran into a small hiccup: allegro-cl does not provide direct access to errno from lisp but rather you can declare a function to return the errno as a second value. When you request that it return errno as a second value, it seems to clear errno before calling the function. 2020-05-06T18:22:27Z phoe: jasom: what's the procedure of doing that? 2020-05-06T18:22:34Z jasom: So it might make more sense to extend cffi:defcfun to provide errno information mirroring allegro's implementation; thoughts? 2020-05-06T18:23:45Z jasom: phoe: if you do a def-foreign-call with :error-value :errno then it makes a function that returns (values result errno) 2020-05-06T18:25:15Z phoe: jasom: can you give me a minimal example of that that will work on Linux and set errno to some nonzero value? 2020-05-06T18:25:30Z Oladon joined #lisp 2020-05-06T18:27:22Z jasom: phoe: (ff:def-foreign-call (%sleep "sleep") ((time :int)) :returning :int :error-value :errno) (%sleep 100) #|press C-c to interrupt|# :continue 0 2020-05-06T18:29:58Z jasom: under-the-hood doing :error-value :errno just seeps to set ep-flag-get-errno in the vector describing the foreign function, and the work is done in system::ff-funcall 2020-05-06T18:30:49Z jasom: from what I've seen, this is still pretty close to how the entrypoint descriptor is generated: https://github.com/sohailsomani/cffi-cheez/blob/master/doc/allegro-internals.txt#L100 2020-05-06T18:31:11Z amerlyq quit (Quit: amerlyq) 2020-05-06T18:34:37Z phoe: jasom: I don't think one can easily hack around that by macroexpanding def-foreign-call. 2020-05-06T18:34:49Z phoe: Sadly. 2020-05-06T18:34:49Z jasom: phoe: I agree 2020-05-06T18:34:55Z jasom: I already looked into it a bit 2020-05-06T18:35:42Z phoe: other than defining a wrapper around CFFI's defcfun that, on allegro, always fetches that secondary value and sets it to some global variable. 2020-05-06T18:36:02Z phoe: Hacky as holy hell but it'll work as long as you have a non-multithreaded environment 2020-05-06T18:36:14Z phoe: for multiple threads, you'll want thread-local dynabindings 2020-05-06T18:36:27Z amerlyq joined #lisp 2020-05-06T18:36:31Z jasom: phoe: see also my suggestion of changing defcfun to have an option to return errno in addition to the primary value 2020-05-06T18:36:55Z phoe: ooh - yes, that would be backwards compatible in total, but perhaps a bit overkill 2020-05-06T18:37:07Z phoe: perhaps when the defcfun has some sort of :errno t passed to it? 2020-05-06T18:37:13Z jasom: then for e.g. sbcl it's just (lambda (&rest args) (values (funcall wrapped args) (sb-alian:errno)) 2020-05-06T18:37:23Z jasom: phoe: right, as an option 2020-05-06T18:37:23Z phoe: yes, correct 2020-05-06T18:37:30Z phoe: jasom: I'd dig that, that seems good enough 2020-05-06T18:38:03Z doomlist3 quit (Quit: not part but quit) 2020-05-06T18:38:11Z jasom: jackdaniel: can you confirm that there's no way to get errno in ecl with the interpreter? 2020-05-06T18:38:49Z jasom: phoe: the other option is to just implement an errno wrapper for each existing libc; e.g. with glibc newer than 6-ish there is __errno_location() that returns the address of errno for the current thread. 2020-05-06T18:39:27Z pjb: jasom: well, I don't care about wrapping errno. I just process errno or anything else is specified after each call to a C function, and signal a LISP condition! 2020-05-06T18:39:56Z jasom: pjb: but you need to *get* errno in order to do that. 2020-05-06T18:40:14Z pjb: Yes. 2020-05-06T18:40:33Z jasom: jackdaniel: (c-inline "{ @(return) = errno; }") works when compiled, but obviously not interpreted 2020-05-06T18:42:35Z jasom: pjb: I can get errno on *nix for every lisp I've tried sofar except allegro (and ecl without the compiler). CLISP has errno in the POSIX package, which makes me less-than-hopefull it will work on windows, Lispworks errno-value is specifically *not* supported on windows per the LW documentation 2020-05-06T18:43:04Z flip214: extern int *__errno_location (void) __THROW __attribute_const__; 2020-05-06T18:43:04Z flip214: # define errno (*__errno_location ()) 2020-05-06T18:43:22Z jasom: flip214: I already mentioned that will work for any version of glibc made in a while 2020-05-06T18:43:35Z flip214: jasom: oh, sorry. didn't read the backlog. 2020-05-06T18:43:53Z jasom: flip214: NP, all solutions welcome; particularly if you know the *BSD and NT versions of that :) 2020-05-06T18:44:16Z flip214: jasom: https://docs.microsoft.com/en-us/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror 2020-05-06T18:44:24Z flip214: DWORD GetLastError(); 2020-05-06T18:44:28Z flip214: that was easy 2020-05-06T18:44:30Z pjb: obviously, __errno_location is implementation and platform specific. 2020-05-06T18:44:54Z flip214: no idea about the BSDs -- especially, which one? NetBSD? FreeBSD? BSD4.4? 2020-05-06T18:45:03Z jasom: flip214: it's unclear to me that GetLastError will be the same as errno for the C standard lib 2020-05-06T18:45:25Z Bike: freebsd has __error(), apparently 2020-05-06T18:45:31Z pjb: flip214: if allegro doesn't provide an access to errno, you would have to use a C function stub. int get_errno(){return errno;} and cffi it. 2020-05-06T18:45:46Z phoe: pjb: we've discussed that. 2020-05-06T18:45:56Z pjb: also, report a bug to Franz… 2020-05-06T18:46:10Z Bike: and also darwin, so maybe it's some deep bsd thing 2020-05-06T18:46:12Z phoe: it requires access to a C compiler on the target machine. 2020-05-06T18:46:34Z shifty joined #lisp 2020-05-06T18:46:42Z pjb: phoe: by definition. An alternative could be to parse the C header and implement a C compiler in lisp… 2020-05-06T18:46:55Z jasom: pjb: Allegro provides access to errno, just not in a way that is useful for CFFI. 2020-05-06T18:47:01Z flip214: a "portable" solution might be to disassemble perror() and find out what that reads ;) 2020-05-06T18:47:53Z jasom: pjb: you can request that errno be returned as a second value for a function, but it clears errno before calling the function, so I can't just call something that doesn't set errno (e.g. rand()) and get the errno from that. 2020-05-06T18:48:26Z efm quit (Read error: Connection reset by peer) 2020-05-06T18:48:36Z jasom: I'm considering extending CFFI to offer the secondary-value solution because that will work on all implementations that provide any access to errno, and you usually want it as part of calling a C function anyways 2020-05-06T18:49:15Z phoe: pjb: except that's not a viable alternative, since it'd be shooting a fly with a cannon. 2020-05-06T18:49:52Z pjb: phoe: errno is not a fly. 2020-05-06T18:49:56Z pjb: phoe: consider threads! 2020-05-06T18:50:10Z pjb: it's a shitty C API. 2020-05-06T18:54:30Z phoe: still, implementing a C compiler in Lisp only to work around a shitty C API is kind of much. 2020-05-06T18:55:45Z jasom: particularly since the definition of errno is not required to be portable across C compiler implementations; it's permissible for the libc and compiler to be tightly coupled 2020-05-06T18:56:10Z ljavorsk joined #lisp 2020-05-06T18:58:54Z amerlyq quit (Quit: amerlyq) 2020-05-06T19:00:13Z not_a_seagull joined #lisp 2020-05-06T19:00:46Z not_a_seagull: How do I "load" a file in the same directory as the file I'm currently in? (like NodeJS's require statement) 2020-05-06T19:01:49Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-06T19:02:10Z pjb: so it looks like disassembling a C function that gets at errno could be the best bet… 2020-05-06T19:02:52Z pjb: not_a_seagull: (load (merge-pathname "name.type" *load-truename* nil)) 2020-05-06T19:03:55Z pjb: not_a_seagull: but it's more complex if you want to compile the file you're currently in, because then you have one more directory: where the compiled fasl file is. 2020-05-06T19:04:10Z jasom: looks like FreeBSD 5.3 had __error but the 4.4BSD errno was still not thread-safe 2020-05-06T19:04:24Z rpg joined #lisp 2020-05-06T19:05:36Z kslt1 joined #lisp 2020-05-06T19:06:41Z jasom: And NetBSDF-5.0.2 uses __errno() 2020-05-06T19:09:32Z not_a_seagull quit (Quit: leaving) 2020-05-06T19:10:07Z refpga quit (Read error: Connection reset by peer) 2020-05-06T19:13:13Z refpga joined #lisp 2020-05-06T19:14:58Z dale_ joined #lisp 2020-05-06T19:15:16Z dale_ is now known as dale 2020-05-06T19:16:26Z jasom: and illumos uses ___errno 2020-05-06T19:16:40Z jasom: so now I just need to figure out NT 2020-05-06T19:17:03Z fourier joined #lisp 2020-05-06T19:17:19Z jasom: MSVCRT: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/get-errno?view=vs-2019 2020-05-06T19:18:09Z ayuce joined #lisp 2020-05-06T19:18:59Z CrazyEddy joined #lisp 2020-05-06T19:19:27Z refpga quit (Read error: Connection reset by peer) 2020-05-06T19:19:38Z refpga joined #lisp 2020-05-06T19:20:01Z jfrancis_ quit (Remote host closed the connection) 2020-05-06T19:20:34Z jfrancis joined #lisp 2020-05-06T19:22:01Z refpga quit (Read error: Connection reset by peer) 2020-05-06T19:22:18Z refpga joined #lisp 2020-05-06T19:24:15Z refpga quit (Read error: Connection reset by peer) 2020-05-06T19:24:29Z refpga joined #lisp 2020-05-06T19:25:29Z jasom: not_a_seagull left, but usually if you want to do that you're better off using the asdf system path 2020-05-06T19:26:00Z SGASAU quit (Remote host closed the connection) 2020-05-06T19:26:12Z Oladon quit (Quit: Leaving.) 2020-05-06T19:26:41Z SGASAU joined #lisp 2020-05-06T19:29:17Z refpga quit (Read error: Connection reset by peer) 2020-05-06T19:29:46Z refpga joined #lisp 2020-05-06T19:31:32Z theBlackDragon quit (Ping timeout: 256 seconds) 2020-05-06T19:33:57Z refpga quit (Read error: Connection reset by peer) 2020-05-06T19:34:31Z refpga joined #lisp 2020-05-06T19:37:28Z theBlackDragon joined #lisp 2020-05-06T19:40:41Z refpga quit (Read error: Connection reset by peer) 2020-05-06T19:41:54Z refpga joined #lisp 2020-05-06T19:42:21Z cosimone joined #lisp 2020-05-06T19:46:09Z refpga quit (Read error: Connection reset by peer) 2020-05-06T19:46:17Z refpga joined #lisp 2020-05-06T19:47:41Z refpga quit (Read error: Connection reset by peer) 2020-05-06T19:47:50Z refpga joined #lisp 2020-05-06T19:49:40Z gelatram quit (Remote host closed the connection) 2020-05-06T19:55:51Z Jesin quit (Quit: Leaving) 2020-05-06T19:58:50Z choegusung quit (Quit: leaving) 2020-05-06T19:58:51Z refpga quit (Read error: Connection reset by peer) 2020-05-06T19:58:59Z refpga joined #lisp 2020-05-06T20:00:19Z efm joined #lisp 2020-05-06T20:00:23Z refpga quit (Read error: Connection reset by peer) 2020-05-06T20:00:29Z ayuce quit (Remote host closed the connection) 2020-05-06T20:00:50Z refpga joined #lisp 2020-05-06T20:01:14Z Jesin joined #lisp 2020-05-06T20:02:40Z refpga quit (Read error: Connection reset by peer) 2020-05-06T20:02:46Z SGASAU quit (Remote host closed the connection) 2020-05-06T20:02:51Z refpga joined #lisp 2020-05-06T20:04:06Z narimiran quit (Ping timeout: 272 seconds) 2020-05-06T20:04:27Z SGASAU joined #lisp 2020-05-06T20:04:58Z refpga quit (Read error: Connection reset by peer) 2020-05-06T20:06:00Z refpga joined #lisp 2020-05-06T20:08:04Z SGASAU quit (Remote host closed the connection) 2020-05-06T20:09:04Z SGASAU joined #lisp 2020-05-06T20:09:28Z Jesin quit (Quit: Leaving) 2020-05-06T20:13:47Z Jesin joined #lisp 2020-05-06T20:20:54Z efm quit (Excess Flood) 2020-05-06T20:21:09Z Inline joined #lisp 2020-05-06T20:28:48Z efm joined #lisp 2020-05-06T20:29:33Z scymtym joined #lisp 2020-05-06T20:29:51Z karlosz quit (Quit: karlosz) 2020-05-06T20:33:05Z White_Flame: interesting little goings on: I have nested dynamic bindings of a list, where the inner binding pushnew's values to the head. Now I'm in a situation where I want to compare the value I'm "popping" to the outer value, for some cleanup work, but the outer value really isn't visible. 2020-05-06T20:33:43Z Josh_2: What is the purpose of &allow-other-keys 2020-05-06T20:33:43Z jruiz joined #lisp 2020-05-06T20:34:21Z White_Flame: Josh_2: passing remaining params via apply to another function that will handle more params than you do 2020-05-06T20:35:29Z White_Flame: regarding the dynamic bindings, is there a standard way of peeking up the chain? or is the most sane way to do it to allocate yet another special var to hold a copy of the parent binding? 2020-05-06T20:35:38Z phoe: White_Flame: the latter 2020-05-06T20:35:47Z jasom: White_Flame: most sane way is to allocate yet another special var to hold a copy of the parent binding 2020-05-06T20:35:49Z phoe: you can't access shadowed dynamic bindings in a standard way 2020-05-06T20:35:51Z White_Flame: yeah, thought so. A little annoying,b ut doable 2020-05-06T20:36:06Z karlosz joined #lisp 2020-05-06T20:37:18Z White_Flame: at least it's all wrapped up in a scope macro for the most part 2020-05-06T20:37:49Z jprajzne joined #lisp 2020-05-06T20:37:59Z SAL9000: White_Flame: you could make the special var (or extra special var) a stack 2020-05-06T20:38:10Z Misha_B: what's the premier lisp web framework/toolkit 2020-05-06T20:38:10Z SAL9000: (let ((*special* (cons new *special*))) ...) 2020-05-06T20:38:50Z phoe: Misha_B: whatever https://github.com/CodyReichert/awesome-cl says 2020-05-06T20:40:40Z White_Flame: SAL9000: yeah, it's already a stack of stacks. Going to a stack of stack of stacks means I'd have to do nested member tests as well 2020-05-06T20:40:44Z pfdietz quit (Remote host closed the connection) 2020-05-06T20:40:47Z SAL9000: *shivers* 2020-05-06T20:40:48Z White_Flame: when scanning the stack 2020-05-06T20:41:09Z cosimone quit (Quit: Quit.) 2020-05-06T20:41:18Z jasom: Misha_B: what do you want in a web framework? 2020-05-06T20:42:09Z Misha_B: To be honest, I have no clue. 2020-05-06T20:42:28Z Misha_B: I haven't done much web dev 2020-05-06T20:42:50Z jasom: Misha_B: then I would suggest starting here: https://github.com/Shirakumo/radiance-tutorial/blob/master/Part%200.md 2020-05-06T20:42:50Z efm quit (Ping timeout: 260 seconds) 2020-05-06T20:43:16Z Misha_B: thanks 2020-05-06T20:43:27Z jasom: Misha_B: it's on my short-list of recommended web frameworks nad has a reasonable looking tutorial starting from scratch 2020-05-06T20:43:27Z fourier quit (Ping timeout: 260 seconds) 2020-05-06T20:43:33Z jasom: s/nad/and 2020-05-06T20:47:53Z cosimone joined #lisp 2020-05-06T20:49:16Z kslt1 quit (Remote host closed the connection) 2020-05-06T20:50:18Z yankM quit (Ping timeout: 256 seconds) 2020-05-06T20:50:27Z cosimone_ joined #lisp 2020-05-06T20:53:44Z cosimone quit (Read error: Connection reset by peer) 2020-05-06T20:55:58Z shka_ quit (Ping timeout: 256 seconds) 2020-05-06T20:56:44Z cosimone_ quit (Ping timeout: 244 seconds) 2020-05-06T21:04:06Z kpoeck quit (Remote host closed the connection) 2020-05-06T21:05:52Z Shinmera: It's also the only framework to my knowledge that has anything approaching a specification :) 2020-05-06T21:08:24Z karayan quit (Remote host closed the connection) 2020-05-06T21:09:46Z karayan joined #lisp 2020-05-06T21:11:44Z arpunk quit (Read error: Connection reset by peer) 2020-05-06T21:14:34Z arpunk joined #lisp 2020-05-06T21:17:54Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-06T21:21:28Z Lord_of_Life_ joined #lisp 2020-05-06T21:21:47Z Lord_of_Life quit (Ping timeout: 246 seconds) 2020-05-06T21:21:47Z ArthurStrong joined #lisp 2020-05-06T21:22:48Z mikecheck joined #lisp 2020-05-06T21:22:49Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-06T21:23:58Z pve quit (Quit: leaving) 2020-05-06T21:30:38Z milanj quit (Quit: This computer has gone to sleep) 2020-05-06T21:49:25Z Misha_B quit (Ping timeout: 246 seconds) 2020-05-06T21:54:31Z CrazyPython joined #lisp 2020-05-06T21:55:05Z gravicappa quit (Ping timeout: 258 seconds) 2020-05-06T21:55:50Z mikecheck quit (Remote host closed the connection) 2020-05-06T22:02:43Z sjl_ quit (Ping timeout: 246 seconds) 2020-05-06T22:09:07Z ineiros_ joined #lisp 2020-05-06T22:11:21Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-06T22:11:32Z monokrom quit (Remote host closed the connection) 2020-05-06T22:13:22Z ineiros quit (Ping timeout: 260 seconds) 2020-05-06T22:13:52Z markasoftware: phoe lol i like the sign-of is beyond repair issue 2020-05-06T22:18:42Z ralt: some days I wonder if people use lisp in production 2020-05-06T22:19:09Z fe[nl]ix: jasom: iolib has a macro that does something like that: https://github.com/sionescu/iolib/blob/master/src/syscalls/early.lisp#L18 2020-05-06T22:21:39Z White_Flame: how many people use sign-of in production? 2020-05-06T22:22:00Z markasoftware: do you know the sign-of i am talking about White_Flame? 2020-05-06T22:22:15Z White_Flame: I was going to ask 2020-05-06T22:22:24Z markasoftware: oh it'ss bad 2020-05-06T22:22:41Z Bike: 12:52 < phoe> (defun sign-of (x) (if (< x 0) (return-from sign-of -1)) (if (eq x 0) (return-from sign-of 0)) 1) 2020-05-06T22:24:06Z White_Flame: should work for integers I guess ;) 2020-05-06T22:24:08Z aeth: wait isn't that SIGNUM? 2020-05-06T22:25:08Z phoe: aeth: it is 2020-05-06T22:25:21Z White_Flame found it in the backlog 2020-05-06T22:25:27Z phoe: straight outta lisp koans, too 2020-05-06T22:26:17Z White_Flame: this one? https://github.com/google/lisp-koans 2020-05-06T22:26:23Z phoe: t 2020-05-06T22:26:29Z phoe: I'm halfway done fixing them 2020-05-06T22:26:42Z White_Flame: like, actual real google code 2020-05-06T22:26:46Z phoe: should be done and hopefully merged by the end of the week 2020-05-06T22:26:59Z White_Flame: maybe not deployed, but code from the actual real official google account 2020-05-06T22:27:00Z phoe: it's not really google code; just published under google github 2020-05-06T22:27:09Z phoe: ;; or so I've heard in PR comments 2020-05-06T22:27:44Z White_Flame: leave it up unchanged as public shame upon their name 2020-05-06T22:28:02Z ralt: if ironclad maintainer is around there, I'd love a quick look. I'm using a workaround (creating a new prng every time I'm requesting random bytes), but it's not great. https://github.com/sharplispers/ironclad/pull/29 2020-05-06T22:28:21Z aeth: what's the correct way to do a signum without using SIGNUM? Well, besides testing ZEROP first 2020-05-06T22:28:22Z White_Flame: or simply add comments as to how terrible & wrong it all is 2020-05-06T22:28:28Z vladomiro joined #lisp 2020-05-06T22:28:38Z aeth: I mean, yes, the style is awful, but is the algorithm? 2020-05-06T22:28:58Z markasoftware: plusp zerop minusp? 2020-05-06T22:29:04Z aeth: ah 2020-05-06T22:29:14Z White_Flame: aeth: their specific algorithm will not work for floats 2020-05-06T22:29:31Z White_Flame: since it tests EQ 0 2020-05-06T22:29:50Z aeth: I guess specifically this: (cond ((zerop x) 0) ((plusp) 1) (t -1)) although idk how SIGNUM handles nan/inf/etc. that you can get if you disable float traps 2020-05-06T22:30:03Z aeth: s/plusp/plusp x/ 2020-05-06T22:30:26Z aeth: White_Flame: oh EQ 2020-05-06T22:30:43Z aeth: White_Flame: I guess that's why you always have to write idiomatic code... because otherwise you can hide things like that 2020-05-06T22:31:31Z markasoftware: phoe: do you happen to moderate a certain highly entertaining lisp forum? 2020-05-06T22:32:14Z jruiz quit (Ping timeout: 240 seconds) 2020-05-06T22:32:55Z pjb: aeth: I would use (cond ((minusp x) -1) ((plusp x) +1) (t 0)), but zerop should cover all the zero kinds… 2020-05-06T22:34:00Z phoe: markasoftware: uhhh which forum 2020-05-06T22:34:11Z markasoftware: r/lispmemes 2020-05-06T22:34:11Z pjb: Using signum would avoid thinking about which tests to use… (case (signum x) (-1 …) (0 …) (+1 …)) 2020-05-06T22:34:13Z random-nick quit (Ping timeout: 246 seconds) 2020-05-06T22:34:14Z phoe: yes 2020-05-06T22:34:19Z aeth: someone needs to make CLaaS, Common Lisp as a Service. Then the way to implement SIGNUM from scratch would be to query CLaaS and RPC their SIGNUM 2020-05-06T22:35:05Z Misha_B joined #lisp 2020-05-06T22:36:12Z White_Flame: both fixnums and all ieee floats could be tested for +1/-1 by looking at their raw high bit 2020-05-06T22:36:29Z White_Flame: I guess bignums are more ad-hoc 2020-05-06T22:36:43Z White_Flame: (of course, that would have to come after the zero test) 2020-05-06T22:37:25Z White_Flame: (and assuming low tag bits instead of high ones) 2020-05-06T22:43:34Z rgherdt quit (Ping timeout: 240 seconds) 2020-05-06T22:44:36Z rgherdt_ quit (Ping timeout: 256 seconds) 2020-05-06T22:46:42Z rpg joined #lisp 2020-05-06T22:53:25Z LdBeth: What’s typical bignum representation in CL? A linked chain of arraies of signed numbers? 2020-05-06T22:54:54Z ljavorsk quit (Ping timeout: 240 seconds) 2020-05-06T22:55:42Z White_Flame: I think most bignum representations are arrays of machine-sized unsigned words, with a separate singular sign 2020-05-06T22:55:49Z White_Flame: (regardless of language) 2020-05-06T22:56:16Z White_Flame: *machine-word-sized (as machine-sized would only allow you to store exactly 1, and nothing else :-P) 2020-05-06T22:56:26Z asarch quit (Quit: Leaving) 2020-05-06T23:03:41Z nchambers quit (Read error: Connection reset by peer) 2020-05-06T23:03:47Z CrazyPython quit (Read error: Connection reset by peer) 2020-05-06T23:09:07Z buffergn0me quit (Ping timeout: 240 seconds) 2020-05-06T23:11:18Z refpga quit (Read error: Connection reset by peer) 2020-05-06T23:12:43Z refpga joined #lisp 2020-05-06T23:13:58Z housel quit (Read error: Connection reset by peer) 2020-05-06T23:20:08Z not_a_seagull joined #lisp 2020-05-06T23:20:37Z not_a_seagull: https://gist.github.com/not-a-seagull/a7861f22c13473f3dbb38bcebff90ea2 I am using the cl-fcgi module with lighttpd. Why am I getting this error? 2020-05-06T23:21:36Z no-defun-allowed: What's the :backtrace? 2020-05-06T23:22:09Z not_a_seagull: How do I get the :backtrace? I only started using CL yesterday 2020-05-06T23:22:28Z no-defun-allowed: Type :backtrace at the prompt. 2020-05-06T23:22:57Z no-defun-allowed: (I don't know fcgi, but the backtrace would help someone debug that.) 2020-05-06T23:23:15Z Inline quit (Ping timeout: 272 seconds) 2020-05-06T23:23:18Z not_a_seagull: Updated the gist wqith the backtrace 2020-05-06T23:24:39Z igemnace quit (Remote host closed the connection) 2020-05-06T23:24:40Z pjb: not_a_seagull: you look at line #14. 2020-05-06T23:24:47Z pjb: That's where the backtrace is. 2020-05-06T23:25:44Z ebrasca joined #lisp 2020-05-06T23:25:48Z not_a_seagull: Yeah I edited the gist with the backtace 2020-05-06T23:27:26Z jasom: looks like EOF on stdin? 2020-05-06T23:28:43Z igemnace joined #lisp 2020-05-06T23:31:18Z not_a_seagull: Hmm. So is that a problem on the lighttpd side? 2020-05-06T23:31:48Z jasom: not necessarily, I'm pretty sure it's fine for the server to open up a fcgi process with no stdin 2020-05-06T23:32:02Z jasom: you probably want to build an image that doesn't start the REPL 2020-05-06T23:32:21Z jasom: with sbcl that's the :toplevel option to save-lisp-and-die I think 2020-05-06T23:32:25Z not_a_seagull: What command line options do I need for that? 2020-05-06T23:32:42Z jasom: not_a_seagull: how are you building the image you are using? 2020-05-06T23:33:08Z jasom: or are you using an sbcl shebang a-la http://www.sbcl.org/manual/#Shebang-Scripts ? 2020-05-06T23:33:23Z not_a_seagull: I have a bash script that runs `sbcl --no-interactive --load $1` and I use this as the FCGI binary 2020-05-06T23:35:14Z jasom: okay, you'l want an if you mean --non-interactive, that will still have a repl; does the file you are loading enter an infinite loop at the end? If not, then you would expect to see this error 2020-05-06T23:35:50Z not_a_seagull: Yeah I think that's what's happening 2020-05-06T23:36:04Z not_a_seagull: Has anyone here successfully used cl-fcgi with lighttpd? 2020-05-06T23:36:21Z jasom: not_a_seagull: a *long* time ago I used some fcgi library with lighttpd 2020-05-06T23:37:04Z SGASAU quit (Remote host closed the connection) 2020-05-06T23:37:46Z SGASAU joined #lisp 2020-05-06T23:37:49Z jasom: derp, I misremembered fastcgi; stdin is set to a socket with fastcgi 2020-05-06T23:37:53Z not_a_seagull: https://gist.github.com/not-a-seagull/a7861f22c13473f3dbb38bcebff90ea2#file-lighttpd-conf does this look right? it complains that the socket file doesn't exist 2020-05-06T23:37:59Z jasom: so it looks like you are not entering an infinite loop at the end 2020-05-06T23:38:02Z not_a_seagull: and I don't know how to create it 2020-05-06T23:38:34Z jasom: and then it's reading garbage from stdin and trying to evaluate it as a lisp form 2020-05-06T23:40:11Z not_a_seagull: https://gist.github.com/not-a-seagull/a7861f22c13473f3dbb38bcebff90ea2#file-index-cl also here's the index.cl file 2020-05-06T23:41:01Z jasom: If you aren't constrained to fcgi, I would recommend using mod_proxy and any of the various lisp HTTP servers instead 2020-05-06T23:41:45Z not_a_seagull: Is there any advantage of doing that over just running said http server? 2020-05-06T23:42:25Z not_a_seagull: (Also the whole point of this project was to try to experiment with fcgi) 2020-05-06T23:42:25Z jasom: multiple backend servers, ssl termination, possibly load-balancing 2020-05-06T23:43:23Z not_a_seagull: How do you create the socket file with fcgi? 2020-05-06T23:43:24Z jasom: nothing jumps out as "obviously wrong" about that config, but I haven't used lighttpd for a few years 2020-05-06T23:44:12Z jasom: I didn't think you needed to 2020-05-06T23:44:30Z not_a_seagull: It says `connect failed: No such file or directory on unix:/tmp/cl-22464.socket` 2020-05-06T23:45:03Z jasom: not_a_seagull: what is emmiting that error? 2020-05-06T23:45:19Z not_a_seagull: `2020-05-06 16:38:16: (mod_fastcgi.c.1926)` 2020-05-06T23:45:21Z jasom: and can you show me the lisp file you are loading? 2020-05-06T23:46:00Z jasom: there's no bin-path in the lighttpd config; are you running the fcgi server yourself? 2020-05-06T23:46:04Z not_a_seagull: It's https://gist.github.com/not-a-seagull/a7861f22c13473f3dbb38bcebff90ea2#file-index-cl plus using `ql` to load fcgi 2020-05-06T23:48:21Z shangul joined #lisp 2020-05-06T23:49:35Z not_a_seagull: Alright I'll bite, here's the full file https://gist.github.com/not-a-seagull/a7861f22c13473f3dbb38bcebff90ea2#file-index-cl 2020-05-06T23:49:51Z not_a_seagull: Do I need to start any fcgi servers prior? 2020-05-06T23:50:30Z jasom: I *thought* with lighttpd that if there is no bin-path, it expects the fastcgi server to be already running 2020-05-06T23:51:03Z not_a_seagull: Mmm 2020-05-06T23:51:07Z not_a_seagull: How should I get around that? 2020-05-06T23:51:10Z jasom: so you need the bin-path to be set to your index.cl 2020-05-06T23:51:19Z jasom: or use spawn-fcgi, which I think ships with lighttpd 2020-05-06T23:51:59Z jasom: spawn-fcgi -s /path/to/socket program 2020-05-06T23:52:23Z not_a_seagull: Should I put that last command in my bash file? 2020-05-06T23:53:52Z jasom: However you want to run it. There needs to be a fcgi server running. cl-fcgi expects to be spawned with the socket already existing. You can use bin-path as shown in https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModFastCGI to have lighttpd run it automatically *or* you can do what it says under "External Spawning" on that same page 2020-05-06T23:54:01Z jonatack quit (Ping timeout: 246 seconds) 2020-05-06T23:54:30Z jasom: setting bin-path is probably easier 2020-05-06T23:55:45Z not_a_seagull: So would I just set the bin-path to "/usr/bin/spawn-fcgi"? 2020-05-06T23:55:51Z jasom: no 2020-05-06T23:55:58Z jasom: if you use bin-path you *don't* use spawn-fcgi 2020-05-06T23:56:18Z jonatack joined #lisp 2020-05-06T23:56:32Z jasom: either lighttpd or spawn-fcgi should start your program. Right now it looks like you are doing neither? 2020-05-06T23:57:03Z jasom: bin-path in your lighttpd configuration will tell lighttpd to start it, 2020-05-06T23:57:24Z arpunk quit (Remote host closed the connection) 2020-05-06T23:57:25Z not_a_seagull: I'm sorry, I feel like I'm having trouble understanding; I tend to be dense. So if I'm using bin-path, what should I put in it? 2020-05-06T23:57:51Z jasom: the path to index.cl I would imagine 2020-05-06T23:58:07Z jasom: or the bash script wrapping it if you are using a bash wrapper 2020-05-06T23:59:27Z SGASAU quit (Ping timeout: 260 seconds) 2020-05-07T00:00:15Z not_a_seagull: I did the bash wrapper but now it says that I need to specify a port; can I just choose any old port or does FCGI have a port that it needs? 2020-05-07T00:00:26Z jasom: what do you mean? 2020-05-07T00:00:42Z not_a_seagull: `2020-05-06 16:58:34: (mod_fastcgi.c.1454) port has to be set in: fastcgi.server = ( .cl => ( localhost ( ...` 2020-05-07T00:00:57Z arpunk joined #lisp 2020-05-07T00:01:30Z jasom: you need either "socket" or "oprt" and "host" set 2020-05-07T00:01:54Z not_a_seagull: Can I choose any unused port for the port? 2020-05-07T00:02:08Z jasom: I thought you were using a domain socket? 2020-05-07T00:02:32Z not_a_seagull: I only did that because the tutorial I was following did it for PHP 2020-05-07T00:03:29Z wxie joined #lisp 2020-05-07T00:04:08Z jasom: something like this? https://gist.github.com/jasom/63354b4effc9569e557c97d77188ed39 2020-05-07T00:04:15Z jasom: or yes, just any unused port will be fine if you want to use TCP 2020-05-07T00:04:31Z not_a_seagull: I'll try that 2020-05-07T00:05:56Z not_a_seagull: I tried that and it went into a loop of errors 2020-05-07T00:06:08Z not_a_seagull: I think I'm going to drop this project for now. Thanks for your help 2020-05-07T00:06:55Z jasom: np 2020-05-07T00:07:01Z not_a_seagull quit (Remote host closed the connection) 2020-05-07T00:08:55Z stoneglass quit (Quit: stoneglass) 2020-05-07T00:10:41Z u_u joined #lisp 2020-05-07T00:11:38Z jprajzne quit (Quit: jprajzne) 2020-05-07T00:11:45Z zaquest quit (Quit: Leaving) 2020-05-07T00:24:26Z jruiz joined #lisp 2020-05-07T00:25:32Z karlosz quit (Quit: karlosz) 2020-05-07T00:25:39Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-07T00:32:46Z shangul quit (Ping timeout: 256 seconds) 2020-05-07T00:35:48Z u_u quit (Ping timeout: 272 seconds) 2020-05-07T00:36:10Z vladomiro quit (Quit: Leaving) 2020-05-07T00:39:31Z zaquest joined #lisp 2020-05-07T00:40:54Z yankM joined #lisp 2020-05-07T00:53:16Z buffergn0me joined #lisp 2020-05-07T00:54:17Z jruiz quit (Ping timeout: 260 seconds) 2020-05-07T01:04:01Z bitmapper quit (Ping timeout: 246 seconds) 2020-05-07T01:06:54Z edgar-rft quit (Ping timeout: 240 seconds) 2020-05-07T01:07:34Z edgar-rft joined #lisp 2020-05-07T01:15:55Z dddddd quit (Remote host closed the connection) 2020-05-07T01:21:50Z buffergn0me quit (Remote host closed the connection) 2020-05-07T01:22:28Z buffergn0me joined #lisp 2020-05-07T01:27:55Z buffergn0me quit (Remote host closed the connection) 2020-05-07T01:28:19Z buffergn0me joined #lisp 2020-05-07T01:44:49Z CrazyPython joined #lisp 2020-05-07T01:58:17Z kark quit (Quit: ZNC 1.7.2+deb3 - https://znc.in) 2020-05-07T02:06:25Z rpg joined #lisp 2020-05-07T02:09:42Z ebrasca quit (Remote host closed the connection) 2020-05-07T02:12:27Z EvW quit (Ping timeout: 260 seconds) 2020-05-07T02:15:01Z CrazyPython quit (Read error: Connection reset by peer) 2020-05-07T02:19:29Z ober: is there a way in slime to shortcut key the ABORT restart? without having to expand the Restarts: --more-- portion to see the corresponding number? 2020-05-07T02:20:18Z no-defun-allowed: I think the key A aborts? 2020-05-07T02:20:22Z pjb: type C-h m 2020-05-07T02:21:13Z ober: thanks 2020-05-07T02:23:14Z Necktwi joined #lisp 2020-05-07T02:28:27Z Bike quit (Quit: Lost terminal) 2020-05-07T02:28:55Z kark joined #lisp 2020-05-07T02:30:03Z wxie1 joined #lisp 2020-05-07T02:32:34Z wxie quit (Ping timeout: 244 seconds) 2020-05-07T02:32:34Z wxie1 is now known as wxie 2020-05-07T02:33:49Z shifty quit (Ping timeout: 264 seconds) 2020-05-07T02:37:14Z jason_m: I'm using cl-json to work with some json data. At one point I'm decoding the json into a fluid object (https://common-lisp.net/project/cl-json/cl-json.html#PROPERTIES-OF-FLUID-OBJECTS). It looks like all or almost all of the slots in the fluid object are duplicated. I suspect that is the cause of an error I am hitting where my application says the slot is not bound. https://plaster.tymoon.eu/view/1811#1811 2020-05-07T02:37:35Z jason_m: Is it possible for slots to be duplicated? Is this a bug/problem? 2020-05-07T02:40:56Z jason_m: I don't encounter this error on two of my machines, but can sort of reproduce it on a third. (I cannot trigger the error from the repl, but I can trigger it from the application.) 2020-05-07T02:43:25Z ober: same version of sbcl? 2020-05-07T02:44:04Z jason_m: Both are 1.5.6 2020-05-07T02:44:24Z jason_m: Well, my desktop and the third machine (a VM running a web server) are both 1.5.6 2020-05-07T02:44:39Z turona quit (Ping timeout: 272 seconds) 2020-05-07T02:46:07Z turona joined #lisp 2020-05-07T02:49:24Z shangul joined #lisp 2020-05-07T02:52:33Z jason_m: I don't know by what magic fluid objects work, I haven't studied MOP. Maybe I shouldn't be using them, the cl-json manual does say they are experimental. But I thought I would toss the question out here. I thought in particular the duplicate slot names were odd. 2020-05-07T03:04:09Z beach: Good morning everyone! 2020-05-07T03:06:42Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-07T03:08:16Z Krystof quit (Ping timeout: 256 seconds) 2020-05-07T03:14:49Z wxie quit (Remote host closed the connection) 2020-05-07T03:23:35Z arpunk quit (Remote host closed the connection) 2020-05-07T03:24:23Z noobineer quit (Read error: Connection reset by peer) 2020-05-07T03:25:00Z _jrjsmrtn joined #lisp 2020-05-07T03:25:25Z __jrjsmrtn__ quit (Ping timeout: 246 seconds) 2020-05-07T03:26:19Z toorevitimirp joined #lisp 2020-05-07T03:39:45Z toorevitimirp quit (Remote host closed the connection) 2020-05-07T03:46:53Z Oladon joined #lisp 2020-05-07T03:49:04Z mangul joined #lisp 2020-05-07T03:49:18Z shangul quit (Ping timeout: 260 seconds) 2020-05-07T03:53:24Z patlv quit (Quit: patlv) 2020-05-07T03:59:57Z sdumi quit (Read error: Connection reset by peer) 2020-05-07T04:00:08Z sdumi joined #lisp 2020-05-07T04:07:14Z scymtym quit (Ping timeout: 240 seconds) 2020-05-07T04:07:41Z pjb quit (Remote host closed the connection) 2020-05-07T04:13:08Z EvW joined #lisp 2020-05-07T04:25:37Z sdumi quit (Ping timeout: 246 seconds) 2020-05-07T04:26:37Z Necktwi quit (Ping timeout: 264 seconds) 2020-05-07T04:29:29Z pjb joined #lisp 2020-05-07T04:30:01Z Guest99512 joined #lisp 2020-05-07T04:30:14Z sdumi joined #lisp 2020-05-07T04:32:23Z amazoniantoad joined #lisp 2020-05-07T04:32:55Z Guest99512 quit (Remote host closed the connection) 2020-05-07T04:32:56Z amazoniantoad: Hey guys I have a little snippet of code I'm trying to write in which I check a lists of lists to see the index of where the sublist might be 2020-05-07T04:33:46Z beach: Hello amazoniantoad. 2020-05-07T04:34:00Z pjb: amazoniantoad: http://termbin.com can be used to show us the code. 2020-05-07T04:34:03Z amazoniantoad: okay 2020-05-07T04:34:07Z amazoniantoad: thanks guys. just one moment 2020-05-07T04:34:33Z amazoniantoad: (mapcar #'position '(T A-ON-B) (mapcar #'operator-preconditions (mapcar #'link-to (plan-links *test-plan*)))) 2020-05-07T04:34:54Z amazoniantoad: This is what I have written so far, but instead of getting a list of indices, I just get (NIL NIL) 2020-05-07T04:35:13Z amazoniantoad: The issue is in using mapcar with the position function 2020-05-07T04:35:15Z pjb: (mapcar '+ '(1 2 3) '(100 200 300)) #| --> (101 202 303) |# 2020-05-07T04:35:31Z pjb: amazoniantoad: there's no issue with mapcar or position. 2020-05-07T04:35:39Z ArthurStrong: Hi all. Do you know Steve Tanimoto's old book? Would you recommend reading it? 2020-05-07T04:35:41Z amazoniantoad: Then what am I misunderstanding? 2020-05-07T04:36:07Z pjb: (mapcar 'position '(t a-on-b) '((1 2 t 4) (1 a-on-b 3 4))) #| --> (2 1) |# 2020-05-07T04:36:19Z pjb: amazoniantoad: you don't understand mapcar. 2020-05-07T04:36:23Z pjb: clhs mapcar 2020-05-07T04:36:23Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_mapc_.htm 2020-05-07T04:36:24Z amazoniantoad: I see 2020-05-07T04:36:31Z pjb: when use with multiple lists. 2020-05-07T04:37:27Z pjb: (mapcar (lambda (item) (position item '(1 2 t 4 5 a-on-b 7 8))) '(t a-on-b)) #| --> (2 5) |# 2020-05-07T04:37:53Z v88m quit (Read error: Connection reset by peer) 2020-05-07T04:38:03Z pjb: amazoniantoad: you may also want to study about the functions curry and rcurry. 2020-05-07T04:38:10Z amazoniantoad: thanks 2020-05-07T04:38:11Z v88m joined #lisp 2020-05-07T04:39:46Z rumbler3_ quit (Remote host closed the connection) 2020-05-07T04:42:01Z rumbler31 joined #lisp 2020-05-07T04:47:02Z rumbler31 quit (Ping timeout: 260 seconds) 2020-05-07T04:47:10Z pjb quit (Remote host closed the connection) 2020-05-07T04:48:43Z pjb joined #lisp 2020-05-07T05:02:02Z rwcom341 quit (Remote host closed the connection) 2020-05-07T05:03:15Z rwcom341 joined #lisp 2020-05-07T05:04:38Z karlosz joined #lisp 2020-05-07T05:09:12Z sdumi quit (Ping timeout: 260 seconds) 2020-05-07T05:11:32Z v88m quit (Ping timeout: 260 seconds) 2020-05-07T05:12:29Z narimiran joined #lisp 2020-05-07T05:14:16Z karlosz quit (Read error: Connection reset by peer) 2020-05-07T05:14:18Z karlosz_ joined #lisp 2020-05-07T05:21:21Z sauvin joined #lisp 2020-05-07T05:23:21Z karlosz_ quit (Quit: karlosz_) 2020-05-07T05:23:40Z karlosz joined #lisp 2020-05-07T05:29:00Z jeosol joined #lisp 2020-05-07T05:35:21Z gravicappa joined #lisp 2020-05-07T05:37:07Z EvW quit (Ping timeout: 240 seconds) 2020-05-07T05:38:04Z Oladon quit (Quit: Leaving.) 2020-05-07T05:39:47Z karlosz quit (Quit: karlosz) 2020-05-07T05:42:39Z rumbler31 joined #lisp 2020-05-07T05:46:18Z karlosz joined #lisp 2020-05-07T05:47:42Z rumbler31 quit (Ping timeout: 260 seconds) 2020-05-07T05:48:52Z ayuce joined #lisp 2020-05-07T05:51:11Z karlosz quit (Quit: karlosz) 2020-05-07T05:51:23Z karlosz joined #lisp 2020-05-07T05:53:48Z shka_ joined #lisp 2020-05-07T05:54:58Z ArthurStrong quit (Quit: leaving) 2020-05-07T05:55:49Z JohnMS_WORK joined #lisp 2020-05-07T05:58:58Z sdumi joined #lisp 2020-05-07T06:02:05Z karlosz quit (Read error: No route to host) 2020-05-07T06:02:20Z karlosz joined #lisp 2020-05-07T06:03:49Z sdumi quit (Ping timeout: 264 seconds) 2020-05-07T06:04:08Z sdumi joined #lisp 2020-05-07T06:07:14Z buffergn0me left #lisp 2020-05-07T06:14:07Z Necktwi joined #lisp 2020-05-07T06:20:19Z dale quit (Quit: My computer has gone to sleep) 2020-05-07T06:23:11Z sz0 quit (Quit: Connection closed for inactivity) 2020-05-07T06:28:49Z ayuce quit (Remote host closed the connection) 2020-05-07T06:30:49Z orivej quit (Ping timeout: 264 seconds) 2020-05-07T06:36:34Z Cymew joined #lisp 2020-05-07T06:37:11Z pjb quit (Ping timeout: 265 seconds) 2020-05-07T06:43:54Z rumbler31 joined #lisp 2020-05-07T06:45:55Z heisig joined #lisp 2020-05-07T06:46:52Z random-nick joined #lisp 2020-05-07T06:48:40Z phoe: good morning 2020-05-07T06:48:42Z rumbler31 quit (Ping timeout: 256 seconds) 2020-05-07T06:48:55Z beach: Hello phoe. 2020-05-07T06:49:11Z phoe: hey hi hello 2020-05-07T06:53:22Z no-defun-allowed: Morning phoe 2020-05-07T07:01:52Z jprajzne joined #lisp 2020-05-07T07:05:13Z nullman quit (Ping timeout: 246 seconds) 2020-05-07T07:05:57Z rgherdt_ joined #lisp 2020-05-07T07:06:25Z sz0 joined #lisp 2020-05-07T07:07:10Z Zakkor joined #lisp 2020-05-07T07:12:08Z amazoniantoad quit (Quit: Connection closed for inactivity) 2020-05-07T07:13:34Z pjb joined #lisp 2020-05-07T07:13:58Z rgherdt joined #lisp 2020-05-07T07:15:29Z shifty joined #lisp 2020-05-07T07:19:32Z Krystof joined #lisp 2020-05-07T07:25:02Z SGASAU joined #lisp 2020-05-07T07:27:09Z karlosz quit (Quit: karlosz) 2020-05-07T07:28:00Z karlosz joined #lisp 2020-05-07T07:32:40Z v88m joined #lisp 2020-05-07T07:38:40Z Lycurgus joined #lisp 2020-05-07T07:41:17Z rgherdt quit (Quit: Leaving) 2020-05-07T07:41:26Z rozenglass quit (Quit: WeeChat 2.3) 2020-05-07T07:43:59Z rgherdt joined #lisp 2020-05-07T07:44:30Z rumbler31 joined #lisp 2020-05-07T07:44:34Z gelatram joined #lisp 2020-05-07T07:44:43Z rgherdt_ quit (Quit: Leaving) 2020-05-07T07:48:32Z yankM quit (Ping timeout: 256 seconds) 2020-05-07T07:49:40Z rumbler31 quit (Ping timeout: 256 seconds) 2020-05-07T07:56:28Z null_ptr quit (*.net *.split) 2020-05-07T07:56:29Z felideon quit (*.net *.split) 2020-05-07T07:56:29Z xristos quit (*.net *.split) 2020-05-07T07:59:37Z drewc quit (Ping timeout: 264 seconds) 2020-05-07T08:01:28Z null_ptr joined #lisp 2020-05-07T08:01:28Z felideon joined #lisp 2020-05-07T08:01:28Z xristos joined #lisp 2020-05-07T08:03:34Z loli quit (Ping timeout: 272 seconds) 2020-05-07T08:09:43Z jfrancis_ joined #lisp 2020-05-07T08:09:50Z drewc joined #lisp 2020-05-07T08:10:18Z jfrancis quit (Ping timeout: 256 seconds) 2020-05-07T08:16:52Z Lycurgus quit (Quit: Exeunt) 2020-05-07T08:18:37Z ljavorsk joined #lisp 2020-05-07T08:22:49Z karlosz quit (Quit: karlosz) 2020-05-07T08:23:12Z karlosz joined #lisp 2020-05-07T08:32:23Z nullman joined #lisp 2020-05-07T08:34:26Z scymtym joined #lisp 2020-05-07T08:38:11Z elinow joined #lisp 2020-05-07T08:39:19Z wxie joined #lisp 2020-05-07T08:41:04Z rgherdt quit (Quit: Leaving) 2020-05-07T08:41:27Z rgherdt joined #lisp 2020-05-07T08:45:39Z rumbler31 joined #lisp 2020-05-07T08:46:03Z marcoxa joined #lisp 2020-05-07T08:49:52Z Codaraxis quit (Ping timeout: 246 seconds) 2020-05-07T08:50:26Z rumbler31 quit (Ping timeout: 272 seconds) 2020-05-07T08:51:07Z Codaraxis joined #lisp 2020-05-07T08:54:41Z pjb quit (Ping timeout: 246 seconds) 2020-05-07T09:15:47Z holycow joined #lisp 2020-05-07T09:21:41Z Lord_of_Life_ joined #lisp 2020-05-07T09:21:47Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-07T09:22:50Z orivej joined #lisp 2020-05-07T09:23:02Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-07T09:26:56Z Zakkor quit (Quit: Connection closed for inactivity) 2020-05-07T09:32:54Z Necktwi quit (Ping timeout: 240 seconds) 2020-05-07T09:34:20Z nostoi joined #lisp 2020-05-07T09:35:09Z Necktwi joined #lisp 2020-05-07T09:36:02Z mrcom quit (Read error: Connection reset by peer) 2020-05-07T09:39:11Z pve joined #lisp 2020-05-07T09:39:48Z no-defun-allowed quit (Quit: killed) 2020-05-07T09:39:48Z katco quit (Quit: killed) 2020-05-07T09:39:48Z Gnuxie[m] quit (Quit: killed) 2020-05-07T09:39:49Z sammich quit (Quit: killed) 2020-05-07T09:39:51Z infra_red[m] quit (Quit: killed) 2020-05-07T09:39:51Z unl0ckd quit (Quit: killed) 2020-05-07T09:39:53Z Cairn[m] quit (Quit: killed) 2020-05-07T09:39:55Z DavdL[m] quit (Quit: killed) 2020-05-07T09:39:56Z liambrown quit (Quit: killed) 2020-05-07T09:39:56Z clintm[m] quit (Quit: killed) 2020-05-07T09:39:56Z userself quit (Quit: killed) 2020-05-07T09:40:01Z LdBeth quit (Quit: killed) 2020-05-07T09:40:13Z Jachy quit (Quit: killed) 2020-05-07T09:40:14Z mhitchman[m] quit (Quit: killed) 2020-05-07T09:40:37Z amnesic[m] quit (Quit: killed) 2020-05-07T09:41:37Z wxie quit (Ping timeout: 260 seconds) 2020-05-07T09:45:19Z yitzi joined #lisp 2020-05-07T09:46:15Z rumbler31 joined #lisp 2020-05-07T09:47:25Z nostoi quit (Quit: Verlassend.) 2020-05-07T09:47:54Z mangul quit (Ping timeout: 240 seconds) 2020-05-07T09:48:08Z wxie joined #lisp 2020-05-07T09:50:47Z rumbler31 quit (Ping timeout: 240 seconds) 2020-05-07T09:51:06Z Codaraxis quit (Read error: Connection reset by peer) 2020-05-07T09:51:51Z Codaraxis joined #lisp 2020-05-07T09:52:08Z shangul joined #lisp 2020-05-07T09:55:37Z gko joined #lisp 2020-05-07T09:58:24Z liambrown joined #lisp 2020-05-07T10:00:40Z pjb joined #lisp 2020-05-07T10:11:47Z refpga quit (Read error: Connection reset by peer) 2020-05-07T10:12:56Z refpga joined #lisp 2020-05-07T10:14:08Z EvW1 joined #lisp 2020-05-07T10:17:57Z cosimone joined #lisp 2020-05-07T10:28:40Z EvW1 quit (Ping timeout: 256 seconds) 2020-05-07T10:28:54Z igemnace quit (Ping timeout: 240 seconds) 2020-05-07T10:32:04Z orivej quit (Ping timeout: 246 seconds) 2020-05-07T10:39:57Z cosimone quit (Remote host closed the connection) 2020-05-07T10:40:26Z cosimone joined #lisp 2020-05-07T10:43:03Z mhitchman[m] joined #lisp 2020-05-07T10:43:03Z amnesic[m] joined #lisp 2020-05-07T10:43:03Z Jachy joined #lisp 2020-05-07T10:43:03Z DavdL[m] joined #lisp 2020-05-07T10:43:04Z katco joined #lisp 2020-05-07T10:43:04Z unl0ckd joined #lisp 2020-05-07T10:43:04Z userself joined #lisp 2020-05-07T10:43:04Z LdBeth joined #lisp 2020-05-07T10:43:04Z Gnuxie[m] joined #lisp 2020-05-07T10:43:04Z sammich joined #lisp 2020-05-07T10:43:04Z infra_red[m] joined #lisp 2020-05-07T10:43:04Z Cairn[m] joined #lisp 2020-05-07T10:43:04Z no-defun-allowed joined #lisp 2020-05-07T10:43:10Z clintm[m] joined #lisp 2020-05-07T10:45:42Z scymtym quit (Ping timeout: 272 seconds) 2020-05-07T10:47:06Z rumbler31 joined #lisp 2020-05-07T10:49:09Z ayuce joined #lisp 2020-05-07T10:49:25Z cosimone quit (Quit: Terminated!) 2020-05-07T10:50:18Z milanj joined #lisp 2020-05-07T10:50:20Z yitzi quit (Quit: yitzi) 2020-05-07T10:51:26Z cosimone joined #lisp 2020-05-07T10:51:51Z rumbler31 quit (Ping timeout: 260 seconds) 2020-05-07T10:52:37Z ljavorsk quit (Remote host closed the connection) 2020-05-07T10:52:54Z ljavorsk joined #lisp 2020-05-07T10:55:18Z wxie quit (Ping timeout: 256 seconds) 2020-05-07T11:03:28Z cosimone quit (Remote host closed the connection) 2020-05-07T11:03:54Z cosimone joined #lisp 2020-05-07T11:09:32Z mrcom joined #lisp 2020-05-07T11:09:52Z karlosz quit (Quit: karlosz) 2020-05-07T11:09:52Z hvxgr quit (Quit: leaving) 2020-05-07T11:09:54Z monokrom joined #lisp 2020-05-07T11:10:25Z karlosz joined #lisp 2020-05-07T11:10:30Z karlosz quit (Remote host closed the connection) 2020-05-07T11:17:55Z cosimone quit (Remote host closed the connection) 2020-05-07T11:18:25Z cosimone joined #lisp 2020-05-07T11:23:48Z scymtym joined #lisp 2020-05-07T11:33:26Z cosimone quit (Remote host closed the connection) 2020-05-07T11:33:56Z cosimone joined #lisp 2020-05-07T11:38:15Z cosimone quit (Client Quit) 2020-05-07T11:38:43Z Bike joined #lisp 2020-05-07T11:47:57Z rumbler31 joined #lisp 2020-05-07T11:50:25Z jonatack_ joined #lisp 2020-05-07T11:52:25Z rumbler31 quit (Ping timeout: 264 seconds) 2020-05-07T11:52:34Z mingus joined #lisp 2020-05-07T11:54:13Z jonatack quit (Ping timeout: 264 seconds) 2020-05-07T11:56:17Z wxie joined #lisp 2020-05-07T11:58:05Z loli joined #lisp 2020-05-07T11:58:44Z phoe: clhs ~S 2020-05-07T11:58:44Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/22_cdb.htm 2020-05-07T11:58:53Z lalilulelo joined #lisp 2020-05-07T12:02:01Z wxie quit (Ping timeout: 264 seconds) 2020-05-07T12:02:04Z lalilulelo quit (Client Quit) 2020-05-07T12:03:13Z mingus quit (Ping timeout: 264 seconds) 2020-05-07T12:03:46Z shka_ quit (Ping timeout: 256 seconds) 2020-05-07T12:04:40Z MrMc joined #lisp 2020-05-07T12:06:08Z yitzi joined #lisp 2020-05-07T12:08:29Z MrMc: How do I write to a CHUNGA:CHUNKED-IO-STREAM I am trying to do server side events with Hunchentoot 2020-05-07T12:09:55Z heisig quit (Ping timeout: 258 seconds) 2020-05-07T12:12:11Z refpga quit (Read error: Connection reset by peer) 2020-05-07T12:13:15Z refpga joined #lisp 2020-05-07T12:15:23Z phoe: clhs ~( 2020-05-07T12:15:23Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/22_cha.htm 2020-05-07T12:15:39Z phoe: MrMc: hmmmm, http://edicl.github.io/chunga/ 2020-05-07T12:15:49Z ljavorsk quit (Ping timeout: 264 seconds) 2020-05-07T12:15:53Z phoe: chunked-io-stream is both input and output 2020-05-07T12:16:37Z phoe: you should be able to write to it normally, since it's a stream 2020-05-07T12:17:54Z MrMc: Under SBCL I am getting and error when I use format to write the error is 2020-05-07T12:18:26Z MrMc: There is no applicable method for the generic function 2020-05-07T12:18:26Z MrMc: # 2020-05-07T12:18:26Z MrMc: when called with arguments 2020-05-07T12:23:02Z phoe: oooh! 2020-05-07T12:23:07Z phoe: they are binary streams, not byte streams 2020-05-07T12:23:19Z phoe: therefore you need to write bytes to it instead of string data. 2020-05-07T12:24:09Z phoe: https://github.com/edicl/chunga/blob/master/streams.lisp#L96-L99 says that they're binary and provides some advice. 2020-05-07T12:29:11Z ralt: "they are binary, not byte, hence you need to write byte" 2020-05-07T12:29:15Z ralt: that makes a lot of sense, of course 2020-05-07T12:29:23Z phoe: ralt: soduhsoduighslgihf 2020-05-07T12:29:25Z ralt: :P 2020-05-07T12:29:29Z phoe: s/byte streams/character streams/ 2020-05-07T12:29:42Z phoe: kids, don't do lisp when distracted 2020-05-07T12:30:04Z ralt: it would almost make sense in a language where strings are byte bags 2020-05-07T12:30:17Z ralt: (PHP, python2, etc) 2020-05-07T12:30:20Z phoe: thank goodness Lisp isn't one 2020-05-07T12:31:09Z nowhere_man joined #lisp 2020-05-07T12:31:17Z ralt: it's quite funny how that was py2->py3 biggest issue, despite Lisp doing the correct thing 20 years earlier 2020-05-07T12:31:51Z EvW joined #lisp 2020-05-07T12:32:31Z ralt: I always wonder why there's WRITE-BYTE but not WRITE-BYTES, but instead you have to use WRITE-SEQUENCE 2020-05-07T12:32:59Z ralt: (same for READ-BYTE/READ-SEQUENCE) 2020-05-07T12:33:40Z ralt: it feels like in Lisp streams are almost-first-class-but-not-quite-there 2020-05-07T12:33:59Z beach: Er, what? 2020-05-07T12:34:03Z ralt: or it may just be my bias of a not-big-enough stdlib, despite its already big size 2020-05-07T12:34:20Z ralt: it's mostly when I compare to https://golang.org/pkg/io/ 2020-05-07T12:34:27Z Bike: how is write-sequence not write-bytes? 2020-05-07T12:34:29Z phoe: ralt: write-bytes is literally write-sequence though 2020-05-07T12:34:41Z phoe: the bytes are wrapped in a container 2020-05-07T12:34:48Z beach: Streams are definitely first-class objects. 2020-05-07T12:34:50Z phoe: which is, well, a sequence 2020-05-07T12:35:45Z ralt: I know that I've wanted to use those `io.Discard`, `io.LimitedReader` things in Lisp already, and after having used them in Go, it felt a bit disappointing to me to not find them 2020-05-07T12:35:56Z ralt: I'm not sure what I'm trying to say though, just venting I guess. 2020-05-07T12:36:20Z Bike: we'd like to help you, but if you're unable to describe what you want it's kind of hard to do so. 2020-05-07T12:36:29Z beach: ralt: "first-class object" is not defined as "ralt being disappointed" 2020-05-07T12:36:31Z ralt: I'm not looking for help :) 2020-05-07T12:36:35Z phoe: ralt: io.Discard is a (make-broadcast-stream) 2020-05-07T12:36:40Z ralt: beach: ha 2020-05-07T12:36:54Z ralt: it should! :P 2020-05-07T12:37:11Z Bike: "A LimitedReader reads from R but limits the amount of data returned to just N bytes. " you can do this with read-sequence, no? 2020-05-07T12:37:23Z phoe: or if you want to go the OO way, the limited reader can be done via gray streams 2020-05-07T12:37:27Z phoe: if that is really necessary 2020-05-07T12:37:36Z beach: I think we need a new Common Lisp standard. 2020-05-07T12:37:59Z ralt: oooh I like make-broadcast-stream 2020-05-07T12:38:23Z phoe: it's a stream that broadcasts stuff to all the streams that you construct it with 2020-05-07T12:38:38Z phoe: and you may provide exactly zero streams to it, which is a feature 2020-05-07T12:39:21Z ralt: ah, I didn't see that 2020-05-07T12:39:27Z phoe: it's kinda like having an argument on an IRC channel where you are the operator and nobody else is there 2020-05-07T12:40:12Z ralt: I think I need to invent a cousin of Cunningham's Law, where you vent so people can prove you wrong 2020-05-07T12:41:31Z phoe: it's already known as "the best way to get advice on the internet" 2020-05-07T12:41:59Z phoe: you don't ask for help, you post a wrong thing online and wait for the burning arrows to start hitting your house 2020-05-07T12:43:36Z ralt: really though, make-broadcast-stream looks dope 2020-05-07T12:48:32Z rumbler31 joined #lisp 2020-05-07T12:53:14Z rumbler31 quit (Ping timeout: 258 seconds) 2020-05-07T12:57:05Z rpg joined #lisp 2020-05-07T12:59:40Z CrazyPython joined #lisp 2020-05-07T13:00:44Z jruiz joined #lisp 2020-05-07T13:01:33Z jmercouris: how to use loop for lines in a string rather than chars? 2020-05-07T13:01:48Z jmercouris: will I have to split the string first? 2020-05-07T13:01:50Z mingus joined #lisp 2020-05-07T13:02:39Z jmercouris: OK read-line... 2020-05-07T13:02:40Z jmercouris: nvm 2020-05-07T13:02:43Z ralt: (loop for line = (read-line))? 2020-05-07T13:02:45Z ralt: yeah 2020-05-07T13:03:13Z jmercouris: I was thinking there might be something special in loop 2020-05-07T13:03:19Z jmercouris: like (loop for lines in string ...) or something 2020-05-07T13:07:48Z beach: We definitely need a new Common Lisp standard. 2020-05-07T13:10:21Z jackdaniel: of course we do, let's base it on c++, but with sexps 2020-05-07T13:10:33Z _death: while we're at it, let's rename/alias rename-file to file-rename and delete-file to file-delete (a suggestion made in emacs-devel.. lots of drama like that there nowadays) 2020-05-07T13:11:23Z jmercouris: beach: are you being sarcastic or serious? 2020-05-07T13:11:31Z beach: jackdaniel: But then we couldn't type io.Discard. 2020-05-07T13:12:08Z beach: jmercouris: The former. Lately, the discussions here frequently seem to go in that direction. 2020-05-07T13:12:26Z jackdaniel: let's allow both sexps and mexprs then 2020-05-07T13:12:31Z jmercouris: I don't see why we would need a new standard 2020-05-07T13:12:34Z jackdaniel: or drop sexps 2020-05-07T13:12:53Z jmercouris: i wouldn't be opposed to a language that is a superset of CL, but CL itself is fine 2020-05-07T13:12:54Z beach: jmercouris: That's be cause you don't follow the discussions here all the time. 2020-05-07T13:13:24Z jmercouris: i guess so :-D 2020-05-07T13:13:44Z _death: we could finally have LISP 2 2020-05-07T13:13:55Z theseb joined #lisp 2020-05-07T13:14:19Z mingus` joined #lisp 2020-05-07T13:15:30Z jmercouris: critique: http://dpaste.com/38ZWGWT ? 2020-05-07T13:16:05Z jmercouris: I was hoping there was a more succinct way, but that's the way i came up with 2020-05-07T13:16:34Z beach: Just wait for the new standard, and there will be a special function for what you want. 2020-05-07T13:16:41Z phoe: jmercouris: you want UNTIL before DO 2020-05-07T13:16:45Z phoe: otherwise you'll print a NIL at the end 2020-05-07T13:17:27Z EvW quit (Ping timeout: 260 seconds) 2020-05-07T13:17:34Z phoe: or (loop for line = (read-line output nil) while line do (print line)) 2020-05-07T13:17:39Z jruiz: jmercouris: you could also have while line do ... 2020-05-07T13:17:43Z jackdaniel: ln -s /bin/python /bin/lisp # there 2020-05-07T13:17:49Z phoe highfives jruiz 2020-05-07T13:18:14Z beach: jmercouris: Put the DO LOOP keyword first on a line. 2020-05-07T13:18:20Z mingus quit (Ping timeout: 272 seconds) 2020-05-07T13:18:52Z beach: jruiz: That is against the rule of page 13 of the LUV slides. 2020-05-07T13:19:20Z _death: why collect output from the output stream to a string just to read it line by line from a stream? 2020-05-07T13:19:35Z phoe: _death: I assume something else will be put in place of #'PRINT 2020-05-07T13:19:44Z _death: phoe: that's irrelevant 2020-05-07T13:20:27Z phoe: _death: oh, I see what you mean, right 2020-05-07T13:20:34Z phoe: RUN-PROGRAM should have returned a stream instead 2020-05-07T13:21:34Z jackdaniel: uiop's run-program will use intermediate biffer anyway 2020-05-07T13:21:39Z jackdaniel: buffer 2020-05-07T13:21:59Z jackdaniel: not amusing 2020-05-07T13:24:14Z jmercouris: OK I've moved the DO keword 2020-05-07T13:24:30Z jmercouris: _death: I'm actually processing strings and handling them, phoe is correct 2020-05-07T13:24:55Z jruiz: beach: noted. Are you referring to these LUV slides? http://norvig.com/luv-slides.ps 2020-05-07T13:25:10Z jmercouris: _death: I'll try removing the output from string and doing directly, its a good point 2020-05-07T13:25:49Z dddddd joined #lisp 2020-05-07T13:26:00Z _death: I often use sb-ext:run-program instead.. I remember having to slug through uiop's implementation, seeing slurp and vomit everywhere only reinforced the feeling.. 2020-05-07T13:26:26Z jmercouris: hm, it seems to freeze now 2020-05-07T13:26:53Z jmercouris: let me try to get a stream from uip:run-program.. 2020-05-07T13:27:38Z jmercouris: do I just have to set :output? 2020-05-07T13:27:39Z phoe: jackdaniel: for synchronous execution, it makes sense 2020-05-07T13:28:20Z _death: you can pass a function to :output, that will receive a stream 2020-05-07T13:28:55Z jmercouris: ah 2020-05-07T13:29:21Z beach: jruiz: Yes. 2020-05-07T13:29:52Z pfdietz joined #lisp 2020-05-07T13:30:42Z beach: jruiz: WHILE takes a Boolean argument and LINE is not a Boolean argument. It is a string or NIL as a special default value. 2020-05-07T13:32:47Z phoe: Does (typep (make-array 0 :element-type 'integer) '(simple-vector 0)) always hold true? 2020-05-07T13:33:23Z phoe: Wait, no, it doesn't. 2020-05-07T13:34:22Z Bike: depends on integer's UAET, but practically speaking yes it does 2020-05-07T13:35:13Z jmercouris: what is UAET? 2020-05-07T13:35:25Z Bike: clhs upgraded-array-element-type 2020-05-07T13:35:25Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_upgr_1.htm 2020-05-07T13:35:45Z jmercouris: ah I see, interesting 2020-05-07T13:36:26Z Bike: since the integer type includes bignums, it's unlikely an implementation would have much of anything to gain by having a specialized representation for arrays of integers 2020-05-07T13:36:38Z phoe: Bike: asking in the general case though, the lisp koans make some very interesting assumptions about the standard 2020-05-07T13:36:49Z jackdaniel: phoe: it does not, run-program's on lisp have very elaborate interfaces 2020-05-07T13:36:54Z Bike: the integer uaet is the only thing that could make it not a simple vector 2020-05-07T13:37:02Z rixard quit (Read error: Connection reset by peer) 2020-05-07T13:37:07Z jackdaniel: cls* 2020-05-07T13:37:07Z Bike: i think this particular assumption is basically reasonable 2020-05-07T13:37:21Z Bike: although i suppose i would note it if i was writing something 2020-05-07T13:37:48Z phoe: jackdaniel: TIL; it could therefore be implemented better 2020-05-07T13:38:09Z phoe: jackdaniel: my question is, once the program exits, something needs to buffer the produced output anyway, right? 2020-05-07T13:38:34Z jruiz: beach: cool thanks 2020-05-07T13:38:41Z phoe: maybe that's a naïve question; I assume that UIOP introduces another buffer where an implementation may already have a buffer of its own, same thing with streams 2020-05-07T13:38:59Z Kevslinger quit (Quit: Connection closed for inactivity) 2020-05-07T13:39:17Z jackdaniel: im on phone, too much burden to elaborate 2020-05-07T13:39:19Z beach: jruiz: Pleasure. 2020-05-07T13:39:22Z phoe: jackdaniel: OK 2020-05-07T13:39:29Z arpunk joined #lisp 2020-05-07T13:39:33Z terpri quit (Remote host closed the connection) 2020-05-07T13:39:33Z jmercouris: i'm thinking that UIOP should rename the macro with-upgradability to with-irratiblity 2020-05-07T13:39:44Z jmercouris: because browsing UIOP with M-. is impossible 2020-05-07T13:39:48Z jackdaniel: either use :output :string or depend on a stream 2020-05-07T13:39:56Z phoe: jackdaniel: OK, thanks 2020-05-07T13:40:09Z pfdietz: One could imagine an array of INTEGER that would save an indirection, putting the top structure in the bignum representation directly into the array. It would be copied on access though. I don't think any current implementation does this. 2020-05-07T13:40:10Z jackdaniel: it is OS responsibility to carry buffers 2020-05-07T13:40:27Z refpga quit (Read error: Connection reset by peer) 2020-05-07T13:41:17Z jackdaniel: pfdietz: if i understand correctly then ecl does that by storing limbs that way 2020-05-07T13:41:43Z pfdietz: I couldn't say, as I am not familiar with ECL internals. 2020-05-07T13:41:44Z rixard joined #lisp 2020-05-07T13:42:18Z terpri joined #lisp 2020-05-07T13:44:02Z SGASAU quit (Remote host closed the connection) 2020-05-07T13:44:46Z SGASAU joined #lisp 2020-05-07T13:45:01Z _death: jmercouris: instead of this with-upgradability nonsense, it should simply have a defun*/defmacro*/... 2020-05-07T13:45:54Z _death: (or rather, since it already has them, use them) 2020-05-07T13:45:59Z jackdaniel: whole idea of "upgradability" is sly in asdf and introduces far more problems than it allegedly solves 2020-05-07T13:46:37Z pfdietz: I treat that all as background magic. 2020-05-07T13:48:33Z terpri quit (Remote host closed the connection) 2020-05-07T13:49:11Z mingus` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-07T13:49:27Z rumbler31 joined #lisp 2020-05-07T13:49:53Z refpga joined #lisp 2020-05-07T13:50:06Z Bike: by the "top structure", you mean something that has a pointer to digits of the bignum? 2020-05-07T13:54:01Z rumbler31 quit (Ping timeout: 246 seconds) 2020-05-07T13:54:43Z SGASAU quit (Remote host closed the connection) 2020-05-07T13:55:22Z SGASAU joined #lisp 2020-05-07T13:56:14Z JohnMS_WORK quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2020-05-07T13:56:42Z phoe: jackdaniel: I have been wondering, in practice, how many images need to upgrade to new versions ASDF as they are run? and how many of these situations could be replaced with "load ASDF only once at bootup and error in case of an attempted upgrade"? 2020-05-07T13:57:39Z phoe: ...and, orthogonally, how many cases of WITH-UPGRADABILITY making it impossible to use M-. would have been solved by custom DEFUN, DEFCLASS, and DEFMETHOD tailored to ASDF needs 2020-05-07T13:58:35Z _death: phoe: they already have those custom operators.. with-upgradability is just to rename defun to defun* etc.. they could simply use defun*, or shadow defun if they like 2020-05-07T13:59:58Z jasom: phoe: the need to make ASDF upgradable was outlined in one of Fare's posts. 2020-05-07T14:00:35Z jackdaniel: no bad decision comes from fare without a long justification 2020-05-07T14:01:18Z jackdaniel: phoe: in practice none upto one (clisp), and on clisp it braks 2020-05-07T14:02:07Z jackdaniel: breaks 2020-05-07T14:02:09Z rpg: phoe: I think it should be possible to get M-. to work by a little tweak to finding source files. Also, I find i want a multi-file version of ASDF, instead of the single file, when working with it. 2020-05-07T14:02:42Z ebrasca joined #lisp 2020-05-07T14:07:06Z EvW1 joined #lisp 2020-05-07T14:08:22Z refpga quit (Ping timeout: 272 seconds) 2020-05-07T14:09:25Z refpga joined #lisp 2020-05-07T14:11:06Z narimiran quit (Ping timeout: 256 seconds) 2020-05-07T14:17:00Z Fare: jackdaniel, :-) 2020-05-07T14:18:39Z Fare: phoe, about every image that is bundled with an asdf older than you use is upgraded as it is run, hopefully early on. 2020-05-07T14:20:15Z CrazyPython quit (Ping timeout: 258 seconds) 2020-05-07T14:21:15Z Fare: unless you can convince all lisp vendors to upgrade very fast to the latest asdf everytime, upgradability is a must. 2020-05-07T14:23:11Z hvxgr joined #lisp 2020-05-07T14:24:32Z jackdaniel: it is not, simply dont load a contrib and you are golden 2020-05-07T14:25:12Z jackdaniel: asdf is usually not part of the image, rather avail as a contrib loaded with require 2020-05-07T14:25:43Z sjl_ joined #lisp 2020-05-07T14:26:30Z EvW1 quit (Ping timeout: 265 seconds) 2020-05-07T14:28:00Z Fare quit (Ping timeout: 272 seconds) 2020-05-07T14:29:48Z shifty quit (Ping timeout: 256 seconds) 2020-05-07T14:30:32Z sdumi quit (Ping timeout: 256 seconds) 2020-05-07T14:30:54Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-07T14:37:26Z phoe: ^ 2020-05-07T14:40:53Z phoe: the question is how many images run old ASDF because it was loaded "by default" instead of "by being pointed to the newest ASDF version that I want it to load" 2020-05-07T14:41:09Z phoe: since (require 'asdf) is likely to cause the former 2020-05-07T14:43:26Z phoe: because, if I could tell my Lisp implementation in its RC file "please load ASDF from this Quicklisp-managed directory that contains the version I want, and don't load any ASDF otherwise" I don't think I'd need ASDF upgradability at all 2020-05-07T14:49:06Z phoe: and, hey, I can tell my Lisp implementation to do exactly that in its RC file 2020-05-07T14:50:07Z yankM joined #lisp 2020-05-07T14:50:17Z rumbler31 joined #lisp 2020-05-07T14:52:34Z pjb: phoe: only the implementation may have loaded asdf before it runs the rc file. 2020-05-07T14:52:47Z phoe: pjb: which ones do that? 2020-05-07T14:52:49Z pjb: phoe: so upgradability is important. On the other hand, there's no downgradability in adsf. 2020-05-07T14:53:26Z pjb: phoe: it may be subject to system configuration --sysinit vs --userinit. 2020-05-07T14:53:52Z pjb: phoe: you may also need to consider saved images that contain asdf. 2020-05-07T14:54:20Z pjb: my point is that upgradability is good, as is loading the asdf you want. 2020-05-07T14:54:26Z rwcom3417 joined #lisp 2020-05-07T14:55:14Z rumbler31 quit (Ping timeout: 272 seconds) 2020-05-07T14:55:34Z yankM quit (Ping timeout: 240 seconds) 2020-05-07T14:55:56Z pjb: phoe: so yes, asdf is well done, if you just load a version in your rc file, you will get this version or a more recent one. 2020-05-07T14:56:02Z rwcom341 quit (Ping timeout: 256 seconds) 2020-05-07T14:56:05Z yankM joined #lisp 2020-05-07T14:57:21Z _death: would this "upgradability" (which iirc is simply fmakunbound) be a big deal to anyone (but its users) if the with-upgradability macro did not exist? 2020-05-07T14:58:52Z pjb: It's nice. 2020-05-07T14:59:03Z _death: the macro or the feature? 2020-05-07T14:59:13Z phoe: the feature 2020-05-07T14:59:23Z phoe: I enjoy my toplevel forms being separate 2020-05-07T15:01:17Z cosimone joined #lisp 2020-05-07T15:02:52Z MrMc quit (Remote host closed the connection) 2020-05-07T15:07:24Z rippa joined #lisp 2020-05-07T15:07:46Z cosimone_ joined #lisp 2020-05-07T15:08:27Z cosimone quit (Ping timeout: 244 seconds) 2020-05-07T15:09:11Z red-dot joined #lisp 2020-05-07T15:09:15Z jmercouris: _death: agreed 2020-05-07T15:11:14Z cosimone_ quit (Excess Flood) 2020-05-07T15:13:06Z cosimone_ joined #lisp 2020-05-07T15:25:29Z yitzi quit (Quit: yitzi) 2020-05-07T15:26:01Z phoe: the CLOS part of the lisp koans makes me want to cry 2020-05-07T15:26:13Z phoe: I am not going to believe that this code was written by someone who knows Lisp 2020-05-07T15:26:32Z beach: Do we know who wrote it? 2020-05-07T15:27:07Z phoe: Git blame is there. I choose not to look into it. 2020-05-07T15:27:56Z beach: Why? That person should be told about the mistakes so that he/she can improve. 2020-05-07T15:30:04Z pjb: It's probably old. that person is probably retired or dead now. 2020-05-07T15:30:10Z Bourne` joined #lisp 2020-05-07T15:30:27Z Bourne quit (Ping timeout: 260 seconds) 2020-05-07T15:30:42Z beach: phoe: How big is the code? How hard would it be to rewrite it? 2020-05-07T15:31:15Z Bike: there are only two commits to the clos file, so no mysteries there 2020-05-07T15:31:25Z Bike: it's not even 150 lines. dunno about other files 2020-05-07T15:32:57Z phoe: beach: I'm like 70% done with all of it as we speak 2020-05-07T15:33:03Z phoe: like, with all of the koans 2020-05-07T15:33:20Z Bike: with reading it, or rewriting it 2020-05-07T15:33:30Z phoe: with rewriting 2020-05-07T15:33:48Z beach: phoe: Great! Good initiative. 2020-05-07T15:34:32Z phoe: beach: more like "the next Lisp-related thing I got really annoyed with" 2020-05-07T15:34:50Z Bike: anger is a kind of initiative 2020-05-07T15:34:51Z phoe: I thought that since I have a choleric temperament I could as well try to put that to some use. 2020-05-07T15:34:56Z phoe: Bike: well, yes 2020-05-07T15:35:51Z phoe: but, like, use that is something more constructive than me making a fool out of myself in front of #lisp by saying really stupid things 2020-05-07T15:38:23Z jprajzne quit (Quit: Leaving.) 2020-05-07T15:38:46Z sdumi joined #lisp 2020-05-07T15:38:52Z beach: phoe: You say really stupid things less and less often. :) 2020-05-07T15:39:53Z amnesic[m] quit (Quit: Idle for 30+ days) 2020-05-07T15:41:21Z mhitchman[m] left #lisp 2020-05-07T15:42:14Z phoe: beach: I respectfully disagree 2020-05-07T15:42:28Z Bike: but don't worry, i'm here to pick up your slack 2020-05-07T15:42:34Z phoe: yeyyy 2020-05-07T15:42:35Z jmercouris: phoe: i disrespectfully disagree agree to agree 2020-05-07T15:42:59Z jmercouris: phoe: you needn't worry about stupidity, there is an abundance of it in this world 2020-05-07T15:43:08Z jmercouris: sprinkling some into this channel is your duty, and right 2020-05-07T15:46:32Z sdumi quit (Ping timeout: 272 seconds) 2020-05-07T15:46:38Z liambrown left #lisp 2020-05-07T15:46:48Z lxbarbosa joined #lisp 2020-05-07T15:50:59Z refpga quit (Read error: Connection reset by peer) 2020-05-07T15:51:02Z rumbler31 joined #lisp 2020-05-07T15:51:26Z refpga joined #lisp 2020-05-07T15:55:02Z phoe: what would be a good model for teaching class inheritance? I kind of don't want to do the old (defclass race-car (car) ...) stuff 2020-05-07T15:55:28Z rumbler31 quit (Ping timeout: 246 seconds) 2020-05-07T15:56:17Z Bike: an actual application of some kind, i would think 2020-05-07T15:56:22Z Bike: parser? off the top of my head 2020-05-07T15:56:50Z pjb: phoe: of course, GUIs are the classical example. 2020-05-07T15:57:19Z phoe: pjb: I don't have the luxury of having a GUI available in lisp koans and I won't have one available. 2020-05-07T15:57:36Z pjb: I mean, write one! 2020-05-07T15:58:02Z pjb: actually, it's any UI, you can make a TUI with windows, text-fields and buttons, in a nice hierarchical OO model. 2020-05-07T15:58:10Z Bike: i go to example when i'm testing language stuff now is a regex system. can use a lot of the language but still be an abstract problem 2020-05-07T15:59:28Z sdumi joined #lisp 2020-05-07T15:59:48Z bitmapper joined #lisp 2020-05-07T16:03:52Z didi joined #lisp 2020-05-07T16:04:21Z didi: phoe: Good article. () 2020-05-07T16:05:56Z phoe: didi: I need to rewrite it to be less of a rant. 2020-05-07T16:06:50Z didi: phoe: It didn't feel like a rant to me. 2020-05-07T16:06:53Z travv0: you should write a book on it 2020-05-07T16:08:15Z v88m quit (Ping timeout: 260 seconds) 2020-05-07T16:08:31Z phoe: no 2020-05-07T16:10:05Z gko quit (Ping timeout: 246 seconds) 2020-05-07T16:11:01Z rwcom3417 quit (Ping timeout: 264 seconds) 2020-05-07T16:11:55Z yitzi joined #lisp 2020-05-07T16:12:27Z aeth quit (Ping timeout: 260 seconds) 2020-05-07T16:14:16Z jmercouris: a good example for inheritance, how about using animals 2020-05-07T16:14:35Z jmercouris: and you can have different types of animals like birds and deer etc 2020-05-07T16:14:38Z ralt: phoe: a filesystem 2020-05-07T16:15:04Z Bike: i feel things like cars and animals might be good if you're writing a philosophical work on ontology, or maybe a review of cladistics 2020-05-07T16:15:07Z Bike: programming... nah 2020-05-07T16:15:12Z jmercouris: they extend the animal class, etc and then reptile and so and so garth 2020-05-07T16:15:20Z bitmapper: i wonder if there will ever be a 64bit version of lispworks personal because of macos catalina 2020-05-07T16:15:22Z jmercouris: s/garth/forth 2020-05-07T16:15:26Z Bike: unless it's some kind of computer cladistics system. that could be neat 2020-05-07T16:15:43Z Bike: not that biology usually fits into the computery kind of "inheritance" very well 2020-05-07T16:15:45Z jackdaniel: take an abstract class graph, and then go from it to digraph, tree whatever 2020-05-07T16:16:04Z jackdaniel: s/abstract/ 2020-05-07T16:16:07Z jackdaniel: s/abstract// 2020-05-07T16:19:55Z LdBeth: hoolla 2020-05-07T16:20:15Z phoe: jmercouris: https://www.reddit.com/r/learnprogramming/comments/3ghmiq/goodbye_shitty_car_extends_vehicle/ 2020-05-07T16:21:37Z Josh_2 quit (Read error: Connection reset by peer) 2020-05-07T16:21:56Z jackdaniel: https://web.archive.org/web/20110829152110/http://lists.canonical.org/pipermail/kragen-tol/2011-August/000937.html 2020-05-07T16:22:01Z jackdaniel: to save clicks 2020-05-07T16:22:32Z jackdaniel: paragraph tytile "Why `Car extends Vehicle` or `Duck extends Bird` are terrible examples." says it all 2020-05-07T16:22:36Z jackdaniel: title* 2020-05-07T16:23:39Z amerlyq joined #lisp 2020-05-07T16:27:25Z efm joined #lisp 2020-05-07T16:28:20Z refpga quit (Read error: Connection reset by peer) 2020-05-07T16:28:32Z refpga joined #lisp 2020-05-07T16:30:10Z lukego: hey is there a handy package that would give me some types like url, country code, etc? (not as fancy object types just e.g. strings with SATISFIES constraints) 2020-05-07T16:30:41Z ralt: for URLs there's puri/quri 2020-05-07T16:31:15Z Shinmera: lukego: ratify has a bunch of functions to test strings for stuff like being an URL or integer, etc. 2020-05-07T16:33:02Z lukego: thanks! 2020-05-07T16:34:14Z lukego: also is there a recommended library for scientific/engineering units? millimeter, mil, micron, etc? 2020-05-07T16:34:33Z lukego: Or is there a good place to look for such recommendations instead of bothering people one at a time on #lisp? :-) 2020-05-07T16:34:45Z Shinmera: cliki still works for that sometimes 2020-05-07T16:35:05Z Shinmera: other times there's awesome-cl, or trying your luck by searching on quickdocs 2020-05-07T16:36:58Z SGASAU quit (Remote host closed the connection) 2020-05-07T16:37:00Z rwcom3417 joined #lisp 2020-05-07T16:37:12Z ayuce left #lisp 2020-05-07T16:37:49Z SGASAU joined #lisp 2020-05-07T16:38:17Z lukego: thanks again :) 2020-05-07T16:38:44Z lukego: Just found my copy of Edi's recipes book and put that by my side so that will spare everybody some noise B) 2020-05-07T16:40:08Z whiteline_ quit (Remote host closed the connection) 2020-05-07T16:41:20Z whiteline_ joined #lisp 2020-05-07T16:41:38Z whiteline_ quit (Remote host closed the connection) 2020-05-07T16:42:13Z whiteline_ joined #lisp 2020-05-07T16:43:09Z aeth joined #lisp 2020-05-07T16:44:42Z ahungry joined #lisp 2020-05-07T16:48:26Z CrazyPython joined #lisp 2020-05-07T16:51:49Z rumbler31 joined #lisp 2020-05-07T16:52:26Z scymtym quit (Ping timeout: 240 seconds) 2020-05-07T16:53:35Z shangul quit (Remote host closed the connection) 2020-05-07T16:54:03Z shangul joined #lisp 2020-05-07T16:55:30Z CrazyPython quit (Read error: Connection reset by peer) 2020-05-07T16:56:30Z rumbler31 quit (Ping timeout: 256 seconds) 2020-05-07T17:01:19Z jonatack_ quit (Quit: jonatack_) 2020-05-07T17:01:38Z jonatack joined #lisp 2020-05-07T17:03:59Z noahtheduke joined #lisp 2020-05-07T17:04:46Z Cymew quit (Ping timeout: 246 seconds) 2020-05-07T17:06:52Z noahtheduke quit (Client Quit) 2020-05-07T17:10:47Z scymtym joined #lisp 2020-05-07T17:14:47Z buffergn0me joined #lisp 2020-05-07T17:23:49Z efm quit (Read error: Connection reset by peer) 2020-05-07T17:25:18Z jruiz quit (Remote host closed the connection) 2020-05-07T17:25:37Z jruiz joined #lisp 2020-05-07T17:27:14Z elinow quit (Ping timeout: 272 seconds) 2020-05-07T17:28:12Z elinow joined #lisp 2020-05-07T17:30:34Z sdumi quit (Ping timeout: 256 seconds) 2020-05-07T17:31:08Z jruiz quit (Ping timeout: 256 seconds) 2020-05-07T17:31:20Z Jesin quit (Quit: Leaving) 2020-05-07T17:34:10Z Jesin joined #lisp 2020-05-07T17:34:12Z shifty joined #lisp 2020-05-07T17:35:18Z phoe: some news - Apress offered me a contract, and a deadline for reviewing my book on conditions. It's May 22nd - two weeks from now, so not a very big amount of time. 2020-05-07T17:35:31Z hiroaki quit (Ping timeout: 260 seconds) 2020-05-07T17:35:52Z jackdaniel: congratulations! 2020-05-07T17:35:55Z phoe: If anyone'd like to contribute, #clcs has been created for that, and I have a private git repository with the book where one can send issues. 2020-05-07T17:35:58Z phoe: jackdaniel: thanks! 2020-05-07T17:36:26Z phoe: beach: ^ Please let me know if two weeks is enough time for you - it's not very much time, but that's what I have been told by Apress. 2020-05-07T17:36:30Z jackdaniel: hint: grab it till the draft is free ,p 2020-05-07T17:38:09Z phoe: or become a reviewer and get a free ebook version once it's published 2020-05-07T17:38:33Z jackdaniel: it is freenode, people expect to get things for free 2020-05-07T17:38:48Z jackdaniel: your time, soul and developments 2020-05-07T17:38:59Z phoe: and your mother maiden's name 2020-05-07T17:39:26Z efm joined #lisp 2020-05-07T17:39:46Z yankM quit (Ping timeout: 246 seconds) 2020-05-07T17:39:58Z shangul quit (Quit: Bye Bye. 3.1415926535897932) 2020-05-07T17:40:30Z shifty quit (Ping timeout: 260 seconds) 2020-05-07T17:48:47Z hiroaki joined #lisp 2020-05-07T17:51:06Z jackdaniel: you've confused freenode and bank which confirms your identity to reset the pin ,) 2020-05-07T17:52:33Z sdumi joined #lisp 2020-05-07T17:52:33Z rumbler31 joined #lisp 2020-05-07T17:54:05Z yankM joined #lisp 2020-05-07T17:57:38Z rumbler31 quit (Ping timeout: 272 seconds) 2020-05-07T18:01:07Z didi left #lisp 2020-05-07T18:08:24Z orivej joined #lisp 2020-05-07T18:08:54Z SGASAU quit (Remote host closed the connection) 2020-05-07T18:09:26Z rozenglass joined #lisp 2020-05-07T18:13:50Z SGASAU joined #lisp 2020-05-07T18:20:54Z SGASAU quit (Remote host closed the connection) 2020-05-07T18:21:35Z SGASAU joined #lisp 2020-05-07T18:26:54Z sauvin quit (Ping timeout: 240 seconds) 2020-05-07T18:29:34Z clintm[m] left #lisp 2020-05-07T18:32:12Z phoe: Random question - are there any kind of portable utilities that you'd like to see as appendices to that book? Currently the only one is HANDLER-CASE* that executes the handler and then transfers control, but maybe you're aware of some others. 2020-05-07T18:37:04Z jackdaniel: I've came up with an interesting technique (to me) which uses handler-bind 2020-05-07T18:38:10Z jackdaniel: you define a condition partial-result, which has a slot data, function (defun emit (data) (signal 'partial-result :data data)), and you define a macro expanding to handler bind handling partial results (i.e sending them asynchronously via websocket) 2020-05-07T18:38:10Z phoe: jackdaniel: what is it? 2020-05-07T18:38:24Z jackdaniel: so you have a function which "emits" partial resutls 2020-05-07T18:38:48Z jackdaniel: if you wrap it in (with-partial-results (#'send-websocket) (my-function)) , then partial results will be send 2020-05-07T18:39:07Z jackdaniel: if it is not wrapped, then signals are simply ignored because they are not serious conditions nor warnings 2020-05-07T18:39:33Z jackdaniel: so you may have synchronous and asynchronous context for the same function without changing it 2020-05-07T18:40:16Z ebrasca quit (Remote host closed the connection) 2020-05-07T18:41:26Z phoe: jackdaniel: nice, though highly domain-specific 2020-05-07T18:42:22Z jackdaniel: applies everywhere where long computations take place and partial results are useful 2020-05-07T18:42:55Z jackdaniel: (and does not depend on multiprocessing) 2020-05-07T18:43:01Z phoe: yes, I see 2020-05-07T18:44:43Z bitmapper: agh 2020-05-07T18:45:32Z shifty joined #lisp 2020-05-07T18:45:40Z phoe resists the urge to post https://www.agh.edu.pl/ 2020-05-07T18:47:05Z CrazyPython joined #lisp 2020-05-07T18:50:59Z milanj quit (Quit: This computer has gone to sleep) 2020-05-07T18:53:19Z rumbler31 joined #lisp 2020-05-07T18:55:52Z bitmapper: apple please i want to runt lispworks 2020-05-07T18:56:12Z jasom: bitmapper: it runs just fine in parallels :P 2020-05-07T18:56:24Z bitmapper: i don't have the disk space to run an entire virtual machine 2020-05-07T18:56:54Z jasom: yeah, last time I owned an apple machine you could at least upgrade the storage; apple's disk premiums are insane 2020-05-07T18:57:08Z jackdaniel: is it some kind of apple policy to break things fast and don't care? if so, why people insist it is a good choice for a computer? 2020-05-07T18:57:32Z bitmapper: nah it's just my ssd is small and i don't have the money to get a new one 2020-05-07T18:57:58Z rumbler31 quit (Ping timeout: 260 seconds) 2020-05-07T18:58:40Z jasom: bitmapper: I have some 2.5" 1TB drives lying around collecting dust; I'll mail one to you if you want to buy a USB enclosure for one 2020-05-07T18:59:02Z bitmapper: nah that's fine, i should just replace my cd drive with a caddy at that point 2020-05-07T18:59:21Z jasom: jackdaniel: to be fair, apple has been 64-bit for like a decade now 2020-05-07T19:00:08Z bitmapper: to be fair, most computers have been 64bit for more than a decade 2020-05-07T19:00:16Z bitmapper: i don't have an issue with the switch to 64bit 2020-05-07T19:00:21Z jackdaniel: I thought it is about 32 bit version not running for some reason. I get from time to time reports that either McCLIM or ECL doesn't work there, because they've changed something 2020-05-07T19:00:35Z jackdaniel: i.e apparently now x11 server is very slow on osx, because of reasons (switch to vulcan) 2020-05-07T19:00:37Z jasom: jackdaniel: Apple just retired 32-bit application support 2020-05-07T19:00:45Z bitmapper: jackdaniel: metal, not vulkan 2020-05-07T19:00:51Z bitmapper: there's no vulkan on macos at all 2020-05-07T19:00:57Z bitmapper: and yeah, apple completely dropped support for running 32bit executables 2020-05-07T19:00:59Z jackdaniel: even better ,) 2020-05-07T19:01:17Z bitmapper: ECL works great on macos though! 2020-05-07T19:01:45Z jasom: Apple never really cared about XQuartz though. 2020-05-07T19:01:45Z jackdaniel: or "why ecl did not work on ios until the last release?", because *of course* they had to invent their own calling convention for variadic functions 2020-05-07T19:02:31Z jackdaniel: bitmapper: it is thanks to kind volunteers who contribute patches, I've never had appleware and I'm not allowed to run legally macos on a virtual machine 2020-05-07T19:02:41Z jackdaniel: in* 2020-05-07T19:02:47Z jasom: Everybody invents their own calling conventions for variadic functions. There's like 3 commonly used ones for arm32 2020-05-07T19:02:49Z bitmapper: i don't use macos by choice at this point 2020-05-07T19:04:03Z jackdaniel: jasom: I've phrased it wrong. they break the assumption, that foo(a, b, ...) may be casted to foo(...) 2020-05-07T19:04:18Z Zakkor joined #lisp 2020-05-07T19:04:54Z jackdaniel: but nevermind, my point is that from a quantity of bug reports and timing of them the following applies: windows is very tricky to get right, apple frequently breaks for incompatible changes 2020-05-07T19:08:52Z bitmapper: but yeah, basically lispworks personal edition doesn't work period on macos catalina 2020-05-07T19:10:51Z dale joined #lisp 2020-05-07T19:11:18Z narimiran joined #lisp 2020-05-07T19:17:38Z sh_zam left #lisp 2020-05-07T19:19:54Z rwcom3417 quit (Ping timeout: 240 seconds) 2020-05-07T19:22:14Z monokrom quit (Ping timeout: 240 seconds) 2020-05-07T19:22:58Z Josh_2 joined #lisp 2020-05-07T19:27:25Z frgo joined #lisp 2020-05-07T19:28:06Z frgo_ joined #lisp 2020-05-07T19:30:02Z patlv joined #lisp 2020-05-07T19:31:45Z frgo quit (Ping timeout: 252 seconds) 2020-05-07T19:32:21Z Josh_2 quit (Read error: Connection reset by peer) 2020-05-07T19:33:14Z Josh_2 joined #lisp 2020-05-07T19:37:04Z refpga quit (Ping timeout: 272 seconds) 2020-05-07T19:54:03Z rumbler31 joined #lisp 2020-05-07T19:59:06Z rumbler31 quit (Ping timeout: 260 seconds) 2020-05-07T20:00:20Z xristos: bitmapper: take it up with lispworks or stick with mojave ;p 2020-05-07T20:00:28Z xristos: i'm still running 10.13 and don't plan to upgrade ever 2020-05-07T20:00:42Z xristos: which means that at some point i'm going back to desktop linux (shudder) 2020-05-07T20:01:37Z LdBeth: Still in Mojave 2020-05-07T20:02:39Z yankM quit (Remote host closed the connection) 2020-05-07T20:02:39Z xristos: the thing i'm going to miss the most is apple events 2020-05-07T20:03:19Z xristos: the fact that apple doesn't give two shits about it and has left it to bitrot is the icing on the cake 2020-05-07T20:03:57Z CrazyPython quit (Read error: Connection reset by peer) 2020-05-07T20:04:13Z xristos: iirc the original spark comes from a former Xerox park employee who ended up at Apple working in automation technologies and spearheaded the effort 2020-05-07T20:04:38Z slyrus_ quit (Read error: Connection reset by peer) 2020-05-07T20:04:38Z xristos: a great idea can percolate and find its way through the ages 2020-05-07T20:05:10Z xristos: *parc 2020-05-07T20:05:27Z bitmapper: i think another issue is considering 64bit support a luxury feature :p 2020-05-07T20:05:30Z ljavorsk joined #lisp 2020-05-07T20:06:45Z xristos: that's the IDA Pro school of marketing 2020-05-07T20:09:33Z _death: twice the bits at twice the price 2020-05-07T20:09:53Z efm quit (Remote host closed the connection) 2020-05-07T20:10:46Z bitmapper: good ol 1500$ hobbyist version 2020-05-07T20:11:57Z LdBeth: If it’s on Mac I cannot think of any reason prefer paid ACL over free CCL 2020-05-07T20:12:48Z LdBeth: unless you’re using some old code uses ACL exclusive libraries 2020-05-07T20:13:05Z bitmapper: yep 2020-05-07T20:13:08Z bitmapper: acl/lispworks 2020-05-07T20:14:38Z efm joined #lisp 2020-05-07T20:15:15Z efm quit (Remote host closed the connection) 2020-05-07T20:21:49Z narimiran quit (Ping timeout: 246 seconds) 2020-05-07T20:26:58Z guest234 joined #lisp 2020-05-07T20:41:14Z buffergn0me quit (Ping timeout: 256 seconds) 2020-05-07T20:46:04Z elinow quit (Ping timeout: 256 seconds) 2020-05-07T20:47:39Z frgo_ quit 2020-05-07T20:49:39Z karlosz joined #lisp 2020-05-07T20:51:10Z sstc joined #lisp 2020-05-07T20:54:10Z rotty quit (Ping timeout: 260 seconds) 2020-05-07T20:55:01Z rumbler31 joined #lisp 2020-05-07T20:57:17Z sstc quit (Quit: WeeChat 2.8) 2020-05-07T20:57:46Z sstc joined #lisp 2020-05-07T20:58:55Z rotty joined #lisp 2020-05-07T20:59:40Z rumbler31 quit (Ping timeout: 256 seconds) 2020-05-07T20:59:56Z sstc quit (Client Quit) 2020-05-07T21:00:10Z holycow quit (Quit: Lost terminal) 2020-05-07T21:02:26Z marcoxa quit (Quit: Time to go to bed.) 2020-05-07T21:02:34Z sstc joined #lisp 2020-05-07T21:03:00Z sstc quit (Client Quit) 2020-05-07T21:03:25Z sstc joined #lisp 2020-05-07T21:04:17Z sstc quit (Client Quit) 2020-05-07T21:05:59Z sstc joined #lisp 2020-05-07T21:07:24Z karayan quit (Remote host closed the connection) 2020-05-07T21:08:23Z sstc quit (Client Quit) 2020-05-07T21:09:44Z sstc joined #lisp 2020-05-07T21:10:33Z ahungry quit (Remote host closed the connection) 2020-05-07T21:10:41Z karayan joined #lisp 2020-05-07T21:15:12Z karayan quit (Ping timeout: 260 seconds) 2020-05-07T21:22:37Z Lord_of_Life_ joined #lisp 2020-05-07T21:23:06Z Zakkor quit (Quit: Connection closed for inactivity) 2020-05-07T21:23:37Z Lord_of_Life quit (Ping timeout: 264 seconds) 2020-05-07T21:24:14Z Josh_2 quit (Ping timeout: 240 seconds) 2020-05-07T21:25:27Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-07T21:26:00Z ljavorsk quit (Ping timeout: 272 seconds) 2020-05-07T21:32:49Z rumbler31 joined #lisp 2020-05-07T21:33:16Z pve quit (Quit: leaving) 2020-05-07T21:46:27Z jruiz joined #lisp 2020-05-07T21:47:17Z buffergn0me joined #lisp 2020-05-07T21:49:11Z ArthurStrong joined #lisp 2020-05-07T21:49:14Z guest234 quit (Remote host closed the connection) 2020-05-07T21:53:54Z gravicappa quit (Ping timeout: 260 seconds) 2020-05-07T21:55:13Z karlosz quit (Read error: Connection reset by peer) 2020-05-07T21:55:23Z karlosz joined #lisp 2020-05-07T21:56:52Z motersen joined #lisp 2020-05-07T22:00:01Z azureBlob joined #lisp 2020-05-07T22:03:18Z karlosz quit (Quit: karlosz) 2020-05-07T22:03:32Z karlosz joined #lisp 2020-05-07T22:04:07Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-07T22:04:36Z patlv quit (Quit: patlv) 2020-05-07T22:05:18Z azureBlob: Hello, I am having an issue with common lisp, I created a function and tried to use it in two places, once as the first argument to setf and later as part of the argument for another function, for some reason clisp is telling me the former isn't defined, but when I switch out just the former for it's body (as in remove the function call) it works perfectly and I don't get what's going on :/ Here's the code with a couple of comments 2020-05-07T22:05:18Z azureBlob: https://pastebin.com/28xJxYVT particuarly the issue appears on line 37 and 38 2020-05-07T22:07:23Z Bike: azureBlob: get-connections is a function, so setf, the macro, can only call it - not examine and use its body. So you have to tell setf how to setf a get-connections place, for example by defining a function named (setf get-connections). 2020-05-07T22:07:34Z karlosz quit (Read error: Connection reset by peer) 2020-05-07T22:07:47Z karlosz joined #lisp 2020-05-07T22:08:01Z Bike: or you could define get-connections as a macro instead, so that setf can use its expansion. 2020-05-07T22:08:48Z LdBeth: azureBlob: it is because setf works by looking up the corresponding "setter" for the functions, the setter for built-ins such as gethash are predefined but user defined functions are not, which you have to supply by your own 2020-05-07T22:08:49Z azureBlob: with the first tip you mean doing something like (defun (setf get-connections) (blah)...)? 2020-05-07T22:08:57Z Bike: yes. 2020-05-07T22:08:59Z LdBeth: yup 2020-05-07T22:09:13Z azureBlob: didn't know that was a thing, neat, I'll check it out 2020-05-07T22:09:17Z Bike: (defun get-connections (new-value graph name) (setf (gethash name (e graph)) new-value)) 2020-05-07T22:09:25Z Bike: by the way, how does that code work? (e g) seems wrong to me? 2020-05-07T22:10:16Z scymtym: Bike meant (defun (setf get-connections) (new-value ...) ...) 2020-05-07T22:10:22Z Bike: oh. yes. 2020-05-07T22:10:28Z azureBlob: (e g) gives you the set of sets E from G 2020-05-07T22:10:34Z amerlyq quit (Quit: amerlyq) 2020-05-07T22:10:42Z Bike: yes, but i mean, the variable is called "graph", not "g". 2020-05-07T22:10:42Z azureBlob: like it's an accessor, I got that from the cookbook 2020-05-07T22:10:56Z azureBlob: oh!!!!!!!!!! 2020-05-07T22:11:15Z Bike: also if you use single character names your code will be hard to read, but that's a different issue 2020-05-07T22:11:19Z azureBlob: didn't see that lmao must have worked cause I always have a variable g floating around 2020-05-07T22:11:36Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-07T22:12:38Z azureBlob: yeah, g e and v are like standard notation for graphs https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)#Directed_graph 2020-05-07T22:13:13Z Bike: yeah, i know. 2020-05-07T22:13:15Z azureBlob: thanks a lot btw! really helped :D 2020-05-07T22:13:18Z Bike: great. 2020-05-07T22:14:26Z random-nick quit (Ping timeout: 258 seconds) 2020-05-07T22:17:14Z terpri joined #lisp 2020-05-07T22:19:21Z rpg joined #lisp 2020-05-07T22:20:46Z motersen quit (Ping timeout: 240 seconds) 2020-05-07T22:29:42Z quazimodo quit (Ping timeout: 256 seconds) 2020-05-07T22:30:01Z quazimodo joined #lisp 2020-05-07T22:34:53Z Felix___ joined #lisp 2020-05-07T22:38:02Z rand_t joined #lisp 2020-05-07T22:40:15Z Felix___ quit (Ping timeout: 260 seconds) 2020-05-07T22:40:40Z Fare joined #lisp 2020-05-07T22:43:45Z choegusung joined #lisp 2020-05-07T22:43:50Z choegusung quit (Client Quit) 2020-05-07T22:47:53Z madage quit (Quit: leaving) 2020-05-07T22:53:47Z ntqz joined #lisp 2020-05-07T22:59:40Z cosimone_ quit (Quit: Quit.) 2020-05-07T23:01:15Z kmeow quit (Quit: No Ping reply in 180 seconds.) 2020-05-07T23:02:32Z kmeow joined #lisp 2020-05-07T23:18:41Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-07T23:22:38Z elflng quit (Read error: No route to host) 2020-05-07T23:22:56Z elflng joined #lisp 2020-05-07T23:23:31Z gxt_ joined #lisp 2020-05-07T23:26:23Z gxt quit (Ping timeout: 240 seconds) 2020-05-07T23:27:18Z rpg joined #lisp 2020-05-07T23:29:22Z jruiz quit (Ping timeout: 260 seconds) 2020-05-07T23:34:04Z Oladon joined #lisp 2020-05-07T23:40:55Z shifty quit (Ping timeout: 260 seconds) 2020-05-07T23:50:29Z terpri quit (Remote host closed the connection) 2020-05-07T23:50:56Z terpri joined #lisp 2020-05-07T23:51:06Z jonatack_ joined #lisp 2020-05-07T23:52:44Z efm joined #lisp 2020-05-07T23:54:27Z jonatack quit (Ping timeout: 260 seconds) 2020-05-07T23:56:26Z wxie joined #lisp 2020-05-07T23:59:05Z theseb quit (Quit: Leaving) 2020-05-08T00:04:52Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-08T00:06:23Z yankM joined #lisp 2020-05-08T00:09:55Z buffergn0me quit (Ping timeout: 244 seconds) 2020-05-08T00:11:16Z buffergn0me joined #lisp 2020-05-08T00:11:22Z jonatack_ quit (Quit: jonatack_) 2020-05-08T00:11:54Z jonatack joined #lisp 2020-05-08T00:18:45Z gko joined #lisp 2020-05-08T00:20:10Z sjl_ quit (Ping timeout: 258 seconds) 2020-05-08T00:26:47Z rgherdt quit (Ping timeout: 272 seconds) 2020-05-08T00:41:02Z Necktwi_ joined #lisp 2020-05-08T00:42:22Z Nilby joined #lisp 2020-05-08T00:42:54Z Necktwi quit (Ping timeout: 240 seconds) 2020-05-08T00:45:25Z v88m joined #lisp 2020-05-08T00:49:59Z zaquest quit (Quit: Leaving) 2020-05-08T00:55:44Z Lord_of_Life quit (Read error: Connection reset by peer) 2020-05-08T00:56:17Z jruiz joined #lisp 2020-05-08T00:56:42Z zaquest joined #lisp 2020-05-08T00:56:53Z Lord_of_Life joined #lisp 2020-05-08T00:57:13Z ahungry joined #lisp 2020-05-08T00:58:10Z SGASAU quit (Remote host closed the connection) 2020-05-08T00:58:19Z jonatack quit (Ping timeout: 246 seconds) 2020-05-08T00:58:48Z SGASAU joined #lisp 2020-05-08T01:05:37Z gko quit (Ping timeout: 260 seconds) 2020-05-08T01:05:46Z bitmapper quit (Ping timeout: 272 seconds) 2020-05-08T01:07:52Z wxie quit (Ping timeout: 256 seconds) 2020-05-08T01:23:27Z rand_t quit (Quit: rand_t) 2020-05-08T01:23:49Z azureBlob quit (Remote host closed the connection) 2020-05-08T01:27:07Z yitzi quit (Quit: yitzi) 2020-05-08T01:27:23Z SGASAU quit (Remote host closed the connection) 2020-05-08T01:30:21Z SGASAU joined #lisp 2020-05-08T01:31:23Z shifty joined #lisp 2020-05-08T01:33:10Z rpg joined #lisp 2020-05-08T01:35:29Z gelatram quit (Ping timeout: 245 seconds) 2020-05-08T01:36:25Z SGASAU quit (Remote host closed the connection) 2020-05-08T01:37:01Z SGASAU joined #lisp 2020-05-08T01:43:40Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2020-05-08T01:45:30Z buffergn0me quit (Ping timeout: 244 seconds) 2020-05-08T01:53:58Z buffergn0me joined #lisp 2020-05-08T01:58:59Z parjanya joined #lisp 2020-05-08T02:08:37Z toorevitimirp joined #lisp 2020-05-08T02:14:49Z Codaraxis quit (Read error: Connection reset by peer) 2020-05-08T02:15:40Z dddddd quit (Ping timeout: 246 seconds) 2020-05-08T02:19:32Z shangul joined #lisp 2020-05-08T02:20:40Z wxie joined #lisp 2020-05-08T02:36:50Z jruiz quit (Ping timeout: 256 seconds) 2020-05-08T02:38:03Z jruiz joined #lisp 2020-05-08T02:43:04Z jruiz quit (Ping timeout: 256 seconds) 2020-05-08T02:43:35Z turona quit (Ping timeout: 272 seconds) 2020-05-08T02:45:34Z karayan joined #lisp 2020-05-08T02:46:00Z turona joined #lisp 2020-05-08T02:47:22Z karlosz quit (Quit: karlosz) 2020-05-08T02:47:32Z niceplace quit (Ping timeout: 256 seconds) 2020-05-08T02:47:39Z niceplaces joined #lisp 2020-05-08T02:47:55Z karlosz joined #lisp 2020-05-08T02:48:00Z karlosz quit (Remote host closed the connection) 2020-05-08T02:48:30Z karlosz joined #lisp 2020-05-08T02:48:36Z karlosz quit (Remote host closed the connection) 2020-05-08T02:49:09Z karlosz joined #lisp 2020-05-08T02:49:13Z karlosz quit (Remote host closed the connection) 2020-05-08T02:49:17Z jruiz joined #lisp 2020-05-08T02:49:44Z karlosz joined #lisp 2020-05-08T02:49:49Z karlosz quit (Remote host closed the connection) 2020-05-08T02:50:26Z karlosz joined #lisp 2020-05-08T02:50:26Z karlosz quit (Remote host closed the connection) 2020-05-08T02:50:58Z karlosz joined #lisp 2020-05-08T02:51:01Z karlosz quit (Remote host closed the connection) 2020-05-08T02:54:13Z jruiz quit (Ping timeout: 264 seconds) 2020-05-08T02:58:57Z lalilulelo joined #lisp 2020-05-08T03:07:49Z beach: Good morning everyone! 2020-05-08T03:08:07Z toorevitimirp quit (Ping timeout: 260 seconds) 2020-05-08T03:08:08Z beach: phoe: Congratulations! Yes, two weeks will be fine. 2020-05-08T03:21:11Z rwcom3417 joined #lisp 2020-05-08T03:21:48Z Oladon quit (Quit: Leaving.) 2020-05-08T03:29:52Z wxie quit (Ping timeout: 246 seconds) 2020-05-08T03:31:08Z jeosol quit (Remote host closed the connection) 2020-05-08T03:37:46Z pfdietz quit (Remote host closed the connection) 2020-05-08T03:46:14Z mrcom quit (Read error: Connection reset by peer) 2020-05-08T03:50:35Z SGASAU quit (Remote host closed the connection) 2020-05-08T03:51:33Z SGASAU` joined #lisp 2020-05-08T03:55:30Z Necktwi_ quit (Ping timeout: 272 seconds) 2020-05-08T03:56:03Z Bike quit (Quit: leaving) 2020-05-08T03:56:24Z rwcom3417 quit (Quit: Ping timeout (120 seconds)) 2020-05-08T03:57:01Z rwcom3417 joined #lisp 2020-05-08T03:57:47Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-08T03:58:11Z madage joined #lisp 2020-05-08T03:58:27Z SGASAU joined #lisp 2020-05-08T04:01:53Z lxbarbosa quit (Ping timeout: 265 seconds) 2020-05-08T04:02:02Z Necktwi joined #lisp 2020-05-08T04:05:40Z SGASAU quit (Remote host closed the connection) 2020-05-08T04:06:19Z SGASAU` joined #lisp 2020-05-08T04:23:55Z jeosol joined #lisp 2020-05-08T04:25:34Z zulu-inuoe_ joined #lisp 2020-05-08T04:28:42Z zulu-inuoe quit (Ping timeout: 260 seconds) 2020-05-08T04:33:34Z sstc quit (Quit: WeeChat 2.8) 2020-05-08T04:37:56Z jruiz joined #lisp 2020-05-08T04:43:00Z jruiz quit (Ping timeout: 272 seconds) 2020-05-08T04:49:55Z Oladon joined #lisp 2020-05-08T04:55:57Z lalilulelo quit (Quit: Leaving) 2020-05-08T04:57:59Z sbodin joined #lisp 2020-05-08T05:08:11Z gravicappa joined #lisp 2020-05-08T05:09:23Z ahungry quit (Remote host closed the connection) 2020-05-08T05:10:00Z karlosz joined #lisp 2020-05-08T05:12:45Z sauvin joined #lisp 2020-05-08T05:12:47Z buffergn0me quit (Quit: ERC (IRC client for Emacs 26.2)) 2020-05-08T05:23:31Z v88m quit (Remote host closed the connection) 2020-05-08T05:28:54Z rwcom3417 quit (Ping timeout: 240 seconds) 2020-05-08T05:29:51Z rwcom3417 joined #lisp 2020-05-08T05:35:20Z SGASAU joined #lisp 2020-05-08T05:37:08Z phoe: beach: thanks. 2020-05-08T05:37:14Z phoe: Also good morning 2020-05-08T05:38:40Z SGASAU` quit (Ping timeout: 256 seconds) 2020-05-08T05:42:22Z narimiran joined #lisp 2020-05-08T05:42:49Z no-defun-allowed: Hello phoe 2020-05-08T05:43:28Z Cymew joined #lisp 2020-05-08T05:43:47Z stepnem_ joined #lisp 2020-05-08T05:44:20Z sdumi quit (Ping timeout: 256 seconds) 2020-05-08T05:44:26Z SGASAU quit (Remote host closed the connection) 2020-05-08T05:44:26Z stepnem quit (Ping timeout: 272 seconds) 2020-05-08T05:44:37Z beach: Hello phoe. 2020-05-08T05:45:37Z Cymew quit (Client Quit) 2020-05-08T05:45:58Z Cymew joined #lisp 2020-05-08T05:45:59Z SGASAU joined #lisp 2020-05-08T05:46:17Z sdumi joined #lisp 2020-05-08T05:58:10Z Oladon quit (Quit: Leaving.) 2020-05-08T05:59:28Z JohnMS_WORK joined #lisp 2020-05-08T06:03:10Z wxie joined #lisp 2020-05-08T06:07:22Z quazimodo quit (Ping timeout: 246 seconds) 2020-05-08T06:09:14Z quazimodo joined #lisp 2020-05-08T06:12:26Z pve joined #lisp 2020-05-08T06:13:56Z beach: phoe: Can you please give me the link again? 2020-05-08T06:18:45Z beach: I may have found it. Is it the conditions.md file? 2020-05-08T06:23:08Z boeg: morning 2020-05-08T06:23:17Z beach: Hello boeg. 2020-05-08T06:24:22Z ober notes asking lw/acl questions here is like when you go into the apple store, and ask for the "black shirt business account reps" and they hustle you off to the side out of view of the public to give you real service. 2020-05-08T06:25:14Z ober: that being said is there a portable method for exit-hooks for say lw? 2020-05-08T06:26:00Z no-defun-allowed: https://github.com/ailisp/exit-hooks supports roughly everything other than LispWorks. 2020-05-08T06:27:05Z beach: The reason for that reaction is that freenode is geared toward free software, and if you have acquired a commercial implementation, you are better off asking their customer support, since most people here probably use a FLOSS implementation. 2020-05-08T06:27:05Z beach: 2020-05-08T06:27:10Z boeg: I'm looking at a manual saying that slime has a command (prefix with ,) called load-system that should, as far as I can see, do what manual quickloading does, but wihtout typing as many characters, though it doesn't seem like my slime has it. Is there such a command, or is the manual i'm looking at wrong? 2020-05-08T06:28:06Z beach: There is such a command. 2020-05-08T06:28:13Z beach: Are you in the REPL buffer? 2020-05-08T06:28:37Z beach: It may not invoke quickload though, perhaps just ASDF. 2020-05-08T06:28:44Z boeg: i'm in slime yes, if i type ",", sayonara and restart-inferior-lisp and so on appears 2020-05-08T06:28:49Z no-defun-allowed: If you have the slime-asdf contrib, then ,load-system should work. 2020-05-08T06:29:03Z Shinmera: the contribs should just all be loaded by default these days 2020-05-08T06:29:03Z ober: beach: freenode rules state the "free" programs use ## 2020-05-08T06:29:13Z no-defun-allowed: I can't disagree with Shinmera. 2020-05-08T06:29:18Z ober: plus let's face it, this channel was here before Rob decided to create freenode 2020-05-08T06:29:40Z beach: ober: I am only explaining your observation. 2020-05-08T06:29:51Z boeg: no-defun-allowed, Shinmera: only thing that appears if i type ",loa" is "compile-and-load" 2020-05-08T06:29:58Z no-defun-allowed: (My .emacs has (slime-setup '(slime-fancy slime-fancy-inspector slime-indentation slime-tramp slime-asdf))) 2020-05-08T06:30:12Z boeg: maybe i'm missing something, ill check 2020-05-08T06:30:23Z boeg: i have no slime setup ... 2020-05-08T06:30:37Z boeg: just installed slime and went on my way i guess 2020-05-08T06:30:39Z ober: original title in this channel was for lw :P 2020-05-08T06:31:18Z Shinmera: Things can change? Perish the thought! 2020-05-08T06:31:40Z ober: like with clhs? 2020-05-08T06:32:09Z ober: not all us are lucky enough to use sbcl at work 2020-05-08T06:32:34Z no-defun-allowed: What implementation do you use then? 2020-05-08T06:33:21Z no-defun-allowed: If it's a commercial implementation, then don't you have other support channels? 2020-05-08T06:33:29Z boeg: no-defun-allowed, Shinmera: yes, i needed that slime-asdf it seems, now i have the load-system although it cannot find my project, i guess it doesnt look in the quicklisp/local-projects dir :) 2020-05-08T06:33:44Z ober: no-defun-allowed: yeah exit-hooks is what I was trying to use, no luck finding an analogue to it in lw. 2020-05-08T06:34:02Z beach: ober: I don't understand your point. Do you want people here to start learning about LispWorks so that they can help people like you? 2020-05-08T06:34:34Z ober: beach: nope. I just know there are some out there that do, and perhaps may know.. 2020-05-08T06:35:44Z ober: some folks still use the older lisps 2020-05-08T06:36:00Z phoe: beach: yes, I've also sent you an invitation to a Git repository where more work happens. 2020-05-08T06:37:01Z White_Flame: ober: actually, it's the other way around. # is for free projects, ## is for general topics 2020-05-08T06:37:12Z White_Flame: technically, #lisp is a bit off in that sense 2020-05-08T06:37:18Z boeg: seems i manually have to (asdf:load-path ...) before i can find my project with ,load-system. Is there a way to tell asdf about my project so I don't have to manually do it? 2020-05-08T06:37:42Z White_Flame: although one could make a defense for the conglomeration of free, interoperable, standard projects 2020-05-08T06:38:12Z phoe: boeg: where is your project located? 2020-05-08T06:38:26Z ober: just fixing the endless Package "SB-EXT" not found. common among ql projects :P 2020-05-08T06:38:34Z boeg: i have it in my project directory, and i have a symlink in my quicklisp/local-projects dir 2020-05-08T06:38:41Z boeg: phoe: ^ 2020-05-08T06:39:04Z phoe: boeg: huh, it should find it without issues if it's available in local-projects 2020-05-08T06:39:18Z boeg: hmm 2020-05-08T06:39:21Z jdz: Assuming quicklisp is loaded. 2020-05-08T06:39:56Z ober: beach: sorry I was not trying to come off as a troll, merely posting the preamble prior to trying to reach out to those few who do use it. 2020-05-08T06:46:49Z boeg: phoe: it doesnt, not before i manually do asdf:load-path. But it is found by quicklisp, I can easily do (ql:quickload :mysystem) 2020-05-08T06:46:49Z boeg: i guess something is awry 2020-05-08T06:48:02Z froggey quit (Ping timeout: 256 seconds) 2020-05-08T06:51:03Z marcoxa joined #lisp 2020-05-08T06:51:18Z Fare: I had an interesting bug: registering all present ASDF systems as immutable, I could not dump an image for the topmost one anymore, because the immutability was marking the image dumping as a forced-not operation. 2020-05-08T06:52:13Z ayuce joined #lisp 2020-05-08T06:52:19Z ober: hey Fare 2020-05-08T06:52:46Z boeg: So does anyone have an idea how to find out what is wrong? I have a symlink to my project in ~/quicklisp/local-projects, and i can (ql:quickload :my-project) but I cannot ,load-system it in slime before I manually (asdf:load-path "full/path/to/my/projects/asd") 2020-05-08T06:54:56Z froggey joined #lisp 2020-05-08T06:59:16Z random-nick joined #lisp 2020-05-08T07:02:55Z amerlyq joined #lisp 2020-05-08T07:02:59Z jackdaniel: a symlink? 2020-05-08T07:03:20Z jackdaniel: missing ql:register-local-projects? 2020-05-08T07:03:27Z boeg: jackdaniel: a symbolic link, i believe its called 2020-05-08T07:04:16Z boeg: i can try, but if that was a problem, how would quickload be able to find it by just providing the symbol of the system (ie :system-name) ? 2020-05-08T07:04:48Z jackdaniel: asdf looks for asd files with the same name as the primary system name 2020-05-08T07:05:02Z jackdaniel: that is part before "/" 2020-05-08T07:05:48Z jackdaniel: i.e system-name.asd 2020-05-08T07:06:48Z jackdaniel: where it looks for them is a) configured, b) programmed with hooks, c) [deprecated] pushed to the central registry 2020-05-08T07:06:49Z boeg: yes - what happens is that if i open a new slime, ,load-system doesn't find my project, but if i then (asdf:load-asd "/Users/cb/Projects/next/next.asd"), then ,load-system can find it. And in ~/quicklisp/local-projects I have a symlink: next -> /Users/cb/Projects/next and I can always load the system with (ql:quickload :next), even without asdf:load-asd it 2020-05-08T07:07:06Z jackdaniel: afaik ql does the b) variant 2020-05-08T07:07:55Z jackdaniel: because a) load-asd is explicit action for defining the system 2020-05-08T07:08:02Z boeg: alright, it just sounded from what phoe said, that if ql:quickload can find it, ,load-system should be able to too 2020-05-08T07:08:26Z jackdaniel: b) local projects is programmed to look in there for not defined systems 2020-05-08T07:08:32Z boeg: indeed 2020-05-08T07:08:45Z boeg: so is there a way to tell ,load-system to look somewhere too? 2020-05-08T07:10:25Z Zakkor joined #lisp 2020-05-08T07:12:43Z jackdaniel: when you addyes 2020-05-08T07:12:52Z jackdaniel: look at asdf doc 2020-05-08T07:13:02Z jackdaniel: conf file or registry 2020-05-08T07:14:39Z beach: phoe: I accepted your invitation. How do you want me to communicate my remarks to you? 2020-05-08T07:16:44Z boeg: jackdaniel: ah, yes, thanks, seems ~/common-lisp is a location 2020-05-08T07:19:00Z rgherdt joined #lisp 2020-05-08T07:22:36Z phoe: beach: GitHub issues preferably 2020-05-08T07:22:42Z SGASAU` joined #lisp 2020-05-08T07:22:50Z beach: phoe: Perfect. 2020-05-08T07:22:55Z phoe: beach: thanks! 2020-05-08T07:23:31Z beach: phoe: One issue per remark, or is a more course granularity acceptable? 2020-05-08T07:23:40Z efm quit (Ping timeout: 246 seconds) 2020-05-08T07:24:39Z phoe: beach: any way you prefer. You can also create a branch on the repo and submit fixes by PRs. 2020-05-08T07:24:54Z beach: That would be too much work for me. 2020-05-08T07:24:56Z phoe: Issues might be better though now that we have multiple reviewers 2020-05-08T07:25:03Z phoe: Good - just issues are fine 2020-05-08T07:25:03Z shifty quit (Remote host closed the connection) 2020-05-08T07:25:22Z shifty joined #lisp 2020-05-08T07:25:46Z SGASAU quit (Ping timeout: 246 seconds) 2020-05-08T07:32:51Z ArthurStrong quit (Read error: Connection reset by peer) 2020-05-08T07:39:16Z Fare: boeg: unlike ~/quicklisp/local-projects/, ~/common-lisp/ is pre-configured in ASDF and has been since 3.1.2 (2015?) 2020-05-08T07:39:49Z Fare: Actually, 2014. 2020-05-08T07:40:00Z jonatack joined #lisp 2020-05-08T07:41:23Z boeg: Fare: yeah, i ended up pushing ~/common-lisp to ql:*local-project-directories* in my .sbclrc and move my symlinks there 2020-05-08T07:41:41Z boeg: seems to have made it so that now its all available to both asdf and quicklisp 2020-05-08T07:42:21Z boeg: its weird that its not by default ... 2020-05-08T07:44:14Z Fare: I have negative credence to Xach, but maybe *you* can convince him. 2020-05-08T07:44:57Z axion: Just bear in mind the Quicklisp's local projects will not automatically pick up sub-directories. You must use register-local-projects manually for that. 2020-05-08T07:45:22Z boeg: good to know 2020-05-08T07:46:12Z axion: Depending on how you set up your symlinks, everything could be a sub-directory. 2020-05-08T07:46:40Z axion: The functionality is explained in the comment here: https://github.com/quicklisp/quicklisp-client/blob/master/quicklisp/local-projects.lisp 2020-05-08T07:51:03Z boeg: good to know 2020-05-08T07:51:05Z boeg: thanks :) 2020-05-08T07:51:13Z marcoxa quit (Ping timeout: 264 seconds) 2020-05-08T07:54:38Z jackdaniel: who would have thought that cl-pro mailing list will have ads for a gerbil scheme ^^ 2020-05-08T07:55:20Z axion: Who would have thought it would get activity this year? 2020-05-08T07:55:28Z jackdaniel: true :) 2020-05-08T07:55:48Z yankM quit (Ping timeout: 256 seconds) 2020-05-08T07:56:04Z rwcom34174 joined #lisp 2020-05-08T07:57:10Z rwcom3417 quit (Ping timeout: 256 seconds) 2020-05-08T07:57:13Z Nilby: who would have thought that define-syntax is an easy way to do macros? 2020-05-08T08:07:41Z doomlist3 joined #lisp 2020-05-08T08:07:43Z doomlist3: hi 2020-05-08T08:08:06Z doomlist3: https://bpaste.net/LDKA it seems the variables are not ggetting update, so what's the cmd to delete a variable to unload it from memory 2020-05-08T08:08:17Z phoe: doomlist3: none 2020-05-08T08:08:29Z phoe: you do not manage memory in Lisp, the system does it for you 2020-05-08T08:08:51Z phoe: also, you seem to be misunderstanding DEFVAR 2020-05-08T08:08:56Z Fare: sometimes you do manage it, and the system gets in the way. But that's rare 2020-05-08T08:09:04Z Bourne` quit (Remote host closed the connection) 2020-05-08T08:09:13Z phoe: Fare: that's edge cases, nothing for a beginner to worry about 2020-05-08T08:09:18Z jackdaniel: uninterning symbol may lead to garbage collection if there are no other references 2020-05-08T08:09:32Z Bourne joined #lisp 2020-05-08T08:09:40Z phoe: doomlist3: if the variable is already set, then DEFVAR will not overwrite it with the new value 2020-05-08T08:10:01Z phoe: you want to either SETF the variable if it's already established or use DEFPARAMETER that will always overwrite the value 2020-05-08T08:13:32Z doomlist3: phoe: so defvar is bad 2020-05-08T08:13:38Z shangul quit (Quit: bye!) 2020-05-08T08:13:56Z v88m joined #lisp 2020-05-08T08:14:03Z axion: No, defvar is quite useful 2020-05-08T08:14:17Z SGASAU` quit (Remote host closed the connection) 2020-05-08T08:14:45Z phoe: doomlist3: no, it's useful, you're just using the wrong tool 2020-05-08T08:14:56Z SGASAU` joined #lisp 2020-05-08T08:14:59Z phoe: DEFVAR is for cases where you don't want your variable to get overwritten when you reevaluate a file 2020-05-08T08:15:12Z phoe: which happens surprisingly often in a Lisp programming model 2020-05-08T08:16:04Z axion: It's also useful when you don't want a root binding for the special. 2020-05-08T08:16:09Z doomlist3: one more doubt- i did (setf *newvar* "hi") and *newvar* got set and defined. 2020-05-08T08:16:20Z doomlist3: even though it wasn't predefined. 2020-05-08T08:16:43Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-08T08:17:14Z axion: That is implementation defined behavior. SBCL will warn in that case. 2020-05-08T08:17:24Z phoe: https://plaster.tymoon.eu/view/1813#1813 2020-05-08T08:17:34Z phoe: it's effectively undefined behaviour 2020-05-08T08:17:50Z doomlist3: axion: I said undefined variable, but set it anyway in sbcl 2020-05-08T08:18:06Z phoe: yes, it's undefined behaviour 2020-05-08T08:18:07Z orivej joined #lisp 2020-05-08T08:18:12Z axion: That is fine, SBCL allows that. But it is effectively undefined behavior. 2020-05-08T08:18:16Z phoe: SBCL does it so pre-ANSI CL code keeps on working 2020-05-08T08:18:27Z v88m quit (Ping timeout: 260 seconds) 2020-05-08T08:18:47Z phoe: older lisps didn't use DEFVAR or DEFPARAMETER and just set symbols like that using toplevel SETF or SETQ 2020-05-08T08:18:57Z doomlist3: clhs setq 2020-05-08T08:18:57Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_setq.htm 2020-05-08T08:19:27Z phoe: but you don't need to worry about SETQ for now either 2020-05-08T08:20:13Z axion: (or ever) 2020-05-08T08:21:49Z phoe: ^ 2020-05-08T08:21:52Z Nilby: (unintern 'setq :cl) 2020-05-08T08:22:04Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-08T08:22:25Z phoe: Nilby: would be useful if it wasn't undefined 2020-05-08T08:23:33Z Nilby: I like to dream. :) 2020-05-08T08:24:15Z SGASAU joined #lisp 2020-05-08T08:24:17Z Nilby: Sometimes I think it would be easier for beginners to swap the meaning of defvar and defparameter too. 2020-05-08T08:24:50Z Fare quit (Ping timeout: 260 seconds) 2020-05-08T08:25:13Z phoe waits for "< beach> We *truly* need a new Common Lisp standard." 2020-05-08T08:25:25Z beach: Heh. 2020-05-08T08:25:47Z Nilby: But getting rid of SETQ would have made porting SHRDLU harder. 2020-05-08T08:26:31Z phoe: anything you SETQ, I SETF better 2020-05-08T08:26:38Z phoe: I SETF anything better than Q 2020-05-08T08:26:50Z phoe dances 2020-05-08T08:27:23Z Nilby claps #lispfilks 2020-05-08T08:27:59Z dale quit (Quit: My computer has gone to sleep) 2020-05-08T08:28:09Z ralt: I never quite got the difference between defvar and defparameter. The only difference I can see is that you can rerun defparameter to redefine the value, whilst for defvar you have to use setf. 2020-05-08T08:28:32Z phoe: that's the difference 2020-05-08T08:28:47Z phoe: (defvar *my-handler* (hunchentoot:make-easy-handler ...)) 2020-05-08T08:28:51Z v88m joined #lisp 2020-05-08T08:28:52Z phoe: (defparameter *my-handler* (hunchentoot:make-easy-handler ...)) 2020-05-08T08:29:15Z phoe: one of those will cause your application to explode when you recompile-reload your file 2020-05-08T08:29:20Z phoe: the other will work fine 2020-05-08T08:30:38Z ralt: Ah, it's for C-c C-k, gotcha 2020-05-08T08:30:52Z beach: ralt: Or for anything that will reload your system. 2020-05-08T08:30:59Z ralt: Right 2020-05-08T08:31:01Z beach: Like ASDF:LOAD-SYSTEM. 2020-05-08T08:31:24Z beach: Or anything else that you do thousands of times during development. 2020-05-08T08:31:50Z wxie quit (Ping timeout: 260 seconds) 2020-05-08T08:33:07Z beach: Though I hear there are people who develop Common Lisp the same way they do C or any other batch language. Those people wouldn't notice the difference, of course. 2020-05-08T08:34:26Z sbodin left #lisp 2020-05-08T08:37:10Z sbodin joined #lisp 2020-05-08T08:37:48Z luis quit (Ping timeout: 256 seconds) 2020-05-08T08:39:18Z luis joined #lisp 2020-05-08T08:43:26Z efm joined #lisp 2020-05-08T08:49:26Z stepnem_ quit (Read error: Connection reset by peer) 2020-05-08T08:52:08Z stepnem joined #lisp 2020-05-08T08:53:32Z jprajzne joined #lisp 2020-05-08T08:54:47Z heisig joined #lisp 2020-05-08T08:55:25Z shifty quit (Ping timeout: 264 seconds) 2020-05-08T08:59:32Z ljavorsk joined #lisp 2020-05-08T09:08:58Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-08T09:18:22Z shka_ joined #lisp 2020-05-08T09:18:33Z SGASAU quit (Remote host closed the connection) 2020-05-08T09:19:21Z SGASAU joined #lisp 2020-05-08T09:22:14Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-08T09:22:15Z Lord_of_Life_ joined #lisp 2020-05-08T09:23:35Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-08T09:29:12Z jruiz joined #lisp 2020-05-08T09:34:22Z jruiz quit (Ping timeout: 260 seconds) 2020-05-08T09:40:47Z holycow joined #lisp 2020-05-08T09:42:18Z SGASAU quit (Remote host closed the connection) 2020-05-08T09:43:01Z SGASAU joined #lisp 2020-05-08T09:45:42Z karlosz quit (Quit: karlosz) 2020-05-08T09:46:12Z karlosz joined #lisp 2020-05-08T09:46:20Z karlosz quit (Remote host closed the connection) 2020-05-08T09:46:46Z karlosz joined #lisp 2020-05-08T09:46:52Z karlosz quit (Remote host closed the connection) 2020-05-08T09:51:13Z nika joined #lisp 2020-05-08T09:57:53Z jasom quit (Ping timeout: 244 seconds) 2020-05-08T09:59:33Z SGASAU quit (Remote host closed the connection) 2020-05-08T10:00:28Z sdumi quit (Ping timeout: 246 seconds) 2020-05-08T10:00:53Z SGASAU joined #lisp 2020-05-08T10:04:47Z sdumi joined #lisp 2020-05-08T10:10:09Z Zakkor quit (Quit: Connection closed for inactivity) 2020-05-08T10:14:43Z doomlist3 quit (Remote host closed the connection) 2020-05-08T10:19:02Z dddddd joined #lisp 2020-05-08T10:19:04Z cosimone joined #lisp 2020-05-08T10:23:41Z joshcom joined #lisp 2020-05-08T10:26:32Z joshcom quit (Remote host closed the connection) 2020-05-08T10:26:50Z yankM joined #lisp 2020-05-08T10:28:23Z lukego: Paul Graham codes by copy-pasting from one terminal running vim into another terminal running CLISP, right? 2020-05-08T10:28:46Z no-defun-allowed: I hope not. 2020-05-08T10:28:59Z wxie joined #lisp 2020-05-08T10:29:34Z jackdaniel: I'm sure that he has some kind of a bridge or an arc to have this automated 2020-05-08T10:30:02Z no-defun-allowed: an Arc? Surely a Bel by now. (: 2020-05-08T10:30:32Z no-defun-allowed: Does Graham even write Common Lisp these days? 2020-05-08T10:30:54Z jackdaniel: I know, my new common lisp standard will be named arcket ! 2020-05-08T10:31:07Z lukego: (I'm thinking of some ancient comment he made about how he did Viaweb development. wasn't something people here would recognize I don't think) 2020-05-08T10:31:13Z SAL9000: jackdaniel: CLtL42 2020-05-08T10:31:26Z jackdaniel: :-) 2020-05-08T10:33:16Z phoe: I propose #.(format nil "CLTL~A" (exp 1.0d0)) to make porting code more natural 2020-05-08T10:33:44Z jackdaniel: arcket will be mroe inviting for people from arc and racket background 2020-05-08T10:35:54Z SAL9000: alternative spelling: |arc> 2020-05-08T10:36:02Z no-defun-allowed: lukego: Well, that was a while ago, and burning one's idols is definitely something one will do when deciding on programming style. 2020-05-08T10:36:23Z SAL9000: (a ket vector |a> in Hilbert space represents the state of a quantum mechanical system) 2020-05-08T10:36:52Z no-defun-allowed: Unless your mind goes down the same paths Graham's did, what he did is about as good as asking any other random person. 2020-05-08T10:38:03Z sugarwren joined #lisp 2020-05-08T10:43:22Z scymtym quit (Ping timeout: 272 seconds) 2020-05-08T10:49:12Z Bike joined #lisp 2020-05-08T10:51:09Z sdumi quit (Read error: Connection reset by peer) 2020-05-08T10:52:18Z wxie quit (Ping timeout: 260 seconds) 2020-05-08T11:00:24Z sdumi joined #lisp 2020-05-08T11:07:31Z lukego: yeah sorry to bring it up, just a factoid that was rattling around my brain and fell out. 2020-05-08T11:11:54Z SGASAU quit (Ping timeout: 260 seconds) 2020-05-08T11:12:31Z SGASAU` joined #lisp 2020-05-08T11:15:07Z SGASAU` quit (Remote host closed the connection) 2020-05-08T11:16:00Z SGASAU` joined #lisp 2020-05-08T11:31:25Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-08T11:33:20Z milanj joined #lisp 2020-05-08T11:34:16Z SGASAU joined #lisp 2020-05-08T11:36:11Z ChoHag: How can I write a macro such that (do it) defines variables or functions it-foo and it-bar? 2020-05-08T11:37:13Z phoe: ChoHag: expand into (let ((it-foo ...) (it-bar ...)) ...) 2020-05-08T11:37:36Z ChoHag: How can I get it to modify the symbol? 2020-05-08T11:37:42Z phoe: you don't modify symbols 2020-05-08T11:37:45Z phoe: you create new ones 2020-05-08T11:37:49Z phoe: you can create these new symbols via alexandria:symbolicate or alexandria:format-symbol or just plain old FORMAT + INTERN 2020-05-08T11:38:08Z no-defun-allowed: First, you need the SYMBOL-NAME of IT, then make new names (possibly with FORMAT), then INTERN those into the appropriate package. (Or use alexandria:symbolicate as phoe said). 2020-05-08T11:39:45Z phoe: no-defun-allowed: no need to get symbol name if you treat symbols with ~A 2020-05-08T11:39:51Z phoe: that's a minor shortcut 2020-05-08T11:40:07Z no-defun-allowed: So, you could have (defmacro make-do (it) (let ((name (alexandria:symbolicate it "-FOO"))) `(defun ,name ...))) 2020-05-08T11:40:10Z no-defun-allowed: phoe: Sure. 2020-05-08T11:42:30Z yitzi joined #lisp 2020-05-08T11:44:28Z jrx joined #lisp 2020-05-08T11:48:38Z phoe: What would be a smallest meaningful example where I can demonstrate that order of superclasses matters in multiple inheritance? 2020-05-08T11:49:24Z orivej quit (Ping timeout: 258 seconds) 2020-05-08T11:50:13Z phoe: the current lisp-koans example has CIRCLE, COLOR, CIRCLED-COLOR and COLORED-CIRCLE, which is feeling kind of synthetic 2020-05-08T11:53:06Z SGASAU quit (Remote host closed the connection) 2020-05-08T11:53:47Z SGASAU joined #lisp 2020-05-08T11:53:51Z jackdaniel: (defclass standard-line (line polyline) …) 2020-05-08T11:54:01Z jackdaniel: conceptually line is also a degenerate case of a polyline 2020-05-08T11:54:20Z jackdaniel: and if you have some method on line and polyline, then it may impact performance 2020-05-08T11:54:39Z jackdaniel: (because i.e you may heavily optimize method for line) 2020-05-08T11:55:13Z jackdaniel: s/standard-line/my-line/ 2020-05-08T11:55:16Z phoe thinks 2020-05-08T11:56:41Z _death: (defmethod stereotypical-food ((person italian)) 'pasta) (defmethod stereotypical-food ((person american)) 'burger) (defclass stereotypical-person (american italian) ()) ;; or is it italian american? 2020-05-08T11:57:18Z cosimone quit (Remote host closed the connection) 2020-05-08T11:57:19Z phoe: _death: hey, that one works surprisingly well 2020-05-08T11:57:40Z _death: examples are fun :) 2020-05-08T11:57:44Z cosimone joined #lisp 2020-05-08T11:58:34Z lukego: Is there a CL test framework that extracts EXPECT/ASSERT style examples from docstrings and tests them? (I know Python has something like that and always wanted one...) 2020-05-08T11:58:54Z phoe: lukego: sounds kind of like a literate programming framework 2020-05-08T11:59:24Z lukego: Could be. Just looking for a hack to avoid duplication between examples in docstrings and examples in simple unit tests. 2020-05-08T12:02:26Z milanj quit (Quit: This computer has gone to sleep) 2020-05-08T12:03:35Z jrx quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-08T12:03:44Z scymtym joined #lisp 2020-05-08T12:04:55Z CrazyPython joined #lisp 2020-05-08T12:05:17Z beach: phoe: In US spelling, you write signaled, signaling, traveling, traveled, etc. In UK spelling, the `l' is often doubled. As a native speaking of American English, you would pronounce the syllable with the double `l', as in signALLed, signALLing, travELLing, travELLed. So you need to choose which spelling you want. 2020-05-08T12:05:38Z phoe: beach: correct. And I have no idea which one I should choose. 2020-05-08T12:06:53Z Nilby tries to avoid mixed concerns: coding examples that make me hungry, docstrings that make code 2020-05-08T12:07:32Z beach: phoe: I can't choose for you, but if you choose UK spelling, it is less likely that I personally will find mistakes consisting of using US spelling. 2020-05-08T12:07:54Z beach: phoe: Use a good spell checker and follow its advice consistently. 2020-05-08T12:07:59Z phoe: beach: OK, will do that. 2020-05-08T12:09:18Z CrazyPython quit (Ping timeout: 260 seconds) 2020-05-08T12:09:37Z beach: phoe: While you are at it, check for all the demonstrative pronouns and make sure each one is followed by a noun phrase. 2020-05-08T12:09:47Z beach: .... which very few exceptions. 2020-05-08T12:09:57Z _death: this example is more of single inheritance.. (defclass american (english) ()) (defclass british (english) ()) ;) 2020-05-08T12:10:10Z beach: phoe: Leaving out the noun phrase very often makes the phrase ambiguous. 2020-05-08T12:10:39Z phoe: beach: could you file an issue with those? I'm doing dayjob things right now and can't easily focus on IRC or the book. 2020-05-08T12:10:49Z lukego: book? 2020-05-08T12:10:52Z beach: phoe: "those"? :) 2020-05-08T12:10:59Z phoe: beach: :( 2020-05-08T12:11:00Z beach: I will. 2020-05-08T12:11:02Z phoe: the remarks of yours 2020-05-08T12:11:09Z phoe: lukego: yes, a book on the CL condition system 2020-05-08T12:11:15Z beach: phoe: That was one example. 2020-05-08T12:11:16Z lukego: oh cool! 2020-05-08T12:11:27Z lukego: Condition system is one of my blind spots, would love to read that 2020-05-08T12:11:34Z CrazyPython joined #lisp 2020-05-08T12:13:18Z beach: phoe: Are you mentioning that the condition system was inspired by that of Multics PL/I? It might interest people who like CS history and it might inspire the others to actually learn their CS history so as to avoid inventing things that already exist. 2020-05-08T12:14:06Z phoe: beach: I'm not. Please file an issue for that! 2020-05-08T12:14:21Z beach: OK. 2020-05-08T12:14:56Z shangul joined #lisp 2020-05-08T12:15:00Z JohnMS joined #lisp 2020-05-08T12:15:33Z minion quit (Disconnected by services) 2020-05-08T12:15:50Z CrazyPython quit (Read error: Connection reset by peer) 2020-05-08T12:16:12Z ebrasca joined #lisp 2020-05-08T12:16:20Z CrazyPython joined #lisp 2020-05-08T12:16:26Z rogersm quit (Ping timeout: 240 seconds) 2020-05-08T12:17:36Z JohnMS_WORK quit (Ping timeout: 256 seconds) 2020-05-08T12:17:36Z troydm quit (Ping timeout: 256 seconds) 2020-05-08T12:17:36Z MetaYan quit (Ping timeout: 256 seconds) 2020-05-08T12:17:47Z MetaYan joined #lisp 2020-05-08T12:18:10Z wigust- quit (Ping timeout: 256 seconds) 2020-05-08T12:18:15Z troydm joined #lisp 2020-05-08T12:18:30Z wigust joined #lisp 2020-05-08T12:19:52Z notzmv quit (Ping timeout: 256 seconds) 2020-05-08T12:21:52Z CrazyPython quit (Read error: Connection reset by peer) 2020-05-08T12:30:42Z |3b|` joined #lisp 2020-05-08T12:30:48Z milanj joined #lisp 2020-05-08T12:31:46Z |3b| quit (Ping timeout: 256 seconds) 2020-05-08T12:32:15Z lavaflow quit (Read error: Connection reset by peer) 2020-05-08T12:33:48Z boeg: You should just write one of those on-the-edge-of-your-seat computer history books 2020-05-08T12:33:51Z boeg: like cuckoos nest 2020-05-08T12:33:57Z boeg: i love those 2020-05-08T12:34:18Z boeg: not as much computer history, more docu thriller involving computers 2020-05-08T12:34:28Z _death: cuckoo's egg? 2020-05-08T12:34:45Z _death: it was a good book ;) 2020-05-08T12:34:58Z phoe: _death: there should be a prequel to it, named cuckoo bird 2020-05-08T12:34:58Z boeg: also more funny, pleasant stuff like Hackers, Where Wizards Stay Up Late and my all time favorite; revolution in the valley 2020-05-08T12:35:14Z boeg: _death: yes, sorry, my bad 2020-05-08T12:35:51Z boeg: revolution in the valley has the best anecdotes ... or the best story teller, hard to tell 2020-05-08T12:36:46Z wsinatra joined #lisp 2020-05-08T12:36:51Z boeg: i have it in that nice hardcover editions. Its the only paper book i own that i wont part with, the rest i'm fine with having digitally 2020-05-08T12:37:23Z boeg: anyways, i just realized this is not actually the café 2020-05-08T12:38:33Z wsinatra quit (Client Quit) 2020-05-08T12:38:39Z rogersm joined #lisp 2020-05-08T12:38:55Z wsinatra joined #lisp 2020-05-08T12:39:31Z hiroaki_ joined #lisp 2020-05-08T12:39:54Z hiroaki quit (Ping timeout: 240 seconds) 2020-05-08T12:44:15Z amerlyq quit (Quit: amerlyq) 2020-05-08T12:45:44Z shka_: good day 2020-05-08T12:46:43Z shka_: beach: how are you doing today? 2020-05-08T12:50:20Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-08T12:50:40Z wsinatra joined #lisp 2020-05-08T12:52:19Z gko joined #lisp 2020-05-08T12:52:43Z rople joined #lisp 2020-05-08T12:53:02Z rople quit (Client Quit) 2020-05-08T12:54:08Z rople joined #lisp 2020-05-08T12:54:20Z beach: shka_: Quite well thank you. I am in the process of "tying the knot", i.e. to create a cyclic graph of CLOS metaobjects in one of the bootstrapping environments. There are some issues, of course, and debugging those issues is not trivial, but I am making great progress. You? 2020-05-08T12:55:45Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-08T12:56:07Z wsinatra joined #lisp 2020-05-08T12:56:19Z boeg: beach: what are you working on, if you don't mind me asking? 2020-05-08T12:56:55Z wsinatra quit (Client Quit) 2020-05-08T12:57:44Z beach: boeg: On SICL: http://metamodular.com/SICL/sicl-specification.pdf 2020-05-08T12:58:02Z wsinatra joined #lisp 2020-05-08T12:58:43Z phoe: beach: does SICL stand for SICL Implements Common Lisp? 2020-05-08T12:58:55Z beach: Oh, that's an interesting one. 2020-05-08T12:59:05Z beach: It doesn't mean anything. It is just easy to pronounce. 2020-05-08T12:59:14Z beach: as "sickle" 2020-05-08T12:59:31Z White_Flame: if it gets popular enough, or stack based, it'll be popsicl 2020-05-08T12:59:43Z beach: Heh. 2020-05-08T12:59:53Z beach: phoe: But I like your interpretation. 2020-05-08T13:00:05Z jruiz joined #lisp 2020-05-08T13:01:27Z rople quit (Quit: rople) 2020-05-08T13:02:02Z phoe: beach: please thank /r/LispMemes for inspiration 2020-05-08T13:02:27Z boeg: beach: ah! 2020-05-08T13:02:39Z beach: phoe: OK. I don't know how to do that, but I would if I did. 2020-05-08T13:02:47Z wsinatra quit (Client Quit) 2020-05-08T13:03:05Z phoe: beach: OK, I'll pass the thanks there. 2020-05-08T13:03:16Z lavaflow joined #lisp 2020-05-08T13:03:56Z beach: boeg: Most of the activity takes place in #sicl, so as not to bore the socks of people in #lisp who might not be interested. I am known to have long rants there, because the channel is logged and it becomes my notebook of ideas. 2020-05-08T13:04:27Z wsinatra joined #lisp 2020-05-08T13:04:33Z phoe: beach: an idea for the condition system I have is to define relevant conditions in separate modules. This way, someone can grab the portable reader and also grab your version of READ-ERROR, even if it ends up being implemented via some other condition system. 2020-05-08T13:04:45Z wsinatra quit (Client Quit) 2020-05-08T13:04:57Z boeg: beach: i'm actually a resident over there, however i forgot everything why i joined and what it was, now i'm looking at the sicl pdf :) 2020-05-08T13:05:34Z rozenglass1 joined #lisp 2020-05-08T13:05:57Z beach: phoe: That's a very good idea. Recently, when we have written libraries meant to be configured, we write many functions so that the trampoline to generic functions with a CLIENT argument, thereby allowing client code to write methods on protocol functions. 2020-05-08T13:05:58Z rozenglass quit (Ping timeout: 246 seconds) 2020-05-08T13:06:02Z wsinatra joined #lisp 2020-05-08T13:06:14Z beach: boeg: Heh OK. 2020-05-08T13:07:51Z wsinatra quit (Client Quit) 2020-05-08T13:08:10Z wsinatra joined #lisp 2020-05-08T13:08:28Z arpunk quit (Remote host closed the connection) 2020-05-08T13:10:04Z wsinatra quit (Client Quit) 2020-05-08T13:10:30Z rwcom34174 quit (Read error: Connection reset by peer) 2020-05-08T13:10:33Z wsinatra joined #lisp 2020-05-08T13:10:34Z EvW joined #lisp 2020-05-08T13:11:31Z rwcom34174 joined #lisp 2020-05-08T13:12:01Z Fare joined #lisp 2020-05-08T13:12:21Z pfdietz joined #lisp 2020-05-08T13:12:52Z wsinatra quit (Client Quit) 2020-05-08T13:13:17Z wsinatra joined #lisp 2020-05-08T13:14:59Z wsinatra quit (Client Quit) 2020-05-08T13:15:33Z phoe: I just got annoyed that I cannot (define-method-combination *) 2020-05-08T13:15:41Z phoe: what if I wanted to multiply all the results together you know 2020-05-08T13:16:32Z shka_: beach: eh, i am looking for a new job, but i was wondering how is your book going 2020-05-08T13:16:56Z beach: shka_: Not going at all at the moment. I think my favorite coauthor has abandoned me. 2020-05-08T13:17:21Z wsinatra joined #lisp 2020-05-08T13:17:30Z shka_: oh 2020-05-08T13:17:44Z shka_: i am sad to hear this 2020-05-08T13:17:56Z beach: Yeah, me too. 2020-05-08T13:19:18Z beach: We are still friends, but she is not doing this kind of work for me anymore. At least not right now. 2020-05-08T13:20:23Z shka_: well, maybe she is just extra busy with some urgent stuff 2020-05-08T13:20:29Z beach: So I am looking for a highly organized native speaking of English with a PhD in Computer Science and extensive experience in Common Lisp programming and using tools such as LaTeX and Unix tools, and who is willing to work for me for free. 2020-05-08T13:20:35Z wsinatra quit (Client Quit) 2020-05-08T13:21:03Z shka_: heh, i don't think i know anyone who matches this criteria 2020-05-08T13:21:05Z wsinatra joined #lisp 2020-05-08T13:21:15Z beach: Yeah, that's precisely the problem. 2020-05-08T13:21:38Z beach: I am willing to skimp on some of the qualifications. 2020-05-08T13:22:08Z beach: In fact, my favorite coauthor is not a native speaker of English, but she did her Postdoc in the US. 2020-05-08T13:22:17Z wsinatra_ joined #lisp 2020-05-08T13:23:07Z shka_: anyway, it sucks because i really hoped that this book would be out this year 2020-05-08T13:23:22Z beach: I understand. I am disappointed as well. 2020-05-08T13:24:00Z pfdietz: I was nodding up to the "free" part. 2020-05-08T13:24:09Z beach: :) 2020-05-08T13:24:30Z boeg: beach: what is it about? Just so I know what I won't be reading ;D 2020-05-08T13:24:31Z beach: There is no money in writing books, so I am basically working for free myself. 2020-05-08T13:24:31Z shka_: so perhaps kickstarter? :D 2020-05-08T13:25:04Z beach: boeg: The title is "Concrete and Abstract Data Types with Algorithms". 2020-05-08T13:25:12Z boeg: umgfh 2020-05-08T13:25:14Z boeg: too bad 2020-05-08T13:25:19Z boeg: sounds like something i'd like 2020-05-08T13:25:19Z pfdietz: Indeed. The median author earns much less than minimum wage. It's a struggle to make a living writing books. 2020-05-08T13:25:48Z beach: pfdietz: Luckily, I don't have to. I have my salary. 2020-05-08T13:26:40Z _death: (with-tongue-in-cheek Paul Graham authored 2 CL books and he's doing quite well) 2020-05-08T13:27:07Z shka_: writing CL books wasn't part of the business plan though 2020-05-08T13:27:10Z shka_: :P 2020-05-08T13:27:16Z pfdietz: The successful ones find a spot where they have an advantage and exploit it. But it's a lot of work, and can take decades to become an overnight success. 2020-05-08T13:27:50Z wsinatra_ quit (Quit: WeeChat 2.8) 2020-05-08T13:28:17Z boeg: I guess the problem, in reality is, that "making a living" is directly tied to how good you are at selling your things. Like if you are good at selling something or yourself, but don't provide something of value to society, you can still make millions, but if you are providing value to society, you can easily go home broke. It's like there is a bug in our system. 2020-05-08T13:28:26Z wsinatra_ joined #lisp 2020-05-08T13:28:32Z ayuce quit (Remote host closed the connection) 2020-05-08T13:29:37Z boeg: well, it's not like there is 2020-05-08T13:29:40Z boeg: there is a bug in our system 2020-05-08T13:29:53Z ayuce joined #lisp 2020-05-08T13:30:04Z beach: Here is the table of contents: http://metamodular.com/types.pdf 2020-05-08T13:30:22Z wsinatra_ quit (Client Quit) 2020-05-08T13:30:25Z Nilby: I have millions worth of free software. 2020-05-08T13:31:03Z wsinatra_ joined #lisp 2020-05-08T13:31:03Z wsinatra_ quit (Client Quit) 2020-05-08T13:31:14Z bitmapper joined #lisp 2020-05-08T13:32:57Z pfdietz: What is an editable sequence? 2020-05-08T13:33:27Z beach: A sequence that accept operations such as insert and delete by position. 2020-05-08T13:33:46Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-08T13:34:02Z pfdietz: Position being the numeric index into the list? 2020-05-08T13:34:10Z shka_: pfdietz: sequence, not list 2020-05-08T13:34:14Z pfdietz: Ok 2020-05-08T13:34:16Z beach: Into the sequence, correct. 2020-05-08T13:34:35Z shka_: and i bet that sequence translates into a concrete example of flexichains 2020-05-08T13:35:00Z wsinatra joined #lisp 2020-05-08T13:35:27Z beach: I am not sure I use gap buffer as one of the implementations. 2020-05-08T13:35:39Z wsinatra quit (Client Quit) 2020-05-08T13:35:43Z pfdietz: There is an old problem of inserting into a list, but where the position is given by a pointer to the predecessor. The interesting part is doing order queries: given two pointers into this list, which is closer to the front? 2020-05-08T13:35:58Z shka_: ok, i was expecting flexichains for obvious reasons 2020-05-08T13:36:18Z beach: Sure. 2020-05-08T13:36:26Z beach: I am pretty sure I use some kind of tree. 2020-05-08T13:36:37Z beach: Let me check... 2020-05-08T13:36:51Z phoe pushes CLOS and method combinations to his fork of lisp-koans 2020-05-08T13:36:54Z heisig quit (Ping timeout: 272 seconds) 2020-05-08T13:37:07Z yankM quit (Ping timeout: 258 seconds) 2020-05-08T13:37:15Z phoe: six lessons remaining 2020-05-08T13:37:15Z beach: shka_: I use a 2-3-tree. 2020-05-08T13:37:17Z phoe: that's not much 2020-05-08T13:37:23Z shka_: ha! 2020-05-08T13:37:35Z shka_: i use 2-3-tree as a immutable queue 2020-05-08T13:38:02Z beach: 2-3-trees are under-appreciated. 2020-05-08T13:38:09Z SAL9000 quit (Read error: Connection reset by peer) 2020-05-08T13:38:22Z beach: They have a reputation of being hard to implement. I disagree. 2020-05-08T13:38:23Z SAL9000 joined #lisp 2020-05-08T13:38:35Z shka_: in fact it is code originally written by you, and this is reason why i switched license from MIT to BSD 2020-05-08T13:38:47Z beach: Oh! Heh! 2020-05-08T13:39:15Z wsinatra joined #lisp 2020-05-08T13:40:21Z shka_: and honestly, they are a little bit difficult to implement correctly, but a lot less then some really tricky data structures, like for instance RB-tree 2020-05-08T13:40:37Z beach: Absolutely. 2020-05-08T13:40:52Z beach: And the performance is identical if I remember correctly. 2020-05-08T13:41:04Z shka_: for lookup? 2020-05-08T13:41:11Z rippa joined #lisp 2020-05-08T13:41:13Z shka_: or for insert? 2020-05-08T13:41:19Z beach: All operations I think. 2020-05-08T13:41:33Z shka_: i am not sure about the insert tbh 2020-05-08T13:41:43Z beach: 2-3-trees might have fewer memory accesses. 2020-05-08T13:41:54Z shka_: true 2020-05-08T13:43:01Z beach: pfdietz: Either way, a linked list is out of the question as the concrete type underlying an editable sequence. 2020-05-08T13:44:28Z shka_: linear everything is not ideal 2020-05-08T13:44:42Z beach: Exactly. 2020-05-08T13:44:46Z shka_: also, lists can be memory hungry 2020-05-08T13:45:02Z shka_: if you are for instance holding a single character in each cell 2020-05-08T13:45:17Z JohnMS quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2020-05-08T13:45:21Z beach: Yes, and that's the topic for the second use case: editor buffer. 2020-05-08T13:45:33Z shka_: erlang strings ar linked lists 2020-05-08T13:45:37Z shka_: it is amusing as heck 2020-05-08T13:45:54Z beach: I mean, and editor buffer is essentially an editable sequence where the elements are characters, frequently organized into lines. 2020-05-08T13:46:35Z beach: Though, I allow for elements of different types, but characters are handled specially. 2020-05-08T13:46:41Z beach: That's what Cluffer is about. 2020-05-08T13:46:55Z flazh quit (Quit: flazh) 2020-05-08T13:47:36Z shka_: beach: well, it was a pleasure to chat with you, once again sorry about your coauthor but I hope that she is ok 2020-05-08T13:48:16Z Fade quit (Ping timeout: 256 seconds) 2020-05-08T13:48:18Z flazh joined #lisp 2020-05-08T13:48:24Z Fade joined #lisp 2020-05-08T13:48:37Z pfdietz: Algorithms becomes a different subject once you start worrying about the constants. 2020-05-08T13:48:49Z SGASAU quit (Ping timeout: 264 seconds) 2020-05-08T13:48:50Z borodust quit (Ping timeout: 256 seconds) 2020-05-08T13:49:09Z beach: shka_: Thanks. Yes, she is OK. Just has different priorities. 2020-05-08T13:49:20Z shka_: pfdietz: true, but there is a lot of areas when things need to scale to n 2020-05-08T13:49:42Z beach: pfdietz: Yes, and so many authors ignore the importance of constants. 2020-05-08T13:49:59Z pfdietz: n vs. n^2, constants not too important. n vs. nloglogn, constants are very important. :) 2020-05-08T13:50:11Z beach: Many books by experts show implementations of binary search that take twice the time they need to. 2020-05-08T13:50:39Z beach: It is embarrassing really. 2020-05-08T13:51:00Z borodust joined #lisp 2020-05-08T13:51:25Z borodust is now known as Guest14592 2020-05-08T13:52:00Z Nilby: My paradoxical belief is that editing buffers should be immutable. 2020-05-08T13:52:16Z shka_: Nilby: because of undo? 2020-05-08T13:52:20Z Nilby: Yes. 2020-05-08T13:52:53Z shka_: eh, you may keep undo trail 2020-05-08T13:53:50Z Nilby: And also supporting paralell "mutation". 2020-05-08T13:54:28Z shka_: ok, this is a big one 2020-05-08T13:58:50Z jasom joined #lisp 2020-05-08T14:02:37Z beach` joined #lisp 2020-05-08T14:03:31Z beach quit (Disconnected by services) 2020-05-08T14:03:35Z beach` is now known as beach 2020-05-08T14:04:53Z pfdietz: Full persistence 2020-05-08T14:05:07Z SGASAU joined #lisp 2020-05-08T14:07:52Z phoe: being able to rewrite the koans on the condition system kinda brings a wicked smile to my face 2020-05-08T14:08:06Z phoe: something between "this should be easy" and "oh no not again" 2020-05-08T14:11:18Z pfdietz: shka_: one can implement an array with full persistence (being able to mutate a tree of versions) in O(nloglogn) time for n operations. This is not a practical algorithm though. 2020-05-08T14:11:34Z shka_ quit (Ping timeout: 240 seconds) 2020-05-08T14:11:35Z _death: (define-condition subspace-anomaly (anomaly) ()) ;; been watching too much star trek 2020-05-08T14:11:45Z shka_ joined #lisp 2020-05-08T14:16:03Z EvW quit (Ping timeout: 260 seconds) 2020-05-08T14:28:04Z MetaYan quit (Ping timeout: 256 seconds) 2020-05-08T14:28:27Z MetaYan joined #lisp 2020-05-08T14:28:47Z White_Flame quit (Read error: Connection reset by peer) 2020-05-08T14:29:26Z White_Flame joined #lisp 2020-05-08T14:29:38Z shka_ quit (Ping timeout: 256 seconds) 2020-05-08T14:29:38Z rippa quit (Ping timeout: 256 seconds) 2020-05-08T14:34:08Z sjl_ joined #lisp 2020-05-08T14:36:47Z heisig joined #lisp 2020-05-08T14:42:06Z mixfix41 joined #lisp 2020-05-08T14:43:56Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-08T14:52:47Z EvW joined #lisp 2020-05-08T14:55:08Z dale_ joined #lisp 2020-05-08T14:55:28Z dale_ is now known as dale 2020-05-08T14:58:02Z Fare quit (Ping timeout: 256 seconds) 2020-05-08T15:00:49Z Fare joined #lisp 2020-05-08T15:06:10Z mixfix41 quit (Ping timeout: 260 seconds) 2020-05-08T15:07:04Z Blukunfando joined #lisp 2020-05-08T15:09:25Z Josh_2 joined #lisp 2020-05-08T15:11:25Z heisig quit (Remote host closed the connection) 2020-05-08T15:11:43Z heisig joined #lisp 2020-05-08T15:14:24Z Misha_B quit (Ping timeout: 256 seconds) 2020-05-08T15:15:58Z sdumi quit (Ping timeout: 260 seconds) 2020-05-08T15:20:10Z lukego: man my lisp is rusty, it took me like 20 minutes to understand why (loop for (a b &rest c) in '((a b c1 c2 c3)) collect c) returns (C2) and not (C1 C2 C3) 2020-05-08T15:20:19Z nowhereman joined #lisp 2020-05-08T15:20:46Z shangul quit (Ping timeout: 272 seconds) 2020-05-08T15:21:39Z _death: yeah, it should be (a b . c) 2020-05-08T15:21:52Z Josh_2: I have never seen that done before 2020-05-08T15:22:37Z shka_ joined #lisp 2020-05-08T15:23:21Z beach: _death: Why? 2020-05-08T15:23:28Z beach: Oh, I see what you mean. 2020-05-08T15:23:29Z nowhere_man quit (Read error: Connection reset by peer) 2020-05-08T15:23:30Z beach: Right. 2020-05-08T15:23:34Z _death: beach: loop does not support the full destructuring lambda list syntax 2020-05-08T15:23:53Z beach: Yes, I know. I thought you were talking about the return value. 2020-05-08T15:24:39Z beach: I know because I implemented SICL LOOP. :) 2020-05-08T15:24:52Z _death: ;) 2020-05-08T15:25:05Z __jrjsmrtn__ joined #lisp 2020-05-08T15:25:50Z _jrjsmrtn quit (Ping timeout: 272 seconds) 2020-05-08T15:28:20Z yitzi quit (Quit: yitzi) 2020-05-08T15:32:08Z monokrom joined #lisp 2020-05-08T15:36:18Z sbodin_ joined #lisp 2020-05-08T15:37:39Z phoe: okay, three more koans remaining 2020-05-08T15:37:41Z phoe takes a break 2020-05-08T15:38:02Z sbodin__ joined #lisp 2020-05-08T15:39:54Z sbodin quit (Ping timeout: 256 seconds) 2020-05-08T15:40:40Z ebrasca quit (Remote host closed the connection) 2020-05-08T15:40:48Z kopiyka quit (Remote host closed the connection) 2020-05-08T15:41:02Z sbodin_ quit (Ping timeout: 272 seconds) 2020-05-08T15:41:17Z kopiyka joined #lisp 2020-05-08T15:43:15Z whiteline_ quit (Remote host closed the connection) 2020-05-08T15:43:44Z whiteline_ joined #lisp 2020-05-08T15:52:08Z sdumi joined #lisp 2020-05-08T15:52:42Z mixfix41 joined #lisp 2020-05-08T15:55:15Z SGASAU quit (Remote host closed the connection) 2020-05-08T15:55:46Z Bourne` joined #lisp 2020-05-08T15:55:56Z SGASAU joined #lisp 2020-05-08T15:56:00Z Bourne quit (Ping timeout: 256 seconds) 2020-05-08T15:56:06Z Bourne` quit (Remote host closed the connection) 2020-05-08T15:56:30Z Bourne joined #lisp 2020-05-08T15:57:29Z EvW quit (Ping timeout: 244 seconds) 2020-05-08T15:57:49Z mixfix41 quit (Ping timeout: 264 seconds) 2020-05-08T16:00:30Z efm quit (Read error: Connection reset by peer) 2020-05-08T16:00:39Z heisig quit (Remote host closed the connection) 2020-05-08T16:00:57Z heisig joined #lisp 2020-05-08T16:03:49Z Misha_B joined #lisp 2020-05-08T16:08:03Z terpri quit (Remote host closed the connection) 2020-05-08T16:08:27Z terpri joined #lisp 2020-05-08T16:11:08Z efm joined #lisp 2020-05-08T16:15:19Z lukego: Hey what are some packages that make tasteful use of print functions for structures/objects, esp such that it plays nicely with SLIME? I'm looking at my #S(VENDOR :NAME FOO ...) objects and wondering whether to keep them so verbose or use #."(VENDOR FOO) or # or ... gonna have to feel my way around but would appreciate a good starting point. I'll read the Common Lisp Recipes book on this topic too. 2020-05-08T16:15:35Z phoe: lukego: packages? why packages? 2020-05-08T16:15:55Z lukego: s/packages/examples/ 2020-05-08T16:16:03Z phoe: (defmethod print-object ((object vendor) stream) (print-unreadable-object (object stream :type t) ...)) 2020-05-08T16:17:07Z lukego: Yeah. Unreadable has the virtue of simplicity. But e.g. #.(VENDOR FOO) is almost as concise while also actually being readable. Or if I could make it play nice with presentations somehow then maybe the readability issue is moot. 2020-05-08T16:17:14Z terpri quit (Remote host closed the connection) 2020-05-08T16:17:48Z phoe: lukego: still, that's a print-object method away 2020-05-08T16:17:59Z phoe: check the value of *print-escape* and *print-readably* and base your printing on that 2020-05-08T16:18:02Z jackdaniel: #.(whatever foo) unless carefuly written, may produce a new object which won't be EQ to the original one 2020-05-08T16:18:07Z jackdaniel: and that may be a huge gotcha 2020-05-08T16:18:35Z lukego: I know that CLIM has fancy streams for preserving object identity through printing and so on. is there support for that in SLIME nowadays too? 2020-05-08T16:18:43Z jackdaniel: yes 2020-05-08T16:18:52Z jackdaniel: type "foo" in the slime repl 2020-05-08T16:19:02Z jackdaniel: you may notice, that it is printed in (i.e) red color 2020-05-08T16:19:05Z jackdaniel: it is a presentation 2020-05-08T16:19:21Z lukego: right but if I print a structure can I make each slot a separate presentation, from my lisp print function? 2020-05-08T16:19:23Z jackdaniel: now try to paste this string to another slime repl, you'll get an error that the presentation is unknown 2020-05-08T16:19:53Z jackdaniel: I do not know that 2020-05-08T16:20:03Z jackdaniel: (in CLIM you could) 2020-05-08T16:20:09Z lukego: CLIM would have a tree of presentations right? I'm seeing that in e.g. SLDB where it's constructed specially but not obviously in ordinary printing in the REPL 2020-05-08T16:20:10Z lukego: yeah 2020-05-08T16:20:50Z _death: lukego: you could also use the pprinter dispatch table 2020-05-08T16:20:54Z _Posterdati_ quit (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) 2020-05-08T16:21:08Z lukego: _death: is that different than defining print methods? 2020-05-08T16:21:30Z Posterdati joined #lisp 2020-05-08T16:21:37Z _death: lukego: could be.. for example see https://github.com/death/slime/commit/1fc176377e4658bf7c9ae65667a25fd03d8deef7 2020-05-08T16:22:58Z lukego: Thanks for the tips. I'll now consult Common Lisp Recipes and SLIME manual 2020-05-08T16:26:34Z Nilby quit (Ping timeout: 240 seconds) 2020-05-08T16:26:38Z lukego: and thanks for the word of warning jackdaniel about #.(foo) indeed the use case I had in mind was not a good one 2020-05-08T16:27:29Z jackdaniel: sure 2020-05-08T16:28:50Z cosimone quit (Quit: Quit.) 2020-05-08T16:33:18Z phoe: if you want read-time identity, then basically you need a read-time object store that you can read and write to intern new objects into it; not unlike symbols being interned into packages 2020-05-08T16:37:18Z pfdietz: print methods are methods, and dispatch on class. pprint-dispatch-tables dispatch on types. One could, for example, have a special way of printing (cons (eql defun) t) things. 2020-05-08T16:37:39Z phoe: or printing NIL as () 2020-05-08T16:38:01Z pfdietz: For that, class dispatch would suffice. 2020-05-08T16:38:21Z phoe: yes, but one cannot portably (defmethod print-object ((thing null) stream) ...) 2020-05-08T16:38:35Z pfdietz: Right. Nor could you dynamically bind that. 2020-05-08T16:38:48Z phoe: pfdietz: curious question, can one pass SATISFIES types to a pprint-dispatch-table? 2020-05-08T16:38:54Z phoe: since that allows for arbitrary computation 2020-05-08T16:39:23Z phoe: I guess that's possible, just relatively unexplored 2020-05-08T16:39:34Z pfdietz: phoe: I don't see why not. I suspect it would not be very efficient though. I expect implementations understand CONS, EQL, and MEMBER types and build efficient data structures for them. 2020-05-08T16:40:41Z phoe: pfdietz: yep, SATISFIES would be slow and most likely need some guards in the beginning, like, (cons (eql make-thing) (satisfies make-thing-form-p)) 2020-05-08T16:41:18Z Bike: sbcl precomputes a type test, which seems like a good way to do it, and not any worse than satisfies really 2020-05-08T16:41:27Z Bike: it also special cases cons, but i think that's about it 2020-05-08T16:41:49Z phoe: by "precomputes" you mean it compiles a predicate lambda? 2020-05-08T16:41:52Z _death: pfdietz: that hex printing hack in the commit was very useful for some low-level tasks ;) 2020-05-08T16:42:12Z Bike: phoe: yes, like (lambda (x) (typep x 'type-goes-here)) 2020-05-08T16:42:37Z Bike: and of course (lambda (x) (typep x '(satisfies foo))) is just #'foo 2020-05-08T16:43:11Z pfdietz: As I recall, pprint dispatch hackery was useful for communicating with SMT solvers. The default printer is almost right, except you want it to print NIL as (). 2020-05-08T16:45:22Z gko quit (Ping timeout: 260 seconds) 2020-05-08T16:48:31Z lukego: maybe time to fight this monsterous nix environment that I call home so that I can pull in McCLIM and check out the listener and inspector 2020-05-08T16:49:34Z lukego sticks out ear at talk of SMT solvers from Lisp, a topic he knows nothing of but is curious about... 2020-05-08T16:49:46Z lukego: pfdietz: what's your SMT experience, if I may ask? 2020-05-08T16:49:55Z jackdaniel: if you have problems on the McCLIM side of the coin, you may ask for help on #clim 2020-05-08T16:50:04Z Khisanth joined #lisp 2020-05-08T16:50:05Z pjb: phoe: you can (defmethod print-object ((thing null) stream) ...), but it's not conforming to do so: you could change the behavior of the implementation. Or not. 2020-05-08T16:50:15Z yitzi joined #lisp 2020-05-08T16:50:15Z lukego: thanks jackdaniel 2020-05-08T16:50:15Z pfdietz: I was using Z3 from a Common Lisp at previous-job. 2020-05-08T16:50:26Z Khisanth quit (Client Quit) 2020-05-08T16:50:27Z phoe: pjb: that's what I said, one cannot portably do that. 2020-05-08T16:50:42Z pjb: phoe: "portably" is meaningless here. 2020-05-08T16:50:42Z efm quit (Ping timeout: 272 seconds) 2020-05-08T16:50:52Z pjb: phoe: the question is whether it's conforming code or not. 2020-05-08T16:50:55Z pjb: It is not. 2020-05-08T16:50:56Z lukego: I'm meaning to learn some of the new formal hotness and I'm wondering if TLA+ or Z3 etc is the best starting point. Seems like TLA+ is a lot more high level and more suited to my use case but probably also a lot more baggage e.g. idiosyncratic syntax and IDE 2020-05-08T16:51:12Z jackdaniel: http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_p.htm#portable 2020-05-08T16:51:20Z pjb: (if defmethod is cl:defmethod and print-object is cl:print-object and null is cl:null). 2020-05-08T16:51:21Z jackdaniel: it has a lot of meaning 2020-05-08T16:51:47Z jackdaniel: if you want to define a method on null, I suspect you want to have an effect you've programmed 2020-05-08T16:52:13Z jackdaniel: "portable adj. (of code) required to produce equivalent results and observable side effects in all conforming implementations. " 2020-05-08T16:52:26Z Fare quit (Ping timeout: 256 seconds) 2020-05-08T16:52:36Z pfdietz: The specific application was concolic testing: given a path through some code, find values for the inputs and internal variables such that execution follows that path. 2020-05-08T16:52:44Z phoe: if it invokes undefined behaviour then it cannot be portable code 2020-05-08T16:52:50Z phoe: hence, "portably" is meaningful here 2020-05-08T16:53:03Z lukego: you do some fun stuff pfdietz :) 2020-05-08T16:53:08Z phoe: it's also non-conforming, obviously 2020-05-08T16:53:30Z pfdietz: Unfortunately, while it was possible to represent linked objects, solving those constraints was taking O(n^3) time in Z3. 2020-05-08T16:54:09Z kpoeck joined #lisp 2020-05-08T16:54:44Z pfdietz: My more recent fun testing activity is a mutation testing framework for Common Lisp. I'm already getting some good use out of it. 2020-05-08T16:59:35Z Aurora_iz_kosmos is now known as Aurora_v_kosmose 2020-05-08T17:00:20Z terpri joined #lisp 2020-05-08T17:06:46Z scymtym quit (Ping timeout: 240 seconds) 2020-05-08T17:12:01Z kpoeck: Your latest random-tester is here? https://github.com/pfdietz/ansi-test/tree/master/random 2020-05-08T17:12:28Z kpoeck: Clasp is now more stable, so I would like to retry running the random tester with it 2020-05-08T17:12:35Z pfdietz: Yes, but as usual use at your own risk 2020-05-08T17:12:53Z pfdietz: I have been adding incrementally to it 2020-05-08T17:13:22Z kpoeck: can worse things happen than the lisp crashing? 2020-05-08T17:14:07Z pfdietz: You could curse at me... 2020-05-08T17:14:39Z kpoeck: I have to much respect, won't do that 2020-05-08T17:15:14Z fe[nl]ix: lukego: what do you want to verify ? 2020-05-08T17:23:59Z SGASAU quit (Remote host closed the connection) 2020-05-08T17:25:37Z scymtym joined #lisp 2020-05-08T17:25:45Z SGASAU joined #lisp 2020-05-08T17:26:00Z notzmv joined #lisp 2020-05-08T17:38:16Z Cymew quit (Ping timeout: 246 seconds) 2020-05-08T17:40:23Z phoe: okay, the only koans left are the threading ones 2020-05-08T17:41:23Z phoe: bordeaux-threads tutorial time! 2020-05-08T17:46:15Z fourier joined #lisp 2020-05-08T17:46:51Z Bourne quit (Read error: Connection reset by peer) 2020-05-08T17:48:46Z jruiz quit (Ping timeout: 246 seconds) 2020-05-08T17:52:07Z ayuce quit (Remote host closed the connection) 2020-05-08T17:56:13Z jruiz joined #lisp 2020-05-08T17:57:46Z EvW joined #lisp 2020-05-08T18:02:32Z jfrancis joined #lisp 2020-05-08T18:05:03Z jfrancis_ quit (Ping timeout: 260 seconds) 2020-05-08T18:12:10Z ayuce joined #lisp 2020-05-08T18:16:14Z efm joined #lisp 2020-05-08T18:16:42Z lukego: fe[nl]ix: state machines, basically. I'm learning to make hardware and the cool kids are using formal methods but not necessarily in the env I want to be in e.g. Verilog 2020-05-08T18:17:14Z efm quit (Client Quit) 2020-05-08T18:22:22Z Bourne joined #lisp 2020-05-08T18:23:02Z jgkamat_ joined #lisp 2020-05-08T18:23:15Z jgkamat quit (Ping timeout: 260 seconds) 2020-05-08T18:23:21Z ayuce quit (Read error: Connection reset by peer) 2020-05-08T18:24:33Z fourier quit (Ping timeout: 252 seconds) 2020-05-08T18:24:37Z jgkamat_ is now known as jgkamat 2020-05-08T18:24:38Z ayuce joined #lisp 2020-05-08T18:26:52Z sauvin quit (Remote host closed the connection) 2020-05-08T18:27:53Z yankM joined #lisp 2020-05-08T18:28:51Z ayuce quit (Read error: Connection reset by peer) 2020-05-08T18:29:12Z tutti joined #lisp 2020-05-08T18:38:25Z ayuce joined #lisp 2020-05-08T18:44:37Z ArthurStrong joined #lisp 2020-05-08T18:47:41Z phoe: fe[nl]ix: Is there any reason why BT does not use ECL's semaphore implementation? 2020-05-08T18:48:05Z phoe: Are they a relatively new development? 2020-05-08T18:49:53Z phoe: jackdaniel: perhaps you would be able to help, too 2020-05-08T18:50:07Z jackdaniel: I've disabled them, because they had a bug 2020-05-08T18:50:14Z jackdaniel: it is not present in thte current release 2020-05-08T18:50:21Z jackdaniel: (that is, the bug is fixed) 2020-05-08T18:51:16Z jackdaniel: in fact I've made a pr which proposed semaphores, fe[nl]ix reviewed it throughfully and I've fixed the issues 2020-05-08T18:52:58Z milanj quit (Quit: This computer has gone to sleep) 2020-05-08T18:53:58Z phoe: jackdaniel: I see that PR in BT that introduces a portable semaphore implementation, yes 2020-05-08T18:54:57Z Fare joined #lisp 2020-05-08T18:56:19Z phoe: I am just curious because (apropos "semaphore") on ECL gives me some hits 2020-05-08T18:56:25Z phoe: that is, on 20.4.24 2020-05-08T18:57:03Z jackdaniel: ecl has native implementation of semaphores, but at the time of making that pr, the last ecl release had a bug 2020-05-08T18:57:06Z jackdaniel: as noted above 2020-05-08T18:57:24Z jackdaniel: so I've decided that it will be better to provide a correct version for ecl users 2020-05-08T18:57:32Z phoe: I see now 2020-05-08T18:57:41Z _death: great, new emacs build had me adding (setq byte-compile-warnings '(not obsolete)) to my .emacs :x 2020-05-08T18:58:01Z phoe: if I understand correctly, then, it should be possible to add ECL's native semaphores to BT now that they are fixed in the new release, and fall back to the native implementation otherwise 2020-05-08T19:00:38Z jackdaniel: I'd rather simply switch to the native ecl version altogether, but that's up to fe[nl]ix . I plan to make a PR some time from now 2020-05-08T19:00:52Z Zakkor joined #lisp 2020-05-08T19:01:23Z phoe: OK 2020-05-08T19:01:58Z phoe: I'll try implementing SEMAPHORE-COUNT on CCL, which should make it possible to implement it in BT, since then it'll have 100% coverage 2020-05-08T19:02:02Z ayuce quit (Remote host closed the connection) 2020-05-08T19:03:50Z jackdaniel: the "portable" implementation is not bad at all, neither it does some underhanded hacks 2020-05-08T19:03:57Z jackdaniel: it is a clean implementation based on existing primitives 2020-05-08T19:05:54Z ayuce joined #lisp 2020-05-08T19:05:57Z phoe: yes, I am aware of that 2020-05-08T19:07:10Z frgo joined #lisp 2020-05-08T19:07:16Z jackdaniel: n.b I have a ready PR with mailboxes (which have the same api as sbcl's), I plan to submit it soon 2020-05-08T19:07:32Z phoe: portable ones? nice 2020-05-08T19:07:41Z orivej joined #lisp 2020-05-08T19:08:02Z jackdaniel: I've pasted a draft here a year ago or so 2020-05-08T19:11:05Z milanj joined #lisp 2020-05-08T19:14:25Z milanj quit (Client Quit) 2020-05-08T19:14:51Z fourier joined #lisp 2020-05-08T19:15:38Z jmercouris: anyone have an interesting experience they were able to solve using an expert system? 2020-05-08T19:15:42Z jackdaniel: I think that word "portable" is inadequate here. primitives defined by bt is better 2020-05-08T19:15:45Z jmercouris: I'm walking around with a hammer looking for nails 2020-05-08T19:15:58Z phoe: jackdaniel: correct 2020-05-08T19:16:15Z EvW quit (Ping timeout: 252 seconds) 2020-05-08T19:18:38Z MichaelRaskin: jmercouris: what would qualify as an expert system? 2020-05-08T19:19:01Z jmercouris: MichaelRaskin: like in a prolog application for example 2020-05-08T19:19:15Z jmercouris: given X facts, come to Y deduction or induction 2020-05-08T19:19:22Z jmercouris: to help a program make some sort of decision 2020-05-08T19:20:04Z ayuce quit (Remote host closed the connection) 2020-05-08T19:20:32Z tutti quit (Ping timeout: 260 seconds) 2020-05-08T19:21:25Z ayuce joined #lisp 2020-05-08T19:21:40Z LdBeth: how can I get setf-able subsections of a 2D array? 2020-05-08T19:21:44Z MichaelRaskin: I mean, I have a prolog script to keep track what I actually know about some CS problem… 2020-05-08T19:22:10Z jmercouris: LdBeth: iterate through array check each element if setfable 2020-05-08T19:22:15Z MichaelRaskin: jmercouris: I did write a deduction system at some point to unify data from multiple sources with slightly different columns available 2020-05-08T19:22:31Z MichaelRaskin: (using cl-graph) 2020-05-08T19:22:35Z jmercouris: MichaelRaskin: can you expand on that? I'm looking for practical uses 2020-05-08T19:23:10Z phoe: LdBeth: not easy. displaced arrays are only displaceable to row-major-aref. 2020-05-08T19:23:23Z phoe: this means that this won't preserve 2D structure. 2020-05-08T19:24:12Z LdBeth: maybe I have to use a 1D to pretend to be a 2D 2020-05-08T19:24:27Z jmercouris: oh I SEE what the question is 2020-05-08T19:24:32Z jmercouris: ignore what I said 2020-05-08T19:25:09Z phoe: LdBeth: no need to use 1D, you can always use row-major-aref to pretend that every array is a vector 2020-05-08T19:25:21Z phoe: unless you need to pass it around to sequence functions and stuff 2020-05-08T19:25:57Z TMA quit (Ping timeout: 258 seconds) 2020-05-08T19:26:32Z shifty joined #lisp 2020-05-08T19:26:40Z LdBeth: phoe: ah, I see 2020-05-08T19:29:33Z phoe: okay, I've rewritten the koans 2020-05-08T19:29:57Z phoe: now to test them and submit upstream 2020-05-08T19:30:10Z phoe: if anyone has a while to review them, https://github.com/phoe-trash/lisp-koans/tree/better-koans 2020-05-08T19:30:38Z phoe: should be free of UB and implementation-defined behaviour now, and should have some decent code style 2020-05-08T19:32:40Z frgo: Hi guys - I am looking for help on defining a type and can't get this to work: https://gist.github.com/dg1sbg/4f1c2e3bf0ab3b0336661b460d0fcc18 - appreciate any hints if anybody could have a look. 2020-05-08T19:32:47Z shka_ quit (Ping timeout: 260 seconds) 2020-05-08T19:32:49Z frgo: I feel dumb and blind and ... 2020-05-08T19:33:01Z phoe: frgo: '(satisfies state-name-p) 2020-05-08T19:33:04Z Bike: frgo: deftype is like a macro function. you probably want to quote the result 2020-05-08T19:33:09Z phoe: DEFTYPE is like a macroexpander 2020-05-08T19:33:30Z EvW1 joined #lisp 2020-05-08T19:34:45Z jw4 joined #lisp 2020-05-08T19:35:03Z frgo: Holy smokes... Yep. That was it - that and a typo. Big thanks! 2020-05-08T19:37:08Z izh_ joined #lisp 2020-05-08T19:47:27Z yitzi left #lisp 2020-05-08T19:49:07Z terpri quit (Remote host closed the connection) 2020-05-08T19:49:42Z fourier quit (Ping timeout: 260 seconds) 2020-05-08T19:50:38Z terpri joined #lisp 2020-05-08T19:52:32Z terpri quit (Remote host closed the connection) 2020-05-08T19:52:57Z terpri joined #lisp 2020-05-08T19:56:45Z cosimone joined #lisp 2020-05-08T19:57:03Z trn quit (Ping timeout: 260 seconds) 2020-05-08T19:57:22Z |3b|` quit (Ping timeout: 260 seconds) 2020-05-08T20:09:30Z akoana joined #lisp 2020-05-08T20:14:46Z heisig quit (Quit: Leaving) 2020-05-08T20:17:31Z trn joined #lisp 2020-05-08T20:19:37Z nika quit 2020-05-08T20:20:12Z izh_ quit (Quit: Leaving) 2020-05-08T20:26:10Z jmercouris: so nobody has much use for expert systems? 2020-05-08T20:26:17Z jmercouris: that's the feeling i am getting 2020-05-08T20:30:35Z jw4 quit (Quit: tot siens) 2020-05-08T20:30:56Z jw4 joined #lisp 2020-05-08T20:31:18Z _death: jmercouris: expert systems are useful for many situations, not just "AI".. for example they're also used as "business rules engines" 2020-05-08T20:31:45Z jmercouris: _death: can you give me an example? 2020-05-08T20:32:27Z _death: an example of what? 2020-05-08T20:33:12Z jmercouris: of a business rule engine? 2020-05-08T20:33:24Z frgo quit (Remote host closed the connection) 2020-05-08T20:33:29Z jmercouris: what is it? 2020-05-08T20:33:56Z _death: https://en.wikipedia.org/wiki/Business_rules_engine 2020-05-08T20:33:59Z frgo joined #lisp 2020-05-08T20:34:14Z _death: there are lists in the See also section.. 2020-05-08T20:34:28Z jmercouris: ah, i see 2020-05-08T20:34:29Z jmercouris: i know what they are 2020-05-08T20:34:34Z jmercouris: the term was eluding me 2020-05-08T20:34:53Z jmercouris: that doesn't really help me 2020-05-08T20:36:47Z _death: I'm not sure what you're looking for.. you can read a good AI history like Nilsson's book, which describes some famous expert systems like the DENDRAL project or the MYCIN system.. there's a book by Feigenbaum which is on my to-read list called The Rise of the Expert Company, and there's also a MYCIN book available on aaai.org 2020-05-08T20:37:04Z jmercouris: like i said im running around with a hammer looking for nails 2020-05-08T20:37:15Z jmercouris: the concept of expert systems intrigues me, and i'm thinking about how to use them in next for something novel 2020-05-08T20:37:20Z jmercouris: its how i come up with ideas 2020-05-08T20:39:11Z _death: does it intrigue you in the abstract?.. like I said, there are many actual expert systems described in the AI literature, so it's easy to imagine uses (whenever some knowledge needs to be codified.. there's a whole "knowledge engineering" field) 2020-05-08T20:39:46Z jmercouris: i guess a little bit in the abstract yeah, i am starting to play around with prolog a little bit 2020-05-08T20:39:53Z narimiran quit (Quit: leaving) 2020-05-08T20:40:02Z jmercouris: i found this: http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/impl/prolog/ppicl/ppicl.cl 2020-05-08T20:40:06Z jmercouris: its on cliki i think 2020-05-08T20:40:10Z jmercouris: simple prolog implementation in CL 2020-05-08T20:40:16Z jmercouris: it got me really thinking 2020-05-08T20:40:43Z _death: well, prolog uses backwards chaining.. classic expert systems used either that or forward chaining, or a hybrid approach.. 2020-05-08T20:41:25Z jmercouris: does that strongly effect the tool? 2020-05-08T20:41:26Z _death: do you know the book Paradigms of AI Programming? 2020-05-08T20:41:31Z jmercouris: I do know it 2020-05-08T20:41:37Z jmercouris: Ive not read it though 2020-05-08T20:42:23Z _death: might want to give it a read.. it describes a prolog interpreter and compiler, as well as an EMYCIN-like system 2020-05-08T20:42:44Z jmercouris: i will consider it, thanks 2020-05-08T20:42:52Z jmercouris: but first, can you implement some Perl code I have in Lisp? 2020-05-08T20:42:58Z jmercouris: I want to know if I should learn Lisp 2020-05-08T20:43:11Z jmercouris: i'm joking of course ;-) 2020-05-08T20:43:12Z _death: it also describes GPS (precursor to many AI planners) and other famous systems 2020-05-08T20:44:14Z _death: the PAIP book is even available online nowadays 2020-05-08T20:44:18Z jmercouris: yeah 2020-05-08T20:44:29Z jmercouris: on github 2020-05-08T20:44:50Z jmercouris: all the source: https://github.com/norvig/paip-lisp 2020-05-08T20:44:53Z _death: though my physical copy is dog-eared by now.. ;) 2020-05-08T20:45:09Z jmercouris: dog eared? 2020-05-08T20:45:30Z MichaelRaskin: jmercouris: folds on corners instead of bookmarks 2020-05-08T20:45:34Z trn quit (Ping timeout: 256 seconds) 2020-05-08T20:45:45Z jmercouris: ah :-) 2020-05-08T20:45:50Z jmercouris: thank you 2020-05-08T20:45:57Z MichaelRaskin: jmercouris: well, it looks like the other conversation I did not want to interrupt has concluded. 2020-05-08T20:46:05Z fourier joined #lisp 2020-05-08T20:46:21Z MichaelRaskin: My problem was basically different records about the same people. 2020-05-08T20:46:38Z fouric: does anyone know of an existing CL SPICE parser or generator library? le goog reveals nothing 2020-05-08T20:46:51Z MichaelRaskin: With some steps done in a partially anonymyzed way, later deanonymized 2020-05-08T20:47:07Z Alex-Dj joined #lisp 2020-05-08T20:47:08Z Alex-Dj quit (Excess Flood) 2020-05-08T20:48:01Z jmercouris: is there something about an expert system that lent itself to better solving your problem than a traditional pipeline? 2020-05-08T20:48:25Z MichaelRaskin: I am not sure what I did was strictly an expert system 2020-05-08T20:48:54Z MichaelRaskin: But I needed to accomodate the fact that we had a kind of sharding, and each shard had its own quirks 2020-05-08T20:49:03Z jmercouris: right 2020-05-08T20:49:10Z jmercouris: so you wrote several adapters? 2020-05-08T20:49:18Z jmercouris: or data normalization functions? 2020-05-08T20:49:58Z MichaelRaskin: Well, the problem was that deanonymization reports that I needed to unify had wildly varying column subsets reported. 2020-05-08T20:50:32Z MichaelRaskin: Sufficient to identify in specific case, but that's it 2020-05-08T20:50:51Z MichaelRaskin: And I knew I cannot normalise once because updates _will_ happen 2020-05-08T20:51:10Z MichaelRaskin: And I knew better than to write 10 adapters independently and hope they all work… 2020-05-08T20:51:48Z jmercouris: i see 2020-05-08T20:52:04Z jmercouris: so it would guess which columns to use? 2020-05-08T20:52:07Z jmercouris: based on some rules? 2020-05-08T20:52:25Z MichaelRaskin: So I wrote down what each column actually meant (of course the naming was different between shards), then used CL-GRAPH to infer from some attribute combination what more we can tell 2020-05-08T20:52:44Z MichaelRaskin: (with a ruleset of permissible inference steps, yes) 2020-05-08T20:53:28Z jmercouris: i see 2020-05-08T20:53:30Z jmercouris: fascinating 2020-05-08T20:53:43Z jmercouris: i think that could be used for general parsing 2020-05-08T20:53:51Z jmercouris: and data extraction 2020-05-08T20:54:05Z fourier quit (Ping timeout: 240 seconds) 2020-05-08T20:55:43Z MichaelRaskin: It was annoying to debug in the following way: it got a high failure rate on one shard. I tried to see what's wrong there. But the failure rate was not high enough for me to consider I failed to label one of the critical column 2020-05-08T20:56:31Z MichaelRaskin: I mean, you don't get 10% error rate when you miss the primary stuff you expect to use for identification, right? right? — wrong, the code was good enough at this game to almost overcome the miss 2020-05-08T20:56:50Z jmercouris: data normalization is an absolute pain 2020-05-08T20:56:56Z jmercouris: even if you had written pipelines debugging would be difficult 2020-05-08T20:57:04Z jmercouris: i know because ive done and banged my head for a long time 2020-05-08T20:57:30Z MichaelRaskin: If I wrote manual pipeline I would have made more mistakes and that would be true pain 2020-05-08T21:00:06Z trn joined #lisp 2020-05-08T21:00:26Z MichaelRaskin: fouric: my first two guesses at what SPICE even is are most likely wrong (SPICE the protocol for remote desktop, especially for VMs; SPICE the circuit emulator). That might be a part of the problem… 2020-05-08T21:01:33Z sjl_ quit (Quit: WeeChat 2.3-dev) 2020-05-08T21:01:50Z MichaelRaskin: jmercouris: I have come to believe that identity is a lie unless you assign it and never let it out of your control. User accounts in your system? Sure, they might be identities. «Independently sourced records A and B describe the same person»? What does it even mean. 2020-05-08T21:02:24Z jmercouris: identities are a lie, they are but avatars 2020-05-08T21:02:32Z jmercouris: different sides of the same face 2020-05-08T21:02:34Z MichaelRaskin: Sometimes… with human oversight… you can allow such a bold guess to be recorded. Yes, it is still a bold guess even after you have seed the person's passport 2020-05-08T21:03:41Z _death: MichaelRaskin: that sounds like something that can benefit from a blackboard system 2020-05-08T21:04:28Z MichaelRaskin: What is a blackboard system? Blackboard™? Nothing can ever benefit from this abomination, except the back accounts of some specific frauds. 2020-05-08T21:04:41Z jmercouris: ah, blackboard 2020-05-08T21:04:45Z jmercouris: you guys just took me back to high school 2020-05-08T21:04:57Z Bike: you used blackboard in high school? 2020-05-08T21:05:05Z jmercouris: yes 2020-05-08T21:05:15Z Bike: depending on the type of blackboard, that makes me feel either very young or very old 2020-05-08T21:05:22Z jmercouris: both kinds 2020-05-08T21:05:25Z MichaelRaskin: I used blackboards for giving university-level lectures, even. 2020-05-08T21:05:35Z jmercouris: i am talking about the software... 2020-05-08T21:05:41Z jmercouris: but we had physical blackboards and whiteboards 2020-05-08T21:05:47Z jmercouris: i went to a very special school 2020-05-08T21:05:53Z MichaelRaskin: Blackboards obviously better than whiteboards 2020-05-08T21:05:54Z _death: for example, a famous blackboard system, HASP, received acoustic reports from multiple sensor arrays in the ocean, and from that had to infer the current locations of submarines 2020-05-08T21:06:10Z shifty quit (Ping timeout: 246 seconds) 2020-05-08T21:06:34Z holycow: MichaelRaskin: especially with japanese chalk: https://www.youtube.com/watch?v=PhNUjg9X4g8 2020-05-08T21:07:27Z MichaelRaskin: Meh 2020-05-08T21:07:52Z karayan quit (Remote host closed the connection) 2020-05-08T21:08:09Z MichaelRaskin: _death: I guess with a strong enough stretch I could classify the way the inference rules interacted as a blackboard system… 2020-05-08T21:08:27Z _death: you can imagine there is a blackboard and a bunch of experts.. you place a piece of a puzzle on the blackboard, and when an expert sees an opportunity to use his specialized knowledge in order to complete the puzzle, he adds a piece to the blackboard 2020-05-08T21:09:05Z jmercouris: ah 2020-05-08T21:09:11Z jmercouris: i've never heard this term outside of you defining it just now 2020-05-08T21:09:47Z MichaelRaskin: _death: I meant stretching towards this definition, yes 2020-05-08T21:09:58Z _death: https://www.reddit.com/r/Common_Lisp/comments/g0muke/gbbopen_highperformance_blackboardsystem_framework/ 2020-05-08T21:11:59Z karayan joined #lisp 2020-05-08T21:12:44Z Xach ponders a blackbeard system 2020-05-08T21:13:02Z Josh_2: what is a blackboard system? 2020-05-08T21:13:25Z Misha_B quit (Remote host closed the connection) 2020-05-08T21:13:33Z phoe: https://en.wikipedia.org/wiki/Blackboard_system 2020-05-08T21:15:26Z Josh_2: thonk 2020-05-08T21:16:30Z p_l has a lot of fun teaching people that kubernetes is a blackboard system, thanks to learning that class of systems due to gbbopen :3 2020-05-08T21:17:12Z _death: gbbopen author did alot of research on distributed blackboard systems 2020-05-08T21:17:28Z p_l: gbbopen was developed mostly in 1990s, wasn't it? 2020-05-08T21:17:30Z jmercouris: that guys name sounds like a typo 2020-05-08T21:17:33Z jmercouris: gbbopen 2020-05-08T21:17:58Z p_l: jmercouris: it's name of the software package, GBBopen - the "open" part is due to open-sourcing it 2020-05-08T21:18:05Z jmercouris: http://www.gbbopen.org/overview.html 2020-05-08T21:18:11Z p_l: it used to be proprietary package with considerable licensing price, iirc 2020-05-08T21:18:43Z _death: p_l: it's actually a rewrite of GBB 2020-05-08T21:18:51Z p_l: _death: ah, I didn't know about rewrite 2020-05-08T21:18:56Z p_l: I did knew it differed 2020-05-08T21:19:33Z _death: the best introductory blackboard papers are the ones I linked in the reddit thread though 2020-05-08T21:19:45Z fitzsim joined #lisp 2020-05-08T21:20:57Z p_l: I like using blackboard system to explain k8s to people, cause in my area it's probably the biggest and most plainly visible blackboard system 2020-05-08T21:21:13Z dalz- joined #lisp 2020-05-08T21:21:36Z p_l: even if it's one of the simpler ones 2020-05-08T21:22:05Z _death: I don't really know what kubernetes is (my interest in "big data" and web and such went to zero some years ago) 2020-05-08T21:22:08Z axion: pngload 2 is in! 2020-05-08T21:22:14Z phoe: <3 2020-05-08T21:23:03Z Lord_of_Life_ joined #lisp 2020-05-08T21:23:12Z p_l: _death: to use non-(current)-hype terms, it's a multi-agent system for resource allocation on computer clusters 2020-05-08T21:23:36Z p_l: (what? multi-agent system hype ended so far ago people /forgot the term/) 2020-05-08T21:25:15Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-08T21:25:55Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-08T21:26:10Z _death: since you're saying it's a blackboard system I will need to check it out some time ;) 2020-05-08T21:26:13Z sonologico joined #lisp 2020-05-08T21:26:42Z p_l: _death: understanding the concepts of blackboard systems makes it *easy* to understand 2020-05-08T21:26:51Z jw4 quit (Quit: tot siens) 2020-05-08T21:26:59Z p_l: handling the state storage in production can be annoying though 2020-05-08T21:27:21Z jmercouris: not if you use mongo db /s 2020-05-08T21:27:35Z jmercouris: i'm sorry, i'm in this annoying mood, i'm done :-D 2020-05-08T21:27:57Z p_l: fuck mongo 2020-05-08T21:29:58Z _death: I also said on the reddit thread that I need to read the paper about Network Fragments (to make sense of "bayesian blackboard system").. but I've been busy reading and implementing a related paper (actually completed implementation yesterday! but want to extend it a bit before moving on) 2020-05-08T21:30:10Z phoe: okay, 50% of koans tested 2020-05-08T21:30:12Z Zakkor quit (Quit: Connection closed for inactivity) 2020-05-08T21:30:12Z phoe: slep time 2020-05-08T21:30:20Z karlosz joined #lisp 2020-05-08T21:31:18Z jw4 joined #lisp 2020-05-08T21:31:26Z EvW1 quit (Ping timeout: 240 seconds) 2020-05-08T21:44:29Z sugarwren quit (Quit: Leaving) 2020-05-08T21:51:43Z EvW joined #lisp 2020-05-08T21:56:18Z EvW quit (Ping timeout: 260 seconds) 2020-05-08T21:57:05Z kpoeck left #lisp 2020-05-08T21:57:43Z dalz- quit (Remote host closed the connection) 2020-05-08T21:58:50Z shymega quit (Quit: Ciao.) 2020-05-08T22:03:34Z gravicappa quit (Ping timeout: 246 seconds) 2020-05-08T22:03:55Z EvW joined #lisp 2020-05-08T22:04:14Z pve quit (Quit: leaving) 2020-05-08T22:05:31Z rand_t joined #lisp 2020-05-08T22:08:10Z _death: p_l: btw, the license of gbbopen says 2002-2015 (though there was active development in 2016 as well..) and the papers describing its use (not gbb) are from 2007 or so 2020-05-08T22:08:36Z _death: so it's 2K-approved 2020-05-08T22:09:03Z p_l: _death: there are stubborn bits of AI that aren't smothered down by ML-induced idiocy :) 2020-05-08T22:13:44Z _death: p_l: I think actually there is a lot of that kind of AI, it's just massively overshadowed by FAANG-influenced ML research.. in "critical" fields it gets more opportunity to show 2020-05-08T22:14:21Z p_l: _death: There's a lot, but it's "alot" due to law of large numbers and surviving endeavours from the past 2020-05-08T22:15:02Z p_l: the amount of times I've seen hardcoded decision trees that could have been an expert system derivative /is too damn high/ 2020-05-08T22:16:39Z p_l: the one time I've seen someone actually use bit of prolog inspired code outside of our more, let's say niche, communities, the final product was so bad I tracked down the main author and considered visiting with a wrench (failure of the project based around the software actually influenced safety and security of people) 2020-05-08T22:17:29Z _death: yeah, there are many systems which could benefit from these architectures.. I know I wrote lots of stuff that in retrospect could've been better architected using a "business rule engine" or a blackboard system :/ 2020-05-08T22:20:34Z p_l: _death: I mostly work in so-called "DevOps", letting my MSci in AI gather dust, but it's part of why I'm kinda bullish on kubernetes. It uses the ideas I know waylaid from last 3 decades to drastically give me more leverage :) 2020-05-08T22:21:16Z p_l: instead of manually doing configurations, even if through automated scripts, I just state desired state and let the computer figure things out 2020-05-08T22:24:01Z _death: I remember I skimmed some kubernetes code.. it's >1M lines of code, isn't it? at that time I decided to stop and slowly back away 2020-05-08T22:24:07Z frgo quit (Remote host closed the connection) 2020-05-08T22:24:39Z frgo joined #lisp 2020-05-08T22:26:15Z SGASAU quit (Remote host closed the connection) 2020-05-08T22:26:58Z SGASAU joined #lisp 2020-05-08T22:29:17Z SGASAU quit (Remote host closed the connection) 2020-05-08T22:29:49Z SGASAU` joined #lisp 2020-05-08T22:32:53Z fouric: MichaelRaskin: whoops, i didn't even know there was more than one SPICE - i'm interested in the circuit netlist format 2020-05-08T22:33:18Z fouric: i can't seem to find any CL libraries for it 2020-05-08T22:33:30Z fouric: even though there have been a few circuit-related CL tools 2020-05-08T22:33:50Z tutti joined #lisp 2020-05-08T22:33:53Z tutti quit (Remote host closed the connection) 2020-05-08T22:34:33Z p_l: _death: it's big, yes. Some of that is because of language that isn't that capable, some of it is just necessary complexity where ~20% of the code makes the high level concepts, and the rest is the interface code for things that get controlled (there's ongoing effort to decouple components into separate code bases) 2020-05-08T22:35:48Z pjb: fouric: ask Posterdati, he worked on one. 2020-05-08T22:43:05Z _death: p_l: ok, I'll check it out sometime.. guess we drifted a bit offtopic 2020-05-08T22:43:36Z p_l: well, it's mostly of interest if you deal with more... industrialized? deployment 2020-05-08T22:46:34Z man213 joined #lisp 2020-05-08T22:47:55Z akoana left #lisp 2020-05-08T22:50:25Z SGASAU` quit (Remote host closed the connection) 2020-05-08T22:51:20Z SGASAU` joined #lisp 2020-05-08T22:53:35Z cosimone quit (Read error: Connection reset by peer) 2020-05-08T22:54:45Z ayuce quit (Remote host closed the connection) 2020-05-08T22:56:27Z SGASAU` quit (Remote host closed the connection) 2020-05-08T22:57:08Z SGASAU` joined #lisp 2020-05-08T22:58:29Z fouric: pjb: thank you very much 2020-05-08T22:59:03Z fouric: wait, are you supposed to thank people here? or just silently communicate gratitude through the lisp hive-mind telepathic network? 2020-05-08T23:00:42Z p_l: fouric: social glue code to grease thins is not frowned upon, and might be considered even favoured ;) 2020-05-08T23:01:04Z aeth: INCF is the appropriate protocol 2020-05-08T23:01:23Z aeth: (incf p_l) ; for example 2020-05-08T23:01:59Z aeth: Of course, this has the disturbing implication of globals existing without earmuffs like *foo* 2020-05-08T23:03:17Z _death: according to many irc clients we're more like es 2020-05-08T23:03:20Z fouric: p_l: excellent! i like social glue - just some of the norms in #lisp made me unsure about whether to use it here or not 2020-05-08T23:03:23Z fouric: ty 2020-05-08T23:04:45Z fouric: aeth: it's probably ok - #lisp is a working codebase, no need to go and mess it up by renaming all of the special vars ;) 2020-05-08T23:06:13Z random-nick quit (Ping timeout: 264 seconds) 2020-05-08T23:07:04Z pjb: aeth: more probably nicks are symbol-macros. 2020-05-08T23:07:32Z rgherdt quit (Ping timeout: 246 seconds) 2020-05-08T23:09:04Z Oladon joined #lisp 2020-05-08T23:11:34Z Oladon: Hrm. What's the best approach for figuring out why a custom setf method isn't working? 2020-05-08T23:12:06Z jackdaniel: phoe: if you are curious about said mailboxes, here you may peek how I've implemented them: https://github.com/sionescu/bordeaux-threads/pull/69/files 2020-05-08T23:12:08Z pjb: Oladon: define "best"? 2020-05-08T23:12:14Z Oladon: pjb: uh... one that works :) 2020-05-08T23:12:30Z Oladon: I'm just sort of at a loss 2020-05-08T23:12:46Z pjb: Oladon: you can as on irc to have your code debugged for you. Or you can debug it yourself. Or you can just rewrite it without bugs. 2020-05-08T23:12:47Z Oladon: I think I don't know what could be going wrong, so I don't know where to look 2020-05-08T23:13:04Z pjb: Oladon: debugging can involve tracing or printing. 2020-05-08T23:13:15Z Oladon: pjb: :P I'm trying a hybrid of the first two... learn how to debug it myself by asking on IRC! 2020-05-08T23:13:27Z pjb: You don't know what's going wrong, because you're assuming that your assumptions are valid. 2020-05-08T23:13:35Z Bike: depends on the sense in which it is not working 2020-05-08T23:13:58Z pjb: So printing various things from your code and checking them should allow you to find some invalid assumption. 2020-05-08T23:14:08Z pjb: You could also add assert expressions. 2020-05-08T23:14:16Z _death: what is a "setf method"? do you mean (defmethod (setf ...) ...) ? or one defined using define-setf-expander (which used to be called define-setf-method...) ? 2020-05-08T23:14:21Z Oladon: Bike: I have a Postmodern dao-class object. I can defmethod a setf on one slot, and it gets called. If I do it on a different slot, it never gets called (as evidenced by the good old "print statement" approach) 2020-05-08T23:14:54Z Bike: then the problem isn't whether it works, it's whether it's called, no? 2020-05-08T23:15:06Z pjb: Oladon: you may use find-method to validate the method dispatching. 2020-05-08T23:15:08Z Oladon: Bike: True. I should be precise. :) 2020-05-08T23:15:31Z Bike: in that case it's the same as figuring out why any function you expect to be called is not being called 2020-05-08T23:15:36Z nowhereman quit (Ping timeout: 265 seconds) 2020-05-08T23:15:41Z Bike: look at the call sites, make sure control is actually passing through there, that kind of thing 2020-05-08T23:15:42Z _death: you can (trace (setf ...)) for example 2020-05-08T23:16:04Z Oladon: _death: Sorry, missed your question. Yes, (defmethod (setf ...) ...) 2020-05-08T23:16:30Z Oladon: I've validated that the object I'm setfing is of the correct classes... 2020-05-08T23:16:30Z aeth: _death: the former is a setf method, the latter is a setf-method 2020-05-08T23:16:47Z pjb: (defgeneric goo (x)) (defclass foo () ()) (let ((o (make-instance 'foo))) (assert (eq (find-class 'foo) (class-of o))) (assert (find-method (function goo) '() '(foo))) (goo o)) ; stuff like that. 2020-05-08T23:16:48Z aeth: I guess "method setf" might be clearer 2020-05-08T23:17:01Z _death: methods have no names.. the generic functions containing them do 2020-05-08T23:19:53Z Bike: Oladon: for a generic function it can be helpful to use compute-applicable-methods to make sure the methods you expect are being called 2020-05-08T23:20:01Z _death: to see what methods a gf FOO has, I usually use C-c I #'foo RET 2020-05-08T23:20:14Z Oladon: Bike: Ooh, that seems useful. Thanks! 2020-05-08T23:20:29Z Bike: or mop:compute-applicable-methods-using-classes may be more convenient 2020-05-08T23:22:33Z devrtz quit (Quit: ZNC - http://znc.in) 2020-05-08T23:23:28Z devrtz joined #lisp 2020-05-08T23:25:11Z Oladon: I may've identified the issue, but if it _is_ the issue I don't understand it. The class I'm specializing on doesn't have the slot I'm setfing -- that slot is inherited from a different class. Could that be the issue? 2020-05-08T23:36:28Z Bike: not as described, no. it still has the slot, just not directly. 2020-05-08T23:36:48Z Oladon: Aight, that's what I originally thought, but... hrm. 2020-05-08T23:38:23Z madage quit (Ping timeout: 240 seconds) 2020-05-08T23:43:45Z madage joined #lisp 2020-05-08T23:44:10Z SGASAU` quit (Remote host closed the connection) 2020-05-08T23:45:10Z SGASAU` joined #lisp 2020-05-08T23:48:08Z Oladon: Huh. It looks like it was a weird issue with Postmodern... when I removed the (:table-name nil) from the defclass, it suddenly started working. 2020-05-08T23:48:34Z Oladon: Now to go dig into the Postmodern code and try to figure out why in the world that is -- it's not that it wasn't adding that class to the child objects, because I checked that. 2020-05-08T23:53:31Z Oladon: Thanks for the help, friend! 2020-05-08T23:53:32Z Oladon: friends* 2020-05-09T00:10:39Z shangul joined #lisp 2020-05-09T00:22:45Z EvW quit (Ping timeout: 240 seconds) 2020-05-09T00:23:21Z bitmapper: phoe: what is that "common lisp hyperspec ost" song? 2020-05-09T00:29:37Z man213 quit (Quit: Going offline, see ya! (www.adiirc.com)) 2020-05-09T00:34:14Z edgar-rft: bitmapper: -> https://soundcloud.com/phoe-krk/common-lisp-hyperspec-ost 2020-05-09T00:34:23Z bitmapper: i know 2020-05-09T00:34:26Z bitmapper: but is it original? 2020-05-09T00:37:37Z wxie joined #lisp 2020-05-09T00:39:11Z shangul quit (Remote host closed the connection) 2020-05-09T00:39:15Z mangul joined #lisp 2020-05-09T00:40:27Z no-defun-allowed: It's the Structure and Interpretation of Computer Programs theme slowed down (which in turn, is Jesu, Joy of Man's Desiring by Bach played on a crappy synthesizer). 2020-05-09T00:48:52Z mangul quit (Ping timeout: 272 seconds) 2020-05-09T00:50:02Z edgar-rft: but is it the original Jesus? 2020-05-09T00:50:23Z zaquest quit (Quit: Leaving) 2020-05-09T00:52:16Z Fare quit (Ping timeout: 246 seconds) 2020-05-09T00:59:35Z mangul joined #lisp 2020-05-09T01:01:19Z Misha_B joined #lisp 2020-05-09T01:11:26Z Fare joined #lisp 2020-05-09T01:18:00Z gko joined #lisp 2020-05-09T01:19:52Z ntqz quit (Ping timeout: 260 seconds) 2020-05-09T01:20:47Z EvW1 joined #lisp 2020-05-09T01:21:17Z SGASAU` quit (Remote host closed the connection) 2020-05-09T01:22:53Z SGASAU` joined #lisp 2020-05-09T01:27:59Z toorevitimirp joined #lisp 2020-05-09T01:28:14Z PuercoPop joined #lisp 2020-05-09T01:35:02Z bitmapper quit (Ping timeout: 260 seconds) 2020-05-09T01:35:52Z Fare quit (Ping timeout: 258 seconds) 2020-05-09T01:42:26Z Nilby joined #lisp 2020-05-09T01:56:00Z SGASAU` quit (Remote host closed the connection) 2020-05-09T01:56:38Z SGASAU` joined #lisp 2020-05-09T02:01:02Z dddddd quit (Ping timeout: 256 seconds) 2020-05-09T02:05:38Z Fare joined #lisp 2020-05-09T02:12:18Z mono joined #lisp 2020-05-09T02:13:17Z lxbarbosa joined #lisp 2020-05-09T02:14:28Z rand_t quit (Quit: rand_t) 2020-05-09T02:15:08Z monokrom quit (Ping timeout: 256 seconds) 2020-05-09T02:21:13Z Josh_2 quit (Ping timeout: 264 seconds) 2020-05-09T02:23:41Z EvW1 quit (Ping timeout: 244 seconds) 2020-05-09T02:24:00Z efm joined #lisp 2020-05-09T02:24:02Z efm quit (Client Quit) 2020-05-09T02:25:51Z brutalist joined #lisp 2020-05-09T02:31:50Z ralt quit (Quit: Connection closed for inactivity) 2020-05-09T02:33:56Z ebzzry joined #lisp 2020-05-09T02:34:03Z brutalist quit (Quit: My MacBook Air has gone to sleep. ZZZzzz…) 2020-05-09T02:40:19Z ebzzry quit (Quit: WeeChat 2.3) 2020-05-09T02:41:33Z turona quit (Ping timeout: 260 seconds) 2020-05-09T02:43:42Z turona joined #lisp 2020-05-09T02:45:20Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-09T02:46:05Z SGASAU joined #lisp 2020-05-09T02:46:19Z Oladon quit (Quit: Leaving.) 2020-05-09T02:52:15Z djuber joined #lisp 2020-05-09T02:53:36Z beach: Good morning everyone! 2020-05-09T02:58:25Z Oladon joined #lisp 2020-05-09T02:59:19Z markasoftware: How do you pass information lexically from a macro to a sub-macro? 2020-05-09T03:00:13Z pjb: what is a sub-macro? 2020-05-09T03:00:22Z pjb: markasoftware: the macro has full control on what it expands to. 2020-05-09T03:00:25Z markasoftware: i'm writing a trivial test framework. I have a (define-suite) macro and (define-test) macro. 2020-05-09T03:00:28Z Bike: if by sub macro you mean a macro being expanded to, you can use macrolet or symbol-macrolet 2020-05-09T03:00:39Z markasoftware: the tests go inside of the suite. I want to access the name passed as an argument to define-suite 2020-05-09T03:01:20Z markasoftware: so (define-suite (:name "My test suite") ... (define-test (:name "My unit test") (do-the-test))) 2020-05-09T03:01:25Z djuber quit (Ping timeout: 246 seconds) 2020-05-09T03:01:27Z markasoftware: and I want define-test's expansion to know about the name of the suite. 2020-05-09T03:02:29Z Bike: right, so you could expand that to like (symbol-macrolet ((+suite-name+ "My test suite")) (define-test ...)) and then have define-test macroexpand '+suite-name+ to get the name. 2020-05-09T03:02:59Z markasoftware: so i should use macrolet or symbol-macrolet? 2020-05-09T03:03:06Z markasoftware: i guess that makes sense 2020-05-09T03:03:44Z pjb: it would be better. 2020-05-09T03:04:06Z pjb: (define-suite (:name "Your test suite") (define-test (:name "Your unit test") (do-the-test)) ) 2020-05-09T03:05:06Z markasoftware: but then define-test will not know it at compile time. 2020-05-09T03:05:13Z Bike: yeah it will. 2020-05-09T03:06:15Z pjb: (defmacro define-suite (… &body body) (let ((sname …)) `(macrolet ((define-test (… &body …) (expand-test :suite ,sname …))) ,@body))) 2020-05-09T03:07:17Z Bike: like this: (defmacro with-foo (name &body body) `(symbol-macrolet ((+foo+ ,name)) ,@body)) (defmacro foo (&environment env) `',(stringp (macroexpand-1 '+foo+ env))) (with-foo "ht" (print (foo))) => T 2020-05-09T03:07:38Z pjb: and (defmacro define-test (…) (error "define-test must be embedded in a define-suite")) 2020-05-09T03:08:48Z markasoftware: i guess you are right, with macroexpnad Bike 2020-05-09T03:09:14Z markasoftware: i have to admit i'm not fond of using macroexpand outside of debugging but i guess it does the job! 2020-05-09T03:09:23Z markasoftware: i might just do what pjb suggested 2020-05-09T03:13:13Z pjb: markasoftware: Bike macro is overengineered. You don't need the symbol-macrolet and macroexpand, because name is known! You can use it in the expansion defmacro foo with just: ,name 2020-05-09T03:23:27Z |3b| joined #lisp 2020-05-09T03:23:40Z EvW joined #lisp 2020-05-09T03:33:39Z SGASAU quit (Remote host closed the connection) 2020-05-09T03:34:19Z SGASAU joined #lisp 2020-05-09T03:39:53Z ArthurStrong quit (Quit: leaving) 2020-05-09T03:40:50Z Oladon: So... I'm still having issues. Turns out it has nothing to do with Postmodern. I've distilled a minimal test case, and if anyone's willing to take a look, I'd be most grateful. https://pastebin.com/SNLfgtUG 2020-05-09T03:41:22Z Oladon: For those who weren't here earlier: I can't get this setf method definition to run for a specific class. I suspect user error. 2020-05-09T03:42:43Z oldtopman joined #lisp 2020-05-09T03:42:43Z oldtopman quit (Changing host) 2020-05-09T03:42:43Z oldtopman joined #lisp 2020-05-09T03:43:43Z zaquest joined #lisp 2020-05-09T03:46:31Z Bike: when you say case 1 doesn't work, what do you mean? 2020-05-09T03:46:43Z Bike: for an instance of user, that is 2020-05-09T03:47:02Z Oladon: Bike: It doesn't seem to get called at all, judging by the lack of format output 2020-05-09T03:47:43Z Bike: what do you get from (compute-applicable-methods #'(setf password) "string" some-user1)? 2020-05-09T03:48:03Z Bike: oh, well, wait, i missed that user1 has a password slot 2020-05-09T03:48:16Z Bike: since you define a slot, a writer method is defined 2020-05-09T03:48:31Z Bike: the writer is called preferentially to your method 2020-05-09T03:48:37Z Oladon: Ahhh 2020-05-09T03:49:56Z Oladon: Changing :accessor to :reader makes case 1 get called. 2020-05-09T03:50:02Z Oladon: Bike: You're a genius. Thank you. :) 2020-05-09T03:52:09Z Bike: no problem 2020-05-09T03:52:48Z Bike: your method doesn't set the actual password slot, tho 2020-05-09T03:53:43Z Oladon: Yeah, I don't actually want it to 2020-05-09T03:53:50Z Oladon: It's basically a pretend slot 2020-05-09T03:54:09Z Oladon: (... so why have a reader? That's a good question, Oladon...) 2020-05-09T03:54:17Z Bike: why have a slot at all? 2020-05-09T03:54:42Z Oladon: I thought I had to in order to be able to setf it 2020-05-09T03:54:50Z Oladon: Is that not the case? 2020-05-09T03:55:03Z Bike: nope. 2020-05-09T03:55:08Z Oladon: Huh. 2020-05-09T03:55:22Z Oladon: Well then. 2020-05-09T03:55:32Z Oladon: Even better! :) 2020-05-09T03:55:34Z Bike: i mean, you defined your method on the has-secure-password1 class, right? and it doesn't have a password slot. 2020-05-09T03:55:44Z Oladon: true... 2020-05-09T03:56:19Z Oladon: I guess I just assumed (quite incorrectly) that it'd be upset if the object it was called with didn't have that slot, regardless of whence it came 2020-05-09T03:56:25Z Bike: (setf (foo ...) nv) expands into (funcall #'(setf foo) nv ...) unless there's a setf expander. you can define setf functions that don't do anything remotely slot-like. 2020-05-09T03:56:40Z Bike: setf doesn't actually know about clos at all, so to speak. 2020-05-09T03:56:47Z Oladon: Yeah, that's fair -- i.e. setf car 2020-05-09T03:56:53Z Bike: mhm. 2020-05-09T03:57:11Z Bike: it's just that when you do :accessor foo, defclass defines a (setf foo) function for you. 2020-05-09T03:57:43Z Oladon: Makes total sense. I'm guessing that your compute-applicable-methods would've shown me that (though I can't quite get it to work) 2020-05-09T03:58:43Z Bike: oh, i screwed it up. (compute-applicable-methods #'(setf password) (list "string" some-user1)) 2020-05-09T04:00:15Z Oladon: Ahh, thanks. There it is. 2020-05-09T04:00:26Z Oladon: (# NIL? 2020-05-09T07:35:25Z phoe: a vector of double floats does seem like an array of numbers to me 2020-05-09T07:36:07Z beach: clhs u-a-e-t 2020-05-09T07:36:07Z specbot: upgraded-array-element-type: http://www.lispworks.com/reference/HyperSpec/Body/f_upgr_1.htm 2020-05-09T07:37:04Z beach: Or look at the definition of the ARRAY system class. 2020-05-09T07:37:09Z beach: clhs array 2020-05-09T07:37:09Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_array.htm 2020-05-09T07:37:09Z phoe: clhs array 2020-05-09T07:37:09Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_array.htm 2020-05-09T07:37:57Z phoe: ooh, I understand now 2020-05-09T07:38:25Z even4void joined #lisp 2020-05-09T07:38:27Z phoe: thanks; my head mixed up (array t) and (array *) for a moment 2020-05-09T07:38:53Z beach: Ah. That explains it, yes. 2020-05-09T07:39:16Z SGASAU quit (Remote host closed the connection) 2020-05-09T07:39:56Z SGASAU joined #lisp 2020-05-09T07:40:44Z even4void quit (Remote host closed the connection) 2020-05-09T07:47:38Z ayuce joined #lisp 2020-05-09T07:51:06Z oxum joined #lisp 2020-05-09T07:53:12Z orivej quit (Ping timeout: 272 seconds) 2020-05-09T07:56:22Z oxum quit (Ping timeout: 272 seconds) 2020-05-09T07:57:46Z dalz- joined #lisp 2020-05-09T07:58:22Z Fare quit (Ping timeout: 260 seconds) 2020-05-09T07:58:39Z sugarwren joined #lisp 2020-05-09T08:02:51Z dalz- quit (Remote host closed the connection) 2020-05-09T08:19:38Z Lycurgus quit (Quit: Exeunt) 2020-05-09T08:22:41Z mathrick joined #lisp 2020-05-09T08:25:17Z Adamclisi joined #lisp 2020-05-09T08:28:49Z ArthurStrong quit (Quit: leaving) 2020-05-09T08:31:15Z oxum joined #lisp 2020-05-09T08:40:52Z oxum quit (Ping timeout: 260 seconds) 2020-05-09T08:45:39Z orivej joined #lisp 2020-05-09T08:47:05Z TMA joined #lisp 2020-05-09T08:48:21Z dalz- joined #lisp 2020-05-09T08:51:27Z dalz- quit (Remote host closed the connection) 2020-05-09T08:51:44Z dalz joined #lisp 2020-05-09T08:58:43Z vsync_ is now known as vsync 2020-05-09T09:00:51Z ayuce quit (Remote host closed the connection) 2020-05-09T09:01:39Z SGASAU quit (Remote host closed the connection) 2020-05-09T09:03:03Z SGASAU` joined #lisp 2020-05-09T09:06:48Z phoe: (let ((condition (handler-case (/ 6 0) (division-by-zero (c) c)))) (arithmetic-error-operands condition)) 2020-05-09T09:07:07Z pjb: #| --> (6 0) |# 2020-05-09T09:07:10Z phoe: Should the value of this always be (6 0)? 2020-05-09T09:08:22Z pjb: WHat else could it be? 2020-05-09T09:08:42Z phoe: NIL, according to CLISP, and #, according to ABCL. 2020-05-09T09:09:06Z pjb: That doesn't sound right. 2020-05-09T09:09:26Z phoe files a pair of issues. 2020-05-09T09:09:29Z pjb: arithmetic-error-operands returns a list of the operands which were used in the offending call to the operation that signaled the condition. 2020-05-09T09:09:31Z pjb: seems quite clear. 2020-05-09T09:09:34Z phoe: Yes 2020-05-09T09:09:41Z phoe: lisp-koans helped find a pair of conformance bugs, yay! 2020-05-09T09:09:49Z pjb: nil and # are not the list of oerands which were used in the offending call… 2020-05-09T09:17:12Z oxum joined #lisp 2020-05-09T09:18:14Z sdumi quit (Ping timeout: 240 seconds) 2020-05-09T09:19:28Z jprajzne quit (Quit: jprajzne) 2020-05-09T09:19:31Z sdumi joined #lisp 2020-05-09T09:22:10Z dale quit (Quit: My computer has gone to sleep) 2020-05-09T09:23:37Z oxum quit (Ping timeout: 264 seconds) 2020-05-09T09:23:53Z constptr joined #lisp 2020-05-09T09:23:56Z Lord_of_Life_ joined #lisp 2020-05-09T09:24:43Z easye: phoe: thanks for the bug report! 2020-05-09T09:24:50Z easye: Now back to the book... 2020-05-09T09:25:43Z Lord_of_Life quit (Ping timeout: 246 seconds) 2020-05-09T09:26:14Z orivej quit (Ping timeout: 240 seconds) 2020-05-09T09:26:46Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-09T09:36:38Z phoe: One more question: is this expected? https://plaster.tymoon.eu/view/1815#1815 2020-05-09T09:37:05Z phoe: > equalp descends hash-tables by first comparing the count of entries and the :test function; if those are the same, it compares the keys of the tables using the :test function and then the values of the matching keys using equalp recursively. 2020-05-09T09:37:26Z orivej joined #lisp 2020-05-09T09:38:09Z phoe: this last part sounds like NIL should be returned instead 2020-05-09T09:38:58Z no-defun-allowed: What implementation is that? None of the ones I have on me return T there. 2020-05-09T09:39:11Z sdumi quit (Read error: Connection reset by peer) 2020-05-09T09:39:42Z no-defun-allowed: But I don't think that's expected, no. 2020-05-09T09:41:18Z sdumi joined #lisp 2020-05-09T09:42:14Z phoe: recentmost ECL 2020-05-09T09:42:26Z phoe: lisp koans are so funnnn 2020-05-09T09:43:21Z shka_: well, this seems wrong 2020-05-09T09:44:21Z phoe files an ECL issue 2020-05-09T09:44:28Z phoe: okie then, let's keep on testing 2020-05-09T09:45:57Z beach: phoe: What you are doing is a great service to the community. 2020-05-09T09:47:35Z nika joined #lisp 2020-05-09T09:48:09Z dalz quit (Remote host closed the connection) 2020-05-09T09:48:16Z phoe: beach: I'm glad that I can serve the Lisp community while exhibiting raw and uncensored rage at the current state of the Lisp Koans 2020-05-09T09:48:45Z beach: That's an excellent combination, yes. 2020-05-09T09:57:32Z orivej quit (Ping timeout: 256 seconds) 2020-05-09T10:03:38Z SGASAU` quit (Remote host closed the connection) 2020-05-09T10:04:19Z SGASAU` joined #lisp 2020-05-09T10:05:13Z ayuce joined #lisp 2020-05-09T10:09:34Z gko quit (Ping timeout: 240 seconds) 2020-05-09T10:14:08Z mangul quit (Remote host closed the connection) 2020-05-09T10:14:50Z ralt joined #lisp 2020-05-09T10:18:55Z lukego: Is there an easy way to have QuickLisp apply patches and/or hotfixes to packages at installation time? 2020-05-09T10:19:28Z shka_: nope 2020-05-09T10:19:35Z shka_: as far as i know 2020-05-09T10:19:42Z phoe: lukego: nope, submit patches upstream. 2020-05-09T10:19:44Z shka_: you can stick your patched libs into local projects 2020-05-09T10:19:50Z phoe: or what shka_ says 2020-05-09T10:19:59Z phoe: what kind of patches are you thinking of? 2020-05-09T10:20:32Z lukego: phoe: well here the issue is that a patch has already gone upstream and I want to cherry-pick it into my own env, with minimum disturbance. I'm worried about taking the whole master branch of package FOO in case that cuases compat issues with quicklisp default versions of other packages 2020-05-09T10:20:57Z lukego: I want this mcclim patch https://github.com/McCLIM/McCLIM/commit/70853ecf873eff68c3121a125eeef48817092bd2 basically 2020-05-09T10:21:05Z phoe: lukego: you don't need to take the whole master branch; you can checkout the version that got included into Quicklisp, and cherry-pick the patch on top of that 2020-05-09T10:21:07Z shka_: well, it always worked for me 2020-05-09T10:21:20Z phoe: you have all of git at your disposal, you can use it for your satisfaction 2020-05-09T10:21:38Z shangul joined #lisp 2020-05-09T10:21:45Z lukego: phoe: maybe, but my build system is heavily automated, and a manual step like pinning one package is going to hurt me sooner or later 2020-05-09T10:22:24Z lukego: I mean I _can_ pin it but then I'll have to start being more disciplined about upgrading to newer quicklisp distros 2020-05-09T10:23:08Z lukego: maybe I should consider a radically different strategy though e.g. pulling every project into a local git repo where I can just hack 'em directly. 2020-05-09T10:23:08Z frgo quit (Remote host closed the connection) 2020-05-09T10:23:45Z frgo joined #lisp 2020-05-09T10:24:54Z phoe: https://github.com/google/lisp-koans/pull/111 2020-05-09T10:24:58Z phoe: finally 2020-05-09T10:26:15Z lukego: maybe my quicklisp local-projects dir could be a git repo with all relevant projects referenced as submodules 2020-05-09T10:26:30Z Nilby: lukego: I just either patch it on dists/quicklisp/software directly or link my own patched copy in local-projects depending on the complexity of the patch. The former get overwitten on upgrade, the latter is more obvious. 2020-05-09T10:26:54Z ayuce quit (Remote host closed the connection) 2020-05-09T10:28:22Z random-nick joined #lisp 2020-05-09T10:29:54Z Nilby: Of course, another option, perhaps more reliable, is to include the patch in your software. 2020-05-09T10:29:57Z lukego: I don't want any local state that's not "checked in" somewhere. I've been using Nix to snapshot Quicklisp distros. Maybe I should instead snapshot Quicklisp into Git submodules. 2020-05-09T10:30:51Z lukego: but then I also want to be able to run automated builds with all dependencies captured, which brings me back to nix, and I don't want to maintain two separate packaging systems 2020-05-09T10:31:07Z rixard joined #lisp 2020-05-09T10:31:39Z lukego: Include it with my software? That sounds nice but I'm not sure how -- I'm getting an error at load time on McCLIM so the patch would have to be applied somewhere within ASDF I suppose 2020-05-09T10:32:15Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-09T10:32:17Z Nilby: (defun broken-package:broken-function ... 2020-05-09T10:32:19Z igemnace joined #lisp 2020-05-09T10:32:52Z lukego: doesn't really help me when the error occurs while loading broken-package though -- can't patch it before the package exists 2020-05-09T10:32:55Z SGASAU joined #lisp 2020-05-09T10:33:07Z lukego: would be fine if the error was occurring later though 2020-05-09T10:35:58Z sdumi quit (Ping timeout: 272 seconds) 2020-05-09T10:39:12Z Nilby: I do use git submodules, they're a little annoying, but it could make a reproducible build. 2020-05-09T10:39:37Z terpri quit (Remote host closed the connection) 2020-05-09T10:41:09Z terpri joined #lisp 2020-05-09T10:45:39Z sdumi joined #lisp 2020-05-09T10:55:20Z sdumi quit (Ping timeout: 256 seconds) 2020-05-09T10:55:59Z sdumi joined #lisp 2020-05-09T11:01:18Z TMA quit (Ping timeout: 272 seconds) 2020-05-09T11:04:35Z oxum joined #lisp 2020-05-09T11:07:02Z lukego: I'm looking at the snapshot of Quicklisp packages that I get from ql2nix. This is the metadata that I have now. Question is how to extend this to support patches/modifications to packages in a simple way. https://gist.github.com/lukego/a27c16302dfc8122a4bcab0a652618ad 2020-05-09T11:08:13Z mangul joined #lisp 2020-05-09T11:08:18Z shangul quit (Ping timeout: 260 seconds) 2020-05-09T11:09:19Z rozenglass1 quit (Ping timeout: 246 seconds) 2020-05-09T11:09:44Z lukego: So it looks like already now my (mostly inherited) build is downloading the sources ahead of time for quicklisp, so I should be able to patch them easily there 2020-05-09T11:12:04Z liberliver quit (Ping timeout: 272 seconds) 2020-05-09T11:13:21Z rozenglass1 joined #lisp 2020-05-09T11:13:42Z lukego: might be easier if my canonical sources were git repos instead of tarballs but I'm not sure how that fits with quicklisp 2020-05-09T11:14:00Z SGASAU quit (Remote host closed the connection) 2020-05-09T11:14:42Z SGASAU joined #lisp 2020-05-09T11:14:50Z gko joined #lisp 2020-05-09T11:14:53Z MichaelRaskin: lukego: you can look at how the overrides that are already there are implemented 2020-05-09T11:15:15Z lukego: MichaelRaskin: which overrides do you mean? 2020-05-09T11:16:09Z MichaelRaskin: Well, this might be more a #nixos conversation, but Nixpkgs not only generates stuff from Quicklisp, but also has a file with overrides, e.g. for passing foreign libraries 2020-05-09T11:16:49Z lukego: hm... I should check nixpkgs... this is an out-of-tree tool called ql2nix that I found on github but that was quite some time ago and maybe nixpkgs has moved forwards. thanks for the prod 2020-05-09T11:17:00Z Nilby: Interesting. That looks like it basicly ingests and replicates quicklisp. 2020-05-09T11:17:06Z mood quit (Ping timeout: 256 seconds) 2020-05-09T11:17:15Z mood joined #lisp 2020-05-09T11:19:02Z lukego: Nilby: Yeah. First it runs quicklisp with some ASDF hooks to record all of the sources that are downloaded. Then it snapshots all of those sources. Then for actual build it preinstalls the sources and runs Quicklisp again to load them. 2020-05-09T11:20:06Z lukego takes it to #nixos 2020-05-09T11:20:34Z MichaelRaskin: Nilby: The main point is that Nix the package manager wants to checksum all the downloads itself. And if you want the foreign binaries to be provided by Nix, it is convenient to also translate Quicklisp data into Nix. 2020-05-09T11:22:15Z Nilby: Impressive. I didn't know anything else did that. 2020-05-09T11:22:54Z phoe: Nilby: it's not very hard, given that Quicklisp is basically a collection of text files and zips + a lisp client 2020-05-09T11:23:50Z cosimone joined #lisp 2020-05-09T11:26:10Z MichaelRaskin: It is slightly more annoying now that we do not believe what Quicklisp reports about dependencies, but still not hard. 2020-05-09T11:28:25Z Nilby: With lisp packages integrated into a system package system it opens up the possibilities of lisp packages having non-lisp dependencies which get automatically installed. 2020-05-09T11:29:57Z lukego: Handy thing with Nix is that the snapshot can include all dependencies e.g. X libs, opengl libs, fonts, etc. Then that whole environment can be replicated onto another machine with one command. So even though you have to fight a bit extra to get stuff installed you mostly only have to do that fight once. 2020-05-09T11:30:30Z Nilby: Nice. 2020-05-09T11:30:44Z Nilby is considering trying a Nix install. 2020-05-09T11:30:55Z rand_t joined #lisp 2020-05-09T11:31:34Z lukego: I like it but it's a bit of a religion unto itself and it does make you reluctant to do things the easy/imperative way which is a mixed bag 2020-05-09T11:31:57Z yankM joined #lisp 2020-05-09T11:32:44Z karlosz quit (Quit: karlosz) 2020-05-09T11:33:35Z MichaelRaskin: At some point some HPC people did a reimplementation of Nix in Guile called Guix. They have some benefits and drawbacks (but for full-system use their stricter-than-Debian stance on non-free software starts having an impact) 2020-05-09T11:35:14Z msk joined #lisp 2020-05-09T11:43:16Z heisig: MichaelRaskin: A lot of HPC software is proprietary, yet available on Guix. And, Guix has s-expressions :) 2020-05-09T11:44:21Z Nilby: I'm afraid I'll like Guix too much if I try it. And there's only 86400±2 secs/day. 2020-05-09T11:49:19Z ayuce joined #lisp 2020-05-09T11:55:20Z Guest14592 is now known as borodust 2020-05-09T11:55:32Z borodust quit (Changing host) 2020-05-09T11:55:32Z borodust joined #lisp 2020-05-09T11:56:08Z Bike joined #lisp 2020-05-09T11:56:15Z devrtz quit (Quit: ZNC - http://znc.in) 2020-05-09T11:56:30Z lukego: I'm also afraid of looking at Guix because my universe is already too complicated by options today. despite having been put onto Nix by a Guile maintainer (wingo) in the first place. 2020-05-09T11:56:34Z devrtz joined #lisp 2020-05-09T11:57:54Z lukego: but I note that my current setup is really inadequate in that all the packages are read-only which makes it hard to contribute to them and pull patches. Just adding patches will probably be too much effort. Have to think about what's best. Too bad the metadata I pull from quicklisp is only for tarballs and not git repos or else I'd be tempted to go down the "create git repo of submodules" route. 2020-05-09T11:58:23Z MichaelRaskin: You could clone quicklisp-projects repo 2020-05-09T11:59:09Z lukego: oh interesting. so quicklisp is pulling from version control and then converting to tarballs. 2020-05-09T11:59:45Z MichaelRaskin: Mostly 2020-05-09T11:59:46Z Nilby: For most cases at least. 2020-05-09T11:59:59Z lukego: I also wonder if it's really needed to do this asdf-instrumentation to see which dependencies Quicklisp pulls in, when that information should be available in simple parsable text files in the quicklisp repo to begin with? 2020-05-09T12:00:24Z lukego: mostly is good enough. I don' timagine I'll want to contribute to many projects that aren't under version control anyway 2020-05-09T12:00:28Z MichaelRaskin: Most of the time it _is_ available in Quicklusp repo 2020-05-09T12:01:10Z Nilby: Since I'm always doing it, I made a command for myself: ql-origin lquery => git https://github.com/Shinmera/lquery.git 2020-05-09T12:01:14Z lukego looks at how nixpkgs does this to contrast with ql2nix 2020-05-09T12:01:41Z MichaelRaskin: lukego: Well, it is a bit of «fool me once» 2020-05-09T12:02:11Z Nilby: But you have to keep a quicklisp-projects repo updated. 2020-05-09T12:02:22Z devrtz quit (Quit: ZNC - http://znc.in) 2020-05-09T12:02:39Z MichaelRaskin: Quicklisp is built in a way that is a bit too resilient, so some releases can contain broken dependency information and still work with the Quicklisp client 2020-05-09T12:02:48Z devrtz joined #lisp 2020-05-09T12:03:15Z devrtz quit (Client Quit) 2020-05-09T12:03:38Z devrtz joined #lisp 2020-05-09T12:03:50Z lukego: do we have a recording of Xach's fantastic ECLM talk on Quicklisp way back when? I really need to learn how it works internally better 2020-05-09T12:05:25Z MichaelRaskin: If ASDF fails to find something, Quicklisp can handle this condition and download the package (so the QL metadata can be almost completely broken and things will still work) 2020-05-09T12:05:52Z MichaelRaskin: And this fallback is necessary for local-projects stuff to work transparently 2020-05-09T12:09:29Z shangul joined #lisp 2020-05-09T12:10:38Z Nilby: There's this? https://github.com/quicklisp/eclm2011 but I think the video link is broken. 2020-05-09T12:12:14Z mangul quit (Ping timeout: 272 seconds) 2020-05-09T12:14:21Z lukego ponders 2020-05-09T12:15:26Z lukego: I'm not yet making a proper distinction in my mind between the quicklisp client verses the backend and which state/files belong to which 2020-05-09T12:15:53Z lukego: maybe quicklisp upstream could generate a .nix file even? 2020-05-09T12:21:36Z Nilby: It looks like the client + asdf could have enough for the nix file. But that gist looked like it had quicklisp + ultralisp in it? 2020-05-09T12:23:16Z lukego: Just quicklisp client. haven't looked at ultralisp 2020-05-09T12:23:23Z zooey quit (Ping timeout: 240 seconds) 2020-05-09T12:23:55Z zooey joined #lisp 2020-05-09T12:24:19Z random-nick quit (Quit: quit) 2020-05-09T12:24:26Z ralt quit (Quit: Connection closed for inactivity) 2020-05-09T12:28:13Z lukego: the way I've handled dependencies in the recent past has been a bit extreme. that's to make each one a git subtree with full history. that way you can e.g. 'git bisect' to find individual commits in new releases that have caused you trouble. you can also commit fixes directly and upstream them asynchronously. maybe should take the same approach here, hm. 2020-05-09T12:28:46Z lukego: it means you have one big monorepo incuding all the dependencies and all of their history, which has downsides, but it is pretty simple 2020-05-09T12:30:01Z lukego: I suppose that I could keep my own code in a separate repo so that the big monorepl is only for the dependencies and not something I'm interacting with all day every day 2020-05-09T12:30:01Z Nilby: I like the monorepo approach too. 2020-05-09T12:30:51Z ayuce quit (Remote host closed the connection) 2020-05-09T12:31:38Z lukego: ql2monorepl... 2020-05-09T12:31:42Z lukego: repo 2020-05-09T12:32:14Z lukego: then I could also track updates. instead of just replacing all the releases with new releases I would add merge commits that each pull in the changes to each package 2020-05-09T12:32:54Z Fare joined #lisp 2020-05-09T12:32:56Z lukego: And to follow the "simple but extreme" approach I'd probably just include every package in the quicklisp distro 2020-05-09T12:33:11Z lukego: or be lazy and take the ones that have git repositories to start with 2020-05-09T12:34:31Z Bike: phoe: define-method-combination also does a key before rest kind of thing. i forgot because nobody uses define-method-combination 2020-05-09T12:34:42Z Nilby: That would be great! I think Xach's production stuff sort of does that. 2020-05-09T12:34:56Z phoe: Bike: you are right 2020-05-09T12:35:35Z ayuce joined #lisp 2020-05-09T12:35:40Z lukego: So the data I need for a proof of concept is a set of tuples telling me which version of each package to import and from where. 2020-05-09T12:36:19Z lukego: oh and I recall now that the guy who invented git-subtree invented something new now that probably I should familiarize myself with in case it's better 2020-05-09T12:37:50Z random-nick joined #lisp 2020-05-09T12:40:21Z lukego: Could even build up an interesting history by tagging each quicklisp release 2020-05-09T12:41:51Z lukego: maybe the git commit tree would look like 2020-05-09T12:41:51Z lukego: * Merge Quicklisp release yyyy-mm-dd 2020-05-09T12:41:51Z lukego: ** Merge package foo commit abcdefg 2020-05-09T12:41:51Z lukego: *** Fix bug in package foo 2020-05-09T12:41:51Z lukego: *** Add feature in package foo 2020-05-09T12:41:52Z lukego: ** Merge package bar commit defghij 2020-05-09T12:41:52Z lukego: ... 2020-05-09T12:43:06Z Nilby: It sounds very useful. I wonder how much space it would take up. 2020-05-09T12:45:18Z lukego: Xach is a class act. reading the script he wrote for his 2015 talk. extremely luxurious way to get information 2020-05-09T12:45:35Z msk quit (Read error: Connection reset by peer) 2020-05-09T12:45:55Z msk joined #lisp 2020-05-09T12:46:11Z lukego: So from quicklisp-projects I can get the name of each project and its source repository. where can I find the information to choose which git commit to pull? 2020-05-09T12:46:27Z lukego: i.e. the git commit corresponding with the version in a given quicklisp release 2020-05-09T12:46:56Z Xach: lukego: that info is not currently available. it's something i want to make. 2020-05-09T12:47:26Z Nilby: Yes, mostly. But some repo's have special non-git or even non-vcs download methods. 2020-05-09T12:47:28Z Xach: lukego: i'd like to gather and share provenance info but i don't do it yet. stuff like "commit was fetched from on " 2020-05-09T12:47:47Z Xach: or "tarball file with was fetched from on " 2020-05-09T12:48:19Z Xach: if i wait long enough i don't have to figure out the right syntax for darcs 2020-05-09T12:48:28Z jw4 quit (Read error: Connection reset by peer) 2020-05-09T12:48:49Z Xach: lukego: you can approximate the checkout by going from the date on the dist 2020-05-09T12:49:17Z LISPer joined #lisp 2020-05-09T12:50:17Z jw4 joined #lisp 2020-05-09T12:51:07Z Nilby: I would really wish there was some way to have every .asd file, so I could work on a UI. 2020-05-09T12:51:28Z Xach: Nilby: that is not very difficult! 2020-05-09T12:53:09Z LISPer: I am using ACL 32bit version...but needs 64bit compiler..but have no budget to buy ACL 64bit...Is there good alternative compiler for 64bit windows ? 2020-05-09T12:53:18Z SGASAU quit (Remote host closed the connection) 2020-05-09T12:53:24Z phoe: LISPer: SBCL, CCL 2020-05-09T12:53:31Z Nilby: Xach: I would be most grateful if you could point me toward the way? 2020-05-09T12:54:02Z SGASAU joined #lisp 2020-05-09T12:54:14Z Xach: Nilby: do you mean within quicklisp? 2020-05-09T12:55:17Z Nilby: Xach: Any way that you think might be proper to collect the .asd's 2020-05-09T12:55:49Z Xach: Nilby: right - i mean, the system files provided by quicklisp? 2020-05-09T12:56:02Z Nilby: Right now I could just go through the projects dirs, is that what you would reccommend? 2020-05-09T12:56:50Z p_l: LISPer: ECL will also work in 64bit code and might be of interest on windows 2020-05-09T12:57:08Z lukego: not an issue for proof-of-concept but if you wanted to rebuild historical quicklisp releases too you would need to match up the right version of the projects repo, and deal somehow with repos that have moved/disappeared in the interim. but good to always have tarballs to fall back on from quicklisp 2020-05-09T12:57:09Z LISPer: Performance is critical.. 2020-05-09T12:57:16Z p_l: though I haven't recently checked if it still compiles under MSVC++ or needs alternative compilers 2020-05-09T12:57:17Z Nilby: Xach: basiclly just mapping "git clone" through quicklisp-projects/projects/* 2020-05-09T12:57:24Z LISPer: I really like ACL for it's performance 2020-05-09T12:57:27Z p_l: LISPer: then go with SBCL 64bit 2020-05-09T12:57:29Z phoe: LISPer: go for SBCL then, it has an aggressive compiler. 2020-05-09T12:57:44Z LISPer: Thank you !! I will try 2020-05-09T12:57:45Z p_l: /very/ aggressive compiler 2020-05-09T12:58:24Z lukego: twitter informs me that potential successors to git-submodule/git-subtree are git-subtrac https://github.com/apenwarr/git-subtrac and git-subrepo https://github.com/ingydotnet/git-subrepo 2020-05-09T12:58:40Z Xach: nilby: https://gist.github.com/quicklisp/794d874fe8ef548015734b72bcc964fb 2020-05-09T12:58:58Z Xach: Nilby: that's from the ql-dist package, but all symbols involved are external. 2020-05-09T12:59:27Z Xach: lukego: right, even if you know where something's from and the commit id, the repo may be long gone 2020-05-09T13:00:35Z lukego: Xach: that's fine for me though - starting from the latest quicklisp release and moving forward. 2020-05-09T13:01:01Z kpoeck joined #lisp 2020-05-09T13:01:36Z Nilby: Xach: Awesome. Thanks! Now I guess I just have to install every package :) 2020-05-09T13:02:05Z Xach: Nilby: (map nil 'ensure-installed (provided-releases t)) 2020-05-09T13:03:21Z Nilby: Xach: I should have asked a long time ago. Thank you so much. 2020-05-09T13:03:29Z Nilby is filling up the disk... 2020-05-09T13:05:43Z LISPer quit (Remote host closed the connection) 2020-05-09T13:09:39Z pfdietz quit (Ping timeout: 245 seconds) 2020-05-09T13:13:55Z theBlackDragon quit (Remote host closed the connection) 2020-05-09T13:22:53Z oxum quit (Remote host closed the connection) 2020-05-09T13:24:12Z keepzen joined #lisp 2020-05-09T13:26:29Z theBlackDragon joined #lisp 2020-05-09T13:31:24Z shymega joined #lisp 2020-05-09T13:32:10Z p_l: Xach: looks simpler than I used to do it... 2020-05-09T13:32:36Z Xach: p_l: i will reimburse you for lost time 2020-05-09T13:33:20Z p_l: given that there was none lost, that turns out to be $0.00 after tax, happy to do business with you! ;) 2020-05-09T13:33:48Z lukego: I've read the README for git-subtrac now. I have no idea what it does but it sounds very clever. 2020-05-09T13:34:00Z boeg: phoe: what was the link for the meetup on thuesday? 2020-05-09T13:34:08Z boeg: tuesday* 2020-05-09T13:34:26Z phoe: boeg: https://www.reddit.com/r/lisp/comments/ga7kfk/online_lisp_meeting_series/ 2020-05-09T13:34:34Z boeg: thank you! 2020-05-09T13:34:42Z boeg: think i forgot to write it down 2020-05-09T13:38:48Z oxum joined #lisp 2020-05-09T13:38:55Z ljavorsk joined #lisp 2020-05-09T13:40:38Z bitmapper joined #lisp 2020-05-09T13:45:50Z jonatack quit (Quit: jonatack) 2020-05-09T13:47:27Z theseb joined #lisp 2020-05-09T13:47:58Z bitmapper: not really common lisp, but i've been working on the Thomas implementation of prefix Dylan 2020-05-09T13:48:02Z bitmapper: Thomas 1.2 2020-05-09T13:48:02Z bitmapper: Exit by typing "thomas:done" 2020-05-09T13:48:02Z bitmapper: ? (define-class ()) 2020-05-09T13:48:04Z bitmapper: Result: 2020-05-09T13:48:06Z bitmapper: ? 2020-05-09T13:52:40Z p_l: was that the Digital one? 2020-05-09T13:54:07Z bitmapper: yes 2020-05-09T13:54:14Z bitmapper: i've gotten it working on chez scheme 2020-05-09T13:54:22Z bitmapper: and on scheme2c again 2020-05-09T13:56:17Z frgo_ joined #lisp 2020-05-09T13:57:29Z jonatack joined #lisp 2020-05-09T13:58:12Z theseb: Please allow me to confirm this again..still confused....so can macros treat free variables just like regular functions do with lexical scoping? 2020-05-09T13:58:39Z theseb: There is no inherent reason macros must "ignore the environment" ? 2020-05-09T13:58:41Z theseb: yes? 2020-05-09T13:58:46Z frgo quit (Ping timeout: 240 seconds) 2020-05-09T13:58:46Z theBlackDragon quit (Ping timeout: 258 seconds) 2020-05-09T13:58:47Z EvW1 joined #lisp 2020-05-09T13:59:14Z bitmapper: theseb: depends 2020-05-09T13:59:37Z theseb: bitmapper: what do you mean? on what? 2020-05-09T13:59:47Z bitmapper: if you are quasiquoting or not 2020-05-09T13:59:51Z phoe: theseb: macros, or macro expansions? 2020-05-09T14:00:00Z bitmapper: actually, just quoting 2020-05-09T14:00:02Z phoe: in the former case, just replace DEFMACRO with DEFUN and the function will work the same 2020-05-09T14:00:15Z phoe: in the latter case, depends on the context in which the macro is expanded 2020-05-09T14:01:01Z theseb: phoe: macro expansions 2020-05-09T14:01:43Z phoe: theseb: I don't understand the question then 2020-05-09T14:02:07Z theseb: phoe: give a minute to try to make a better phrasing 2020-05-09T14:02:08Z phoe: the macroexpansion is just a Lisp form; whatever symbols are inside it are then attempted to be parsed as if the macro wasn't even there in the first place 2020-05-09T14:04:26Z theBlackDragon joined #lisp 2020-05-09T14:07:07Z Josh_2 joined #lisp 2020-05-09T14:07:48Z theseb: phoe: so macro expansions you said depend on the context in which they are expanded 2020-05-09T14:08:11Z phoe: theseb: a macroexpander is just a function 2020-05-09T14:08:16Z phoe: it can close over stuff from its lexical environment 2020-05-09T14:08:16Z theseb: phoe: why not also the context in which the macro was *defined*?...Isn't that what lexical scoping means? 2020-05-09T14:08:27Z phoe: it can use globally defined stuff as well 2020-05-09T14:08:31Z Bike: i think you're over thinking this. 2020-05-09T14:08:37Z phoe: ^ 2020-05-09T14:08:43Z Bike: a macro function is just a function. it can be a closure like any function, though that's not common. 2020-05-09T14:08:50Z Bike: all the function does is take a form as input and output another form. 2020-05-09T14:08:59Z Bike: it doesn't know jack shit about that form's variables or functions or whatever. 2020-05-09T14:09:05Z phoe: (let ((x 42)) (defmacro foo () x)) ;; look ma, lexical closure in a macro! 2020-05-09T14:09:31Z phoe: as I said, if you have a macro problem, just replace DEFMACRO with a DEFUN and think again from this perspective 2020-05-09T14:09:50Z theseb: phoe: actually...great example....if your (let.....) ok? it isn't against the rules? 2020-05-09T14:09:56Z theseb: s/if/is/ 2020-05-09T14:10:00Z phoe: theseb: which rules 2020-05-09T14:10:09Z phoe: the only thing that breaks is toplevelness 2020-05-09T14:10:26Z phoe: which effectively means that you cannot use the macro in the same file, only in files that you load lader 2020-05-09T14:10:29Z phoe: later* 2020-05-09T14:10:49Z theseb: phoe: why can't you use it in the same file? 2020-05-09T14:10:57Z Bike: okay just wait 2020-05-09T14:11:02Z Bike: back up. forget toplevelness for a second. 2020-05-09T14:11:04Z phoe: clhs 3.2.3.1 2020-05-09T14:11:04Z specbot: Processing of Top Level Forms: http://www.lispworks.com/reference/HyperSpec/Body/03_bca.htm 2020-05-09T14:11:10Z Bike: theseb, what do you think is wrong with this let defmacro example. 2020-05-09T14:11:14Z phoe: ^ 2020-05-09T14:11:15Z Bike: what rule are you referring to. 2020-05-09T14:11:35Z Bike: i already tried to explain non top level macros to you like last week, and i thought you understood. 2020-05-09T14:11:45Z theseb: Bike: maybe rule wasn't the right word 2020-05-09T14:11:46Z grumble quit (Quit: As we empty our lint traps, we're just slowly throwing our clothes in the garbage.) 2020-05-09T14:12:07Z theseb: Bike: i think i got it now when phoe said (let ((x 42)) (defmacro foo () x)) was valid 2020-05-09T14:12:14Z theseb: Bike: just wanted to confirm that 2020-05-09T14:12:51Z phoe: this is essentially (let ((x 42)) (setf (macro-function 'foo) ...)) 2020-05-09T14:13:00Z phoe: where ... frobs the macro body a lil bit 2020-05-09T14:13:28Z phoe: inside ..., there is a (lambda () x) at some point 2020-05-09T14:13:35Z phoe: look, a perfectly normal lexical closure 2020-05-09T14:14:44Z efm joined #lisp 2020-05-09T14:15:01Z keepzen left #lisp 2020-05-09T14:15:55Z theseb: phoe: (let ((x 42)) (defmacro foo () x)) <--- and further down in the source it is ok to use (foo) ? 2020-05-09T14:16:04Z theseb: phoe: and it will return 42? 2020-05-09T14:16:11Z phoe: theseb: not in the same file 2020-05-09T14:16:15Z phoe: but in the next files, yes 2020-05-09T14:16:38Z phoe: (foo) will expand into the Lisp form 42 which will evaluate into 42 2020-05-09T14:16:50Z grumble joined #lisp 2020-05-09T14:17:07Z Bike: because, as i tried to explain before, the compiler can't create the macro function at compile time without evaluating the entire (let ...) form. 2020-05-09T14:18:09Z theseb: Bike: is common lisp always compiled? what if it was interpreted (no compilation step)...then would it be ok to use in same file? 2020-05-09T14:18:19Z Bike: if you load the file that's okay, sure. 2020-05-09T14:18:28Z Bike: then it just evaluates each form one at a time. 2020-05-09T14:18:30Z theseb: oh good 2020-05-09T14:18:38Z Bike: but having a file that works when loaded but not when compiled is kind of confusing. 2020-05-09T14:18:41Z phoe: clhs 3.2.2.2 2020-05-09T14:18:41Z specbot: Minimal Compilation: http://www.lispworks.com/reference/HyperSpec/Body/03_bbb.htm 2020-05-09T14:18:42Z theseb: ok..i think i got it now 2020-05-09T14:18:43Z phoe: also this 2020-05-09T14:19:04Z phoe: the compiler is only required to do the above for compiled code 2020-05-09T14:19:37Z phoe: if you don't have a compilation step then you can ignore it and treat all forms as if they were LOAD'ed 2020-05-09T14:20:11Z theseb: I've been using Python for nearly 17 years but my intuition tell me there's something magical about lisp 2020-05-09T14:20:16Z theseb: tells* 2020-05-09T14:20:40Z phoe: yes, there is: doing things differently™ 2020-05-09T14:20:42Z theseb: I don't about you all but I want to learn lisp really well and do something awesome that blows everyone away like Paul Graham 2020-05-09T14:20:48Z phoe: that's the whole magic 2020-05-09T14:20:58Z phoe: don't get me started about Graham though 2020-05-09T14:21:28Z theseb: lol 2020-05-09T14:21:37Z beach: theseb: If you want to get rich, there are easier ways. 2020-05-09T14:22:03Z phoe: I seriously consider pg to be one of the greatest Lisp shitposters and as much as blessing to the Lisp community as he is its bane 2020-05-09T14:22:06Z beach: theseb: Though, learning Common Lisp well, is a laudable goal. 2020-05-09T14:22:28Z phoe: theseb: see https://github.com/keybase/keybase-issues/issues/3889 for a tl;dr of my position about the issue 2020-05-09T14:22:37Z phoe: I need to write a full blogpost about it someday 2020-05-09T14:22:48Z _mixfix41_ joined #lisp 2020-05-09T14:23:16Z KingRagworm joined #lisp 2020-05-09T14:23:24Z theseb: Perhaps a lisp DSL would make a really complex machine learning problem doable....maybe i can make a macro heavy lisp program that does mind blowing machine learning 2020-05-09T14:23:45Z theseb: that may be a money maker 2020-05-09T14:24:09Z phoe: IMO Lisp won't blow anyone's mind, including yours 2020-05-09T14:24:17Z phoe: it's a very good and battle-tested programming language 2020-05-09T14:24:31Z lukego: So I have various grudges against Hetzner, EC2, and GCE. What options does that leave me for a convenient economical high-bandwidth env for playing with downloading lots of Quicklisp projects? 2020-05-09T14:24:39Z theseb: They said lisp had an "AI Winter".....imho...with the new AI renaissance (deep learning!!!!).....i don't see why lisp can't now have an "AI SPRING!" 2020-05-09T14:24:41Z theseb: there 2020-05-09T14:24:47Z theseb: i've said my $0.02 2020-05-09T14:24:47Z phoe: but it's not the Magical Silver Bullet of Enlightenment™®© that people like pg claim it to be 2020-05-09T14:28:32Z theseb: phoe: i love this..."some prominent faces in the programming world in general, have been writing about Lisp as secret sauce, silver bullet, source of programming enlightenment, yadda yadda" 2020-05-09T14:29:02Z phoe: theseb: that, in turn, is my 2¢ 2020-05-09T14:29:18Z Blukunfando quit 2020-05-09T14:29:34Z theseb: phoe: this is hilarious... other than causing some people to indeed try Lisp, have left a lot of people confused and amused by the wording - or just plain angry and disappointed at the false marketing that I consider the above hyperboles to be 2020-05-09T14:29:37Z Odin-: https://en.wikipedia.org/wiki/No_Silver_Bullet <-- Seems relevant. 2020-05-09T14:30:05Z theseb: phoe: yea ..it least it gets people in the door ;) 2020-05-09T14:30:21Z theseb: phoe: then they get pissed by the false marketing lol 2020-05-09T14:30:27Z phoe: theseb: also gets people outta the door. 2020-05-09T14:30:30Z Odin-: Sometimes, people being interested for the wrong reasons is worse than not being interested. 2020-05-09T14:30:46Z phoe: but I found that people don't really talk about the latter. 2020-05-09T14:30:50Z KingRagworm quit (Remote host closed the connection) 2020-05-09T14:30:53Z phoe: well, until it's too late, anyway 2020-05-09T14:31:46Z lavaflow quit (Ping timeout: 260 seconds) 2020-05-09T14:32:06Z theseb: phoe: in all fairness to the "silver bullet meme"....every once in a while......I'll hear about some DARPA challenge or programming contest somewhere and some obscure submission will win ...then i find out it was done in lisp 2020-05-09T14:32:42Z theseb: phoe: that's my best anecdote i can think of for the "lisp has super powers!!!!" 2020-05-09T14:33:19Z theseb: but maybe they would have won with python just as well as you would say 2020-05-09T14:33:21Z theseb: perhaps 2020-05-09T14:33:23Z phoe: theseb: it doesn't. It's just a really good combination of well-thought-out mechanisms that make programming and debugging pleasing. 2020-05-09T14:34:28Z theseb: phoe: yes but that in itself may be a competitive advantage in using lisp.....perhaps not magical but significant 2020-05-09T14:34:31Z phoe: the "magic" is the fact that the whole world is going it the wrong way around, seriously; Lisp and Smallktalk and, surprisingly, HolyC from TempleOS all have these superpowers by being image-based interactive programming languages will full introspection and debugging. 2020-05-09T14:34:57Z MichaelRaskin: Also, Erlang? 2020-05-09T14:35:00Z phoe: HolyC "purposefully" doesn't have memory safety, but that's not relevant. 2020-05-09T14:35:16Z phoe: Erlang, too, sure thing 2020-05-09T14:35:46Z renzhi_ joined #lisp 2020-05-09T14:37:12Z theseb: phoe: your point i think is that it isn't so much that lisp is magical as that other solutions are so bad 2020-05-09T14:37:28Z theseb: by comparison 2020-05-09T14:37:32Z theseb: makes sense 2020-05-09T14:37:35Z phoe: it's just "worse is better" in practice 2020-05-09T14:37:40Z phoe: nothing magical about it either 2020-05-09T14:38:46Z lavaflow joined #lisp 2020-05-09T14:39:15Z liberliver joined #lisp 2020-05-09T14:39:18Z MichaelRaskin: To be fair, Python used right can also be used for image-based-like development and it has a ton of introspection 2020-05-09T14:39:54Z phoe: I am curious to see anything like SLIME developed for it though 2020-05-09T14:40:01Z phoe: or does such a thing already exist? 2020-05-09T14:41:02Z ayuce quit (Remote host closed the connection) 2020-05-09T14:41:03Z MichaelRaskin: SLIME is one possible way of doing editor integration 2020-05-09T14:42:11Z ayuce joined #lisp 2020-05-09T14:42:18Z MichaelRaskin: There are definitely debuggers for Python allowing you to evaluate code in any of the stack frames 2020-05-09T14:42:25Z Xach: lukego: i use ovh 2020-05-09T14:46:51Z jruiz quit (Ping timeout: 260 seconds) 2020-05-09T14:49:44Z EvW1 quit (Ping timeout: 246 seconds) 2020-05-09T14:54:36Z toorevitimirp quit (Remote host closed the connection) 2020-05-09T15:09:27Z oxum quit (Remote host closed the connection) 2020-05-09T15:12:04Z madage quit (Remote host closed the connection) 2020-05-09T15:12:22Z madage joined #lisp 2020-05-09T15:14:43Z theseb: Odin-: you there? 2020-05-09T15:15:38Z SGASAU quit (Remote host closed the connection) 2020-05-09T15:16:18Z SGASAU joined #lisp 2020-05-09T15:21:10Z theseb: phoe: whoa....HolyC / TempleOS interesting story 2020-05-09T15:24:00Z phoe: it's a single-ring OS, just like Mezzano 2020-05-09T15:24:18Z phoe: the whole programming language is image-based, not unlike Lisp or Smalltalk 2020-05-09T15:29:21Z Aurora_v_kosmose quit (Quit: Пока, мир.) 2020-05-09T15:29:42Z Aurora_iz_kosmos joined #lisp 2020-05-09T15:29:47Z Aurora_iz_kosmos is now known as Aurora_v_kosmose 2020-05-09T15:29:50Z ralt joined #lisp 2020-05-09T15:30:50Z theseb: phoe: afaict 'image based' means...'you can control and modify nearly everything' 2020-05-09T15:30:57Z sbodin quit (Read error: Connection reset by peer) 2020-05-09T15:31:23Z phoe: > 2020-05-09T15:31:25Z phoe: > An image-based language is a language in which the primary means of development consists of programmers modifying an (usually in-memory) image of the runtime environment. 2020-05-09T15:31:32Z phoe: https://wiki.c2.com/?ImageBasedLanguage 2020-05-09T15:31:32Z sbodin joined #lisp 2020-05-09T15:33:26Z lukego: So! If you clone all of the quicklisp-projects with source 'git ' it's 2.0GB with full git history and 1.5GB with --depth=1. 2020-05-09T15:33:43Z lukego: So not really that big in the grand scheme of things although I dunno if Github is happy about pushing 2GB repos 2020-05-09T15:33:56Z lukego: have to incude more sources though 2020-05-09T15:34:18Z lukego: that's 1619 projects 2020-05-09T15:34:45Z lukego: So quicklisp2monorepo with full history (e..g git subtree/git subtrac) seems plausible for now 2020-05-09T15:35:02Z oxum joined #lisp 2020-05-09T15:35:31Z theseb: phoe: ever heard of ESR? he's another writer that writes about the "lisp enlightenment"...then he goes and uses Python and Go 2020-05-09T15:35:58Z lukego: interesting if git-fu would allow you to construct a branch containing only the packages you actually want and not pull the rest. the git-subtrac docs seemed to hint in that direction but I didn't understand jack on the first reading 2020-05-09T15:36:05Z phoe: theseb: yes, I've heard about it, and I consider him a part of the issue. 2020-05-09T15:36:10Z phoe: s/about it/about him/ 2020-05-09T15:36:51Z dddddd joined #lisp 2020-05-09T15:37:35Z ralt: quicklisp is not that big, I used to package everything with https://gitlab.com/ralt/qldeb 2020-05-09T15:37:43Z theseb: phoe: i think we can possibly save the whole 'enlightenment' marketing campaign if we tone down what we mean by enlightenment.....It perhaps only means something as benign as "Wow I didn't know a language could be implement with so little primitives!" 2020-05-09T15:38:26Z theseb: phoe: it is half in jest and half for fun i guess 2020-05-09T15:38:42Z theseb: i mean half in jest and half being serious 2020-05-09T15:40:31Z lukego: github say the max repo size is 100GB, with a soft limit / warning at 75GB, so lotsa headroom there 2020-05-09T15:41:16Z kingcons quit (Quit: ZNC 1.6.5+deb1+deb9u2 - http://znc.in) 2020-05-09T15:43:00Z TMA joined #lisp 2020-05-09T15:43:16Z lukego: Have to think about how to make this play with Nix. Ideally wouldn't import a zillion copies of the monorepo into the Nix store. Maybe you'd separately checkout the monorepo and then have Nix cherry-pick packages from that. Maybe even still use ql2nix but sourcing the packages from the monorepo. 2020-05-09T15:44:45Z lukego: or if the monorepo were used as quicklisp/local-projects you could even have as many or as few packages in there as you wanted and let quicklisp source any that are missing. but have to think about whether I'm going in circles and ending up back at the submodules idea here more-or-less. 2020-05-09T15:47:14Z _mixfix41_ is now known as mixfix41_lied 2020-05-09T15:47:23Z lukego: and have to consider the use cases and whether this whole idea is more trouble than it's worth 2020-05-09T15:51:08Z Fare quit (Ping timeout: 256 seconds) 2020-05-09T15:59:27Z fourier joined #lisp 2020-05-09T15:59:54Z arpunk joined #lisp 2020-05-09T16:03:44Z kpoeck quit (Remote host closed the connection) 2020-05-09T16:07:35Z Nilby: perhaps one doesn't really need all of it, but of course some things are essential, clinch-20180228-git/examples/assets/img/comic-with-shark.jpg gendl-devo-a6b5a5f8-git/gwl/static/gwl/images/slack_out.gif 2020-05-09T16:12:07Z Nilby quit (Read error: Connection reset by peer) 2020-05-09T16:12:48Z gendl: Not having time now to read this whole feed, but it looks like folks are expressing concern about quicklisp system sizes? I know we have a lot of bloat in the gendl ql system. A lot of that was coming from the PDF of our manual, which I thought I got rid of. Is that still there? 2020-05-09T16:12:58Z gendl: Well, i guess it's my responsibility to check that... 2020-05-09T16:18:43Z Posterdati quit (Read error: Connection reset by peer) 2020-05-09T16:19:16Z gendl: ... just checked. tutorial.pdf and associated images have been in .gitignore for some time 2020-05-09T16:21:01Z gendl: Nilby: a few years ago we were ready to get rid of that slack_out.gif but a Fortune 500 customer (at the time) requested that we keep it. It pops up under certain conditions in our browser-based inspection and debugging environment. 2020-05-09T16:21:10Z EvW joined #lisp 2020-05-09T16:21:42Z gendl: Fortune [much smaller number than 500, actually] 2020-05-09T16:22:54Z ayuce quit (Ping timeout: 240 seconds) 2020-05-09T16:24:09Z karswell joined #lisp 2020-05-09T16:26:43Z sdumi quit (Ping timeout: 260 seconds) 2020-05-09T16:27:42Z Posterdati joined #lisp 2020-05-09T16:29:24Z ayuce joined #lisp 2020-05-09T16:29:46Z sdumi joined #lisp 2020-05-09T16:31:20Z Felix__ joined #lisp 2020-05-09T16:32:00Z Felix__ quit (Remote host closed the connection) 2020-05-09T16:32:01Z msk quit (Quit: Leaving) 2020-05-09T16:32:58Z jruiz joined #lisp 2020-05-09T16:34:32Z fourier quit (Ping timeout: 260 seconds) 2020-05-09T16:35:12Z Josh_2: I have some ironclad cipher benchmarks here https://imgur.com/rUAQODn.png 2020-05-09T16:35:31Z ayuce left #lisp 2020-05-09T16:35:40Z kingragworm joined #lisp 2020-05-09T16:35:49Z Josh_2: in cfb8 mode 2020-05-09T16:38:16Z gendl: ... yeah i think it's time to dump the animated "Bob" Dobbs... just noticed those images are just south of 10 MB. There may well be copyright issues with having them in our repo as well. Apologies for that! 2020-05-09T16:38:42Z gendl: (referring to the slack_out.gif mentioned above by Nilby). 2020-05-09T16:39:18Z gko quit (Ping timeout: 256 seconds) 2020-05-09T16:41:26Z Felix__ joined #lisp 2020-05-09T16:42:42Z Felix__ quit (Remote host closed the connection) 2020-05-09T16:44:37Z kingragworm_ joined #lisp 2020-05-09T16:53:29Z kingragworm_ quit (Quit: kingragworm_) 2020-05-09T16:53:49Z kingragworm_ joined #lisp 2020-05-09T16:55:15Z kingragworm_ quit (Client Quit) 2020-05-09T16:55:35Z kingragworm_ joined #lisp 2020-05-09T16:56:57Z kingragworm_ quit (Remote host closed the connection) 2020-05-09T17:00:26Z kingragworm_ joined #lisp 2020-05-09T17:00:53Z theseb quit (Quit: Leaving) 2020-05-09T17:03:22Z kingragworm_ quit (Remote host closed the connection) 2020-05-09T17:06:37Z LisperWannabe joined #lisp 2020-05-09T17:06:42Z LisperWannabe: Hello! 2020-05-09T17:08:52Z ayuce joined #lisp 2020-05-09T17:09:17Z phoe: heyyy 2020-05-09T17:09:19Z phoe: what's up 2020-05-09T17:09:43Z cmatei quit (Remote host closed the connection) 2020-05-09T17:10:05Z cmatei joined #lisp 2020-05-09T17:10:13Z LisperWannabe: i need help with something 2020-05-09T17:10:21Z phoe: sure, what is it 2020-05-09T17:10:29Z LisperWannabe: have you ever used lispcord? 2020-05-09T17:11:11Z phoe: not personally; I think that some people on the Lisp Discord server have, given the nature of Discord 2020-05-09T17:11:13Z Shinmera: If you need help for that the github repo is your best bet. 2020-05-09T17:11:20Z phoe: but you might stay a while and listen or contact the gith-- 2020-05-09T17:11:21Z phoe: yes 2020-05-09T17:11:59Z LisperWannabe: its giving me errors when i try to connect it, somethign to deal with ssl 2020-05-09T17:12:14Z brutalist joined #lisp 2020-05-09T17:12:26Z phoe: LisperWannabe: oh! what sorta errors? 2020-05-09T17:12:28Z phoe: please use a pastebin 2020-05-09T17:12:34Z LisperWannabe: ok 2020-05-09T17:12:36Z phoe: maybe it's related to openssl missing from your machine 2020-05-09T17:13:29Z LisperWannabe: i think i do have open ssl 2020-05-09T17:13:35Z LisperWannabe: https://pastebin.com/3C1aC6vZ 2020-05-09T17:14:08Z phoe: oh, OpenSSL is unable to verify the certificate issuer 2020-05-09T17:14:23Z phoe: I actually don't know how to fix that one; I'm not good at SSL stuff 2020-05-09T17:14:47Z LisperWannabe: oh ok, thanks for the help though 2020-05-09T17:15:30Z LisperWannabe quit (Quit: WeeChat 2.7) 2020-05-09T17:16:24Z kpoeck joined #lisp 2020-05-09T17:16:54Z lukego: I've pondered packaging for the better part of a dog-walk and I don't like the monorepo idea anymore. makes it too hard to try swapping in/out different versions e.g. hacks that other people have done. better to have an indirection that lets you pick an arbitrary version of a package. question is whether to use something built into quicklisp e.g. local-projects, or built into nix e.g. overrideDerivation, or built into git 2020-05-09T17:21:51Z dalz joined #lisp 2020-05-09T17:24:14Z Guester8 joined #lisp 2020-05-09T17:26:53Z sjl quit (Quit: WeeChat 2.2-dev) 2020-05-09T17:27:35Z kpoeck quit (Ping timeout: 245 seconds) 2020-05-09T17:30:33Z EvW quit (Ping timeout: 260 seconds) 2020-05-09T17:33:46Z ljavorsk quit (Ping timeout: 260 seconds) 2020-05-09T17:38:31Z kpoeck joined #lisp 2020-05-09T17:40:05Z Oladon joined #lisp 2020-05-09T17:43:20Z oxum quit (Remote host closed the connection) 2020-05-09T17:43:43Z madage quit (Ping timeout: 240 seconds) 2020-05-09T17:45:45Z Guester8: Hi, anybody used Parenscript? Would you recommend it over writing direct javascript? 2020-05-09T17:45:53Z phoe: announcement: Lisp Koans are now officially at version 2.0, my change was merged 2020-05-09T17:46:08Z jruiz quit (Remote host closed the connection) 2020-05-09T17:47:01Z bitmapper: phoe: factor has images and a presentation based gui too! 2020-05-09T17:47:10Z phoe: bitmapper: TIL 2020-05-09T17:47:13Z madage joined #lisp 2020-05-09T17:47:18Z bitmapper: it's actually really nice 2020-05-09T17:47:19Z nowhy joined #lisp 2020-05-09T17:48:43Z Lycurgus joined #lisp 2020-05-09T17:49:37Z ralt quit (Quit: Connection closed for inactivity) 2020-05-09T17:52:35Z akoana joined #lisp 2020-05-09T17:53:01Z ljavorsk joined #lisp 2020-05-09T17:56:19Z nowhy quit (Ping timeout: 245 seconds) 2020-05-09T17:57:43Z Guester8 quit (Ping timeout: 260 seconds) 2020-05-09T18:00:13Z ljavorsk quit (Ping timeout: 264 seconds) 2020-05-09T18:01:53Z rumbler31 quit (Remote host closed the connection) 2020-05-09T18:02:36Z ATuin joined #lisp 2020-05-09T18:03:37Z dalz quit (Remote host closed the connection) 2020-05-09T18:04:13Z ljavorsk joined #lisp 2020-05-09T18:07:32Z lukego: I think I'll step back from the abyss for now actually. My little ql2nix setup works well for a medium number of stable dependencies and I should probably focus on using that to actually write some code of my own. CLIM and packaging-hacking are attractive yaks but probably a distraction atm. 2020-05-09T18:07:59Z lukego: I'm very curious to see how McCLIM looks these days though, maybe oughta YouTube some recent demos 2020-05-09T18:08:25Z SGASAU quit (Remote host closed the connection) 2020-05-09T18:08:48Z shka_: i done some mcclim programming in past months 2020-05-09T18:09:11Z SGASAU joined #lisp 2020-05-09T18:09:51Z cosimone quit (Remote host closed the connection) 2020-05-09T18:10:17Z cosimone joined #lisp 2020-05-09T18:10:44Z shka_: in terms of ways of how interactions are managed clim is a work of genius 2020-05-09T18:10:56Z mikecheck joined #lisp 2020-05-09T18:11:10Z Fare joined #lisp 2020-05-09T18:12:18Z shka_: and honestly, i am under the impression that it is practical library for certain types of applications 2020-05-09T18:13:01Z shka_: if i would attempt to write a web framework, i would try to mimic mcclim architecture 2020-05-09T18:13:29Z shka_: so thumbs up 2020-05-09T18:14:41Z lukego: I need to spend some quality time with org-babel. 2020-05-09T18:15:27Z lukego: I have an equally torturous nix-based packaging of Emacs with various packages and settings that I need to amortize the setup cost of by actually using :) 2020-05-09T18:15:38Z lukego: albeit that's mostly just using upstream support 2020-05-09T18:20:47Z oxum joined #lisp 2020-05-09T18:22:08Z lukego: I also have some exotic notions like generating Blender models and interacting with them there instead of creating realtime UIs. no idea if that's practical but should actually try it :) 2020-05-09T18:23:26Z lukego: thanks all for the Quicklisp tips today. will surely come back and shave this yak in the future :) 2020-05-09T18:25:34Z oxum quit (Ping timeout: 260 seconds) 2020-05-09T18:26:17Z jdz: lukego: I think nobody has suggested creating your own Quicklisp dist. Not sure it would help, though. 2020-05-09T18:26:28Z jdz: I know there's ultralisp. 2020-05-09T18:27:10Z lukego: yeah that's the direction my thoughts were wandering 2020-05-09T18:28:25Z jdz: I was thinking something like vanilla Quicklisp dist with an overlay of your "patched" libraries. 2020-05-09T18:29:01Z lavaflow quit (Ping timeout: 264 seconds) 2020-05-09T18:30:51Z azureBlob joined #lisp 2020-05-09T18:30:53Z nullniverse quit (Ping timeout: 244 seconds) 2020-05-09T18:31:07Z lukego: also when what I'm doing is speculative, like spending an hour or two playing with McCLIM, maybe just ditch my whole setup and e.g. try it in an Ubuntu VM to see if it makes sense to package up 2020-05-09T18:31:28Z lukego: but, I do lament a bit not having read/write copies of my dependencies, and so being unlikely to contribute anything useful upstream due to friction 2020-05-09T18:32:40Z EvW joined #lisp 2020-05-09T18:37:01Z gendl: Nilby: Done. Purged. 2020-05-09T18:37:50Z kingragworm quit (Quit: kingragworm) 2020-05-09T18:38:31Z fourier joined #lisp 2020-05-09T18:38:59Z azureBlob: Hello! I'm trying to learn lisp and I found a situation that looks like it would be a good place to make a macro, but I can't seem to get it right, I'm trying to make a macro that takes a number and a list of numbers and return values, that compares the given number with the list number and returns the smallest valid return value for that number, I think I need this to expand to a cond block, but idk how to turn the list of checks to 2020-05-09T18:38:59Z azureBlob: something valid. Here's my code which probably explains it better than I https://pastebin.com/1YtwpfgC 2020-05-09T18:40:17Z phoe: azureBlob: could you try writing down an example input and an example output? that should make it easier to grasp what you're trying to do 2020-05-09T18:40:25Z ljavorsk quit (Ping timeout: 264 seconds) 2020-05-09T18:41:06Z bitmapper quit (Read error: Connection reset by peer) 2020-05-09T18:41:11Z bitmappe_ joined #lisp 2020-05-09T18:41:37Z shka_: azureBlob: eh, defvar does not blend itself into macros all that well 2020-05-09T18:41:43Z bitmappe_ is now known as help 2020-05-09T18:41:49Z help is now known as bitmapper 2020-05-09T18:43:43Z shka_: azureBlob: anyway, your problem here is that you are using quote and not quasi quote in the last line of your code 2020-05-09T18:44:02Z azureBlob: Here's an example of what I want it to look like https://pastebin.com/CfPiSzr2 2020-05-09T18:44:03Z shka_: so first of replace ' with ` 2020-05-09T18:44:22Z shka_: secondly 2020-05-09T18:44:41Z shka_: ,(second sel) should become ',(second sel) 2020-05-09T18:44:49Z phoe: why the quoting inside the macro 2020-05-09T18:44:59Z phoe: and why the nested list structure 2020-05-09T18:45:03Z shangul quit (Remote host closed the connection) 2020-05-09T18:45:14Z phoe: I imagine it could possibly work as (selector n (0 'zero) (1/2 'half) (1 'one)) 2020-05-09T18:45:40Z shangul joined #lisp 2020-05-09T18:45:58Z shka_: well, i guess.. 2020-05-09T18:46:29Z azureBlob: I was sort of immitating what other functions do, like let 2020-05-09T18:46:34Z azureBlob: sorry, macros 2020-05-09T18:47:08Z phoe: (defmacro selector (variable &rest cases) (flet ((frob (case) (destructuring-bind (limit &rest forms) case `((>= ,variable ,limit) ,@forms)))) `(cond ,@(mapcar #'frob cases)))) 2020-05-09T18:47:11Z phoe: that's my proposal 2020-05-09T18:50:10Z LdBeth: I think it's not a case suitable for a macro 2020-05-09T18:50:45Z phoe: LdBeth: how do you solve it otherwise? you have multiple &rest cases in there 2020-05-09T18:52:05Z lavaflow joined #lisp 2020-05-09T18:52:07Z LdBeth sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/SHbJxBNwBXYPvGFVePtOJoVp > 2020-05-09T18:52:18Z LdBeth: CL-USER> (selector 3 color-blocks) 2020-05-09T18:52:18Z LdBeth: ("█") 2020-05-09T18:52:36Z phoe: LdBeth: oh, sure, if you want to quote the selector list and only return data instead of executing code 2020-05-09T18:52:37Z oxum joined #lisp 2020-05-09T18:52:41Z phoe: a function will do in such a case 2020-05-09T18:53:17Z kingragworm joined #lisp 2020-05-09T18:53:22Z fourier quit (Ping timeout: 260 seconds) 2020-05-09T18:53:23Z LdBeth: since with a macro it is hard to make "(selector 3 color-blocks)" work 2020-05-09T18:53:25Z brutalist quit (Ping timeout: 246 seconds) 2020-05-09T18:54:00Z phoe: right, if you have your data specified elsewhere a variable 2020-05-09T18:54:15Z phoe: *in a variable 2020-05-09T18:54:31Z dalz joined #lisp 2020-05-09T18:54:36Z ralt joined #lisp 2020-05-09T18:55:07Z LdBeth: *a little typo, change cdr in my example to cadr 2020-05-09T18:58:42Z liberliver quit (Ping timeout: 256 seconds) 2020-05-09T19:00:25Z fourier joined #lisp 2020-05-09T19:04:37Z terpri quit (Remote host closed the connection) 2020-05-09T19:04:58Z terpri joined #lisp 2020-05-09T19:06:34Z terpri quit (Remote host closed the connection) 2020-05-09T19:07:00Z terpri joined #lisp 2020-05-09T19:11:48Z SGASAU quit (Remote host closed the connection) 2020-05-09T19:12:09Z karlosz joined #lisp 2020-05-09T19:12:30Z SGASAU joined #lisp 2020-05-09T19:12:37Z terpri quit (Remote host closed the connection) 2020-05-09T19:12:40Z heisig quit (Ping timeout: 246 seconds) 2020-05-09T19:13:00Z terpri joined #lisp 2020-05-09T19:13:12Z kingragworm quit (Quit: kingragworm) 2020-05-09T19:15:48Z Kevslinger joined #lisp 2020-05-09T19:19:16Z liberliver joined #lisp 2020-05-09T19:19:26Z EvW quit (Ping timeout: 240 seconds) 2020-05-09T19:21:13Z oxum quit (Ping timeout: 264 seconds) 2020-05-09T19:23:56Z Lycurgus quit (Quit: Exeunt) 2020-05-09T19:28:10Z EvW1 joined #lisp 2020-05-09T19:30:30Z shangul quit (Ping timeout: 272 seconds) 2020-05-09T19:38:10Z Grue`: azureBlob: (cdr (assoc 7/10 color-blocks :test '>=)) => ("▓") 2020-05-09T19:38:38Z phoe: Grue`: nice 2020-05-09T19:40:02Z heisig joined #lisp 2020-05-09T19:41:16Z ayuce quit (Remote host closed the connection) 2020-05-09T19:42:01Z ayuce joined #lisp 2020-05-09T19:51:52Z heisig quit (Quit: Leaving) 2020-05-09T19:54:37Z fourier quit (Ping timeout: 260 seconds) 2020-05-09T19:55:17Z jdz quit (Remote host closed the connection) 2020-05-09T20:01:53Z mjsir911 quit (Quit: Goodbye, World!) 2020-05-09T20:05:19Z Oladon quit (Quit: Leaving.) 2020-05-09T20:18:37Z terpri quit (Remote host closed the connection) 2020-05-09T20:19:00Z terpri joined #lisp 2020-05-09T20:22:26Z random-nick quit (Ping timeout: 272 seconds) 2020-05-09T20:24:29Z oxum joined #lisp 2020-05-09T20:25:28Z liberliver quit (Ping timeout: 256 seconds) 2020-05-09T20:25:34Z bitmapper: i like how the lispworks 7.1 download link takes me to the lispworks 6.1.1 personal download page 2020-05-09T20:33:46Z rogersm quit (Ping timeout: 240 seconds) 2020-05-09T20:35:05Z kpoeck: There ain't no such thing as a free lunch 2020-05-09T20:35:17Z random-nick joined #lisp 2020-05-09T20:41:54Z oxum quit (Ping timeout: 256 seconds) 2020-05-09T20:50:40Z mixfix41_lied quit (Read error: Connection reset by peer) 2020-05-09T20:53:39Z constptr quit (Quit: Connection closed for inactivity) 2020-05-09T20:53:45Z whiteline_ quit (Remote host closed the connection) 2020-05-09T20:59:46Z whiteline joined #lisp 2020-05-09T21:07:10Z karayan quit (Remote host closed the connection) 2020-05-09T21:07:13Z bitmapper: good old 2020-05-09T21:07:14Z bitmapper: SIGSEGV cannot be cured. 2020-05-09T21:07:56Z devrtz quit (Quit: ZNC - http://znc.in) 2020-05-09T21:08:21Z devrtz joined #lisp 2020-05-09T21:08:45Z phoe: bitmapper: what do you mean 2020-05-09T21:08:58Z bitmapper: phoe: clisp + lightning 64bit 2020-05-09T21:09:02Z phoe: welp 2020-05-09T21:09:22Z bitmapper: i know i'm doing something that shouldn't be done 2020-05-09T21:09:29Z p_l: bitmapper: is it any closer to working than it was over the last decade and a bit? 2020-05-09T21:09:38Z bitmapper: p_l: considering it runs! 2020-05-09T21:09:46Z bitmapper: gnu lightning 1.2 from git has 64bit support 2020-05-09T21:09:53Z p_l: that's a huge jump, indeed 2020-05-09T21:09:59Z bitmapper: it just crashes when compiling one of the files 2020-05-09T21:10:13Z bitmapper: due to a pointer issue, most likely 2020-05-09T21:12:59Z Jesin quit (Quit: Leaving) 2020-05-09T21:14:06Z oxum joined #lisp 2020-05-09T21:16:35Z karayan joined #lisp 2020-05-09T21:19:42Z nika quit 2020-05-09T21:19:59Z Jesin joined #lisp 2020-05-09T21:20:04Z gravicappa quit (Ping timeout: 272 seconds) 2020-05-09T21:23:30Z Lord_of_Life_ joined #lisp 2020-05-09T21:23:46Z oxum quit (Ping timeout: 256 seconds) 2020-05-09T21:26:36Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-09T21:26:41Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-09T21:28:44Z ayuce quit (Remote host closed the connection) 2020-05-09T21:29:53Z Aurora_v_kosmose quit (Remote host closed the connection) 2020-05-09T21:30:27Z Aurora_v_kosmose joined #lisp 2020-05-09T21:32:41Z pve quit (Quit: leaving) 2020-05-09T21:35:13Z kpoeck quit (Remote host closed the connection) 2020-05-09T21:37:54Z ATuin quit (Quit: WeeChat 2.8) 2020-05-09T21:52:16Z rumbler31 joined #lisp 2020-05-09T21:59:11Z hsaziz joined #lisp 2020-05-09T21:59:37Z terpri quit (Remote host closed the connection) 2020-05-09T22:01:53Z EvW1 quit (Ping timeout: 252 seconds) 2020-05-09T22:02:13Z hsaziz quit (Client Quit) 2020-05-09T22:02:17Z z147 joined #lisp 2020-05-09T22:05:10Z terpri joined #lisp 2020-05-09T22:10:23Z sugarwren quit (Quit: Leaving) 2020-05-09T22:12:32Z terpri quit (Remote host closed the connection) 2020-05-09T22:13:06Z dalz quit (Remote host closed the connection) 2020-05-09T22:15:05Z terpri joined #lisp 2020-05-09T22:16:05Z SGASAU quit (Remote host closed the connection) 2020-05-09T22:16:48Z SGASAU joined #lisp 2020-05-09T22:19:50Z SGASAU quit (Remote host closed the connection) 2020-05-09T22:20:07Z terpri quit (Remote host closed the connection) 2020-05-09T22:20:25Z terpri joined #lisp 2020-05-09T22:20:29Z SGASAU joined #lisp 2020-05-09T22:22:10Z frgo_ quit (Remote host closed the connection) 2020-05-09T22:22:30Z theseb joined #lisp 2020-05-09T22:22:46Z frgo joined #lisp 2020-05-09T22:23:53Z EvW joined #lisp 2020-05-09T22:25:02Z lavaflow quit (Ping timeout: 256 seconds) 2020-05-09T22:32:07Z lavaflow joined #lisp 2020-05-09T22:32:28Z theseb: Possible to implement progn in a CL subset if I don't have a lambda form or macro system that allows unlimited *parameters* ? 2020-05-09T22:32:55Z theseb: (My lambda allows unlimited bodies of code...just not unlimited input values) 2020-05-09T22:34:38Z Bike: you can do progn with function calls 2020-05-09T22:34:55Z Bike: (progn a b) = ((lambda (_) b) a), for example 2020-05-09T22:35:14Z Bike: kind of a stupid implementation, though 2020-05-09T22:35:37Z theseb: Bike: wait..it has to allow unlimited args...so what about (progn a b c d e f ...) ? 2020-05-09T22:35:46Z theseb: Bike: do you need n lambdas for n args? 2020-05-09T22:36:09Z Bike: (progn a b c) = ((lambda (_) ((lambda (_) c) b)) a) 2020-05-09T22:36:43Z madage quit (Ping timeout: 240 seconds) 2020-05-09T22:37:16Z theseb: Bike: what i'd like to do is convert (progn a b c d ...) to ((lambda () a b c d ...)) but i can't see how to do that w/ my limitations 2020-05-09T22:37:26Z Bike: er, w hat. 2020-05-09T22:37:42Z Bike: if you can do (lambda () a b c d) i mean... that _is_ progn. 2020-05-09T22:38:13Z theseb: Bike: yes exactly...but i don't think i can write a macro to do that 2020-05-09T22:38:40Z theseb: Bike: because when you specify the macro called progn it cannot have unlimited args 2020-05-09T22:38:48Z madage joined #lisp 2020-05-09T22:38:50Z Bike: ....yeah it can? 2020-05-09T22:39:05Z Bike: (defmacro progn (&rest forms) ...) 2020-05-09T22:39:21Z theseb: Bike: well not with my CL subset and its constraints unless i'm mistaken 2020-05-09T22:39:23Z Bike: but if you support lambda bodies with multiple forms why even have progn as a macro? just... support progn directly 2020-05-09T22:39:35Z Bike: these constraints sound kind of absurd 2020-05-09T22:39:49Z theseb: Bike: i wanted to minimize the number of special forms! 2020-05-09T22:40:03Z Bike: that's not really an exercise with any point 2020-05-09T22:40:13Z Bike: also, that doesn't rule out having &rest lambda lists, does it? 2020-05-09T22:40:13Z theseb: Bike: i thought it would be elegant 2020-05-09T22:40:22Z z147 quit (Quit: z147) 2020-05-09T22:40:25Z Bike: meaningless 2020-05-09T22:40:35Z theseb: Bike: i guess i have to add &rest 2020-05-09T22:40:37Z theseb: that would do it 2020-05-09T22:41:04Z Bike: if you want to worry about "minimalism" just use lambda calculus or some other formalism 2020-05-09T22:41:18Z Bike: if you have "CL but less" you have something with too much to be useful mathematically but too little to be useful for programming 2020-05-09T22:41:18Z theseb: Bike: if i had to scrape the bottom of the barrel i think i could cook up one reason to be so anal about minimalism...watch this.... 2020-05-09T22:42:00Z theseb: Bike: imagine a future world where computer security is a vital concern....people want to formally mathematically verify their code....they will be screaming for minimal OSes and languages 2020-05-09T22:42:06Z theseb: Bike: how about that? does that work for you? 2020-05-09T22:42:18Z Bike: you think security will be enhanced by admitting progn? 2020-05-09T22:42:29Z Bike: do you actually know anything about program verification? 2020-05-09T22:42:36Z Bike: omitting, not admitting 2020-05-09T22:42:39Z Bike: talking is hard 2020-05-09T22:43:03Z theseb: Bike: no i don't know anything about verification....but just like microkernels...i think the philosophy is to have the smallest verifiable kernel 2020-05-09T22:43:16Z Bike: you should learn the field 2020-05-09T22:43:29Z Bike: https://en.wikipedia.org/wiki/ACL2 for example 2020-05-09T22:44:00Z theseb: Bike: ever heard of TLA+? not that is impressive 2020-05-09T22:44:49Z Bike: the designer of TLA+ invented the idea of sequential consistency. he knows what he is doing, it sounds like 2020-05-09T22:45:15Z Bike: these systems are not made by starting with a big system and cutting things out because of an intuitive notion of simplicity. 2020-05-09T22:45:27Z theseb: Bike: this channel is so cool because the average education level of the participants is a few standard deviations above the rest 2020-05-09T22:45:38Z theseb: hence so is the convo topics 2020-05-09T22:46:14Z Bike: i don't know much of anything about verification myself 2020-05-09T22:46:22Z Bike: just that it's you know, a real field of endeavor, it takes some thought 2020-05-09T22:46:38Z Bike: if you really want to get into it, writing a lisp with no progn is probably not the best path to take 2020-05-09T22:46:56Z theseb: lol 2020-05-09T22:47:05Z theseb: Bike: oh my ACL2 looks cool. 2020-05-09T22:47:10Z theseb: automated theorem proving! 2020-05-09T22:47:31Z Bike: and it uses a subset (or maybe just variant) of common lisp, so the kind of thing you're talking about 2020-05-09T22:47:48Z theseb: see?! i'm not crazy 2020-05-09T22:48:06Z Bike: i'm not saying you're crazy, i'm saying you're going about things the wrong way 2020-05-09T22:48:19Z Bike: to become a doctor you don't get patients and go "oh, well, i think this looks infected" and start cutting things 2020-05-09T22:48:25Z Bike: you go to med school 2020-05-09T22:48:46Z theseb: lol...yes just having fun 2020-05-09T22:51:27Z bitmapper: if you want CL but less just use scheme 2020-05-09T22:53:37Z Bike: and reading a book like lisp in small pieces or SICP would probably answer a lot of your quetions 2020-05-09T22:55:18Z nckx quit (Quit: Updating my Guix System — https://guix.gnu.org) 2020-05-09T22:55:41Z nckx joined #lisp 2020-05-09T22:58:25Z random-nick quit (Ping timeout: 264 seconds) 2020-05-09T22:58:57Z cosimone quit (Ping timeout: 260 seconds) 2020-05-09T23:02:15Z Jeanne-Kamikaze joined #lisp 2020-05-09T23:11:19Z whiteline quit (Read error: Connection reset by peer) 2020-05-09T23:11:55Z whiteline_ joined #lisp 2020-05-09T23:12:25Z whiteline_ quit (Remote host closed the connection) 2020-05-09T23:12:51Z whiteline_ joined #lisp 2020-05-09T23:13:02Z dddddd quit (Ping timeout: 260 seconds) 2020-05-09T23:13:35Z rumbler31 quit (Remote host closed the connection) 2020-05-09T23:14:49Z Misha_B quit (Remote host closed the connection) 2020-05-09T23:23:44Z rand_t quit (Quit: rand_t) 2020-05-09T23:26:01Z dale joined #lisp 2020-05-09T23:29:11Z jfrancis quit (Remote host closed the connection) 2020-05-09T23:31:30Z whiteline_ quit (Read error: Connection reset by peer) 2020-05-09T23:32:16Z whiteline joined #lisp 2020-05-09T23:32:37Z spheremint joined #lisp 2020-05-09T23:32:39Z whiteline quit (Remote host closed the connection) 2020-05-09T23:33:04Z whiteline joined #lisp 2020-05-09T23:34:39Z keepzen joined #lisp 2020-05-09T23:45:37Z shka_ quit (Ping timeout: 260 seconds) 2020-05-09T23:48:42Z akoana left #lisp 2020-05-09T23:51:18Z nckx quit (Quit: Updating my Guix System — https://guix.gnu.org) 2020-05-09T23:56:02Z terpri quit (Remote host closed the connection) 2020-05-09T23:57:44Z terpri joined #lisp 2020-05-09T23:58:51Z ajb` joined #lisp 2020-05-10T00:15:44Z bitmapper: #lang common-lisp when 2020-05-10T00:18:12Z nowhere_man joined #lisp 2020-05-10T00:18:33Z aeth: bitmapper: If you mean CL-on-Racket, then the other way around's easier. You'd just need R6RS-on-CL and then you'd have to trick Racket into thinking that R6RS-on-CL is Chez Scheme. It's easier to implement the smaller language in the larger one than the other way around. 2020-05-10T00:18:37Z igemnace quit (Quit: WeeChat 2.8) 2020-05-10T00:18:53Z bitmapper: i get that 2020-05-10T00:19:05Z bitmapper: i wasn't being serious 2020-05-10T00:19:14Z aeth: (And then if you have Racket-on-CL, then CL-on-Racket-on-CL should be trivial) 2020-05-10T00:20:15Z SGASAU quit (Remote host closed the connection) 2020-05-10T00:21:11Z theseb quit (Quit: Leaving) 2020-05-10T00:22:32Z terpri quit (Remote host closed the connection) 2020-05-10T00:22:44Z Kundry_Wag joined #lisp 2020-05-10T00:22:59Z terpri joined #lisp 2020-05-10T00:25:21Z aeth: bitmapper: Yes, you're joking, but if you were serious, this is the API you'd have to implement to fool Racket into thinking that a R6RS-on-CL was Chez Scheme: https://github.com/racket/racket/blob/master/racket/src/cs/rumble.sls 2020-05-10T00:27:11Z aeth: The good news is that it's finite. 2020-05-10T00:29:58Z EvW quit (Ping timeout: 244 seconds) 2020-05-10T00:33:37Z shangul joined #lisp 2020-05-10T00:39:54Z akoana joined #lisp 2020-05-10T00:41:27Z rgherdt quit (Ping timeout: 240 seconds) 2020-05-10T00:56:06Z hu6ub joined #lisp 2020-05-10T00:56:16Z shangul quit (Ping timeout: 256 seconds) 2020-05-10T01:03:19Z Fare quit (Ping timeout: 260 seconds) 2020-05-10T01:03:22Z FennecCode joined #lisp 2020-05-10T01:10:53Z oxum joined #lisp 2020-05-10T01:17:39Z Fare joined #lisp 2020-05-10T01:29:16Z gko joined #lisp 2020-05-10T01:29:19Z toorevitimirp joined #lisp 2020-05-10T01:29:36Z mikecheck quit (Ping timeout: 272 seconds) 2020-05-10T01:33:14Z nckx joined #lisp 2020-05-10T01:34:21Z spheremint quit (Quit: somebody at the door) 2020-05-10T01:37:42Z bitmapper quit (Ping timeout: 256 seconds) 2020-05-10T01:42:22Z Kundry_Wag quit (Remote host closed the connection) 2020-05-10T01:53:13Z aeth: What's the best way to interface with a C application (not library) in a separate process? Would something like basic-binary-ipc work? 2020-05-10T02:01:05Z shangul joined #lisp 2020-05-10T02:01:46Z X-Scale quit (Quit: HydraIRC -> http://www.hydrairc.com <- It'll be on slashdot one day...) 2020-05-10T02:11:17Z monok joined #lisp 2020-05-10T02:13:08Z shinohai: /*/******************************************************************************************************************************************************************************************************************/** 2020-05-10T02:13:58Z mono quit (Ping timeout: 256 seconds) 2020-05-10T02:14:15Z shinohai: ^ sry that's deffo not the best way to interface with a C application in a separate process. 2020-05-10T02:15:49Z aeth: Is that a new esolang? 2020-05-10T02:16:32Z shinohai: My cat invented it. Meowlang. 2020-05-10T02:16:38Z aeth: ah] 2020-05-10T02:16:42Z no-defun-allowed: An attempt to confuse C linters. 2020-05-10T02:16:51Z aeth: it's probably valid C++ 2020-05-10T02:17:33Z Oladon joined #lisp 2020-05-10T02:18:09Z shinohai: xD 2020-05-10T02:27:14Z Fare quit (Ping timeout: 272 seconds) 2020-05-10T02:30:39Z Fare joined #lisp 2020-05-10T02:31:32Z lavaflow quit (Ping timeout: 256 seconds) 2020-05-10T02:37:35Z lavaflow joined #lisp 2020-05-10T02:39:08Z hu6ub quit (Ping timeout: 244 seconds) 2020-05-10T02:39:53Z turona quit (Ping timeout: 246 seconds) 2020-05-10T02:39:56Z whiteline quit (Read error: Connection reset by peer) 2020-05-10T02:40:15Z EvW1 joined #lisp 2020-05-10T02:40:21Z whiteline_ joined #lisp 2020-05-10T02:42:24Z turona joined #lisp 2020-05-10T02:42:28Z akoana quit (Quit: leaving) 2020-05-10T02:47:35Z GuerrillaMonkey joined #lisp 2020-05-10T02:48:13Z Jeanne-Kamikaze quit (Read error: Connection reset by peer) 2020-05-10T02:53:41Z gabiruh quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-10T02:53:59Z gabiruh joined #lisp 2020-05-10T02:57:49Z GuerrillaMonkey quit (Quit: Leaving) 2020-05-10T03:01:18Z midre joined #lisp 2020-05-10T03:05:33Z midre quit (Quit: ZNC 1.6.5+deb1+deb9u2 - http://znc.in) 2020-05-10T03:06:15Z greaser|q quit (Changing host) 2020-05-10T03:06:15Z greaser|q joined #lisp 2020-05-10T03:06:19Z greaser|q is now known as Greasemonkey 2020-05-10T03:06:22Z Greasemonkey is now known as GreaseMonkey 2020-05-10T03:16:47Z ahungry joined #lisp 2020-05-10T03:18:16Z oxum quit (Remote host closed the connection) 2020-05-10T03:26:46Z _jrjsmrtn joined #lisp 2020-05-10T03:27:34Z __jrjsmrtn__ quit (Ping timeout: 246 seconds) 2020-05-10T03:28:42Z beach: Good morning everyone! 2020-05-10T03:32:06Z cods quit (Ping timeout: 256 seconds) 2020-05-10T03:32:48Z p_l: aeth: I'd have said gRPC, but then I remembered a) there's no usable library available b) I said I'd write it c) that was in Madeira so I should be quite ashamed 2020-05-10T03:35:29Z Oladon: Morning beach! 2020-05-10T03:38:11Z wxie joined #lisp 2020-05-10T03:46:32Z EvW1 quit (Ping timeout: 260 seconds) 2020-05-10T03:50:02Z terpri quit (Remote host closed the connection) 2020-05-10T03:50:53Z terpri joined #lisp 2020-05-10T03:55:24Z Bike quit (Quit: Lost terminal) 2020-05-10T03:57:19Z Aurora_v_kosmose: That answers the question of if such a library exists. Oh well, I'll wait. :) 2020-05-10T03:57:38Z oxum joined #lisp 2020-05-10T04:03:30Z oxum quit (Ping timeout: 272 seconds) 2020-05-10T04:07:29Z wxie quit (Ping timeout: 244 seconds) 2020-05-10T04:20:50Z rumbler31 joined #lisp 2020-05-10T04:24:54Z rumbler31 quit (Ping timeout: 240 seconds) 2020-05-10T04:31:29Z oxum joined #lisp 2020-05-10T04:37:45Z oxum quit (Ping timeout: 258 seconds) 2020-05-10T04:39:13Z constptr joined #lisp 2020-05-10T04:44:52Z Fare quit (Ping timeout: 260 seconds) 2020-05-10T05:07:53Z FennecCode quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-10T05:13:14Z Oladon quit (Quit: Leaving.) 2020-05-10T05:19:24Z no-defun-allowed: How should I go about limiting concurrent access to some resource to some arbitrary number of threads? 2020-05-10T05:20:46Z beach: Use a semaphore. 2020-05-10T05:21:10Z beach: Initialize it to N where N is the number of concurrent accesses that you want. 2020-05-10T05:21:37Z beach: Before a thread wants to access the resource, do a WAIT on the semaphore. 2020-05-10T05:21:59Z beach: After a thread has finished accessing the resource, it does a SIGNAL on the semaphore. 2020-05-10T05:22:36Z no-defun-allowed: Wow, that seems pretty easy. Thanks. 2020-05-10T05:22:50Z ajb` quit (Remote host closed the connection) 2020-05-10T05:22:54Z beach: Sure. 2020-05-10T05:23:02Z gravicappa joined #lisp 2020-05-10T05:32:34Z ayuce joined #lisp 2020-05-10T05:36:10Z ahungry quit (Remote host closed the connection) 2020-05-10T05:37:11Z karlosz quit (Quit: karlosz) 2020-05-10T05:37:28Z karlosz joined #lisp 2020-05-10T05:37:52Z oxum joined #lisp 2020-05-10T05:39:59Z oxum quit (Client Quit) 2020-05-10T05:51:32Z ayuce quit (Remote host closed the connection) 2020-05-10T05:58:32Z terpri quit (Remote host closed the connection) 2020-05-10T06:01:18Z renzhi_ quit (Ping timeout: 272 seconds) 2020-05-10T06:04:26Z EvW joined #lisp 2020-05-10T06:06:48Z sbodin quit (Read error: Connection reset by peer) 2020-05-10T06:07:08Z yankM quit (Ping timeout: 260 seconds) 2020-05-10T06:07:47Z nullniverse joined #lisp 2020-05-10T06:15:46Z ajpaon joined #lisp 2020-05-10T06:16:32Z ajpaon left #lisp 2020-05-10T06:21:21Z zooey quit (Remote host closed the connection) 2020-05-10T06:21:40Z zooey joined #lisp 2020-05-10T06:28:20Z parjanya quit (Remote host closed the connection) 2020-05-10T06:28:43Z ayuce joined #lisp 2020-05-10T06:31:48Z ayuce quit (Remote host closed the connection) 2020-05-10T06:33:23Z ayuce joined #lisp 2020-05-10T06:35:26Z ayuce quit (Remote host closed the connection) 2020-05-10T06:37:20Z karlosz quit (Quit: karlosz) 2020-05-10T06:38:01Z karlosz joined #lisp 2020-05-10T06:38:20Z ayuce joined #lisp 2020-05-10T06:42:03Z ayuce quit (Remote host closed the connection) 2020-05-10T06:42:46Z ayuce joined #lisp 2020-05-10T06:42:54Z sugarwren joined #lisp 2020-05-10T06:48:59Z constptr quit (Quit: Connection closed for inactivity) 2020-05-10T06:51:09Z kpoeck joined #lisp 2020-05-10T06:51:10Z heisig joined #lisp 2020-05-10T06:51:53Z shka_ joined #lisp 2020-05-10T06:57:59Z EvW quit (Ping timeout: 244 seconds) 2020-05-10T07:25:27Z pve joined #lisp 2020-05-10T07:35:46Z ayuce quit (Remote host closed the connection) 2020-05-10T07:36:08Z ayuce joined #lisp 2020-05-10T07:36:48Z rgherdt joined #lisp 2020-05-10T07:43:16Z toorevitimirp quit (Ping timeout: 272 seconds) 2020-05-10T07:44:55Z toorevitimirp joined #lisp 2020-05-10T07:48:52Z toorevitimirp quit (Remote host closed the connection) 2020-05-10T07:49:18Z toorevitimirp joined #lisp 2020-05-10T07:55:29Z ggole joined #lisp 2020-05-10T07:57:59Z orivej joined #lisp 2020-05-10T08:00:21Z ayuce quit (Remote host closed the connection) 2020-05-10T08:09:44Z ayuce joined #lisp 2020-05-10T08:10:01Z orivej quit (Ping timeout: 246 seconds) 2020-05-10T08:15:13Z dddddd joined #lisp 2020-05-10T08:29:18Z dale quit (Quit: My computer has gone to sleep) 2020-05-10T08:30:14Z sdumi quit (Ping timeout: 240 seconds) 2020-05-10T08:30:34Z sdumi joined #lisp 2020-05-10T08:37:24Z rumbler31 joined #lisp 2020-05-10T08:39:00Z lavaflow quit (Ping timeout: 272 seconds) 2020-05-10T08:41:15Z lavaflow joined #lisp 2020-05-10T08:42:08Z rumbler31 quit (Ping timeout: 256 seconds) 2020-05-10T08:57:46Z nowhere_man quit (Remote host closed the connection) 2020-05-10T08:58:10Z nowhere_man joined #lisp 2020-05-10T09:14:39Z nowhereman joined #lisp 2020-05-10T09:14:54Z nowhere_man quit (Ping timeout: 244 seconds) 2020-05-10T09:24:40Z Lord_of_Life_ joined #lisp 2020-05-10T09:26:30Z Lord_of_Life quit (Ping timeout: 272 seconds) 2020-05-10T09:26:31Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-10T09:28:46Z fourier joined #lisp 2020-05-10T09:32:02Z random-nick joined #lisp 2020-05-10T09:32:18Z random-nick quit (Read error: error:1408F10B:SSL routines:ssl3_get_record:wrong version number) 2020-05-10T09:32:38Z random-nick joined #lisp 2020-05-10T09:34:50Z epony quit (Ping timeout: 258 seconds) 2020-05-10T09:40:36Z adlai: lol, turns out I've been using a satisfies type specifier in a pprint dispatch table for the past ~decade, and this is probably why my life is cursed 2020-05-10T09:42:04Z shangul quit (Quit: Leaving) 2020-05-10T09:43:52Z phoe: oh god 2020-05-10T09:44:30Z nika joined #lisp 2020-05-10T09:44:35Z jackdaniel: aren't you satisfied with it? 2020-05-10T09:45:39Z adlai: i am actually quite satisfied with it, i just had forgotten that the kludge was that kludgey 2020-05-10T09:47:02Z easye: Hmmm. Am I to understand correctly from yesterday that this is no decent gRPC implementation in CL? 2020-05-10T09:47:20Z jackdaniel: s/decent/satisfying/ 2020-05-10T09:47:28Z easye is looking at which uses gRPC 2020-05-10T09:48:00Z beach: jackdaniel: They don't get it. You might as well give up. 2020-05-10T09:48:29Z phoe: (deftype decent () '(satisfies jackdaniel)) 2020-05-10T09:48:29Z jackdaniel: I'm sure they do and the joke is on me :) 2020-05-10T09:49:07Z kpoeck quit (Remote host closed the connection) 2020-05-10T09:49:38Z phoe: (defun constantly-satisfying-p (x) (typep x '(satisfies constantly))) 2020-05-10T09:49:55Z no-defun-allowed: (deftype fun-type () '(satisfies eval)) 2020-05-10T09:50:16Z phoe: no-defun-allowed: https://github.com/sbcl/sbcl/search?q=%22satisfies+eval%22&unscoped_q=%22satisfies+eval%22 2020-05-10T09:55:08Z liberliver joined #lisp 2020-05-10T09:57:08Z adlai: clhs copy-pprint-dispatch 2020-05-10T09:57:08Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_cp_ppr.htm 2020-05-10T09:57:25Z orivej joined #lisp 2020-05-10T10:04:25Z sdumi quit (Remote host closed the connection) 2020-05-10T10:04:38Z sdumi joined #lisp 2020-05-10T10:06:03Z karlosz quit (Quit: karlosz) 2020-05-10T10:06:36Z karlosz joined #lisp 2020-05-10T10:06:59Z rogersm joined #lisp 2020-05-10T10:15:50Z epony joined #lisp 2020-05-10T10:19:34Z nika quit (Read error: Connection reset by peer) 2020-05-10T10:20:07Z nika joined #lisp 2020-05-10T10:22:07Z frgo quit (Remote host closed the connection) 2020-05-10T10:22:42Z frgo joined #lisp 2020-05-10T10:23:08Z liberliver quit (Ping timeout: 258 seconds) 2020-05-10T10:23:49Z sdumi quit (Read error: Connection reset by peer) 2020-05-10T10:26:37Z sdumi joined #lisp 2020-05-10T10:29:14Z hiroaki_ quit (Ping timeout: 256 seconds) 2020-05-10T10:29:19Z PuercoPop quit (Quit: WeeChat 1.9.1) 2020-05-10T10:37:04Z vaporatorius__ joined #lisp 2020-05-10T10:37:12Z vap1 quit (Ping timeout: 260 seconds) 2020-05-10T10:38:13Z heisig quit (Remote host closed the connection) 2020-05-10T10:38:32Z heisig joined #lisp 2020-05-10T10:40:26Z fourier quit (Ping timeout: 240 seconds) 2020-05-10T10:47:40Z kpoeck joined #lisp 2020-05-10T10:53:34Z lavaflow quit (Ping timeout: 240 seconds) 2020-05-10T10:57:19Z lavaflow joined #lisp 2020-05-10T11:00:30Z adlai: ideally, the two birds killable by one stone are the satisfies type in the pprint dispatch table, and the load-time http requests, since treating those requests as load-time constants will enable unrolling the satisfies into a member type 2020-05-10T11:00:32Z p_l: easye: no gRPC library that I know of. Protobufs, sure, but gRPC needs all the transport bits, and those need HTTP/2 2020-05-10T11:01:28Z cantstanya quit (Remote host closed the connection) 2020-05-10T11:03:26Z cantstanya joined #lisp 2020-05-10T11:03:57Z _death: for http/2 there was that akamai thing https://github.com/akamai/cl-http2-protocol/ 2020-05-10T11:06:29Z McParen joined #lisp 2020-05-10T11:11:26Z Bike joined #lisp 2020-05-10T11:14:53Z rumbler31 joined #lisp 2020-05-10T11:19:06Z easye: p_l: Ooh. HTTP/2 huh? We need an implementation of that as well I suppose. 2020-05-10T11:19:27Z p_l: _death: it was for draft version, but it could be a starting point 2020-05-10T11:19:34Z easye: _death: Did Akamai deploy that? 2020-05-10T11:19:47Z rumbler31 quit (Ping timeout: 260 seconds) 2020-05-10T11:19:58Z phoe: > Contains code from CL-ASYNC which contains this notice: "As always, my code is MIT licenced. Do whatever the hell you want with it. Enjoy!" 2020-05-10T11:20:01Z phoe: amazing 2020-05-10T11:20:05Z easye: No, I guess not. It was too prototype the spec. 2020-05-10T11:20:37Z p_l: easye: yes, HTTP/2 is the required transport protocol (I *think* there might be unofficial mapping for QUIC aka HTTP/3 as well), as pretty much gRPC is set of messages sent using HTTP/2 2020-05-10T11:20:59Z p_l: i.e. features of HTTP/2 are directly depended upon in gRPC 2020-05-10T11:31:16Z elflng quit (Ping timeout: 272 seconds) 2020-05-10T11:32:19Z no-defun-allowed shuffles around protobuf objects on Gopher in the corner 2020-05-10T11:32:56Z easye: no-defun-allowed: heh. I remember Gopher fondly... 2020-05-10T11:38:44Z elflng joined #lisp 2020-05-10T11:46:26Z akrl joined #lisp 2020-05-10T11:46:51Z epony quit (Quit: system upgrades) 2020-05-10T11:48:53Z fourier joined #lisp 2020-05-10T11:54:52Z rwcom34174 quit (Quit: The Lounge - https://thelounge.chat) 2020-05-10T11:57:42Z fourier quit (Ping timeout: 260 seconds) 2020-05-10T11:57:58Z nowhere_man joined #lisp 2020-05-10T11:58:15Z nowhereman quit (Read error: Connection reset by peer) 2020-05-10T12:00:58Z epony joined #lisp 2020-05-10T12:09:53Z cods joined #lisp 2020-05-10T12:09:53Z cods quit (Changing host) 2020-05-10T12:09:53Z cods joined #lisp 2020-05-10T12:13:49Z akoana joined #lisp 2020-05-10T12:16:26Z ljavorsk joined #lisp 2020-05-10T12:19:50Z EvW joined #lisp 2020-05-10T12:29:22Z bitmapper joined #lisp 2020-05-10T12:29:46Z heisig quit (Quit: Leaving) 2020-05-10T12:40:41Z ayuce quit (Remote host closed the connection) 2020-05-10T12:44:38Z bitmapper: til that SBCL and ECL come with a concurrent ml implementation 2020-05-10T12:45:01Z ayuce joined #lisp 2020-05-10T12:45:55Z jeosol: Good morning guys! 2020-05-10T12:48:31Z jw4 quit (Read error: Connection reset by peer) 2020-05-10T12:48:46Z orivej quit (Ping timeout: 260 seconds) 2020-05-10T12:50:00Z Xach: hello there. 2020-05-10T12:50:26Z Xach: i've read a number of projects from the 90s that have a load.lisp file that just has a list of files to compile-file then load. 2020-05-10T12:50:27Z jeosol: hi Xach 2020-05-10T12:50:37Z jw4 joined #lisp 2020-05-10T12:50:44Z Xach: i wonder about emitting a file like that automatically 2020-05-10T12:51:01Z Xach: and also about using xref to figure out ordering 2020-05-10T12:52:36Z phoe: bitmapper: ml implementation? 2020-05-10T12:52:43Z bitmapper: concurrent ml 2020-05-10T12:52:55Z jeosol: when working with lists, it is better to use push then reverse vs. cons. I am trying to read a file and create a large object for my application, with 30GB dynamic-space-size SBCL exhaust heap 2020-05-10T12:53:03Z bitmapper: which is RELATED to ML, but isn't ML itself 2020-05-10T12:53:12Z bitmapper: it's just the concurrency framework that SML uses 2020-05-10T12:53:25Z phoe: jeosol: push + nreverse I guess 2020-05-10T12:53:36Z phoe: REVERSE conses, and you will not want that for large fresh lists 2020-05-10T12:53:43Z jeosol: cool beans. I see , modify in place 2020-05-10T12:53:48Z Xach: jeosol: "vs" cons? push IS cons underneath. 2020-05-10T12:54:08Z jeosol: ok. thanks for the clarity 2020-05-10T12:54:34Z jeosol: I went from 5GB all the way to 30GB and it's still blowing up, so I have to check my algorithm. 2020-05-10T12:55:00Z phoe: jeosol: care to post it? 2020-05-10T12:58:41Z jeosol: I am loading corner-point-grid file (finite-volume/element) application, do a bunch of grid geometry calculations as I read the grid file 2020-05-10T12:59:04Z shka_: jeosol: you are storing numbers in a linked lists? 2020-05-10T12:59:04Z phoe: is that some sort of binary file? 2020-05-10T12:59:14Z jeosol: Let me test the nreverse option and to see if it works 2020-05-10T12:59:25Z phoe: if yes, you might want to use vectors instead of cons cells 2020-05-10T12:59:35Z shka_: phoe: agreed 2020-05-10T12:59:40Z jeosol: no, it's ascii 2020-05-10T12:59:40Z phoe: conses are highly memory-inefficient when it comes to storing numbers 2020-05-10T12:59:53Z shka_: well, for small sequences it is ok 2020-05-10T12:59:55Z phoe: do you have an example file? 2020-05-10T13:00:08Z shka_: but it is essentially need twice the memory 2020-05-10T13:00:13Z shka_: as compared to vectors 2020-05-10T13:00:35Z jeosol: Yeah, vectors are what I use elsewhere, but the grid has some features that I won't know the dimensions of certain "pillars" so I use a list 2020-05-10T13:00:52Z phoe: ouch, I see 2020-05-10T13:01:02Z jeosol: Yeah, I'll have to find a way to use vectors. I can't have some require more that 30GB to load things, does make much sense 2020-05-10T13:02:27Z phoe: how large is that file of yours 2020-05-10T13:04:20Z Kundry_Wag joined #lisp 2020-05-10T13:05:09Z constptr joined #lisp 2020-05-10T13:05:48Z jeosol: The fine varies in general, the current one is like 66MB. It specific to a software and it uses compressed formats arbitrary to pack the data efficiency, e.g., for repeating numbers 3*3000 is equal to have 3000 3000 3000 2020-05-10T13:06:06Z phoe: huh 2020-05-10T13:06:11Z phoe: peculiar 2020-05-10T13:06:19Z jeosol: I think it's the cons that's making it blow up, but I will change it and test 2020-05-10T13:06:56Z jeosol: no, it's highly peculiar and application specific to a software, but it's corner-point-grid 2020-05-10T13:07:13Z jeosol: I will test with push and nreverse or see if I can use vectors 2020-05-10T13:09:26Z rwcom34174 joined #lisp 2020-05-10T13:12:05Z jeosol: shka_: missed your comment, the storing numbers in a list is intermediate step, after processing everything is in vectors for easy access 2020-05-10T13:12:18Z pve: Xach: i use (asdf:input-files 'asdf:concatenate-source-op :my-system). Works well for my purposes. 2020-05-10T13:12:49Z dddddd quit (Ping timeout: 264 seconds) 2020-05-10T13:13:50Z Xach: pve: thanks, that looks like an excellent source of info 2020-05-10T13:14:11Z Xach: pve: what do you do with that list? 2020-05-10T13:16:40Z pve: Xach: I built a "system watcher", i.e. a test runner that i run in the background in a shell that monitors a system for changed files using inotify. When a file is saved it loads the entire system from source into a fresh image and runs all tests. 2020-05-10T13:17:05Z Xach: pve: cool 2020-05-10T13:17:23Z pve: I find it essential when juggling exports and deleting unused functions 2020-05-10T13:17:25Z Xach: pve: how often do you have a saved file in an inconsistennt state? 2020-05-10T13:17:37Z pve: all the time, it seems 2020-05-10T13:17:41Z Xach: hee hee 2020-05-10T13:18:54Z pve: most of the time it's like "hmm can I safely delete this function?" or "I want to move this function into that package and make sure everything works" 2020-05-10T13:19:57Z phoe: pve: I am interested in it 2020-05-10T13:20:08Z pve: the system watcher? 2020-05-10T13:20:11Z phoe: yes 2020-05-10T13:20:33Z pve: i could throw it up on github 2020-05-10T13:21:32Z phoe: please do 2020-05-10T13:22:30Z pve: ok, i'll notify you when it's there 2020-05-10T13:22:40Z pve: should be soonish 2020-05-10T13:23:11Z sz0 quit (Quit: Connection closed for inactivity) 2020-05-10T13:23:31Z phoe: thanks! 2020-05-10T13:31:19Z Xach: inotify you 2020-05-10T13:36:00Z phoe: nice 2020-05-10T13:38:42Z stepnem quit (Ping timeout: 260 seconds) 2020-05-10T13:40:04Z jeosol: i experienced different behaviors running the code on terminal/shell and from within slime. no issues with slime (no change to code)? 2020-05-10T13:40:27Z phoe: jeosol: what do you mean, different behaviours 2020-05-10T13:40:29Z jeosol: trying to save a core file for faster restart so I need to run on terminal 2020-05-10T13:40:40Z phoe: one can't save a core from inside slime without some hacks 2020-05-10T13:40:46Z jeosol: I loaded the same code (ql:quickload :system-name) in slime, runs fine 2020-05-10T13:41:00Z phoe: that is because slime uses multiple threads by default 2020-05-10T13:41:19Z jeosol: I do the same on terminal sbcl --dynamic-space-size [arg] and then it's blows up 2020-05-10T13:41:41Z jeosol: I now of the multiple thread use, but will that be why it runs fine and terminal blows up. 2020-05-10T13:43:01Z jeosol: Is that multiple threads to the same work or others for other stuff. I see main thread, swank reader-threads ... etc 2020-05-10T13:43:12Z Xach: "blows up"? 2020-05-10T13:43:22Z jeosol: heap exhausted errors 2020-05-10T13:44:09Z Xach: jeosol: what do you get if you run (sb-ext:dynamic-space-size) before loading the software, in slime and in the terminal? do you get the same value? 2020-05-10T13:45:54Z jeosol: I have to check that. I was even searching for away to check mem usage a few minutes ago 2020-05-10T13:46:17Z jeosol: I came across this: https://gist.github.com/chaitanyagupta/671e3880dc24a2763d1653a9c1ea6b0f 2020-05-10T13:46:36Z jeosol: let me check that xach 2020-05-10T13:47:00Z toorevitimirp quit (Remote host closed the connection) 2020-05-10T13:47:50Z toorevitimirp joined #lisp 2020-05-10T13:49:14Z ljavorsk quit (Ping timeout: 240 seconds) 2020-05-10T13:52:52Z stepnem joined #lisp 2020-05-10T13:53:09Z toorevitimirp quit (Remote host closed the connection) 2020-05-10T13:53:43Z toorevitimirp joined #lisp 2020-05-10T14:06:26Z jeosol: xach: my slime was running 20GB and it was lower for sbcl on terminal. 2020-05-10T14:07:44Z jeosol: with "nreverse" takes works with 4GB, may be less, not tested lower 2020-05-10T14:08:39Z vaporatorius__ quit (Quit: Leaving) 2020-05-10T14:08:50Z vaporatorius joined #lisp 2020-05-10T14:08:51Z vaporatorius quit (Changing host) 2020-05-10T14:08:51Z vaporatorius joined #lisp 2020-05-10T14:10:37Z orivej joined #lisp 2020-05-10T14:10:48Z Xach: jeosol: aha. that means they can be made the same. 2020-05-10T14:11:18Z Kundry_Wag quit (Remote host closed the connection) 2020-05-10T14:12:04Z jeosol: xach: yeah, my bad. I didn't sleep trying to get this to load and my brain is fatigued. I do Mx slime starts with 20GB, but I was running terminal with 5GB 2020-05-10T14:12:23Z jeosol: Now terminal does work with 4GB and I can save a core to load later. 2020-05-10T14:14:29Z Xach: even nicer 2020-05-10T14:14:56Z toorevitimirp quit (Ping timeout: 256 seconds) 2020-05-10T14:19:49Z madage quit (Remote host closed the connection) 2020-05-10T14:20:06Z madage joined #lisp 2020-05-10T14:22:22Z adlai: perhaps this sparks fire better here than #lispcafe: what's a better way to annotate CLHS xrefs into an old paperback of CLtL2: going sequentially through the paperback, while indexing into the CLHS, or vice versa? 2020-05-10T14:23:54Z phoe: I'd try to do better than trying to spark fire over a paperback copy of CLtL2 2020-05-10T14:23:57Z adlai: the purpose is to have the paperback copy of CLtL2 be slightly more useful than just another primary source that no longer interests anyone; currently has not a single marking in any margin, so plenty of space for annotations 2020-05-10T14:24:20Z Xach: cltl2 continues to interest me personally! 2020-05-10T14:24:34Z phoe: I'd try to go linearly through CLtL2, searching CLHS on demand is much nicer since it's a hypertext resource 2020-05-10T14:24:39Z Xach: (sorry that this does not help with your question though) 2020-05-10T14:24:55Z adlai: Xach, why does cltl2 itself interest you? 2020-05-10T14:24:56Z phoe: I mean, flipping pages a lot costs time 2020-05-10T14:25:04Z _death: cltl2 is a cool book :) 2020-05-10T14:25:28Z Xach: adlai: it provides more anecdotal context and livelier prose for certain things - particularly logical pathnames but others as well 2020-05-10T14:25:54Z adlai: phoe, there's much to be said for readable reference texts, even if life is too short to actually read it sequentially, and too long to have empty spots in your "text coverage" 2020-05-10T14:26:42Z adlai was quite devastated to discover, recently, that all the internals of pprint machinery were not part of cltl2 2020-05-10T14:30:36Z ravndal quit (Quit: WeeChat 2.8) 2020-05-10T14:36:57Z bitmapper: gnu common lisp is still actively developed? 2020-05-10T14:38:17Z phoe: bitmapper: yes and no 2020-05-10T14:38:25Z bitmapper: last commit 9 days ago 2020-05-10T14:38:30Z phoe: that's the "yes" 2020-05-10T14:38:54Z phoe: last release in 2014, that's the "no" 2020-05-10T14:39:03Z bitmapper: hey, clisp last release in 2010 iirc 2020-05-10T14:39:38Z phoe: correct 2020-05-10T14:40:39Z phoe: clisp isn't very active either. 2020-05-10T14:42:29Z ravndal joined #lisp 2020-05-10T14:46:42Z lavaflow_ joined #lisp 2020-05-10T14:46:58Z lavaflow quit (Ping timeout: 272 seconds) 2020-05-10T14:49:59Z oxum joined #lisp 2020-05-10T14:50:14Z oxum quit (Client Quit) 2020-05-10T14:53:24Z Kundry_Wag joined #lisp 2020-05-10T14:53:29Z sabrac joined #lisp 2020-05-10T14:53:46Z Kundry_Wag quit (Remote host closed the connection) 2020-05-10T14:53:59Z Kundry_Wag joined #lisp 2020-05-10T14:58:01Z lavaflow_ quit (Quit: WeeChat 2.8) 2020-05-10T14:59:50Z lavaflow joined #lisp 2020-05-10T15:00:18Z ATuin joined #lisp 2020-05-10T15:00:19Z shymega quit (Quit: Ciao.) 2020-05-10T15:02:26Z shymega joined #lisp 2020-05-10T15:02:52Z shymega quit (Remote host closed the connection) 2020-05-10T15:07:44Z EvW quit (Ping timeout: 256 seconds) 2020-05-10T15:14:56Z constptr quit (Quit: Connection closed for inactivity) 2020-05-10T15:19:01Z gareppa joined #lisp 2020-05-10T15:22:01Z hu6ub joined #lisp 2020-05-10T15:33:30Z stepnem quit (Ping timeout: 260 seconds) 2020-05-10T15:35:06Z stepnem joined #lisp 2020-05-10T15:37:14Z sdumi quit (Ping timeout: 260 seconds) 2020-05-10T15:39:20Z dalz joined #lisp 2020-05-10T15:40:51Z X-Scale joined #lisp 2020-05-10T15:46:58Z hiroaki_ joined #lisp 2020-05-10T15:47:35Z creat quit (Quit: ZNC - http://znc.in) 2020-05-10T15:47:52Z creat joined #lisp 2020-05-10T15:49:28Z azureBlob quit (Remote host closed the connection) 2020-05-10T15:52:52Z Fare joined #lisp 2020-05-10T15:53:33Z gareppa quit (Quit: Leaving) 2020-05-10T15:54:43Z EvW1 joined #lisp 2020-05-10T16:04:34Z dddddd joined #lisp 2020-05-10T16:07:12Z liberliver joined #lisp 2020-05-10T16:07:25Z yankM joined #lisp 2020-05-10T16:09:51Z phoe: Xach: is there any way to manage ASDF via quicklisp? like, to ensure that it always has the newest version? 2020-05-10T16:12:28Z Xach: phoe: not built-in 2020-05-10T16:12:47Z phoe: Xach: tell me more about the "not built-in" option 2020-05-10T16:13:15Z phoe: is cloning ASDF into local-projects and loading it in RC enough? 2020-05-10T16:14:22Z Fare quit (Ping timeout: 272 seconds) 2020-05-10T16:14:35Z Kundry_Wag quit (Remote host closed the connection) 2020-05-10T16:14:54Z Kundry_Wag joined #lisp 2020-05-10T16:15:26Z Xach: I don't know - I've never tried. 2020-05-10T16:15:55Z Xach: I think of asdf as the single file asdf.lisp and it's not part of the model of how quicklisp fetches and loads other software. 2020-05-10T16:16:17Z Xach: It's available at a fixed URL, though, and you could use quicklisp tools to fetch it into a particular place, compile it, and load it. 2020-05-10T16:16:25Z phoe: yes, it is enough 2020-05-10T16:16:44Z phoe: with ASDF checked into local projects and (ql:quickload :asdf) I get the bleeding edge version 2020-05-10T16:17:05Z Xach: there's that vaunted self-upgrade! worth all the code ugliness in ther world! 2020-05-10T16:17:29Z lemoinem quit (Read error: Connection reset by peer) 2020-05-10T16:17:40Z phoe: correct - I can stand it as long as I don't peek into the source code 2020-05-10T16:18:11Z Xach: i can't tell if it was created by a madman or if it created a madman 2020-05-10T16:19:04Z lemoinem joined #lisp 2020-05-10T16:23:41Z Kundry_Wag quit (Remote host closed the connection) 2020-05-10T16:30:03Z jackdaniel: lol 2020-05-10T16:30:10Z yankM quit (Ping timeout: 246 seconds) 2020-05-10T16:31:04Z phoe: why not both 2020-05-10T16:33:39Z terpri joined #lisp 2020-05-10T16:35:26Z constptr joined #lisp 2020-05-10T16:36:05Z Oladon joined #lisp 2020-05-10T16:38:35Z jackdaniel: because A => B is not the same as B => A, and we can't seriously say, that a man is the same thing as the update process of a software 2020-05-10T16:40:20Z liberliver quit (Ping timeout: 272 seconds) 2020-05-10T16:41:03Z shka_: what is a man though? 2020-05-10T16:42:25Z phoe: a miserable little pile of # 2020-05-10T16:45:03Z yankM joined #lisp 2020-05-10T16:45:49Z notzmv quit (Ping timeout: 264 seconds) 2020-05-10T16:46:23Z heisig joined #lisp 2020-05-10T16:48:02Z sdumi joined #lisp 2020-05-10T16:52:59Z sabrac quit (Quit: Konversation terminated!) 2020-05-10T16:57:11Z gko quit (Ping timeout: 260 seconds) 2020-05-10T16:57:58Z shymega joined #lisp 2020-05-10T16:58:36Z rogersm quit (Quit: Leaving...) 2020-05-10T17:02:02Z jeosol quit (Remote host closed the connection) 2020-05-10T17:02:45Z jeosol joined #lisp 2020-05-10T17:05:34Z jeosol: phoe, shka_: https://imgur.com/Df3ISoc here is a picture of the grid I was trying to load. Here the grid is viewed in Paraview (open-source graphics software) 2020-05-10T17:05:42Z SGASAU joined #lisp 2020-05-10T17:07:31Z phoe: jeosol: I have no idea what it is but it sure looks complex 2020-05-10T17:07:47Z jeosol: this is after processing the file with SBCL and pushing a VTK file to Paraview 2020-05-10T17:08:32Z jeosol: it's how the subsurface looks like, you can think of those lines/breaks as faults that could come small earthquakes 2020-05-10T17:08:41Z phoe: I see 2020-05-10T17:09:02Z jeosol: This was why i couldn't share the file, it's highly domain-specific. 2020-05-10T17:09:14Z phoe: yes, I can imagine 2020-05-10T17:10:28Z jeosol: with the small code changes, its more stable and requires fewer memory now. 2020-05-10T17:10:28Z Kundry_Wag joined #lisp 2020-05-10T17:11:09Z jeosol: it's morning here, have to sleep. 2020-05-10T17:11:51Z phoe: see you! thanks 2020-05-10T17:12:25Z stoneglass joined #lisp 2020-05-10T17:13:18Z shka_: jeosol: congratulations! 2020-05-10T17:13:30Z shka_: job well done :-) 2020-05-10T17:13:55Z jeosol: thanks. I finally got it to work. 2020-05-10T17:14:38Z jeosol: and with less memory after some code changes. 2020-05-10T17:15:40Z Jesin quit (Ping timeout: 246 seconds) 2020-05-10T17:19:32Z SGASAU` joined #lisp 2020-05-10T17:21:58Z SGASAU quit (Ping timeout: 246 seconds) 2020-05-10T17:22:04Z notzmv joined #lisp 2020-05-10T17:26:54Z rgherdt quit (Ping timeout: 260 seconds) 2020-05-10T17:29:54Z SGASAU` quit (Ping timeout: 240 seconds) 2020-05-10T17:31:47Z SGASAU`` joined #lisp 2020-05-10T17:32:06Z sbodin joined #lisp 2020-05-10T17:32:11Z orivej quit (Ping timeout: 260 seconds) 2020-05-10T17:38:58Z SGASAU`` quit (Remote host closed the connection) 2020-05-10T17:40:07Z SGASAU``` joined #lisp 2020-05-10T17:41:06Z rgherdt joined #lisp 2020-05-10T17:41:26Z cosimone joined #lisp 2020-05-10T17:43:37Z ramHero joined #lisp 2020-05-10T17:43:54Z SGASAU``` quit (Read error: Connection reset by peer) 2020-05-10T17:44:45Z SGASAU``` joined #lisp 2020-05-10T17:45:03Z dalz quit (Remote host closed the connection) 2020-05-10T17:45:04Z kpoeck quit (Ping timeout: 245 seconds) 2020-05-10T17:50:29Z SGASAU``` quit (Ping timeout: 258 seconds) 2020-05-10T17:51:40Z SGASAU``` joined #lisp 2020-05-10T17:59:11Z kpoeck joined #lisp 2020-05-10T18:00:47Z Oladon quit (Quit: Leaving.) 2020-05-10T18:03:56Z SGASAU``` quit (Ping timeout: 272 seconds) 2020-05-10T18:12:48Z Kundry_Wag quit (Remote host closed the connection) 2020-05-10T18:13:08Z Kundry_Wag joined #lisp 2020-05-10T18:18:38Z ggole quit (Quit: Leaving) 2020-05-10T18:24:16Z Fare joined #lisp 2020-05-10T18:27:22Z Bourne quit (Ping timeout: 272 seconds) 2020-05-10T18:27:22Z hu6ub quit (Ping timeout: 260 seconds) 2020-05-10T18:36:13Z Kundry_Wag quit (Remote host closed the connection) 2020-05-10T18:42:55Z Bourne joined #lisp 2020-05-10T18:43:12Z Necktwi quit (Ping timeout: 272 seconds) 2020-05-10T18:43:32Z lavaflow_ joined #lisp 2020-05-10T18:43:37Z lavaflow_ quit (Client Quit) 2020-05-10T18:43:44Z heisig quit (Quit: Leaving) 2020-05-10T18:43:50Z lavaflow quit (Ping timeout: 272 seconds) 2020-05-10T18:44:36Z constptr quit (Quit: Connection closed for inactivity) 2020-05-10T18:47:17Z hu6ub joined #lisp 2020-05-10T18:47:51Z ATuin quit (Quit: WeeChat 2.8) 2020-05-10T18:47:58Z SGASAU joined #lisp 2020-05-10T18:50:01Z ayuce quit (Read error: Connection reset by peer) 2020-05-10T18:50:29Z kpoeck quit (Ping timeout: 245 seconds) 2020-05-10T18:55:07Z emacsomancer quit (Read error: Connection reset by peer) 2020-05-10T18:55:42Z kpoeck joined #lisp 2020-05-10T18:56:02Z SGASAU` joined #lisp 2020-05-10T18:56:32Z ayuce joined #lisp 2020-05-10T18:57:55Z emacsomancer joined #lisp 2020-05-10T18:59:46Z SGASAU quit (Ping timeout: 260 seconds) 2020-05-10T19:01:57Z dalz joined #lisp 2020-05-10T19:04:12Z rwcom341749 joined #lisp 2020-05-10T19:05:24Z SGASAU` quit (Ping timeout: 256 seconds) 2020-05-10T19:05:58Z rwcom34174 quit (Ping timeout: 256 seconds) 2020-05-10T19:07:01Z buffergn0me joined #lisp 2020-05-10T19:09:32Z SGASAU``` joined #lisp 2020-05-10T19:10:44Z sugarwren quit (Ping timeout: 265 seconds) 2020-05-10T19:12:46Z Jesin joined #lisp 2020-05-10T19:19:17Z lavaflow joined #lisp 2020-05-10T19:28:38Z yankM quit (Ping timeout: 256 seconds) 2020-05-10T19:33:32Z sugarwren joined #lisp 2020-05-10T19:34:00Z EvW1 quit (Read error: Connection reset by peer) 2020-05-10T19:40:34Z SGASAU``` quit (Ping timeout: 246 seconds) 2020-05-10T19:40:35Z karswell quit (Ping timeout: 246 seconds) 2020-05-10T19:40:56Z Kundry_Wag joined #lisp 2020-05-10T19:41:14Z SGASAU``` joined #lisp 2020-05-10T19:42:50Z dmc00 joined #lisp 2020-05-10T19:43:17Z yankM joined #lisp 2020-05-10T19:44:23Z Jesin quit (Ping timeout: 260 seconds) 2020-05-10T19:45:29Z Kundry_Wag quit (Ping timeout: 258 seconds) 2020-05-10T19:48:43Z kpoeck quit (Remote host closed the connection) 2020-05-10T19:55:21Z nika quit 2020-05-10T19:59:51Z madage quit (Remote host closed the connection) 2020-05-10T20:00:06Z madage joined #lisp 2020-05-10T20:01:31Z SGASAU``` quit (Ping timeout: 260 seconds) 2020-05-10T20:11:17Z sugarwren quit (Ping timeout: 246 seconds) 2020-05-10T20:13:35Z slyrus joined #lisp 2020-05-10T20:15:53Z oni-on-ion joined #lisp 2020-05-10T20:30:39Z liberliver joined #lisp 2020-05-10T20:33:54Z Kundry_Wag joined #lisp 2020-05-10T20:35:18Z liberliver quit (Ping timeout: 272 seconds) 2020-05-10T20:35:40Z liberliver joined #lisp 2020-05-10T20:38:19Z Kundry_Wag quit (Ping timeout: 246 seconds) 2020-05-10T20:46:23Z Jesin joined #lisp 2020-05-10T20:49:07Z gravicappa quit (Ping timeout: 260 seconds) 2020-05-10T20:54:36Z kpoeck joined #lisp 2020-05-10T20:54:38Z housel joined #lisp 2020-05-10T20:56:32Z lacroixboy_ quit (Ping timeout: 256 seconds) 2020-05-10T21:02:22Z ayuce left #lisp 2020-05-10T21:05:23Z sugarwren joined #lisp 2020-05-10T21:06:43Z karayan quit (Remote host closed the connection) 2020-05-10T21:08:07Z karayan joined #lisp 2020-05-10T21:11:05Z McParen left #lisp 2020-05-10T21:11:38Z hsaziz joined #lisp 2020-05-10T21:14:34Z sugarwren quit (Quit: Leaving) 2020-05-10T21:15:15Z hsaziz quit (Client Quit) 2020-05-10T21:19:27Z Kundry_Wag joined #lisp 2020-05-10T21:22:22Z kpoeck left #lisp 2020-05-10T21:24:13Z Kundry_Wag quit (Ping timeout: 264 seconds) 2020-05-10T21:25:49Z Lord_of_Life_ joined #lisp 2020-05-10T21:27:14Z Lord_of_Life quit (Ping timeout: 240 seconds) 2020-05-10T21:28:37Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-10T21:28:57Z ljavorsk joined #lisp 2020-05-10T21:29:14Z hiroaki_ quit (Ping timeout: 240 seconds) 2020-05-10T21:32:26Z pve quit (Quit: leaving) 2020-05-10T21:40:22Z Kundry_Wag joined #lisp 2020-05-10T21:43:46Z buffergn0me quit (Ping timeout: 240 seconds) 2020-05-10T21:44:49Z Kundry_Wag quit (Ping timeout: 246 seconds) 2020-05-10T21:45:24Z dale joined #lisp 2020-05-10T21:47:27Z cosimone quit (Ping timeout: 260 seconds) 2020-05-10T21:50:57Z Kundry_Wag joined #lisp 2020-05-10T21:51:27Z Kundry_Wag quit (Remote host closed the connection) 2020-05-10T21:51:43Z Kundry_Wag joined #lisp 2020-05-10T21:55:06Z ArthurStrong joined #lisp 2020-05-10T21:57:42Z hsaziz joined #lisp 2020-05-10T22:03:49Z dalz quit (Remote host closed the connection) 2020-05-10T22:06:30Z shka_ quit (Ping timeout: 272 seconds) 2020-05-10T22:08:48Z arpunk quit (Remote host closed the connection) 2020-05-10T22:12:49Z arpunk joined #lisp 2020-05-10T22:21:05Z frgo quit (Remote host closed the connection) 2020-05-10T22:21:41Z frgo joined #lisp 2020-05-10T22:24:56Z random-nick quit (Ping timeout: 256 seconds) 2020-05-10T22:29:32Z ealfonso joined #lisp 2020-05-10T22:29:47Z SGASAU joined #lisp 2020-05-10T22:33:03Z Kundry_Wag quit (Remote host closed the connection) 2020-05-10T22:33:31Z Kundry_Wag joined #lisp 2020-05-10T22:38:10Z ljavorsk quit (Ping timeout: 272 seconds) 2020-05-10T23:00:27Z ealfonso quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-10T23:00:38Z buffergn0me joined #lisp 2020-05-10T23:00:51Z PuercoPope joined #lisp 2020-05-10T23:00:59Z ejalfonso joined #lisp 2020-05-10T23:01:32Z abhixec joined #lisp 2020-05-10T23:03:48Z wxie joined #lisp 2020-05-10T23:04:33Z orivej joined #lisp 2020-05-10T23:27:34Z wxie quit (Ping timeout: 272 seconds) 2020-05-10T23:32:29Z jason_m left #lisp 2020-05-10T23:35:44Z akoana left #lisp 2020-05-10T23:37:58Z terpri quit (Remote host closed the connection) 2020-05-10T23:39:46Z terpri joined #lisp 2020-05-10T23:39:47Z Jesin quit (Quit: Leaving) 2020-05-10T23:42:34Z Jesin joined #lisp 2020-05-10T23:59:28Z terpri quit (Remote host closed the connection) 2020-05-10T23:59:47Z terpri joined #lisp 2020-05-11T00:01:46Z rgherdt quit (Ping timeout: 256 seconds) 2020-05-11T00:17:01Z rumbler31 joined #lisp 2020-05-11T00:20:52Z shangul joined #lisp 2020-05-11T00:20:57Z dxtr quit (Quit: leaving) 2020-05-11T00:21:10Z dxtr joined #lisp 2020-05-11T00:21:13Z abhixec quit (Quit: leaving) 2020-05-11T00:33:27Z loli quit (Quit: WeeChat 2.8) 2020-05-11T00:36:10Z rotty quit (Quit: WeeChat 2.8-rc1) 2020-05-11T00:41:03Z Kundry_Wag quit (Read error: Connection reset by peer) 2020-05-11T00:45:24Z SGASAU quit (Remote host closed the connection) 2020-05-11T00:46:24Z SGASAU joined #lisp 2020-05-11T00:46:27Z zaquest quit (Quit: Leaving) 2020-05-11T00:50:32Z akoana joined #lisp 2020-05-11T00:55:41Z Lord_of_Life quit (Read error: Connection reset by peer) 2020-05-11T00:57:04Z Lord_of_Life joined #lisp 2020-05-11T01:04:51Z bitmapper quit (Ping timeout: 260 seconds) 2020-05-11T01:06:35Z monok quit (Remote host closed the connection) 2020-05-11T01:15:17Z zaquest joined #lisp 2020-05-11T01:15:55Z Kundry_Wag joined #lisp 2020-05-11T01:20:32Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-11T01:22:18Z dddddd quit (Ping timeout: 256 seconds) 2020-05-11T01:24:59Z stoneglass quit (Quit: stoneglass) 2020-05-11T01:25:52Z renzhi_ joined #lisp 2020-05-11T01:26:05Z loli joined #lisp 2020-05-11T01:26:31Z SGASAU quit (Remote host closed the connection) 2020-05-11T01:27:16Z SGASAU joined #lisp 2020-05-11T01:30:25Z efm_ joined #lisp 2020-05-11T01:31:22Z efm quit (Ping timeout: 256 seconds) 2020-05-11T01:35:01Z efm_ quit (Ping timeout: 264 seconds) 2020-05-11T01:41:25Z akoana left #lisp 2020-05-11T01:55:19Z Kundry_Wag joined #lisp 2020-05-11T01:59:37Z Kundry_Wag quit (Ping timeout: 246 seconds) 2020-05-11T02:01:13Z Oladon joined #lisp 2020-05-11T02:02:49Z toorevitimirp joined #lisp 2020-05-11T02:07:47Z toorevitimirp quit (Remote host closed the connection) 2020-05-11T02:09:31Z toorevitimirp joined #lisp 2020-05-11T02:14:33Z toorevitimirp quit (Remote host closed the connection) 2020-05-11T02:14:51Z SGASAU quit (Remote host closed the connection) 2020-05-11T02:15:12Z toorevitimirp joined #lisp 2020-05-11T02:15:28Z SGASAU joined #lisp 2020-05-11T02:20:08Z Kundry_Wag joined #lisp 2020-05-11T02:28:02Z White_Flame: hmm, inside my embedded language reader, triggered from #{, I only use read-char and up to a single unread-char. After 4 of these expressions, all of a sudden the 5th is read from way earlier in the file 2020-05-11T02:30:00Z White_Flame: and this seems to only happen when it's embedded lisp inside the #{, and uses a quoted expression 2020-05-11T02:30:19Z White_Flame: I wonder if this is an SBCL bug? 2020-05-11T02:38:47Z ralt quit (Quit: Connection closed for inactivity) 2020-05-11T02:39:16Z turona quit (Ping timeout: 265 seconds) 2020-05-11T02:40:15Z turona joined #lisp 2020-05-11T02:49:00Z Kevslinger quit (Quit: Connection closed for inactivity) 2020-05-11T02:50:26Z toorevitimirp quit (Remote host closed the connection) 2020-05-11T02:50:54Z toorevitimirp joined #lisp 2020-05-11T02:52:43Z nullniverse quit (Quit: Leaving) 2020-05-11T02:54:17Z hu6ub quit (Ping timeout: 260 seconds) 2020-05-11T02:54:24Z beach: Good morning everyone! 2020-05-11T02:54:39Z beach: White_Flame: You can try to read it with Eclector and see. 2020-05-11T02:54:49Z White_Flame: yep, seems to be an sbcl bug 2020-05-11T02:54:58Z White_Flame: I just made a 20 line test case without any libs 2020-05-11T02:57:13Z orivej quit (Ping timeout: 264 seconds) 2020-05-11T02:59:24Z Kundry_Wag quit (Remote host closed the connection) 2020-05-11T03:01:23Z Aurora_v_kosmose quit (Remote host closed the connection) 2020-05-11T03:09:27Z scymtym quit (Ping timeout: 260 seconds) 2020-05-11T03:18:34Z SGASAU quit (Remote host closed the connection) 2020-05-11T03:19:13Z SGASAU joined #lisp 2020-05-11T03:32:33Z orivej joined #lisp 2020-05-11T03:44:42Z buffergn0me quit (Ping timeout: 244 seconds) 2020-05-11T03:52:24Z renzhi_ quit (Ping timeout: 256 seconds) 2020-05-11T04:07:46Z orivej quit (Ping timeout: 256 seconds) 2020-05-11T04:15:26Z Oladon quit (Quit: Leaving.) 2020-05-11T04:23:54Z orivej joined #lisp 2020-05-11T04:25:04Z mangul joined #lisp 2020-05-11T04:27:08Z shangul quit (Ping timeout: 272 seconds) 2020-05-11T04:35:08Z Bike quit (Quit: leaving) 2020-05-11T04:39:27Z Oladon joined #lisp 2020-05-11T05:01:19Z Aurora_v_kosmose joined #lisp 2020-05-11T05:10:35Z v88m quit (Remote host closed the connection) 2020-05-11T05:22:08Z gravicappa joined #lisp 2020-05-11T05:25:04Z jfrancis joined #lisp 2020-05-11T05:28:18Z narimiran joined #lisp 2020-05-11T05:29:15Z slyrus_ joined #lisp 2020-05-11T05:29:38Z Necktwi joined #lisp 2020-05-11T05:32:08Z slyrus quit (Ping timeout: 256 seconds) 2020-05-11T05:35:44Z karlosz quit (Quit: karlosz) 2020-05-11T05:36:22Z karlosz joined #lisp 2020-05-11T05:39:08Z Oladon quit (Quit: Leaving.) 2020-05-11T05:39:52Z thonkpod quit (Quit: WeeChat 2.6) 2020-05-11T05:49:50Z jdz joined #lisp 2020-05-11T05:55:55Z ramHero quit (Quit: Connection closed) 2020-05-11T05:58:29Z JohnMS_WORK joined #lisp 2020-05-11T06:03:20Z toorevitimirp quit (Remote host closed the connection) 2020-05-11T06:04:04Z toorevitimirp joined #lisp 2020-05-11T06:09:04Z gioyik joined #lisp 2020-05-11T06:10:23Z mangul is now known as shangul 2020-05-11T06:23:56Z Cymew joined #lisp 2020-05-11T06:32:32Z yankM quit (Ping timeout: 272 seconds) 2020-05-11T06:32:45Z sbodin quit (Read error: Connection reset by peer) 2020-05-11T06:33:09Z sbodin joined #lisp 2020-05-11T06:35:40Z sz0 joined #lisp 2020-05-11T06:43:24Z holycow quit (Quit: leaving) 2020-05-11T06:44:20Z sdumi quit (Ping timeout: 256 seconds) 2020-05-11T06:44:31Z dddddd joined #lisp 2020-05-11T06:45:01Z random-nick joined #lisp 2020-05-11T06:49:38Z yankM joined #lisp 2020-05-11T06:55:03Z sdumi joined #lisp 2020-05-11T07:04:49Z pve joined #lisp 2020-05-11T07:12:58Z rgherdt joined #lisp 2020-05-11T07:13:19Z ayuce joined #lisp 2020-05-11T07:18:44Z thonkpod joined #lisp 2020-05-11T07:18:46Z sdumi quit (Ping timeout: 272 seconds) 2020-05-11T07:22:57Z rgherdt quit (Quit: Leaving) 2020-05-11T07:24:47Z karlosz quit (Quit: karlosz) 2020-05-11T07:28:00Z rgherdt joined #lisp 2020-05-11T07:31:40Z oni-on-ion quit (Remote host closed the connection) 2020-05-11T07:32:02Z oni-on-ion joined #lisp 2020-05-11T07:38:24Z slyrus_ quit (Remote host closed the connection) 2020-05-11T07:38:24Z Fare quit (Ping timeout: 272 seconds) 2020-05-11T07:38:44Z slyrus_ joined #lisp 2020-05-11T07:38:47Z thonkpod quit (Quit: WeeChat 2.7.1) 2020-05-11T07:39:12Z thonkpod joined #lisp 2020-05-11T07:39:17Z SGASAU quit (Remote host closed the connection) 2020-05-11T07:40:00Z SGASAU joined #lisp 2020-05-11T07:49:12Z varjag joined #lisp 2020-05-11T07:51:16Z red-dot quit (Read error: Connection reset by peer) 2020-05-11T08:01:34Z jprajzne joined #lisp 2020-05-11T08:04:04Z yankM quit (Ping timeout: 256 seconds) 2020-05-11T08:07:34Z grobe0ba_ joined #lisp 2020-05-11T08:09:04Z shka_ joined #lisp 2020-05-11T08:09:48Z vsync_ joined #lisp 2020-05-11T08:10:04Z ljavorsk joined #lisp 2020-05-11T08:10:15Z justinmcp_ joined #lisp 2020-05-11T08:10:57Z ramus_ joined #lisp 2020-05-11T08:10:58Z ozzloy_ joined #lisp 2020-05-11T08:11:08Z hiredman_ joined #lisp 2020-05-11T08:11:12Z srji_ joined #lisp 2020-05-11T08:11:31Z cybercaf1 joined #lisp 2020-05-11T08:11:35Z tumdum_ joined #lisp 2020-05-11T08:11:46Z snits_ joined #lisp 2020-05-11T08:15:18Z snowwy joined #lisp 2020-05-11T08:15:34Z spacebat1 joined #lisp 2020-05-11T08:15:41Z wxie joined #lisp 2020-05-11T08:15:52Z Snow-Man quit (*.net *.split) 2020-05-11T08:15:53Z cyberlard quit (*.net *.split) 2020-05-11T08:15:53Z voidlily quit (*.net *.split) 2020-05-11T08:15:53Z justinmcp quit (*.net *.split) 2020-05-11T08:15:53Z spacedbat quit (*.net *.split) 2020-05-11T08:15:53Z srji quit (*.net *.split) 2020-05-11T08:15:53Z vsync quit (*.net *.split) 2020-05-11T08:15:53Z ozzloy quit (*.net *.split) 2020-05-11T08:15:53Z nydel quit (*.net *.split) 2020-05-11T08:15:53Z grobe0ba quit (*.net *.split) 2020-05-11T08:15:53Z cybercafe quit (*.net *.split) 2020-05-11T08:15:53Z snits quit (*.net *.split) 2020-05-11T08:15:53Z hiredman quit (*.net *.split) 2020-05-11T08:15:53Z fouric quit (*.net *.split) 2020-05-11T08:15:53Z tumdum quit (*.net *.split) 2020-05-11T08:15:53Z ramus quit (*.net *.split) 2020-05-11T08:15:54Z grobe0ba_ is now known as grobe0ba 2020-05-11T08:16:07Z sdumi joined #lisp 2020-05-11T08:16:16Z voidlily joined #lisp 2020-05-11T08:16:21Z fouric joined #lisp 2020-05-11T08:16:31Z nydel joined #lisp 2020-05-11T08:17:05Z cyberlard joined #lisp 2020-05-11T08:18:42Z ralt joined #lisp 2020-05-11T08:19:14Z dale quit (Quit: My computer has gone to sleep) 2020-05-11T08:20:58Z ejalfonso quit (Ping timeout: 260 seconds) 2020-05-11T08:26:06Z asarch joined #lisp 2020-05-11T08:36:33Z SGASAU quit (Remote host closed the connection) 2020-05-11T08:39:05Z SGASAU joined #lisp 2020-05-11T09:03:06Z sz0 quit (Quit: Connection closed for inactivity) 2020-05-11T09:05:02Z SGASAU quit (Remote host closed the connection) 2020-05-11T09:05:43Z SGASAU joined #lisp 2020-05-11T09:09:58Z gioyik quit (Quit: WeeChat 2.8) 2020-05-11T09:18:39Z ebrasca joined #lisp 2020-05-11T09:20:36Z stux|RC quit (Quit: Aloha!) 2020-05-11T09:22:38Z stux|RC joined #lisp 2020-05-11T09:25:45Z Lord_of_Life_ joined #lisp 2020-05-11T09:27:52Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-11T09:27:53Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-11T09:28:44Z SGASAU quit (Remote host closed the connection) 2020-05-11T09:29:28Z SGASAU joined #lisp 2020-05-11T09:31:31Z liberliver1 joined #lisp 2020-05-11T09:32:01Z liberliver quit (Ping timeout: 264 seconds) 2020-05-11T09:32:01Z liberliver1 is now known as liberliver 2020-05-11T09:33:51Z shifty joined #lisp 2020-05-11T09:38:40Z rogersm joined #lisp 2020-05-11T10:05:29Z marcoxa joined #lisp 2020-05-11T10:11:35Z asarch quit (Quit: Leaving) 2020-05-11T10:16:05Z arbv quit (Quit: ZNC - https://znc.in) 2020-05-11T10:16:06Z rozenglass1 quit (Ping timeout: 272 seconds) 2020-05-11T10:16:32Z rozenglass1 joined #lisp 2020-05-11T10:17:38Z sdumi quit (Ping timeout: 260 seconds) 2020-05-11T10:21:07Z frgo quit (Remote host closed the connection) 2020-05-11T10:21:44Z frgo joined #lisp 2020-05-11T10:22:30Z holycow joined #lisp 2020-05-11T10:24:55Z arbv joined #lisp 2020-05-11T10:29:20Z sdumi joined #lisp 2020-05-11T10:35:00Z rand_t joined #lisp 2020-05-11T10:46:19Z wxie quit (Ping timeout: 260 seconds) 2020-05-11T10:51:53Z terpri quit (Remote host closed the connection) 2020-05-11T10:59:23Z shka_ quit (Ping timeout: 260 seconds) 2020-05-11T11:00:08Z shka_ joined #lisp 2020-05-11T11:02:01Z hsaziz quit (Quit: hsaziz) 2020-05-11T11:02:19Z hsaziz joined #lisp 2020-05-11T11:08:15Z orivej quit (Ping timeout: 260 seconds) 2020-05-11T11:10:17Z scymtym joined #lisp 2020-05-11T11:13:38Z orivej joined #lisp 2020-05-11T11:15:41Z milanj joined #lisp 2020-05-11T11:19:42Z sabrac joined #lisp 2020-05-11T11:20:51Z Lycurgus joined #lisp 2020-05-11T11:24:38Z heisig joined #lisp 2020-05-11T11:27:47Z Bike joined #lisp 2020-05-11T11:48:54Z lemoinem quit (Ping timeout: 240 seconds) 2020-05-11T11:48:59Z sabrac: Revisiting a docstring topic from a year ago. 2020-05-11T11:49:02Z lemoinem joined #lisp 2020-05-11T11:49:08Z Xach scrolls back 2020-05-11T11:49:30Z sabrac: Was there ever agreement on line length and newlines or let the reader worry about that? 2020-05-11T11:50:14Z Xach: I strongly prefer limiting lines to under 80 characters, because I read them in Emacs and in printouts. I don't have something that renders them to make them more readable. I don't know what others prefer. 2020-05-11T11:51:26Z no-defun-allowed: 80-90 characters is usually what I aim for as well. 2020-05-11T11:52:14Z no-defun-allowed: You can fit two files that are about 80-90 characters wide on a 1080p monitor side-by-side, even with a fairly large font. 2020-05-11T11:53:23Z sabrac: Can do that. Context - updating docstrings and documentation for postmodern 2020-05-11T11:53:31Z bitmapper joined #lisp 2020-05-11T11:55:05Z no-defun-allowed: Though, for documentation strings, I don't usually wrap those because that might not be suitable for the medium we render documentation to (such as a HTML document with Staple). 2020-05-11T11:55:27Z sabrac: I am specifically asking about documentation strings only 2020-05-11T11:57:25Z sabrac: and you have pinpointed the reason for my question 2020-05-11T11:58:29Z sabrac: but it is important I keep Xach happy ;) 2020-05-11T12:07:20Z ayuce quit (Read error: Connection reset by peer) 2020-05-11T12:08:37Z sdumi quit (Ping timeout: 264 seconds) 2020-05-11T12:10:19Z Xach: i can appreciate the tension in different use cases 2020-05-11T12:11:32Z Odin-: Renderers that use hard breaks are wrong. 2020-05-11T12:12:01Z Odin-: There's a _reason_ HTML itself doesn't do them. 2020-05-11T12:12:02Z gigetoo quit (Ping timeout: 260 seconds) 2020-05-11T12:15:18Z Bourne quit (Read error: Connection reset by peer) 2020-05-11T12:16:31Z jackdaniel: Odin-: do you have some resource I could read which explains the topic? 2020-05-11T12:18:26Z bitmapper: man i finally get a copy of lispworks and the IDE is terrible 2020-05-11T12:18:54Z Lycurgus quit (Quit: Exeunt) 2020-05-11T12:19:13Z jackdaniel: it can't be worse then emacs, can it? :) 2020-05-11T12:19:18Z jackdaniel: than* 2020-05-11T12:19:27Z Odin-: jackdaniel: None that I remember specifically on this. I believe the reasoning was explained in some (La)TeX documentation. 2020-05-11T12:19:47Z Xach: bitmapper: at least it was for a good reason. 2020-05-11T12:20:02Z bitmapper: Xach: what was for a good reason 2020-05-11T12:20:50Z Odin-: jackdaniel: What it eventually boils down to is "there really is no such thing as plain text", though. 2020-05-11T12:22:13Z jackdaniel: Odin-: uhm, thanks. I agree. but from practical point of view, say my program has some text with hard lines and I want to do some wrapping too, what am I expected to do? split lines in the program (first hard, then wrap by soft lines), and then fed each to the renderer? 2020-05-11T12:22:34Z jackdaniel: (with appropriate coordinates of course) 2020-05-11T12:22:52Z jackdaniel: I'm askin for a friend who works on McCLIM! ;) 2020-05-11T12:25:16Z sdumi joined #lisp 2020-05-11T12:27:26Z Odin-: jackdaniel: The approach both HTML and TeX adopted is that line breaks in rendered text are represented by a higher-level protocol, rather than directly encoded. 2020-05-11T12:27:52Z Odin-: IOW, line breaks appearing in the input are ignored, unless they form part of the higher-level protocol. 2020-05-11T12:28:53Z jackdaniel: OK, that makes sense to me and that's what we do (more or less :), thank you again 2020-05-11T12:30:45Z Bourne joined #lisp 2020-05-11T12:31:57Z Odin-: I haven't thought it through in any detail, but it seems to me like as soon as you're not treating lines of text as your fundamental unit, an approach like this becomes needed. 2020-05-11T12:33:22Z Odin-: Text encoding on computers sharing fundamentals with teletype machines is the root of this, I think. 2020-05-11T12:33:29Z jackdaniel: a simple example: say you have a function which returns index of the next break -- then you render from the start to this break, and a new start is the next character 2020-05-11T12:33:41Z jackdaniel: so either end or start is a character which may be newline 2020-05-11T12:33:43Z Odin-: Lines and tab stops being important is fundamentally a typewriter thing. 2020-05-11T12:34:06Z jackdaniel: so you are either forced to do what you've mentioned (i.e ignore newline character in a renderer), or you cons a lot to produce substrings 2020-05-11T12:34:45Z rogersm quit (Read error: Connection reset by peer) 2020-05-11T12:34:50Z jackdaniel: or you represent each break as two numbers, end+start 2020-05-11T12:34:50Z ayuce joined #lisp 2020-05-11T12:34:52Z shka_ quit (Ping timeout: 246 seconds) 2020-05-11T12:35:00Z Bourne quit (Read error: Connection reset by peer) 2020-05-11T12:35:13Z jackdaniel: but but, I have serve-event multiprocessing issue to fix :) 2020-05-11T12:35:15Z jackdaniel: in ecl 2020-05-11T12:35:41Z Odin-: jackdaniel: And that's a lot of work when you ultimately don't particularly care what the lines were in the input, which is the case for most renderers. 2020-05-11T12:35:53Z jackdaniel: T 2020-05-11T12:35:55Z rogersm joined #lisp 2020-05-11T12:35:57Z Plazma left #lisp 2020-05-11T12:37:08Z dalz joined #lisp 2020-05-11T12:40:46Z phoe: heisig: "Is there any comprehensive petalisp tutorial besides examples from it's git repo? It seems very nice and almost exactly what I need for my project, but it's very cryptic at first glance" 2020-05-11T12:41:01Z phoe: that's a question that I got on another lisp hangout place and a question that you might be able to answer 2020-05-11T12:41:16Z gigetoo joined #lisp 2020-05-11T12:42:44Z heisig: phoe: The best place to get started are the examples: https://github.com/marcoheisig/Petalisp/tree/master/examples 2020-05-11T12:43:16Z heisig: I want to have a user manual, too, but that has to wait until the core language is finished. 2020-05-11T12:44:31Z Bourne joined #lisp 2020-05-11T12:47:21Z heisig: Gah, I really should finish Petalisp. Thanks phoe for pushing me :) 2020-05-11T12:48:36Z jw4 quit (Read error: Connection reset by peer) 2020-05-11T12:50:23Z jw4 joined #lisp 2020-05-11T12:52:26Z rogersm quit (Ping timeout: 240 seconds) 2020-05-11T12:52:36Z RedMallet joined #lisp 2020-05-11T12:54:20Z terpri joined #lisp 2020-05-11T12:55:17Z hsaziz quit (Ping timeout: 256 seconds) 2020-05-11T12:56:58Z gigetoo quit (Ping timeout: 256 seconds) 2020-05-11T12:57:50Z sonologico quit (Remote host closed the connection) 2020-05-11T12:57:51Z gigetoo joined #lisp 2020-05-11T13:00:36Z phoe: heisig: forwarded. Thank you! 2020-05-11T13:01:30Z pfdietz joined #lisp 2020-05-11T13:04:24Z gigetoo quit (Ping timeout: 256 seconds) 2020-05-11T13:14:03Z toorevitimirp quit (Remote host closed the connection) 2020-05-11T13:19:25Z snits_ quit (Ping timeout: 264 seconds) 2020-05-11T13:20:12Z dddddd quit (Ping timeout: 256 seconds) 2020-05-11T13:26:18Z patlv joined #lisp 2020-05-11T13:28:29Z snits joined #lisp 2020-05-11T13:30:06Z ahungry joined #lisp 2020-05-11T13:30:13Z shifty quit (Ping timeout: 264 seconds) 2020-05-11T13:31:49Z kingcons joined #lisp 2020-05-11T13:37:31Z sdumi quit (Ping timeout: 246 seconds) 2020-05-11T13:48:50Z Kundry_Wag joined #lisp 2020-05-11T13:56:54Z liberliver quit (Quit: liberliver) 2020-05-11T13:57:19Z liberliver joined #lisp 2020-05-11T13:58:59Z lacroixboy joined #lisp 2020-05-11T14:00:06Z JohnMS_WORK quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2020-05-11T14:03:47Z gko joined #lisp 2020-05-11T14:06:30Z Lycurgus joined #lisp 2020-05-11T14:09:34Z orivej quit (Ping timeout: 256 seconds) 2020-05-11T14:09:58Z terpri quit (Remote host closed the connection) 2020-05-11T14:10:35Z terpri joined #lisp 2020-05-11T14:10:46Z jfrancis quit (Remote host closed the connection) 2020-05-11T14:11:19Z jfrancis joined #lisp 2020-05-11T14:13:38Z orivej joined #lisp 2020-05-11T14:18:28Z terpri quit (Remote host closed the connection) 2020-05-11T14:18:54Z terpri joined #lisp 2020-05-11T14:19:08Z ArthurStrong quit (Quit: leaving) 2020-05-11T14:22:12Z fluxwave joined #lisp 2020-05-11T14:25:06Z EvW joined #lisp 2020-05-11T14:27:17Z davepdotorg joined #lisp 2020-05-11T14:27:58Z terpri quit (Remote host closed the connection) 2020-05-11T14:31:21Z phoe: Is a CL implementation required to have a debugger? 2020-05-11T14:32:03Z phoe: I mean, if SBCL had --disable-debugger as a default and therefore would kill the Lisp process on an unhandled error, would it still conform? 2020-05-11T14:32:04Z SGASAU quit (Remote host closed the connection) 2020-05-11T14:32:43Z SGASAU joined #lisp 2020-05-11T14:33:45Z Bike: i don't see why not 2020-05-11T14:34:18Z ebzzry joined #lisp 2020-05-11T14:34:48Z Bike: whether it's default or not wouldn't matter, though, it's not like the standard mentions the possibility of that kind of flag 2020-05-11T14:34:51Z jackdaniel: a "standard debugger" mentioned in the spec may be a "no debugger" 2020-05-11T14:35:12Z Bike: the glossary does say a debugger is interactive, but i really don't think it matters 2020-05-11T14:35:32Z phoe: hmmm 2020-05-11T14:35:33Z phoe: http://www.lispworks.com/documentation/HyperSpec/Body/09_adba.htm 2020-05-11T14:35:50Z ebzzry quit (Client Quit) 2020-05-11T14:36:04Z phoe: "When the debugger is entered, the set of active restarts is presented to the user." 2020-05-11T14:36:20Z phoe: I'm sorta glad that kmp commented this part out in dpANS3 2020-05-11T14:38:08Z pfdietz: The whole thing is so loosely specified that I couldn't test it. 2020-05-11T14:38:43Z Bike: i don't think there'd be much reason to standardize it, anyway 2020-05-11T14:39:41Z rogersm joined #lisp 2020-05-11T14:40:50Z phoe: ^ 2020-05-11T14:50:48Z davepdot_ joined #lisp 2020-05-11T14:53:57Z davepdotorg quit (Ping timeout: 258 seconds) 2020-05-11T14:55:40Z snowwy is now known as Snow-Man 2020-05-11T14:56:48Z Kundry_Wag quit (Remote host closed the connection) 2020-05-11T14:57:59Z Kundry_Wag joined #lisp 2020-05-11T14:58:41Z sdumi joined #lisp 2020-05-11T15:03:11Z gigetoo joined #lisp 2020-05-11T15:06:55Z dyelar joined #lisp 2020-05-11T15:07:52Z gigetoo quit (Ping timeout: 256 seconds) 2020-05-11T15:08:19Z davepdot_ quit (Remote host closed the connection) 2020-05-11T15:08:34Z Lycurgus quit (Ping timeout: 240 seconds) 2020-05-11T15:08:42Z gigetoo joined #lisp 2020-05-11T15:08:46Z davepdotorg joined #lisp 2020-05-11T15:10:40Z lukego: Anyone have experience doing serious Lisp coding within org-babel, i.e. in a *.org file with Lisp code in source code blocks? does that work okay with things like SLIME's `M-.' out of the box? 2020-05-11T15:11:07Z lukego: Is there already reader support for skipping org-mode structure and only parsing lisp source blocks? 2020-05-11T15:12:50Z holycow: i don't the specific answer but i have read posts on reddit and elsewhere that lots of people do this 2020-05-11T15:13:05Z holycow: there is an emacs extension that pulls the code out and compiles it 2020-05-11T15:13:10Z holycow: i just havent looked into it 2020-05-11T15:13:25Z lukego: yeah. actually I guess that I can just try it and see what happens :) it's already installed after all... 2020-05-11T15:13:29Z holycow: i believe it works with slime as well so iterative workflow doesn't change 2020-05-11T15:13:34Z jackdaniel: lukego: you may ask dto (he hangs out on #lispgames), he uses this mode extensively 2020-05-11T15:14:39Z sz0 joined #lisp 2020-05-11T15:15:11Z holycow: neat--> http://www.keyboard-layout-editor.com 2020-05-11T15:15:58Z holycow: here is a monstrosity i came up with --> https://is.gd/UxMrDZ 2020-05-11T15:16:13Z cosimone joined #lisp 2020-05-11T15:16:20Z holycow: gotta figure out a layout that works better for lisp and emacs though 2020-05-11T15:18:00Z pve: lukego: org-babel is really cool (I use it sometimes), but unfortunately M-. will jump to the tangled source file, instead of the org file 2020-05-11T15:20:49Z lukego: maybe I'm also being excessively whimsical and better to keep source and documentation separate. I can always include examples in the docs via org-babel without pulling in all the sources. 2020-05-11T15:20:56Z pve: but the pdf export is just incredible if you get syntax highlighting to work 2020-05-11T15:21:12Z lukego: but yeah org-babel seems to invite geeking out on :) 2020-05-11T15:21:35Z theseb joined #lisp 2020-05-11T15:22:06Z pve: think "sitting in your armchair studying nicely highlighted printouts of your code" 2020-05-11T15:22:29Z lukego: I have a black and white printer so that reduces the technical requirements ;-) 2020-05-11T15:23:00Z dale_ joined #lisp 2020-05-11T15:23:08Z dale_ is now known as dale 2020-05-11T15:23:17Z pve: still, the idea that you're writing a book, as opposed to just code appeals to me greatly 2020-05-11T15:23:27Z pve: I've always admired literate programming from afar 2020-05-11T15:23:40Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-11T15:24:07Z nowhere_man quit (Remote host closed the connection) 2020-05-11T15:24:31Z nowhere_man joined #lisp 2020-05-11T15:26:09Z __jrjsmrtn__ joined #lisp 2020-05-11T15:26:34Z _jrjsmrtn quit (Ping timeout: 240 seconds) 2020-05-11T15:31:29Z lukego: pve: yeah I've experimented with that style and enjoyed it a lot. I think a huge win is just organizing source into sections and arranging code to be read from top to bottom. 2020-05-11T15:32:06Z lukego: then actually printing it out and reading it is a huge win too. I see totally different things on paper, even without special formatting 2020-05-11T15:32:43Z lukego: I haven't had so much "multiplier effect" payback on time spent writing long prose comments though as opposed to separate documentation. 2020-05-11T15:33:03Z pve: lukego: that's pretty much how I feel 2020-05-11T15:34:17Z lukego: I think there's a strong tradition of this in the Lisp world too, recently-ish from the CMU AI Repository that's full of programs that are pleasant to read from top to bottom, going back to the AI Lab where they had a program called "@" that was hundreds of pages of assembler code to generate program listings (and deltas when they changed one part of a large program and wanted to update the hard copy... Steel &co) 2020-05-11T15:34:28Z lukego: badasses... 2020-05-11T15:35:12Z pve: i always have trouble structuring my code, but the top to bottom thing helps me with the structuring because I can always ask myself "does this narrative make sense to another reader?" 2020-05-11T15:35:28Z lukego: I also once experimented with the style from Steele's thesis on Rabbit, where he had alternating pages of prose (left) and code (right), but that was a bit awkward for me 2020-05-11T15:35:49Z gigetoo quit (Remote host closed the connection) 2020-05-11T15:36:17Z gigetoo joined #lisp 2020-05-11T15:36:28Z lukego: yeah. and it's easy to test because when you're reading code it hits you when you have to understand something that hasn't been presented yet. I've tried printing and reading Linux code but I always end up trying to start from the end - where the high-level stuff is - and work my way back to the start which is random utility functions. awkward on printed page :) 2020-05-11T15:36:44Z p_l: lukego: hummm 2020-05-11T15:36:44Z pve: heh yep 2020-05-11T15:37:07Z p_l: lukego: if I had money for a tablet, I might be inspired to make a tool that would "print" code like that, with annotation ability on a tablet 2020-05-11T15:37:12Z p_l: (something like Remarkable?) 2020-05-11T15:37:50Z lukego: just reading in a PDF reader on the computer might have much of the same effect 2020-05-11T15:39:26Z lukego: I've been doing that with documentation just lately, editing docbook sources and gleefully missing lots of glaring mistakes, then reading the pdf version where they all jump out at me... so I don't think printed page or tablet is strictly needed, just to trick brain into "read this one word at a time" mode 2020-05-11T15:40:16Z p_l: lukego: I'm thinking of the tablet so that I could take it away from the computer (and editor) and sit somewhere with coffee and snacks and /think/ 2020-05-11T15:40:31Z davepdot_ joined #lisp 2020-05-11T15:40:33Z lukego: nod 2020-05-11T15:40:52Z lukego: I haven't commuted for a long time but bus rides were always my best time for that, and printouts worked well 2020-05-11T15:41:14Z holycow: lukego: that works for you? i have to print stuff out. 2020-05-11T15:41:27Z p_l: lukego: my commutes are too short for that 2020-05-11T15:41:37Z gigetoo quit (Remote host closed the connection) 2020-05-11T15:41:37Z p_l: typically <20 minutes 2020-05-11T15:41:43Z corpix quit (Ping timeout: 240 seconds) 2020-05-11T15:42:03Z gigetoo joined #lisp 2020-05-11T15:42:22Z scymtym_ joined #lisp 2020-05-11T15:42:33Z p_l: last time it really would have worked out involved when the main bridge I used ended up burnt down, when the time to get from home to work turned out to be the same for me in Warsaw as for someone commuting from Amsterdam to London 2020-05-11T15:43:26Z orivej quit (Ping timeout: 240 seconds) 2020-05-11T15:43:29Z orivej_ joined #lisp 2020-05-11T15:43:48Z scymtym quit (Ping timeout: 256 seconds) 2020-05-11T15:44:37Z davepdotorg quit (Ping timeout: 264 seconds) 2020-05-11T15:46:44Z efm joined #lisp 2020-05-11T15:47:26Z corpix joined #lisp 2020-05-11T15:49:05Z karlosz joined #lisp 2020-05-11T15:50:09Z pve: lukego: i'd be interested in knowing whether the "multiplier effect" appears when *other* people are trying to study your code 2020-05-11T15:50:34Z pve: iow does it lower the collaboration threshold? 2020-05-11T15:51:22Z efm quit (Ping timeout: 260 seconds) 2020-05-11T15:53:19Z random-nick quit (Ping timeout: 246 seconds) 2020-05-11T15:53:40Z rogersm quit (Quit: Leaving...) 2020-05-11T15:54:08Z davepdot_ quit (Remote host closed the connection) 2020-05-11T15:54:42Z davepdotorg joined #lisp 2020-05-11T15:55:58Z splittist: can you tangle syntactically-invalid code? could you do it on every keystroke? 2020-05-11T15:56:40Z pve: yes to syntactically invalid, not sure on every keystroke 2020-05-11T15:58:03Z oxum joined #lisp 2020-05-11T15:59:12Z davepdotorg quit (Ping timeout: 256 seconds) 2020-05-11T16:00:43Z yankM joined #lisp 2020-05-11T16:04:44Z rwcom3417491 joined #lisp 2020-05-11T16:06:35Z random-nick joined #lisp 2020-05-11T16:07:01Z jmercouris: still no luck with deploy: https://pastebin.com/0u4ev6Me 2020-05-11T16:07:06Z jmercouris: I have a feeling it is related to 2020-05-11T16:07:22Z rwcom341749 quit (Ping timeout: 256 seconds) 2020-05-11T16:07:29Z jmercouris: https://pastebin.com/gycaFcrM 2020-05-11T16:07:34Z jmercouris: which is in the glib.init.lisp in cl-cffi-gtk 2020-05-11T16:07:46Z jmercouris: I have copied ALL of the shared libraries into an app bundle.. 2020-05-11T16:09:25Z Cymew quit (Ping timeout: 246 seconds) 2020-05-11T16:20:32Z scymtym_ quit (Quit: ERC (IRC client for Emacs 28.0.50)) 2020-05-11T16:21:22Z natj212 joined #lisp 2020-05-11T16:22:44Z SGASAU quit (Remote host closed the connection) 2020-05-11T16:22:49Z gigetoo quit (Ping timeout: 272 seconds) 2020-05-11T16:23:12Z gigetoo joined #lisp 2020-05-11T16:24:06Z SGASAU joined #lisp 2020-05-11T16:25:34Z gko quit (Ping timeout: 240 seconds) 2020-05-11T16:25:51Z natj212 quit (Quit: ZNC 1.6.3+deb1ubuntu0.2 - http://znc.in) 2020-05-11T16:26:04Z dddddd joined #lisp 2020-05-11T16:26:45Z natj212 joined #lisp 2020-05-11T16:28:44Z oxum quit (Remote host closed the connection) 2020-05-11T16:29:13Z jmercouris: so? 2020-05-11T16:29:16Z jmercouris: no ideas :'(? 2020-05-11T16:31:24Z marcoxa quit (Ping timeout: 256 seconds) 2020-05-11T16:33:29Z davepdotorg joined #lisp 2020-05-11T16:37:52Z theseb: I know lisp allows looping similar to for loops in other langs....however..do many lispers intentionally avoid that and do things more functional with just recursion? 2020-05-11T16:38:32Z davepdotorg quit (Ping timeout: 260 seconds) 2020-05-11T16:38:37Z jmercouris: no, they don't 2020-05-11T16:38:52Z jmercouris: some tasks are suited to iterative, some to recursion 2020-05-11T16:38:59Z jmercouris: most lisp programmers use both when applicable 2020-05-11T16:39:06Z jackdaniel: theseb: in common lisp people usually use a macro loop 2020-05-11T16:39:18Z jackdaniel: most notably tail recursion *is not* guaranteed in Common Lisp (unlike scheme) 2020-05-11T16:40:33Z jackdaniel: loop is a dsl on its own terms, for some building block for your own iterating constructs you may use the operator do (or one of few libraries which provide extensibility, like iterate) 2020-05-11T16:41:29Z theseb: functional programming is becoming more fashionable....i can imagine someone wanting to be a purist and do everything in functional....Trying to imagine how you'd do the equivalent for a for loop with i from 1 to 10 with recursion 2020-05-11T16:41:49Z gigetoo quit (Remote host closed the connection) 2020-05-11T16:42:04Z theseb: if we can do that basic for loop with recursion then we can go hardcore and be nearly 100% functional to be fashionable 2020-05-11T16:42:06Z theseb: possible? 2020-05-11T16:42:43Z xristos: scheme gets you most of the way there 2020-05-11T16:42:47Z xristos: not very practical in CL 2020-05-11T16:42:55Z scymtym joined #lisp 2020-05-11T16:43:12Z jackdaniel: you may do it in CL, but that won't be, how people call it, "idiomatic" for the CL programmer 2020-05-11T16:45:05Z Lycurgus joined #lisp 2020-05-11T16:45:14Z jmercouris: form follows function, not the other way around 2020-05-11T16:45:16Z jmercouris: ignore fashion 2020-05-11T16:46:36Z Lycurgus quit (Client Quit) 2020-05-11T16:47:01Z gigetoo joined #lisp 2020-05-11T16:47:21Z theseb: jmercouris: i don't know much about Haskell but i think it is 100% functional...so they'd have this exact problem we're describing 2020-05-11T16:47:34Z jmercouris: they sure might, maybe ask on #haskell 2020-05-11T16:48:48Z beach: theseb: If a person is already convinced that purely functional code is a must, then it won't be perceived as a problem. 2020-05-11T16:49:02Z xristos: theseb: if it was 100% functional it wouldn't be very useful 2020-05-11T16:49:19Z Bike: the equivalent of a for loop is very easy to do. just remember tail recursion. 2020-05-11T16:49:20Z jackdaniel: right, i.e fset (a Common Lisp library) is written in a functional style) 2020-05-11T16:49:32Z jackdaniel: s/style)/style/ 2020-05-11T16:49:42Z orivej_ quit (Ping timeout: 260 seconds) 2020-05-11T16:50:31Z MichaelRaskin quit (Read error: Connection reset by peer) 2020-05-11T16:50:42Z ntqz joined #lisp 2020-05-11T16:52:04Z Bike: and you have to remember that [blathers about turing degrees for ten minutes] so of course it's _possible_, no question 2020-05-11T16:52:27Z theseb: yup....good ol' Turing completeness 2020-05-11T16:52:34Z theseb: makes everything possile 2020-05-11T16:54:13Z jackdaniel slaps theseb with a halting problem 2020-05-11T17:01:30Z oxum joined #lisp 2020-05-11T17:01:53Z theseb had a Turing Oracle that told him to duck 2020-05-11T17:02:08Z MichaelRaskin joined #lisp 2020-05-11T17:02:19Z natj212 quit (Quit: ZNC 1.6.3+deb1ubuntu0.2 - http://znc.in) 2020-05-11T17:04:05Z natj212 joined #lisp 2020-05-11T17:04:33Z natj212 quit (Client Quit) 2020-05-11T17:06:31Z natj212 joined #lisp 2020-05-11T17:07:23Z davepdotorg joined #lisp 2020-05-11T17:08:11Z natj212 quit (Client Quit) 2020-05-11T17:09:14Z rippa joined #lisp 2020-05-11T17:12:06Z davepdotorg quit (Ping timeout: 240 seconds) 2020-05-11T17:13:18Z efm joined #lisp 2020-05-11T17:25:06Z natj212 joined #lisp 2020-05-11T17:27:21Z pfdietz: fset! I've been using that as a testbed lately. 2020-05-11T17:30:21Z ssd532 joined #lisp 2020-05-11T17:30:37Z davepdotorg joined #lisp 2020-05-11T17:31:14Z kark quit (Ping timeout: 260 seconds) 2020-05-11T17:32:45Z gigetoo quit (Remote host closed the connection) 2020-05-11T17:33:06Z gigetoo joined #lisp 2020-05-11T17:35:17Z rpg joined #lisp 2020-05-11T17:35:31Z Codaraxis joined #lisp 2020-05-11T17:37:42Z rpg: Does anyone know if there's a unifier out there that can do unification over name-structured data (e.g., JSON, plists) in addition to positionally structured data? I know there are such things for Prolog, but not CL. (" 2020-05-11T17:37:56Z rpg: ("Unification" isn't the best keyword for web search.) 2020-05-11T17:39:41Z rpg: *maybe* cl-unification can do this; I'm not sure. 2020-05-11T17:39:55Z pjb: rpg: it's not difficult to write it… 2020-05-11T17:42:02Z rpg: I believe that cl-unification's tgemplate language could support this. 2020-05-11T17:43:36Z phoe: if someone has a while - I would like a review for the slides that I will be presenting tomorrow at the first post-ELS Online Lisp Meeting, mostly from an editor's point of view, if it's consistent, if there are no typos, and such 2020-05-11T17:44:50Z pfdietz: Link for that meeting? Just to help me rememnber. 2020-05-11T17:45:25Z milanj quit (Quit: This computer has gone to sleep) 2020-05-11T17:46:09Z phoe: https://www.reddit.com/r/lisp/comments/ga7kfk/online_lisp_meeting_series/ 2020-05-11T17:46:32Z p_l: theseb: there are people who dislike CL:LOOP and keep to the DO family of macros, there are people who prefer ITERATE (a well known library), there are people who like LOOP and use it a lot. Common Lisp doesn't discriminate. 2020-05-11T17:46:51Z Shinmera: But /I/ do 2020-05-11T17:47:39Z davepdotorg quit (Remote host closed the connection) 2020-05-11T17:47:56Z phoe: the only part of Common Lisp that discriminates is DEFMETHOD 2020-05-11T17:48:15Z davepdotorg joined #lisp 2020-05-11T17:48:31Z phoe: my slides, current version: https://cdn.discordapp.com/attachments/297478350145060875/709433796272848957/Integrating_independent_condition_systems.pdf 2020-05-11T17:49:02Z pfdietz: I have an update to ITERATE I want to get integrated. But that means I need to get common-lisp.net access working, with all that 2fa. 2020-05-11T17:49:37Z phoe: pfdietz: 2FA is basically downloading an app to a smartphone and grabbing keys from it every time you log in. 2020-05-11T17:49:54Z phoe: I use andOTP since it's free software, and the 2FA is - thankfully - following open standards. 2020-05-11T17:50:44Z phoe: or there's also linux clients that use the same algorithms; there's options. 2020-05-11T17:53:01Z davepdotorg quit (Ping timeout: 272 seconds) 2020-05-11T17:53:12Z pfdietz: Uh huh. Last time I tried this, that all was explained nowhere on the site. It left me thinking "github doesn't need this crap, why does this site?" 2020-05-11T17:53:30Z rpg: with respect to unification, it's not obvious to me that it contains an "apply-substitution" function that would, for example, take a template and a substitution and return a populated CL entity. 2020-05-11T17:53:40Z phoe: Yes, gitlab does a poor job at it 2020-05-11T17:53:49Z dlowe: github does support 2fa very well 2020-05-11T17:54:00Z pfdietz: Excuse me, I meant github. 2020-05-11T17:54:06Z pfdietz: Oh wait, nvm 2020-05-11T17:54:13Z pfdietz: Github doesn't require 2fa 2020-05-11T17:54:53Z dlowe: It's almost certainly a configuration setting on gitlab, set by common-lisp.net 2020-05-11T17:55:02Z pfdietz: So whatever problem 2fa is solving, github solves it without 2fa. 2020-05-11T17:55:09Z alandipert: rpg i haven't done this in CL, but i've found the general recipe for hierarchical -> positional is to walk the tree and accumulate a set of paths. the paths form the positional structure that you can feed into something 2020-05-11T17:55:11Z theseb: phoe: i don't know if you've read the TempleOS wikipedia page but the author has quite an interesting story 2020-05-11T17:55:19Z theseb: phoe: thanks for sharing 2020-05-11T17:55:40Z phoe: theseb: I've known about TempleOS for a long time, I've known about the author, too 2020-05-11T17:56:15Z ravndal quit (Read error: Connection reset by peer) 2020-05-11T17:56:24Z rpg: alandipert: I believe that the template lets you do that, but it doesn't seem like there's any functionality to take a template and transform it into a normal lisp value. This seems like an odd omission. 2020-05-11T17:56:38Z ravndal joined #lisp 2020-05-11T17:57:43Z rpg: alandipert: The example here seems to show a programmer doing that by hand. 2020-05-11T17:58:07Z dlowe: pfdietz: no, github is just ignoring the problem 2fa is solving 2020-05-11T17:58:37Z dlowe: I mean, it's a typical convenience/security tradeoff 2020-05-11T17:59:24Z pfdietz: All I can say is that I have not seen an impact from lack of 2fa on github. 2020-05-11T18:00:17Z dlowe: I'm sure you haven't seen an impact from password length minimums either. 2020-05-11T18:01:37Z rpg: alandipert: I believe a sensible extension would be to add to the template language an APPLY-SUBSTITUTION gf that would return populated entities. 2020-05-11T18:02:08Z flip214: common-lisp.net is set to require 2fa because that eliminates a bit of spam (users) - the simple bots don't work any more. 2020-05-11T18:03:18Z phoe: and there was a big bot problem on clnet someday 2020-05-11T18:05:01Z oxum quit (Ping timeout: 264 seconds) 2020-05-11T18:05:14Z pfdietz quit (Remote host closed the connection) 2020-05-11T18:06:21Z buffergn0me joined #lisp 2020-05-11T18:07:11Z buffergn0me quit (Client Quit) 2020-05-11T18:11:48Z narimiran quit (Quit: leaving) 2020-05-11T18:20:35Z davepdotorg joined #lisp 2020-05-11T18:22:40Z sauvin quit (Read error: Connection reset by peer) 2020-05-11T18:24:23Z z147 joined #lisp 2020-05-11T18:24:47Z gigetoo quit (Ping timeout: 258 seconds) 2020-05-11T18:25:20Z gigetoo joined #lisp 2020-05-11T18:25:52Z davepdotorg quit (Ping timeout: 260 seconds) 2020-05-11T18:26:12Z choegusung joined #lisp 2020-05-11T18:26:12Z choegusung quit (Client Quit) 2020-05-11T18:30:14Z gigetoo quit (Ping timeout: 256 seconds) 2020-05-11T18:30:47Z RedMallet quit (Quit: WeeChat 2.6) 2020-05-11T18:31:09Z gigetoo joined #lisp 2020-05-11T18:31:34Z heisig quit (Quit: Leaving) 2020-05-11T18:34:09Z oxum joined #lisp 2020-05-11T18:34:09Z nowhere_man quit (Read error: Connection reset by peer) 2020-05-11T18:37:46Z CrazyEddy quit (Ping timeout: 256 seconds) 2020-05-11T18:41:29Z shka_ joined #lisp 2020-05-11T18:42:38Z oxum quit (Ping timeout: 256 seconds) 2020-05-11T18:47:50Z sabrac quit (Quit: Konversation terminated!) 2020-05-11T18:48:31Z cranes joined #lisp 2020-05-11T18:53:33Z frgo_ joined #lisp 2020-05-11T18:55:45Z frgo quit (Ping timeout: 240 seconds) 2020-05-11T19:02:02Z lavaflow quit (Ping timeout: 260 seconds) 2020-05-11T19:08:23Z shka_: hello 2020-05-11T19:08:30Z phoe: hiii 2020-05-11T19:08:34Z shka_: i am confused about the program-error 2020-05-11T19:08:44Z phoe: show it to us! 2020-05-11T19:09:01Z shka_: no, i am confused about the purpose of the program-error condition 2020-05-11T19:09:03Z shka_: namely 2020-05-11T19:09:17Z phoe: (funcall (lambda () (if 12))) 2020-05-11T19:09:27Z shka_: what is the precise situation where signaling this error is the right thing to do 2020-05-11T19:09:31Z shka_: and when not 2020-05-11T19:09:41Z shka_: for instance the above is clear example of broken syntax 2020-05-11T19:09:56Z phoe: yes, and that is when a program-error is signaled by the system 2020-05-11T19:10:10Z phoe: CLHS PROGRAM-ERROR says: "The type program-error consists of error conditions related to incorrect program syntax." 2020-05-11T19:10:11Z shka_: but what about emitting such errors when, for instance function is called with an invalid combination of arguments? 2020-05-11T19:10:21Z phoe: the syntax was correct 2020-05-11T19:10:24Z phoe: the function was called 2020-05-11T19:10:39Z phoe: so IMO program-error shouldn't apply 2020-05-11T19:11:05Z phoe: but then, what does "invalid combination of arguments" mean 2020-05-11T19:11:10Z shka_: eh, they should just call it SYNTAX-ERROR 2020-05-11T19:11:24Z shka_: phoe: for instance providing both :test and :test-not 2020-05-11T19:11:29Z Bike: actually, stuff like calling a function with too few arguments is spsecifically listed as a program-error 2020-05-11T19:11:47Z phoe: shka_: that's a simple-error in SBCL 2020-05-11T19:12:10Z oni-on-ion quit (Remote host closed the connection) 2020-05-11T19:12:22Z phoe: oh! 2020-05-11T19:12:28Z phoe: it's a simple-error on SBCL, ECL, CCL, CLISP 2020-05-11T19:12:33Z oni-on-ion joined #lisp 2020-05-11T19:12:33Z phoe: but a program-error on ABCL! 2020-05-11T19:12:41Z phoe: interesting stuff 2020-05-11T19:12:53Z phoe: I can see abcl's reasoning 2020-05-11T19:12:55Z shka_: phoe: standard does not even forces any error in such case 2020-05-11T19:12:58Z Bike: it's a bit difficult since it's hard tdo imagine what a handler for a program error could do 2020-05-11T19:13:32Z phoe: shka_: yes 2020-05-11T19:13:50Z shka_: anyway, as you can see it is not exactly clear cut 2020-05-11T19:13:51Z phoe: Bike: yes, the only thing I imagine in such a case is it'd halt and catch fire 2020-05-11T19:13:58Z shka_: some would say that abcl is in the wrong 2020-05-11T19:14:08Z shka_: but i am not 100% sure about this 2020-05-11T19:14:10Z phoe: a program error basically means "the programmer f#<>ed up" 2020-05-11T19:14:23Z phoe: like, in the syntax area 2020-05-11T19:14:31Z shka_: well, he kinda did in this case, right? 2020-05-11T19:14:37Z phoe: and passing both :TEST and :TEST-NOT could be considered to be such a case 2020-05-11T19:14:45Z Bike: i don't think :test and :test-not signaling a program error would be nonconforming 2020-05-11T19:14:48Z phoe: just like when doing (if 12) 2020-05-11T19:14:51Z phoe: Bike: neither do I 2020-05-11T19:15:09Z phoe: http://clhs.lisp.se/Issues/iss345_w.htm 2020-05-11T19:15:50Z phoe: "The :TEST-NOT keywords are not only functionally unnecessary but also problematic because it's not clear what to do when both :TEST and :TEST-NOT are provided." 2020-05-11T19:16:06Z shka_: well, yes it is UB 2020-05-11T19:16:10Z Bike: i like how there's an issue "FUNCTION-COMPOSITION" which does not include function composition 2020-05-11T19:16:21Z phoe: shka_: UB? 2020-05-11T19:16:27Z shka_: undefined behavior 2020-05-11T19:16:30Z jackdaniel: a special police 2020-05-11T19:16:36Z shka_: that, as well 2020-05-11T19:16:40Z phoe: oh yes, I understand now 2020-05-11T19:17:05Z phoe: Bike: I really love how the second line of http://clhs.lisp.se/Issues/iss172_w.htm links to CLHS THE 2020-05-11T19:17:19Z ljavorsk quit (Ping timeout: 260 seconds) 2020-05-11T19:17:19Z Bike: yeah that's pretty pro 2020-05-11T19:17:34Z Bike: also "No Common Lisp implementations provide these functions" farther down 2020-05-11T19:17:36Z phoe: it's amazing 2020-05-11T19:17:41Z Bike: i've seen that kind of thing in several issues 2020-05-11T19:21:44Z fourier joined #lisp 2020-05-11T19:23:38Z _death: note Cost of Non-Adoption 2020-05-11T19:24:16Z phoe: _death: that is amazing 2020-05-11T19:27:17Z phoe: "Several additional functions (COMPOSE, CONJOIN) were considered and rejected at the Jan 89 X3J13 meeting." 2020-05-11T19:27:35Z phoe: well x3j13 they're in alexandria now, are you proud of yourself 2020-05-11T19:28:02Z shka_: well, that is strong argument for not adopting into the standard 2020-05-11T19:28:08Z _death: I read about #, today 2020-05-11T19:28:21Z phoe: _death: which issue? 2020-05-11T19:28:40Z phoe: and did it include #,@ too? 2020-05-11T19:28:48Z _death: it was also flushed (see clhs appendix).. I read the cl-su-ai archives 2020-05-11T19:28:59Z phoe: oh! okay 2020-05-11T19:29:01Z _death: no.. #, was a relative of #. 2020-05-11T19:29:24Z Bike: wasn't it load time evaluation? 2020-05-11T19:29:31Z Bike: and i thought clisp still supported it or something 2020-05-11T19:29:34Z _death: yes 2020-05-11T19:29:53Z phoe: so the equivalent of load-time-value? 2020-05-11T19:30:04Z _death: phoe: not exactly 2020-05-11T19:30:15Z _death: for example '(1 2 #,foo) 2020-05-11T19:31:07Z _death: it had "confusing" semantics wrt interpretation/compilation.. there was also a lot of discussion about how it suffered from the usual #./#+/#- issues 2020-05-11T19:31:57Z _death: check cl-su-ai for the juicy details ;) 2020-05-11T19:33:02Z _death: I think it did lead to defining load-time-value though 2020-05-11T19:33:18Z yankM quit (Ping timeout: 256 seconds) 2020-05-11T19:33:18Z _death: which had relatives in interlisp 2020-05-11T19:36:56Z jprajzne quit (Quit: jprajzne) 2020-05-11T19:38:13Z lavaflow joined #lisp 2020-05-11T19:39:34Z Jesin quit (Quit: Leaving) 2020-05-11T19:42:06Z jackdaniel: minion has died 2020-05-11T19:42:15Z jackdaniel: and he left a note 2020-05-11T19:42:24Z Bike: thus always to tyrants 2020-05-11T19:42:32Z jackdaniel: "remember me fondly, fcukers" 2020-05-11T19:42:41Z specbot quit (Remote host closed the connection) 2020-05-11T19:43:17Z specbot joined #lisp 2020-05-11T19:43:25Z Jesin joined #lisp 2020-05-11T19:43:55Z minion joined #lisp 2020-05-11T19:45:38Z ebrasca quit (Remote host closed the connection) 2020-05-11T19:48:00Z buffergn0me joined #lisp 2020-05-11T19:48:49Z yankM joined #lisp 2020-05-11T19:49:46Z oni-on-ion quit (Ping timeout: 240 seconds) 2020-05-11T19:59:22Z sstc joined #lisp 2020-05-11T20:00:16Z efm quit (Ping timeout: 256 seconds) 2020-05-11T20:03:31Z efm joined #lisp 2020-05-11T20:06:34Z ramHero joined #lisp 2020-05-11T20:08:24Z shifty joined #lisp 2020-05-11T20:11:36Z efm quit (Ping timeout: 256 seconds) 2020-05-11T20:13:25Z liberliver quit (Ping timeout: 264 seconds) 2020-05-11T20:13:36Z tomaw quit (Read error: Connection reset by peer) 2020-05-11T20:13:56Z tomaw joined #lisp 2020-05-11T20:33:48Z aeth: I thought that the Unix-acceptable way to censor the f word is fsck? 2020-05-11T20:33:56Z efm joined #lisp 2020-05-11T20:34:13Z jackdaniel: minion: why not unix? 2020-05-11T20:34:13Z minion: i said so 2020-05-11T20:34:30Z phoe: well 2020-05-11T20:34:34Z phoe: a convincing argument 2020-05-11T20:39:02Z shka_ quit (Ping timeout: 256 seconds) 2020-05-11T20:39:34Z oxum joined #lisp 2020-05-11T20:42:32Z fourier quit (Ping timeout: 244 seconds) 2020-05-11T20:45:42Z Codaraxis_ joined #lisp 2020-05-11T20:46:54Z rpg quit (Ping timeout: 240 seconds) 2020-05-11T20:49:14Z shangul quit (Ping timeout: 256 seconds) 2020-05-11T20:49:26Z Codaraxis quit (Ping timeout: 272 seconds) 2020-05-11T20:51:12Z akoana joined #lisp 2020-05-11T20:56:30Z ayuce left #lisp 2020-05-11T21:00:12Z z147 quit (Quit: z147) 2020-05-11T21:01:22Z efm quit (Quit: Konversation terminated!) 2020-05-11T21:05:44Z karayan quit (Remote host closed the connection) 2020-05-11T21:06:42Z karayan joined #lisp 2020-05-11T21:19:47Z ahungry quit (Remote host closed the connection) 2020-05-11T21:21:06Z pve quit (Quit: leaving) 2020-05-11T21:21:53Z mathrick quit (Ping timeout: 258 seconds) 2020-05-11T21:22:31Z zmt00 joined #lisp 2020-05-11T21:24:08Z gigetoo quit (Ping timeout: 256 seconds) 2020-05-11T21:25:09Z gigetoo joined #lisp 2020-05-11T21:25:33Z zmt01 quit (Ping timeout: 260 seconds) 2020-05-11T21:25:34Z gravicappa quit (Ping timeout: 240 seconds) 2020-05-11T21:26:31Z Lord_of_Life_ joined #lisp 2020-05-11T21:27:46Z lavaflow quit (Ping timeout: 256 seconds) 2020-05-11T21:28:46Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-11T21:28:47Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-11T21:33:30Z lavaflow joined #lisp 2020-05-11T21:34:09Z SGASAU quit (Remote host closed the connection) 2020-05-11T21:34:57Z SGASAU joined #lisp 2020-05-11T21:40:48Z arpunk quit (Read error: Connection reset by peer) 2020-05-11T21:50:42Z rpg joined #lisp 2020-05-11T21:51:22Z davepdotorg joined #lisp 2020-05-11T21:55:54Z dalz quit (Remote host closed the connection) 2020-05-11T21:57:38Z theseb quit (Quit: Leaving) 2020-05-11T21:57:46Z mathrick joined #lisp 2020-05-11T21:58:12Z random-nick quit (Ping timeout: 256 seconds) 2020-05-11T21:59:32Z SGASAU quit (Remote host closed the connection) 2020-05-11T22:00:19Z SGASAU joined #lisp 2020-05-11T22:01:08Z hsaziz joined #lisp 2020-05-11T22:02:28Z davepdotorg quit (Remote host closed the connection) 2020-05-11T22:02:59Z davepdotorg joined #lisp 2020-05-11T22:07:37Z davepdotorg quit (Ping timeout: 272 seconds) 2020-05-11T22:08:02Z hsaziz quit (Quit: hsaziz) 2020-05-11T22:23:03Z sstc quit (Ping timeout: 260 seconds) 2020-05-11T22:24:25Z SGASAU quit (Remote host closed the connection) 2020-05-11T22:24:52Z sstc joined #lisp 2020-05-11T22:25:21Z SGASAU joined #lisp 2020-05-11T22:27:59Z SGASAU quit (Remote host closed the connection) 2020-05-11T22:28:42Z SGASAU joined #lisp 2020-05-11T22:32:56Z shifty quit (Ping timeout: 256 seconds) 2020-05-11T22:33:54Z shifty joined #lisp 2020-05-11T22:35:27Z davepdotorg joined #lisp 2020-05-11T22:40:21Z davepdotorg quit (Ping timeout: 265 seconds) 2020-05-11T22:58:05Z Kundry_W_ joined #lisp 2020-05-11T22:58:19Z srandon111 joined #lisp 2020-05-11T22:58:29Z srandon111: guys is there something similar to the scapy python module for lisp? 2020-05-11T22:58:40Z srandon111: it is a packet crafting library based on libpcap 2020-05-11T22:59:29Z wxie joined #lisp 2020-05-11T23:01:10Z oxum quit (Ping timeout: 272 seconds) 2020-05-11T23:01:16Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-11T23:04:06Z cosimone quit (Ping timeout: 244 seconds) 2020-05-11T23:05:46Z rgherdt quit (Ping timeout: 240 seconds) 2020-05-11T23:09:22Z dxtr quit (Changing host) 2020-05-11T23:09:22Z dxtr joined #lisp 2020-05-11T23:11:14Z hiroaki_ joined #lisp 2020-05-11T23:15:57Z akoana: srandon111: maybe this could help: https://atomontage.github.io/plokami/ 2020-05-11T23:21:21Z hu6ub joined #lisp 2020-05-11T23:27:08Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-11T23:36:35Z jeosol quit (Remote host closed the connection) 2020-05-11T23:37:06Z bitmapper quit (Ping timeout: 260 seconds) 2020-05-11T23:37:32Z stepnem quit (Ping timeout: 256 seconds) 2020-05-11T23:38:29Z stepnem joined #lisp 2020-05-11T23:38:34Z rgherdt joined #lisp 2020-05-11T23:40:52Z buffergn0me quit (Ping timeout: 260 seconds) 2020-05-11T23:43:59Z bitmapper joined #lisp 2020-05-11T23:45:32Z hiroaki_ quit (Ping timeout: 260 seconds) 2020-05-11T23:46:48Z SGASAU quit (Remote host closed the connection) 2020-05-11T23:47:39Z SGASAU joined #lisp 2020-05-11T23:55:14Z xristos: srandon111: i have a lot of code written on top of plokami (and a much updated private branch of it that i'll release at some point) 2020-05-11T23:55:52Z xristos: you can easily do scapy in CL and if you pay attention to the code, it'll be orderS of magnitude faster than python 2020-05-11T23:56:43Z lonjil quit (Ping timeout: 265 seconds) 2020-05-11T23:57:48Z no-defun-allowed: I'm not too familiar with it, but does pcap do packet creation? I thought you would need to write packet creating code yourself. 2020-05-11T23:58:01Z xristos: it doesn't, you'd use it for injection 2020-05-11T23:58:10Z rgherdt quit (Ping timeout: 265 seconds) 2020-05-11T23:58:13Z xristos: you do need to write the crafting code yourself 2020-05-12T00:02:36Z no-defun-allowed: Right. 2020-05-12T00:07:01Z Bike quit (Quit: Lost terminal) 2020-05-12T00:11:01Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-12T00:11:08Z lacroixboy_ joined #lisp 2020-05-12T00:12:25Z Bike joined #lisp 2020-05-12T00:12:58Z orivej joined #lisp 2020-05-12T00:14:14Z lacroixboy quit (Ping timeout: 240 seconds) 2020-05-12T00:16:28Z Kundry_W_ quit (Ping timeout: 256 seconds) 2020-05-12T00:16:42Z milanj joined #lisp 2020-05-12T00:19:53Z Oladon joined #lisp 2020-05-12T00:22:44Z lonjil joined #lisp 2020-05-12T00:23:36Z dev joined #lisp 2020-05-12T00:24:48Z slyrus__ joined #lisp 2020-05-12T00:27:07Z slyrus_ quit (Ping timeout: 246 seconds) 2020-05-12T00:27:44Z holycow quit (Quit: leaving) 2020-05-12T00:31:08Z orivej quit (Ping timeout: 256 seconds) 2020-05-12T00:31:26Z oxum joined #lisp 2020-05-12T00:33:38Z Kundry_Wag joined #lisp 2020-05-12T00:34:49Z dyelar quit (Quit: Leaving.) 2020-05-12T00:36:18Z davepdotorg joined #lisp 2020-05-12T00:36:24Z orivej joined #lisp 2020-05-12T00:42:07Z davepdotorg quit (Ping timeout: 260 seconds) 2020-05-12T00:49:00Z oxum quit (Remote host closed the connection) 2020-05-12T00:49:17Z oxum joined #lisp 2020-05-12T00:50:53Z EvW quit (Ping timeout: 260 seconds) 2020-05-12T00:50:59Z rgherdt joined #lisp 2020-05-12T00:54:09Z ArthurStrong joined #lisp 2020-05-12T00:55:07Z loli quit (Ping timeout: 246 seconds) 2020-05-12T01:15:51Z dddddd quit (Remote host closed the connection) 2020-05-12T01:17:06Z renzhi_ joined #lisp 2020-05-12T01:17:59Z patlv quit (Quit: patlv) 2020-05-12T01:20:47Z buffergn0me joined #lisp 2020-05-12T01:25:13Z rgherdt quit (Ping timeout: 272 seconds) 2020-05-12T01:28:38Z loli joined #lisp 2020-05-12T01:31:53Z terpri joined #lisp 2020-05-12T01:32:12Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-12T01:33:47Z crazybigdan joined #lisp 2020-05-12T01:40:28Z terpri quit (Remote host closed the connection) 2020-05-12T01:41:00Z terpri joined #lisp 2020-05-12T01:41:26Z Kaisyu7 joined #lisp 2020-05-12T01:42:38Z bitmapper quit (Ping timeout: 260 seconds) 2020-05-12T01:52:48Z davsebamse quit (Ping timeout: 272 seconds) 2020-05-12T01:54:37Z White_Flame: are whitespace, constituents, traits etc first class in any measurable way? 2020-05-12T01:54:53Z zaquest quit (Quit: Leaving) 2020-05-12T01:56:13Z rand_t quit (Quit: rand_t) 2020-05-12T01:58:24Z davsebamse joined #lisp 2020-05-12T01:58:40Z zaquest joined #lisp 2020-05-12T02:01:23Z Bike: you can set the syntax type of a character from another, but otherwise no 2020-05-12T02:03:29Z crazybigdan: Hi, when using slime, if I have some file and in it a define some package "foo" and export some function inside that package, I can compile and run it and all is well 2020-05-12T02:03:37Z crazybigdan: When I change the export list in the defpackage and recompile, I get an error along the lines of: "FOO also exports the following symbols: (foo:fun-i-removed-from-export) 2020-05-12T02:03:45Z crazybigdan: How do I get around this and recompile the modified defpackage? 2020-05-12T02:04:06Z crazybigdan: In short... this is exact issue I am having: https://stackoverflow.com/questions/11350903/how-to-make-lisp-forget-about-previously-exported-symbols 2020-05-12T02:05:30Z gigetoo quit (Ping timeout: 260 seconds) 2020-05-12T02:05:37Z White_Flame: an error, or just a warning? 2020-05-12T02:06:08Z gigetoo joined #lisp 2020-05-12T02:14:18Z oxum quit (Remote host closed the connection) 2020-05-12T02:16:59Z Bike: delete the package inbetween? 2020-05-12T02:17:33Z crazybigdan: it says it is a warning but slime will fail to load the fasl 2020-05-12T02:17:44Z crazybigdan: I can direct it to anyways 2020-05-12T02:18:24Z Bike: it's not a slime specific problem. doing a modified defpackage is undefined behavior according to the standard 2020-05-12T02:19:46Z crazybigdan: a workaround I found was to change into that offending package (via in-package) and then (unintern) the symbol 2020-05-12T02:20:01Z crazybigdan: that would allow me to recompile without warnings 2020-05-12T02:20:13Z Bike: yeah, the problem is when the defpackage doesn't match the state of the package 2020-05-12T02:20:20Z crazybigdan: but I was wondering if there was a more efficient way to doing it 2020-05-12T02:20:22Z crazybigdan: okay 2020-05-12T02:20:27Z Bike: if you unintern the symbol, it's not exported any more, so there's no problem 2020-05-12T02:21:02Z crazybigdan: i thought i could unintern from outside the package, but that did not appear to work 2020-05-12T02:22:04Z Bike: you can do (unintern 'foo::sym "FOO") 2020-05-12T02:22:12Z Bike: regardless of what package you're in 2020-05-12T02:22:27Z hu6ub quit (Ping timeout: 260 seconds) 2020-05-12T02:24:22Z Bike: can probably also just use unexport 2020-05-12T02:25:09Z White_Flame: crazybigdan: My coding style is to have exports by the DEFUNs, which seems to be in the minority. With defpackage loading first in a separate package.lisp, it's not an issue since that is rarely re-loaded. When it is an issue, I simply restart the lisp image to flush things out 2020-05-12T02:25:15Z oxum joined #lisp 2020-05-12T02:25:54Z White_Flame: it is a very good idea to restart during code modifications (renames, deletions, API changes, initializers, etc) to clean out any lingering prior code and to make sure your code is purely reflected in the running image 2020-05-12T02:25:57Z crazybigdan: do you have an example on github or elsewhere? 2020-05-12T02:27:29Z White_Flame: I just have a simple (defmacro defun-export (name params &body) `(progn (export ',name) (defun ,name ,params ,@body))) and use that instead of defun where appropriate 2020-05-12T02:28:01Z White_Flame: obviously that won't remove the export if you rename to plain DEFUN, and DEFPACKAGE isn't happy having an empty export list if reloaded, etc 2020-05-12T02:28:48Z White_Flame: but my main point is to say that restarting the image is something good to do when structural changes happen to your code 2020-05-12T02:29:03Z White_Flame: then it doesn't matter what the old package definition is 2020-05-12T02:29:20Z crazybigdan: Bike, that usage of unintern worked for me, I was calling it like (unintern 'sym "FOO") 2020-05-12T02:29:22Z crazybigdan: so thank you 2020-05-12T02:30:06Z Bike: yeah, if you just write 'sym it'll be the sym in the current package, but with foo:: it's expliit 2020-05-12T02:31:43Z crazybigdan: so while i have you all here, what is the difference between 'sym and :sym? 2020-05-12T02:31:54Z White_Flame: current package vs keyword package 2020-05-12T02:32:03Z Bike: :sym is short for keyword:sym 2020-05-12T02:32:12Z White_Flame: and keywords always evaluate to their own symbol as a data value, so no need to quote it 2020-05-12T02:32:18Z White_Flame: so :sym is equivalent to ':sym 2020-05-12T02:32:33Z crazybigdan: is there only one keyword package? 2020-05-12T02:32:41Z White_Flame: yes 2020-05-12T02:32:59Z White_Flame: it's intended to be used as a global space for symbols as data tags 2020-05-12T02:33:03Z crazybigdan: and if the reader is looking up a sym, so there some order it will look between the current package and the keyword package? 2020-05-12T02:33:08Z White_Flame: so there's no local bindings on them 2020-05-12T02:33:15Z White_Flame: (well in a few cases there are, but whatever) 2020-05-12T02:33:38Z Oladon quit (Quit: Leaving.) 2020-05-12T02:33:49Z White_Flame: the keyword package probably should never be USEd, nor symbols exported from there 2020-05-12T02:34:39Z White_Flame: keywords again are for symbols-as-data-elements, where other languages might used enums (ignoring the backing numbers) 2020-05-12T02:35:15Z White_Flame: and a keyword will read the same no matter what package you're in, and 2 keywords of the same name will always be EQ 2020-05-12T02:36:16Z crazybigdan: i have seen loop take two forms, one with symbols and one with keyword symbols: (loop :for i :in thing) vs (loop for i in thing) 2020-05-12T02:36:30Z Bike: loop only uses the symbol names, so those are equivalent 2020-05-12T02:36:55Z White_Flame: yep, that is loop-specific behavior. Loop is a weird little sublanguage 2020-05-12T02:37:02Z White_Flame: which was integrated from past utilities 2020-05-12T02:37:22Z crazybigdan: is there a "more correct" way to call loop? 2020-05-12T02:37:48Z White_Flame: LOOP is a very general tool, and an easy go-to for many usages 2020-05-12T02:38:09Z turona quit (Ping timeout: 265 seconds) 2020-05-12T02:38:13Z White_Flame: there's an ITERATE library which is a more unified style re-take on the same sort of thing 2020-05-12T02:38:30Z White_Flame: then there is DOLIST and generic DO and their related looping forms 2020-05-12T02:38:30Z crazybigdan: sure, I mean, using symbols vs using keyword-symbols 2020-05-12T02:38:57Z White_Flame: oh, you mean which of those is considered "more correct" 2020-05-12T02:39:08Z crazybigdan: yeah 2020-05-12T02:39:11Z White_Flame: I've seen plain symbols more than keyworded ones, but I don't think there's broad consensus 2020-05-12T02:39:22Z crazybigdan: i would've guessed 2020-05-12T02:39:53Z White_Flame: keywords will highlight better in emacs, and creates fewer arbitrary symbols at read-time (but that's pretty minor) 2020-05-12T02:39:56Z turona joined #lisp 2020-05-12T02:40:45Z crazybigdan: haha syntactical highlight is anything but minor :-) 2020-05-12T02:41:03Z White_Flame: I mean the symbol creation is a very minor static overhead 2020-05-12T02:41:16Z crazybigdan: by symbol creation you mean 'intern'ing? 2020-05-12T02:41:31Z White_Flame: yes 2020-05-12T02:41:58Z White_Flame: reading the input stream of characters "(loop for foo in bar " and generating the local-package symbols named FOR, FOO, IN and BAR 2020-05-12T02:42:13Z crazybigdan: okay 2020-05-12T02:42:13Z White_Flame: although really just FOR and IN would be superfluous; the other ones are genuine local variables 2020-05-12T02:42:26Z White_Flame: LOOP of course would be imported from COMMON-LISP:LOOP 2020-05-12T02:43:50Z crazybigdan: so after you call loop (like: (loop for i in foobar)) you could theoretically unintern the 'for and the 'in to clean up the package? 2020-05-12T02:44:16Z White_Flame: right, to save probably some dozens of bytes in your at least dozens of MB footprint 2020-05-12T02:44:33Z White_Flame: however, those might also exist in use elswhere in your code, so definitely not recommended 2020-05-12T02:44:50Z arpunk joined #lisp 2020-05-12T02:47:27Z aeth: I like using CL keywords for LOOP keywords because they stand out more, with or without syntax highlighting. 2020-05-12T02:47:38Z aeth: The only downside is the rare case (just for hash-tables?) where LOOP strings together several words in a row 2020-05-12T02:47:43Z aeth: that part just looks ugly 2020-05-12T02:48:36Z aeth: Even though it looks cleaner to me, it is the minority style. Maybe because the big references like PCL don't use this style. 2020-05-12T02:50:39Z White_Flame: it's a newer style, at the very least 2020-05-12T02:51:24Z oxum quit (Remote host closed the connection) 2020-05-12T02:51:37Z aeth: It probably became a thing when syntax highlighting became a thing. GNU Emacs (not sure about XEmacs) got syntax highlighting by default fairly late. Early 2010s iirc. 2020-05-12T02:52:28Z aeth: It really shines in two cases: (1) with syntax highlighting and (2) when writing a LOOP in one line for something like IRC when it would normally be on more than one line 2020-05-12T02:53:24Z White_Flame: (loop :for irc :in examples :when (keywords-used) ...) 2020-05-12T02:53:53Z oxum joined #lisp 2020-05-12T02:53:54Z wxie quit (Ping timeout: 240 seconds) 2020-05-12T02:56:48Z crazybigdan: thanks btw everyone for the responses 2020-05-12T02:57:49Z Oladon joined #lisp 2020-05-12T03:06:36Z abhixec joined #lisp 2020-05-12T03:08:22Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-12T03:08:33Z orivej joined #lisp 2020-05-12T03:09:16Z abhixec quit (Client Quit) 2020-05-12T03:13:02Z toorevitimirp joined #lisp 2020-05-12T03:14:27Z rpg joined #lisp 2020-05-12T03:16:26Z renzhi_ quit (Ping timeout: 260 seconds) 2020-05-12T03:18:38Z davepdotorg joined #lisp 2020-05-12T03:19:46Z pjb quit (Ping timeout: 240 seconds) 2020-05-12T03:20:57Z milanj quit (Quit: This computer has gone to sleep) 2020-05-12T03:21:22Z akoana left #lisp 2020-05-12T03:24:33Z davepdotorg quit (Ping timeout: 265 seconds) 2020-05-12T03:28:45Z SGASAU quit (Remote host closed the connection) 2020-05-12T03:29:47Z SGASAU joined #lisp 2020-05-12T03:32:04Z SGASAU quit (Remote host closed the connection) 2020-05-12T03:40:21Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-12T03:43:19Z X-Scale` joined #lisp 2020-05-12T03:44:56Z X-Scale quit (Ping timeout: 256 seconds) 2020-05-12T03:44:57Z X-Scale` is now known as X-Scale 2020-05-12T03:46:40Z SGASAU joined #lisp 2020-05-12T03:49:04Z Bike quit (Quit: leaving) 2020-05-12T03:55:57Z beach: Good morning everyone! 2020-05-12T04:00:14Z sstc quit (Quit: WeeChat 2.8) 2020-05-12T04:01:57Z ArthurStrong: beach: indeed 2020-05-12T04:06:07Z shangul joined #lisp 2020-05-12T04:14:38Z X-Scale quit (Quit: HydraIRC -> http://www.hydrairc.com <- Now with extra fish!) 2020-05-12T04:18:04Z oxum quit (Remote host closed the connection) 2020-05-12T04:18:59Z ahungry joined #lisp 2020-05-12T04:20:14Z pjb joined #lisp 2020-05-12T04:20:15Z Kundry_Wag quit (Read error: Connection reset by peer) 2020-05-12T04:21:44Z ArthurStrong: beach: you like a stranger you meet each time in subway in morning. what TZ you're in? 2020-05-12T04:23:21Z beach: UTC+2 2020-05-12T04:24:08Z CrazyEddy joined #lisp 2020-05-12T04:25:44Z ArthurStrong: beach: me too 2020-05-12T04:36:05Z beach: If you made a habit of going to ELS, I wouldn't be a stranger to you. 2020-05-12T04:39:39Z beach: Though, who knows, maybe the idea of a bunch of people traveling in order to be at the same place at the same time to discuss a common topic is over. 2020-05-12T04:41:23Z ArthurStrong: what is ELS? 2020-05-12T04:45:45Z aeth: https://european-lisp-symposium.org/ 2020-05-12T04:46:10Z ArthurStrong: OIC, thanks 2020-05-12T04:49:43Z oxum joined #lisp 2020-05-12T04:51:59Z Oladon quit (Quit: Leaving.) 2020-05-12T04:54:49Z Kundry_Wag joined #lisp 2020-05-12T04:56:00Z oxum quit (Ping timeout: 256 seconds) 2020-05-12T04:58:26Z shifty quit (Ping timeout: 258 seconds) 2020-05-12T04:58:44Z shifty joined #lisp 2020-05-12T04:59:34Z Kundry_Wag quit (Ping timeout: 260 seconds) 2020-05-12T05:02:27Z narimiran joined #lisp 2020-05-12T05:11:51Z oxum joined #lisp 2020-05-12T05:12:35Z karlosz quit (Quit: karlosz) 2020-05-12T05:12:38Z gigetoo quit (Ping timeout: 260 seconds) 2020-05-12T05:12:47Z davepdotorg joined #lisp 2020-05-12T05:13:12Z karlosz joined #lisp 2020-05-12T05:13:15Z gigetoo joined #lisp 2020-05-12T05:18:55Z davepdotorg quit (Ping timeout: 272 seconds) 2020-05-12T05:33:49Z davsebamse quit (Ping timeout: 264 seconds) 2020-05-12T05:36:26Z ntqz quit (Ping timeout: 260 seconds) 2020-05-12T05:37:15Z ntqz joined #lisp 2020-05-12T05:40:30Z davsebamse joined #lisp 2020-05-12T05:41:27Z buffergn0me quit (Ping timeout: 240 seconds) 2020-05-12T05:42:31Z sdumi quit (Ping timeout: 258 seconds) 2020-05-12T05:43:47Z sauvin joined #lisp 2020-05-12T05:44:28Z gravicappa joined #lisp 2020-05-12T05:44:58Z sdumi joined #lisp 2020-05-12T05:50:13Z abhixec joined #lisp 2020-05-12T05:52:09Z davepdotorg joined #lisp 2020-05-12T05:54:24Z JohnMS_WORK joined #lisp 2020-05-12T05:55:56Z lavaflow quit (Ping timeout: 258 seconds) 2020-05-12T05:56:23Z davepdotorg quit (Ping timeout: 246 seconds) 2020-05-12T05:57:14Z ahungry quit (Remote host closed the connection) 2020-05-12T05:57:16Z dale quit (Quit: My computer has gone to sleep) 2020-05-12T06:02:34Z lavaflow joined #lisp 2020-05-12T06:05:44Z beach quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2020-05-12T06:08:02Z shka_ joined #lisp 2020-05-12T06:09:48Z beach joined #lisp 2020-05-12T06:11:31Z sdumi quit (Ping timeout: 246 seconds) 2020-05-12T06:13:32Z sdumi joined #lisp 2020-05-12T06:15:52Z slyrus_ joined #lisp 2020-05-12T06:18:10Z slyrus__ quit (Ping timeout: 246 seconds) 2020-05-12T06:19:36Z Cymew joined #lisp 2020-05-12T06:31:05Z varjag joined #lisp 2020-05-12T06:32:34Z ramHero quit (Ping timeout: 265 seconds) 2020-05-12T06:38:54Z sdumi quit (Ping timeout: 240 seconds) 2020-05-12T06:42:56Z SGASAU quit (Ping timeout: 256 seconds) 2020-05-12T06:43:02Z phoe: hellooo 2020-05-12T06:44:00Z random-nick joined #lisp 2020-05-12T06:45:42Z davepdotorg joined #lisp 2020-05-12T06:46:52Z no-defun-allowed: Hello phoe. 2020-05-12T07:03:19Z gigetoo quit (Ping timeout: 246 seconds) 2020-05-12T07:03:50Z gigetoo joined #lisp 2020-05-12T07:04:45Z ayuce joined #lisp 2020-05-12T07:08:29Z pjb quit (Ping timeout: 272 seconds) 2020-05-12T07:08:50Z gigetoo quit (Ping timeout: 260 seconds) 2020-05-12T07:09:13Z yankM quit (Ping timeout: 264 seconds) 2020-05-12T07:09:31Z gigetoo joined #lisp 2020-05-12T07:11:11Z beach: Hello phoe. 2020-05-12T07:11:59Z phoe: good morning 2020-05-12T07:12:37Z rogersm joined #lisp 2020-05-12T07:14:07Z gigetoo quit (Ping timeout: 260 seconds) 2020-05-12T07:15:16Z gigetoo joined #lisp 2020-05-12T07:17:02Z orivej quit (Ping timeout: 260 seconds) 2020-05-12T07:19:07Z orivej joined #lisp 2020-05-12T07:26:20Z liberliver joined #lisp 2020-05-12T07:26:33Z karlosz quit (Quit: karlosz) 2020-05-12T07:29:50Z milanj joined #lisp 2020-05-12T07:34:26Z asarch joined #lisp 2020-05-12T07:35:32Z asarch: One stupid question: in Perl when you are debugging some module, you can add a return; at the middle of that module in order to prevent the interpreter reads the entire file. Is there any similar for Common Lisp? 2020-05-12T07:37:04Z no-defun-allowed: You could put #| before the first line you don't want to read, and |# after the last line. 2020-05-12T07:37:13Z aeth: what comes to mind is just inserting #| ... |# but there might be another way. perhaps a reader macro that essentially does nothing 2020-05-12T07:37:26Z ralt: like #+nil 2020-05-12T07:37:42Z no-defun-allowed: ralt: #+(or) would only work for one form though 2020-05-12T07:37:53Z aeth: well, I was more thinking about a reader macro that reads until EOF 2020-05-12T07:38:00Z pve joined #lisp 2020-05-12T07:38:46Z p_l: beach: while I am generally pro-teleconference, I would prefer if events like ELS continued to be in-person 2020-05-12T07:38:56Z p_l: much harder to do hallway track otherwise 2020-05-12T07:40:41Z beach: p_l: I prefer that too, but the combination of pandemics and energy crises may force us to rethink. 2020-05-12T07:41:52Z amerlyq joined #lisp 2020-05-12T07:42:01Z jprajzne joined #lisp 2020-05-12T07:43:02Z toorevitimirp quit (Ping timeout: 272 seconds) 2020-05-12T07:43:13Z aeth: maybe when VR/AR is common 2020-05-12T07:43:34Z shka_: eh, i just hope that future ELS events, even when returning to on-side formula will still be streamed 2020-05-12T07:45:16Z gigetoo quit (Ping timeout: 256 seconds) 2020-05-12T07:45:52Z gigetoo joined #lisp 2020-05-12T07:49:02Z davepdotorg quit (Ping timeout: 244 seconds) 2020-05-12T07:50:51Z ArthurStrong quit (Quit: leaving) 2020-05-12T07:51:26Z rgherdt joined #lisp 2020-05-12T07:51:35Z Kundry_Wag joined #lisp 2020-05-12T07:54:38Z SGASAU joined #lisp 2020-05-12T07:56:18Z Kundry_Wag quit (Ping timeout: 258 seconds) 2020-05-12T07:57:38Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-12T07:58:46Z gigetoo quit (Ping timeout: 260 seconds) 2020-05-12T07:58:47Z orivej joined #lisp 2020-05-12T07:59:31Z gigetoo joined #lisp 2020-05-12T08:02:30Z dalz joined #lisp 2020-05-12T08:14:04Z Shinmera: I'd like that too but I fear it might impact funds negatively. 2020-05-12T08:14:19Z Shinmera: It would also put a big additional burden on organisers. 2020-05-12T08:15:09Z Shinmera: Lord knows a stream like that is difficult enough with pre-recorded stuff. Doing it live requires a ton of effort and knowledge that most people don't even realise. 2020-05-12T08:18:05Z heisig joined #lisp 2020-05-12T08:19:23Z ljavorsk joined #lisp 2020-05-12T08:21:49Z White_Flame: do it all in 144p 2020-05-12T08:22:16Z Shinmera: Unfortunately effort does not scale with the resolution 2020-05-12T08:23:42Z asarch: Thank you guys! 2020-05-12T08:23:45Z asarch: Thank you very much! :-) 2020-05-12T08:25:25Z asarch quit (Quit: Leaving) 2020-05-12T08:29:21Z Zakkor joined #lisp 2020-05-12T08:31:10Z femi quit (Ping timeout: 272 seconds) 2020-05-12T08:32:46Z _heisig joined #lisp 2020-05-12T08:32:55Z orivej quit (Ping timeout: 246 seconds) 2020-05-12T08:32:58Z orivej_ joined #lisp 2020-05-12T08:33:10Z heisig quit (Read error: Connection reset by peer) 2020-05-12T08:33:55Z SGASAU` joined #lisp 2020-05-12T08:34:00Z Krystof quit (Ping timeout: 256 seconds) 2020-05-12T08:35:04Z SGASAU quit (Ping timeout: 256 seconds) 2020-05-12T08:36:34Z jeosol joined #lisp 2020-05-12T08:37:23Z Krystof joined #lisp 2020-05-12T08:38:59Z liberliver quit (Quit: liberliver) 2020-05-12T08:39:35Z liberliver joined #lisp 2020-05-12T08:44:57Z rwcom34174916 joined #lisp 2020-05-12T08:45:29Z _heisig is now known as heisig 2020-05-12T08:46:14Z p_l: Shinmera: have you done it? Cause I feel lulled into pseudo safety by OBS and YT 2020-05-12T08:46:38Z rwcom3417491 quit (Ping timeout: 256 seconds) 2020-05-12T08:46:59Z phoe: p_l: OBS and YT have few moving parts 2020-05-12T08:47:25Z phoe: no mics, no cameras, the ability to postprocess audio/video, the ability to have take twos/threes/fours 2020-05-12T08:47:39Z p_l: phoe: OBS supports those, afaik 2020-05-12T08:47:44Z phoe: it's not about support 2020-05-12T08:47:48Z p_l: well, except multiple takes 2020-05-12T08:47:59Z p_l: but you don't do multiple takes with *live* streaming 2020-05-12T08:48:06Z davepdotorg joined #lisp 2020-05-12T08:48:20Z phoe: it's about all the need to adjust their parameters at live time to make the streamed contents bearable 2020-05-12T08:48:52Z phoe: one needs a camera operator, an audio mixer operator, and someone watching over the stream; that's already three people 2020-05-12T08:49:12Z p_l: phoe: that's true, though I'll admit to cheating on that last time I tried ;P 2020-05-12T08:49:32Z rwcom34174916 quit (Ping timeout: 272 seconds) 2020-05-12T08:49:47Z phoe: p_l: cheating at such matters is amazing as long as you don't get caught 2020-05-12T08:50:06Z phoe: and "getting caught" in this case means "you are streaming content that is unusable" 2020-05-12T08:50:45Z phoe: and that is a direct issue when it comes to watching livestreamed content 2020-05-12T08:50:49Z Shinmera: phoe: Done what? I did this year's stream. And I know a bit about how live events like ESA and GDQ operate. There's a ton of specialists on scene. 2020-05-12T08:50:53Z Shinmera: *p_l 2020-05-12T08:51:25Z p_l: Shinmera: I think there's a bit of scale between small end and ESA/GDQ 2020-05-12T08:51:42Z Shinmera: Of course 2020-05-12T08:51:56Z p_l: phoe: one simplification with ELS is that I don't recall there being more than one track 2020-05-12T08:52:40Z Shinmera: But even given such large events have technical issues every time with large funding and large teams on scene. 2020-05-12T08:53:16Z p_l: Shinmera: they have also significantly higher difficulty from the start 2020-05-12T08:53:25Z p_l: sometimes the fixes are hilarious though 2020-05-12T08:53:33Z no-defun-allowed: "Oh, but my ELS talk is about using artificial intelligence to automatically manage cameras and audio mixing..." 2020-05-12T08:53:36Z phoe: p_l: also the stream, once it reaches Twitch, doesn't care about how people watch it; that's the part that doesn't care about the scale 2020-05-12T08:53:52Z p_l: there's a mandatory manekineko in every CCC video, iirc 2020-05-12T08:54:21Z p_l: this fixed a big issue they used to have in handling streaming 2020-05-12T08:55:03Z Shinmera: p_l: Anyway, it's a fact that it would add a lot of additional requirements onto the local organisers. Every local chair I've talked to so far was completely exhausted after ELS even without having to worry about cameras, streaming, and moderating an online event at the same time. 2020-05-12T08:55:58Z p_l: Shinmera: Yes, I think that's the biggest issue, not technical 2020-05-12T08:56:20Z Shinmera: Well organising the cameras, video capture, and streaming /are/ technical issues that are a lot more trouble than 'just use obs lol' 2020-05-12T08:56:25Z p_l: Personally been thinking of maybe volunteering regarding handling that at any future /local/ ELS, but it didn't work out 2020-05-12T08:56:31Z phoe: ;;; and mics 2020-05-12T08:56:40Z phoe: ;;; and the mixer 2020-05-12T08:57:19Z p_l: Shinmera: I was thinking more of "individual technical bits can be handled this way, but you need time and people to arrange everything" 2020-05-12T08:58:24Z ioa: p_l it was difficult to separate the ELS talks in tracks, given the time restrictions of some speakers (US timezones) 2020-05-12T08:59:26Z ntqz quit (Ping timeout: 256 seconds) 2020-05-12T09:00:19Z sdumi joined #lisp 2020-05-12T09:00:26Z ntqz joined #lisp 2020-05-12T09:00:49Z shka_ quit (Ping timeout: 264 seconds) 2020-05-12T09:04:54Z White_Flame: Are the ELS talks available in a video-per-talk form yet? (and yeah, more work etc) 2020-05-12T09:04:58Z pjb joined #lisp 2020-05-12T09:05:02Z Shinmera: Not that I know. 2020-05-12T09:05:36Z Shinmera: I've been too stressed since ELS to even handle the hand-off of the stream account to Didier. 2020-05-12T09:05:48Z White_Flame: yeah, I bet 2020-05-12T09:07:14Z sdumi quit (Ping timeout: 240 seconds) 2020-05-12T09:08:16Z Shinmera: Twitch also has the capability to add 'chapters' but in the hurry of ELS I forgot about it. 2020-05-12T09:08:19Z dddddd joined #lisp 2020-05-12T09:08:27Z Shinmera: I don't think I can add those after the fact. 2020-05-12T09:09:18Z srandon111: guys does lisp have Tail Call Optimization? 2020-05-12T09:09:26Z Shinmera: It might. 2020-05-12T09:09:34Z srandon111: ??? 2020-05-12T09:09:41Z Shinmera: It's up to the implementation. 2020-05-12T09:09:43Z jackdaniel: it is not mandated by the standard 2020-05-12T09:09:51Z srandon111: okok 2020-05-12T09:09:53Z srandon111: i mean sbcl 2020-05-12T09:09:59Z srandon111: common lisp 2020-05-12T09:10:07Z jackdaniel: you mean sbcl or common lisp? 2020-05-12T09:10:09Z Shinmera: SBCL will do it in some cases with some flag configurations. 2020-05-12T09:10:14Z Shinmera: Check the manual. 2020-05-12T09:10:23Z femi joined #lisp 2020-05-12T09:10:40Z srandon111: Shinmera, isn't sbcl a common lisp? 2020-05-12T09:10:41Z White_Flame: but in general, yeah. Just use tail calls. If it blows the stack, check the implementation docs to see if you need to do anything special 2020-05-12T09:10:54Z jackdaniel: yes, but common lisp is not sbcl 2020-05-12T09:11:13Z jackdaniel: you know, "A contains B" et cetera 2020-05-12T09:11:45Z White_Flame: from a clean restart, (disassemble (lambda () (foo))) shows a tail call 2020-05-12T09:12:33Z White_Flame: (in <1 month old sbcl , to be specific) 2020-05-12T09:13:02Z White_Flame: (on x64) 2020-05-12T09:13:54Z no-defun-allowed: It isn't advisable to write tail-recursive functions in Common Lisp. 2020-05-12T09:15:14Z White_Flame: I think that's relatively outdated advice 2020-05-12T09:15:41Z jackdaniel: code compiled with tco may be harder to debug 2020-05-12T09:15:41Z phoe: #+sbcl (sb-ext:restrict-compiler-policy 'debug 3 3) 2020-05-12T09:15:48Z phoe: look ma, no tail calls 2020-05-12T09:15:55Z no-defun-allowed: In the sense that a conforming implementation could not support tail call elimination? 2020-05-12T09:15:57Z White_Flame: the things that foil a tail call nowadays are generally things that will foil TCO in any TCO-supporting language 2020-05-12T09:16:13Z phoe: White_Flame: TCO in Lisp can be foiled by global optimize settings 2020-05-12T09:16:19Z White_Flame: sure 2020-05-12T09:16:26Z phoe: that won't foil TCO in many TCO-supporting languages, such as Erlang, Scheme et al 2020-05-12T09:16:50Z White_Flame: and if you have an infinite tail call recursive main loop or something, you can declare it happen there 2020-05-12T09:17:17Z White_Flame: but still, it works until you do something to break it, and TCO is a powerful programming tool supporting in any modern CL implementation. Use it. 2020-05-12T09:17:24Z gigetoo quit (Ping timeout: 272 seconds) 2020-05-12T09:17:27Z White_Flame: *supported 2020-05-12T09:17:35Z phoe: sb-ext:restrict-compiler-policy may cause the compiler to ignore local optimize declarations; that's a problem 2020-05-12T09:18:06Z White_Flame: sure, "until you do something to break it", and in that example you know already what you're doing 2020-05-12T09:18:09Z jackdaniel: sb-ext:lift-compiler-policy 2020-05-12T09:18:14Z jackdaniel: ;) 2020-05-12T09:18:19Z beach: srandon111: Often, algorithms that can be expressed with tail recursion are better expressed with iteration. 2020-05-12T09:18:31Z phoe: jackdaniel: you scared me for a second 2020-05-12T09:19:08Z jackdaniel: common lisp provides a wonderful iterative operator which syntactically resembles a tail-recursive function, it is called DO 2020-05-12T09:19:35Z jackdaniel: (DO ((arg initial-value call-step)*) (exit-test return-value) function-body) 2020-05-12T09:19:35Z phoe: jackdaniel: I haven't made that connection earlier! nice 2020-05-12T09:20:01Z SAL9000: I guess you'd want TCO for CPS, although I'm not sure if any CLs can optimize that 2020-05-12T09:20:02Z White_Flame: I've never considered that a reasonable resemblance ;) 2020-05-12T09:20:24Z White_Flame: SAL9000: I use it all the time. My compiler target is currently CPS CL lambdas 2020-05-12T09:20:25Z jackdaniel: White_Flame: well, it is striking to me :) 2020-05-12T09:21:07Z SAL9000: :-) 2020-05-12T09:21:27Z phoe: annnnnd strrrrike you're out 2020-05-12T09:21:39Z jackdaniel: but do is for recursive function, not for general tco where functions "pass the baton" 2020-05-12T09:22:09Z jackdaniel: s/do is/only for/ 2020-05-12T09:22:36Z Odin-: It's for where some languages use recursion to implement iteration. :p 2020-05-12T09:22:51Z White_Flame: I often turn to LABELS where loops get hairy, and the disassembler tends to just turn into a bunch of JMPs 2020-05-12T09:23:18Z White_Flame: *diassembled form 2020-05-12T09:23:32Z White_Flame: mutually recursive or self recursive 2020-05-12T09:23:46Z White_Flame: don't shortchange SBCL's compiler 2020-05-12T09:24:06Z Odin-: White_Flame: We're talking about Common Lisp, not SBCL. 2020-05-12T09:24:23Z White_Flame: the original question was about SBCL specifically 2020-05-12T09:24:49Z Odin-: Well, no, it wasn't. But it turned out that was all the asker cared about. 2020-05-12T09:24:59Z phoe: well if you want a SBCL-only solution then you can enable TCO in your programs, just follow the optimization guidelines 2020-05-12T09:25:14Z White_Flame: "enable"? 2020-05-12T09:25:34Z White_Flame: it's on by default 2020-05-12T09:25:48Z sdumi joined #lisp 2020-05-12T09:25:48Z phoe: even better! 2020-05-12T09:27:15Z Lord_of_Life_ joined #lisp 2020-05-12T09:28:40Z gigetoo joined #lisp 2020-05-12T09:29:18Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-12T09:29:18Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-12T09:29:34Z liberliver quit (Ping timeout: 240 seconds) 2020-05-12T09:29:44Z liberliver joined #lisp 2020-05-12T09:29:52Z oxum quit (Remote host closed the connection) 2020-05-12T09:34:23Z davepdotorg quit (Remote host closed the connection) 2020-05-12T09:38:12Z pjb quit (Ping timeout: 260 seconds) 2020-05-12T09:42:21Z jprajzne quit (Quit: jprajzne) 2020-05-12T09:42:30Z liberliver quit (Ping timeout: 256 seconds) 2020-05-12T09:42:54Z liberliver joined #lisp 2020-05-12T09:46:03Z milanj quit (Quit: This computer has gone to sleep) 2020-05-12T09:47:07Z orivej joined #lisp 2020-05-12T09:47:10Z orivej_ quit (Ping timeout: 272 seconds) 2020-05-12T09:48:44Z femi quit (Ping timeout: 256 seconds) 2020-05-12T09:50:26Z liberliver quit (Ping timeout: 256 seconds) 2020-05-12T09:50:50Z liberliver joined #lisp 2020-05-12T09:51:59Z davepdotorg joined #lisp 2020-05-12T09:53:09Z Kundry_Wag joined #lisp 2020-05-12T09:55:41Z femi joined #lisp 2020-05-12T09:57:33Z davepdotorg quit (Remote host closed the connection) 2020-05-12T09:58:00Z davepdotorg joined #lisp 2020-05-12T09:58:02Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-12T09:58:14Z liberliver quit (Ping timeout: 240 seconds) 2020-05-12T09:58:54Z liberliver joined #lisp 2020-05-12T09:59:50Z davepdot_ joined #lisp 2020-05-12T10:01:50Z jprajzne joined #lisp 2020-05-12T10:02:37Z davepdotorg quit (Ping timeout: 264 seconds) 2020-05-12T10:08:55Z SGASAU` quit (Remote host closed the connection) 2020-05-12T10:09:36Z SGASAU` joined #lisp 2020-05-12T10:10:29Z mangul joined #lisp 2020-05-12T10:10:52Z liberliver quit (Ping timeout: 260 seconds) 2020-05-12T10:11:14Z liberliver joined #lisp 2020-05-12T10:12:03Z shangul quit (Ping timeout: 260 seconds) 2020-05-12T10:14:53Z pjb joined #lisp 2020-05-12T10:18:42Z SGASAU` quit (Remote host closed the connection) 2020-05-12T10:19:19Z dalz quit (Remote host closed the connection) 2020-05-12T10:19:20Z SGASAU` joined #lisp 2020-05-12T10:27:01Z ravndal quit (Ping timeout: 246 seconds) 2020-05-12T10:27:48Z Kundry_Wag joined #lisp 2020-05-12T10:30:50Z oxum joined #lisp 2020-05-12T10:30:56Z Lycurgus joined #lisp 2020-05-12T10:31:17Z liberliver quit (Ping timeout: 260 seconds) 2020-05-12T10:31:37Z liberliver joined #lisp 2020-05-12T10:32:37Z Kundry_Wag quit (Ping timeout: 264 seconds) 2020-05-12T10:34:02Z lavaflow quit (Ping timeout: 272 seconds) 2020-05-12T10:34:03Z sdumi quit (Read error: Connection reset by peer) 2020-05-12T10:34:45Z sdumi joined #lisp 2020-05-12T10:35:50Z liberliver quit (Ping timeout: 256 seconds) 2020-05-12T10:36:12Z liberliver joined #lisp 2020-05-12T10:36:44Z lavaflow joined #lisp 2020-05-12T10:38:20Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-12T10:39:01Z SGASAU joined #lisp 2020-05-12T10:39:28Z vaporatorius quit (Read error: No route to host) 2020-05-12T10:50:30Z mangul quit (Ping timeout: 256 seconds) 2020-05-12T10:55:42Z monokrom joined #lisp 2020-05-12T10:55:51Z liberliver1 joined #lisp 2020-05-12T10:55:52Z liberliver quit (Read error: Connection reset by peer) 2020-05-12T10:55:52Z liberliver1 is now known as liberliver 2020-05-12T10:56:16Z Lycurgus quit (Quit: https://ai-integration.biz - Exit Client) 2020-05-12T11:01:43Z Bike joined #lisp 2020-05-12T11:03:54Z liberliver quit (Ping timeout: 240 seconds) 2020-05-12T11:05:36Z sbodin quit (Read error: Connection reset by peer) 2020-05-12T11:05:36Z sbodin_ joined #lisp 2020-05-12T11:08:59Z igemnace joined #lisp 2020-05-12T11:09:09Z Zakkor quit (Quit: Connection closed for inactivity) 2020-05-12T11:09:25Z scymtym_ joined #lisp 2020-05-12T11:09:30Z Ekho quit (Quit: An alternate universe was just created where I didn't leave. But here, I left you. I'm sorry.) 2020-05-12T11:11:11Z scymtym quit (Ping timeout: 260 seconds) 2020-05-12T11:12:27Z davepdot_ quit (Remote host closed the connection) 2020-05-12T11:12:55Z davepdotorg joined #lisp 2020-05-12T11:13:38Z scymtym__ joined #lisp 2020-05-12T11:15:12Z scymtym_ quit (Ping timeout: 272 seconds) 2020-05-12T11:16:26Z rand_t joined #lisp 2020-05-12T11:17:42Z davepdotorg quit (Ping timeout: 256 seconds) 2020-05-12T11:18:42Z pjb quit (Ping timeout: 265 seconds) 2020-05-12T11:19:11Z vaporatorius joined #lisp 2020-05-12T11:19:11Z vaporatorius quit (Changing host) 2020-05-12T11:19:11Z vaporatorius joined #lisp 2020-05-12T11:20:01Z Bourne quit (Ping timeout: 264 seconds) 2020-05-12T11:21:29Z Ekho joined #lisp 2020-05-12T11:23:42Z srandon111 quit (Remote host closed the connection) 2020-05-12T11:32:51Z igemnace quit (Quit: WeeChat 2.8) 2020-05-12T11:33:31Z sdumi quit (Ping timeout: 246 seconds) 2020-05-12T11:41:00Z Kundry_Wag joined #lisp 2020-05-12T11:46:11Z Necktwi_ joined #lisp 2020-05-12T11:47:10Z Necktwi quit (Ping timeout: 246 seconds) 2020-05-12T11:47:47Z scymtym__ quit (Quit: ERC (IRC client for Emacs 28.0.50)) 2020-05-12T11:48:32Z scymtym joined #lisp 2020-05-12T11:48:36Z ljavorsk quit (Ping timeout: 258 seconds) 2020-05-12T11:48:59Z X-Scale joined #lisp 2020-05-12T11:51:07Z davepdotorg joined #lisp 2020-05-12T11:55:46Z davepdotorg quit (Ping timeout: 240 seconds) 2020-05-12T11:55:50Z Jesin quit (Ping timeout: 260 seconds) 2020-05-12T11:55:53Z vaporatorius quit (Ping timeout: 258 seconds) 2020-05-12T11:56:10Z mangul joined #lisp 2020-05-12T12:01:34Z davepdotorg joined #lisp 2020-05-12T12:03:50Z milanj joined #lisp 2020-05-12T12:11:58Z davepdotorg quit (Remote host closed the connection) 2020-05-12T12:12:03Z pjb joined #lisp 2020-05-12T12:12:24Z davepdotorg joined #lisp 2020-05-12T12:17:56Z oxum quit (Remote host closed the connection) 2020-05-12T12:19:34Z hiroaki_ joined #lisp 2020-05-12T12:28:37Z vibs29 joined #lisp 2020-05-12T12:30:00Z lukego: Hey how do you actually write (SETF (CDR (ASSOC KEY ALIST)) FOO) ? 2020-05-12T12:30:28Z pjb: you start by typing the key with the "(" label. Then the key with the "S" label, and so on. 2020-05-12T12:30:42Z pjb: lukego: careful, there's a trick with the key for " ": it has no label! 2020-05-12T12:30:50Z pjb: lukego: it's a large key at the bottom of the keyboard. 2020-05-12T12:31:15Z Bike: alexandria has an assoc-value place you can use 2020-05-12T12:31:18Z jackdaniel: (let (a) (setf (alexandria:assoc-value a :key) 42) a) 2020-05-12T12:31:25Z jackdaniel: what Bike said 2020-05-12T12:31:26Z lukego: pjb: yeah thanks dickhead :) 2020-05-12T12:31:38Z Bike: the code is kind of involved since you have to sometimes add a new cons and sometimes change an existing one 2020-05-12T12:31:40Z jackdaniel: it also accepts a test parameter 2020-05-12T12:31:43Z pjb: lukego: You're welcome! 2020-05-12T12:32:07Z lukego: thanks for the assoc-value tip! 2020-05-12T12:32:38Z Bike: https://github.com/keithj/alexandria/blob/master/lists.lisp#L29-L71 i mean it's messy in large part because it's a macro expanding to define-setf-expander, but still 2020-05-12T12:32:39Z White_Flame: if you were using plists instead of alists, you could use the standard (setf (getf plist key) value) and that would construct a new entry if not found 2020-05-12T12:33:24Z jackdaniel: but then you limit yourself to eq test 2020-05-12T12:33:33Z lukego: I'm using symbol property lists at the moment i.e. GET but it seems a bit scattered. maybe plist is better, or hashtable evne. 2020-05-12T12:33:33Z vibs29 left #lisp 2020-05-12T12:35:43Z lukego: Just had a feeling there was a simple way to do it with alists in CL even without alexandria but must be mistaken 2020-05-12T12:38:55Z wsinatra joined #lisp 2020-05-12T12:39:38Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-12T12:40:17Z wsinatra quit (Client Quit) 2020-05-12T12:40:44Z wsinatra joined #lisp 2020-05-12T12:40:48Z orivej joined #lisp 2020-05-12T12:43:08Z wsinatra quit (Client Quit) 2020-05-12T12:43:26Z wsinatra joined #lisp 2020-05-12T12:48:41Z jw4 quit (Read error: Connection reset by peer) 2020-05-12T12:50:34Z jw4 joined #lisp 2020-05-12T12:54:00Z Xach: lukego: (push (cons key value) alist) is another way 2020-05-12T12:54:12Z oxum joined #lisp 2020-05-12T12:54:46Z lukego: Xach: right. but will grow with repeated definitions, right? I thought PUSHNEW would do the trick but doesn't seem to replace existing items, only suppress the new one 2020-05-12T12:55:01Z lukego: maybe I'll just stick with symbol properties 2020-05-12T12:55:21Z jackdaniel: do you have a constraint which doesn't let you use alexandria? 2020-05-12T12:55:28Z Xach: lukego: who's afraid of a little consing? 2020-05-12T12:55:32Z jackdaniel: (just curious, if plists are OK then fine) 2020-05-12T12:55:39Z Josh_2: plists are great 2020-05-12T12:55:43Z Josh_2: so are alists 2020-05-12T12:55:44Z jackdaniel: Xach: pushnew will retain the old value 2020-05-12T12:55:59Z jackdaniel: ah, nvm, you were referring to plain push 2020-05-12T12:56:29Z lukego: jackdaniel: no grudge against alexandria, already using it, was just surprised there wasn't a pure way 2020-05-12T12:56:35Z Necktwi joined #lisp 2020-05-12T12:56:55Z Bike: it's because the setf expansion sometimes has to alter a cons and sometimes has to alter a variable, so you can't just define a (setf assoc-value) function 2020-05-12T12:56:58Z Xach: i reach for alists mostly when the automatic undoing as you call/return is handy 2020-05-12T12:57:21Z davepdot_ joined #lisp 2020-05-12T12:57:37Z jackdaniel: I find alists much easier to parse visually (i.e defpackage vs defsystem) 2020-05-12T12:57:53Z lukego: Xach: I'm just maintaining my little (deffoo bar ...) registry. now it's (setf (get 'foo 'bar) ...). pretty fine. (all-foo) then uses do-all-symbols to collect the 'bar property when present, which is the kind of stupid inefficient code I like :) 2020-05-12T12:58:02Z Josh_2: Xach: What do you mean? 2020-05-12T12:58:15Z lukego: er, I have 'foo and 'bar switched there 2020-05-12T12:58:47Z lukego: Xach: if I'd use push I'd have duplicates and then have to remove when making an (all-foo) list I guess 2020-05-12T12:59:27Z oxum quit (Ping timeout: 260 seconds) 2020-05-12T12:59:31Z Necktwi_ quit (Ping timeout: 258 seconds) 2020-05-12T12:59:38Z Xach: Josh_2: like how you can call things that take an alist with new entries prepended, and it doesn't alter the alist in the caller, and it's simple tod o. 2020-05-12T12:59:49Z Josh_2: oh right 2020-05-12T12:59:50Z Josh_2: yeh 2020-05-12T13:00:13Z davepdotorg quit (Ping timeout: 264 seconds) 2020-05-12T13:00:14Z jackdaniel: n.b ecl's compiler environment is maintained with this technique 2020-05-12T13:00:53Z oxum joined #lisp 2020-05-12T13:00:56Z Xach: sometimes it's hidden behind an abstraction but using straight alists is simple enough. 2020-05-12T13:08:31Z gko joined #lisp 2020-05-12T13:10:39Z oxum quit (Remote host closed the connection) 2020-05-12T13:11:44Z oxum joined #lisp 2020-05-12T13:12:57Z davepdot_ quit (Remote host closed the connection) 2020-05-12T13:13:00Z Josh_2` joined #lisp 2020-05-12T13:13:23Z davepdotorg joined #lisp 2020-05-12T13:14:00Z srazzaque joined #lisp 2020-05-12T13:14:31Z Josh_2 quit (Ping timeout: 256 seconds) 2020-05-12T13:14:43Z jdz: FWIW I'm using quite a few alists like this, and until I think of an abstraction I just look up a cell using assoc, and if the cell is found just (setf cdr), if not found then setq the variable with acons. 2020-05-12T13:15:13Z liberliver joined #lisp 2020-05-12T13:16:15Z Xach: pve: thanks for putting system-watcher on github! 2020-05-12T13:16:19Z Bike: well that's what the setf assoc-value does 2020-05-12T13:16:40Z jdz: Right, now I know there's assoc-value. 2020-05-12T13:21:21Z srazzaque quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-12T13:21:55Z srazzaque joined #lisp 2020-05-12T13:28:09Z sbodin_ left #lisp 2020-05-12T13:31:53Z patlv joined #lisp 2020-05-12T13:36:10Z EvW1 joined #lisp 2020-05-12T13:37:31Z stoneglass joined #lisp 2020-05-12T13:38:47Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-12T13:39:57Z orivej joined #lisp 2020-05-12T13:45:06Z EvW1 quit (Ping timeout: 240 seconds) 2020-05-12T13:45:43Z renzhi_ joined #lisp 2020-05-12T13:46:20Z gxt_ is now known as gxt 2020-05-12T13:50:22Z renzhi_ quit (Read error: Connection reset by peer) 2020-05-12T13:51:56Z JohnMS_WORK quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2020-05-12T13:56:01Z shifty quit (Ping timeout: 264 seconds) 2020-05-12T14:01:29Z ahungry joined #lisp 2020-05-12T14:01:59Z lukego: Quite a pleasure to write Lisp code :). Lot of ways to do the same thing to choose from, but quite satisfying to write a few functions and see which one fits the nicest. 2020-05-12T14:03:01Z jfrancis_ joined #lisp 2020-05-12T14:03:02Z jfrancis quit (Read error: Connection reset by peer) 2020-05-12T14:05:17Z m1m0 joined #lisp 2020-05-12T14:06:37Z splittist: Or you could something hacky like https://github.com/splittist/docxdjula/blob/f18ce0a4135bc2774d90b37ac83e9aaf7181e179/ginjish-compiler.lisp#L44 etc, which almost, but not quite, allows you to use alists, plists. object slots and hash-tables interchangeably. 2020-05-12T14:06:50Z splittist: s.could.could use. 2020-05-12T14:10:15Z cosimone joined #lisp 2020-05-12T14:10:19Z Bike: you could specify (map sequence) for that last one 2020-05-12T14:10:29Z Bike: and then skip the list integer method 2020-05-12T14:11:02Z lukego: Just now I have (defun add-foo (id &rest init) (setf *foo-db* (cons (apply #'make-foo :id id init) (remove id *foo-db* :key #'foo-id) and skipping the whole deffoo macro 2020-05-12T14:13:35Z Shinmera: Use list* instead of cons! 2020-05-12T14:15:13Z davepdot_ joined #lisp 2020-05-12T14:15:48Z splittist: Bike: thanks. It just kind of growed... 2020-05-12T14:18:47Z davepdotorg quit (Ping timeout: 260 seconds) 2020-05-12T14:20:06Z lukego: splittist: that's some advance code :-) reminds me that I really need to get my black belt in LOOP one day 2020-05-12T14:23:17Z Shinmera throws https://github.com/Shinmera/ubiquitous/blob/master/accessor.lisp into the room 2020-05-12T14:23:27Z phoe catches and returns it 2020-05-12T14:24:13Z sdumi joined #lisp 2020-05-12T14:24:43Z saravia joined #lisp 2020-05-12T14:25:54Z splittist: augmented 2020-05-12T14:26:43Z Xach: luis: i think you might have released a cffi that breaks the world 2020-05-12T14:26:55Z Xach: ok, maybe not the world. but some stuff anyway. 2020-05-12T14:26:57Z Shinmera: Oh no 2020-05-12T14:27:37Z Xach: hmm...i am completely mistaken, i think. 2020-05-12T14:27:46Z phoe plays the dramatic drums 2020-05-12T14:27:53Z Xach: some rigetti libraries broke, but other stuff that broke today was for unrelated reasons 2020-05-12T14:28:05Z Xach: http://report.quicklisp.org/2020-05-12/failure-report/qvm.html#qvm has an example 2020-05-12T14:28:23Z Xach: > Derived type of #:PTR42 is (COMMON-LISP:VALUES (COMMON-LISP:COMPLEX COMMON-LISP:SINGLE-FLOAT) COMMON-LISP:&OPTIONAL), conflicting with its asserted type SB-SYS:SYSTEM-AREA-POINTER. 2020-05-12T14:28:26Z phoe: that's a type error 2020-05-12T14:28:30Z phoe: sounds like a bug in their code 2020-05-12T14:28:45Z Xach: phoe: sure. but cffi recently changed also. 2020-05-12T14:28:50Z phoe: yes, correct 2020-05-12T14:28:54Z phoe: I'm reading the CFFI changes now 2020-05-12T14:28:59Z Shinmera: That... does not look like my defcenum change 2020-05-12T14:29:01Z Xach: is the cffi breaking change accidental or intentional? 2020-05-12T14:29:06Z Shinmera relaxes slightly 2020-05-12T14:29:13Z lavaflow quit (Ping timeout: 258 seconds) 2020-05-12T14:29:13Z Cymew quit (Ping timeout: 258 seconds) 2020-05-12T14:29:39Z Xach: Shinmera: what can you tell me about http://report.quicklisp.org/2020-05-12/failure-report/com-on.html#com-on ? 2020-05-12T14:30:02Z phoe: should have been dotimes 2020-05-12T14:30:10Z Shinmera: Xach: me being stupid and writing dolist instead of dotimes late at night 2020-05-12T14:30:16Z Shinmera: then being unable to fix it for days 2020-05-12T14:30:25Z phoe: Xach: the CFFI changes seem minor and mostly backwards compatible 2020-05-12T14:30:30Z phoe: all four of them 2020-05-12T14:30:47Z Xach: ok 2020-05-12T14:31:01Z Xach: maybe magicl was recently released with this bug 2020-05-12T14:31:11Z Shinmera: Xach: fix pushed. 2020-05-12T14:31:28Z Xach: hmm, nope, magicl hasn't changed in a few months. 2020-05-12T14:32:16Z lavaflow joined #lisp 2020-05-12T14:32:48Z Xach: hmm, jackdaniel wrote the file that broke! 2020-05-12T14:32:53Z yankM joined #lisp 2020-05-12T14:32:55Z Xach: jackdaniel: can you shed any light on what might be going on? 2020-05-12T14:34:08Z phoe: these bindings seem autogenerated 2020-05-12T14:34:22Z phoe: so if there is a type error in there, it might mean a bug in the generating code 2020-05-12T14:36:07Z luis: Xach: it could be the change that made defcstructs translatable. 2020-05-12T14:36:32Z dyelar joined #lisp 2020-05-12T14:36:38Z luis: That complex-single-float type is indeed one such defctype. 2020-05-12T14:36:56Z luis: (nice touch linking to the source code from the error report!) 2020-05-12T14:37:19Z Xach: thanks 2020-05-12T14:37:22Z phoe: quicklisp quality of life™ 2020-05-12T14:37:32Z Xach: it doesn't always work 2020-05-12T14:37:37Z Xach: but it's better than nothing most of the time! 2020-05-12T14:38:17Z Xach: luis: should it be fixed on the cffi side or the magicl side? (or is there some other option?) 2020-05-12T14:38:45Z ebrasca joined #lisp 2020-05-12T14:39:29Z luis: The previous behaviour was definitely a bug. But old bugs can become features. Solving it on magicl's side would be nicer 2020-05-12T14:39:30Z spainisnotequal joined #lisp 2020-05-12T14:39:43Z Xach: stylewarning: the gauntlet is thrown 2020-05-12T14:40:02Z phoe dramatic drums intensify 2020-05-12T14:40:08Z Xach: luis: in the quicklisp world, this only affects one project (and its dependencies) 2020-05-12T14:40:14Z sdumi quit (Ping timeout: 256 seconds) 2020-05-12T14:41:33Z thonkpod: Oh boy. I guess I can poke through those magicl bindings and see what I can do 2020-05-12T14:42:42Z Xach: why you, mysterious stranger? 2020-05-12T14:43:33Z luis: open-source fairy, is that you? :D 2020-05-12T14:43:54Z thonkpod: I wrote the high level magicl stuff 2020-05-12T14:44:40Z luis: thonkpod: let me know if you need help. 2020-05-12T14:44:41Z stylewarning plays Michael Jackson’s “Heal the World” 2020-05-12T14:46:34Z stylewarning: Xach, thonkpod, I guess it’s the same error that I reported here https://github.com/rigetti/magicl/issues/106 2020-05-12T14:47:05Z phoe: seems similar 2020-05-12T14:48:52Z thonkpod: Ah, the issue I've been avoiding 2020-05-12T14:49:30Z jackdaniel: what what? 2020-05-12T14:49:32Z jackdaniel: I broke something? 2020-05-12T14:49:40Z jackdaniel parses the backlog 2020-05-12T14:49:57Z Xach: now it affects normal CPUs too 2020-05-12T14:50:15Z phoe keeps on playing the dramatic bongos, the situation seems to warrant it 2020-05-12T14:50:26Z phoe: I gotta write a #lisp musical someday 2020-05-12T14:50:37Z v88m joined #lisp 2020-05-12T14:50:57Z phoe: surprise breakages, mysterious open-source fairies, investigations and unusual CPU architectures 2020-05-12T14:51:05Z phoe: gonna be a hit 2020-05-12T14:51:41Z jackdaniel: OK, backlog parsed 2020-05-12T14:51:52Z jackdaniel: all I did was splitting the generated bindings into few files 2020-05-12T14:52:13Z jackdaniel: because resulting file was too big for gcc to take at one go (ecl transpiles to c) 2020-05-12T14:52:25Z v88m quit (Read error: Connection reset by peer) 2020-05-12T14:52:38Z jackdaniel: I don't think I've introduced a change which would cause /that/ 2020-05-12T14:53:17Z stylewarning: What if SBCL got better at type deriving 2020-05-12T14:53:19Z Xach: jackdaniel: off the hook, then. for now. 2020-05-12T14:53:24Z jackdaniel: uff 2020-05-12T14:53:52Z Xach: it's deriving me crazy sometimes. 2020-05-12T14:54:33Z stylewarning: Haha 2020-05-12T14:55:23Z pve: Xach: you're welcome! unfortunately it's sbcl only currently.. 2020-05-12T14:55:54Z Xach: pve: what about the supporting library? 2020-05-12T14:56:37Z v88m joined #lisp 2020-05-12T14:56:57Z pve: also sbcl only, but supporting more implementations should not be hard, if I could find the time 2020-05-12T14:57:25Z pve: phoe: here you go, as promised: https://github.com/pve1/system-watcher 2020-05-12T14:57:35Z luis: thonkpod: does cladiv_ return a pointer or struct-by-value? 2020-05-12T14:58:08Z thonkpod: Deferring to stylewarning 2020-05-12T15:01:05Z stylewarning: https://www.netlib.org/lapack/explore-html/d4/db0/group__complex_o_t_h_e_rauxiliary_gaad8fba0a1b2b39064370d96c6ccc0422.html 2020-05-12T15:01:13Z phoe: pve: thanks! 2020-05-12T15:01:17Z stylewarning: It should return a complex single float 2020-05-12T15:01:33Z stylewarning: Which I guess means struct by val 2020-05-12T15:02:02Z luis: stylewarning: the arguments are also "complex" but the defcfun definition says :pointer 2020-05-12T15:02:52Z spainisnotequal quit (Remote host closed the connection) 2020-05-12T15:03:15Z thonkpod: I remember there being issues about that. To my sleep deprived mind this looks possibly similar https://github.com/rigetti/magicl/issues/84 2020-05-12T15:04:08Z stylewarning: luis: FORTRAN is pass by reference 2020-05-12T15:04:11Z luis: thonkpod, stylewarning: your %CLADIV definition seems to be working around the bug that CFFI 0.22.0 fixes! it's performing the type translations that CFFI should be doing on its own. 2020-05-12T15:04:28Z stylewarning: Probably true 2020-05-12T15:04:57Z stylewarning: Would love help and suggestions to simplify the code and make it as efficient as possible 2020-05-12T15:04:59Z luis: stylewarning: ok, then your complex-single-float dectype should map to :pointer (or (:pointer (:struct whatever))) 2020-05-12T15:05:10Z davepdot_ quit (Remote host closed the connection) 2020-05-12T15:05:42Z davepdotorg joined #lisp 2020-05-12T15:06:24Z stylewarning: Gotta love this file https://github.com/rigetti/magicl/blob/master/src/generate-interface/generate-interface.lisp 2020-05-12T15:06:45Z ebrasca quit (Remote host closed the connection) 2020-05-12T15:07:11Z luis: actually, changing the defctype to :pointer will skip the type translations anyway, I think, so that should be the complete fix. 2020-05-12T15:07:28Z luis: My ability to eval CFFI definitions in my head has vanished sadly. :( 2020-05-12T15:07:58Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-12T15:08:33Z phoe: Small announcement: Online Lisp Meeting #1 starting in 52 minutes from now at https://www.twitch.tv/twitchplayscommonlisp/ 2020-05-12T15:08:38Z srandon111 joined #lisp 2020-05-12T15:08:45Z ljavorsk joined #lisp 2020-05-12T15:08:57Z srandon111: guys does "the land of lisp" also implements graphical games? 2020-05-12T15:10:36Z srandon111: also does lisp have an image library similar to this one of racket ? https://docs.racket-lang.org/teachpack/2htdpimage-guide.html 2020-05-12T15:12:15Z luis: stylewarning: oh, is it pass by reference and return by value? 2020-05-12T15:12:24Z rippa joined #lisp 2020-05-12T15:12:27Z stylewarning: luis: IIRC yes 2020-05-12T15:13:31Z oxum quit (Remote host closed the connection) 2020-05-12T15:14:53Z kpoeck joined #lisp 2020-05-12T15:15:11Z mmkarakaya joined #lisp 2020-05-12T15:16:01Z Xach tries to figure out which project defines the WIRE-FORMAT package, wishes he had saved metadata for such things 2020-05-12T15:16:02Z luis: stylewarning: oh ok, ignore my comment then. 2020-05-12T15:16:24Z cosimone quit (Remote host closed the connection) 2020-05-12T15:16:53Z cosimone joined #lisp 2020-05-12T15:17:05Z splittist: srandon111: not really. It eventually uses a browser to present the state of a game graphically. CL does not have a canonical graphical thingy like racket. 2020-05-12T15:18:52Z _death: Xach: protobuf? 2020-05-12T15:19:31Z Xach: aha, and that was changed quite recently 2020-05-12T15:19:33Z Xach: fun! 2020-05-12T15:22:16Z xristos: srandon111: doing graphics in CL is a messy situation (compared to Racket), and involves a lot of trial and error and/or be willing to write a lot of plumbing code 2020-05-12T15:22:50Z xristos: there are libraries that are easy to get going with (like ltk) but they don't compare to what Racket has 2020-05-12T15:26:19Z _death: luis: if you have the time, I'd appreciate if you checked some of my cffi/slime changes.. maybe some of them are worth turning into pull requests 2020-05-12T15:27:49Z edgar-rft quit (Quit: Leaving) 2020-05-12T15:32:08Z ahungry quit (Ping timeout: 256 seconds) 2020-05-12T15:32:31Z PuercoPope: phoe: how long will the meeting last? 2020-05-12T15:33:08Z phoe: PuercoPope: the recording is 54 minutes long, so I'd expect that an hour + the duration of webcam chat on Jitsi 2020-05-12T15:33:56Z ahungry joined #lisp 2020-05-12T15:34:24Z PuercoPope: phoe: thanks. I think I can make it for the second half then 2020-05-12T15:34:36Z PuercoPope: best of luck with the initiative 2020-05-12T15:34:57Z rpg joined #lisp 2020-05-12T15:35:02Z phoe: PuercoPope: the recording will also be on Twitch + YouTube as backup 2020-05-12T15:35:15Z phoe: thanks! 2020-05-12T15:35:35Z luis: _death: which changes are those? 2020-05-12T15:36:39Z beach: phoe: Remind me what the title is and who is doing the presenting? 2020-05-12T15:36:59Z phoe: beach: "Integrating independent condition systems" by Michał "phoe" Herda 2020-05-12T15:37:13Z beach: Great! Thanks. 2020-05-12T15:37:21Z beach: I might be able to watch it for a while. 2020-05-12T15:37:24Z papachan: When it will start? 2020-05-12T15:37:30Z phoe: papachan: 23 minutes from now 2020-05-12T15:37:35Z phoe: at full hour 2020-05-12T15:37:37Z papachan: ok ! thanks 2020-05-12T15:38:49Z PuercoPope: phoe: do all presentations have to last a full hours? Are there ~10-15 minute slots? 2020-05-12T15:38:59Z phoe: PuercoPope: no time limit whatsoever 2020-05-12T15:39:04Z bitmapper joined #lisp 2020-05-12T15:39:08Z phoe: both up and down 2020-05-12T15:39:19Z phoe: someone suggested that we should do a series of lightning talks someday, and I think it would be a good idea 2020-05-12T15:39:42Z phoe: just, like, a series of five-minute presentations from various people who work on various things 2020-05-12T15:39:59Z phoe: ;; also, I hoped that my presentation would be shorter, but it ended up being 54 minutes long 2020-05-12T15:40:26Z _death: luis: the ones in repos at https://github.com/death 2020-05-12T15:40:32Z rogersm quit (Quit: Leaving...) 2020-05-12T15:40:51Z phoe: PuercoPope: if you're up for recording anything, I'll gladly accept it for future online meets, no matter how short it is 2020-05-12T15:41:25Z MichaelRaskin: phoe: I guess you would ask that stuff scheduled to run at 18:00 finishes by midnight or so 2020-05-12T15:41:46Z phoe: MichaelRaskin: does that mean six hours of material or what 2020-05-12T15:42:01Z phoe: or one hour of material and five hours of Jitsi talk 2020-05-12T15:42:05Z phoe: I'm up for the latter 2020-05-12T15:42:24Z MichaelRaskin: Well, with the latter you never know how it goes 2020-05-12T15:42:30Z MichaelRaskin: So obviously 2020-05-12T15:42:39Z MichaelRaskin: The former would probably declared an overkill 2020-05-12T15:42:56Z phoe: I prefer to split such into two parts 2020-05-12T15:43:03Z phoe: the official one - as long as the talks are 2020-05-12T15:43:13Z ayuce quit (Remote host closed the connection) 2020-05-12T15:43:19Z phoe: the unofficial one - 'til no one is sober 2020-05-12T15:43:26Z phoe: and then even longer than that! 2020-05-12T15:43:37Z MichaelRaskin: I would say that at 6h _three_ parts sound like a plan 2020-05-12T15:43:49Z phoe: what is the third part 2020-05-12T15:43:55Z PuercoPope: phoe: I was thinking of showing how I'm using the MOP to extend to the object model to support XCB requests/requests. 2020-05-12T15:44:00Z stylewarning: luis: I’m not sure how a type error could come out of a DEFCFUN no matter what you write 2020-05-12T15:44:04Z travv0: reminiscing about the first two parts 2020-05-12T15:44:06Z MichaelRaskin: I mean three recordings of 2h each 2020-05-12T15:44:11Z phoe: PuercoPope: please do 2020-05-12T15:44:27Z phoe: MichaelRaskin: oh! that could happen, but 2h recordings are somewhat long on themselves 2020-05-12T15:44:38Z phoe: that's already a mini-workshop 2020-05-12T15:44:45Z phoe: and also I'd need 6h of material to stream, and that means someone'd need to record it 2020-05-12T15:44:57Z phoe: PuercoPope: I can dig that, please record that and I'll schedule it for the next meet 2020-05-12T15:45:50Z MichaelRaskin: phoe: I have in my life given what was effectively a 6 to 8 hour talk (but on theoretical stuff), but it was indeed in weekly instsallments 2020-05-12T15:47:22Z luis: stylewarning: defcfun expands into code with forms coming from cffi:expand-from-foreign and the like 2020-05-12T15:47:53Z phoe: MichaelRaskin: welp 2020-05-12T15:48:02Z stylewarning: luis: that’s coming from https://github.com/rigetti/magicl/blob/master/src/cffi-types.lisp 2020-05-12T15:48:13Z luis: right. 2020-05-12T15:48:15Z oxum joined #lisp 2020-05-12T15:50:54Z splittist prepares to be twitched 2020-05-12T15:51:32Z phoe twitches 2020-05-12T15:52:39Z MichaelRaskin: phoe: proofs in theory are work! 2020-05-12T15:53:55Z oxum quit (Ping timeout: 246 seconds) 2020-05-12T15:54:18Z mmkarakaya quit (Ping timeout: 260 seconds) 2020-05-12T15:58:05Z stylewarning: Xach: the variables that cause the type error disappear in SBCL 2.0.4 2020-05-12T15:58:15Z stylewarning: Not guaranteeing the type error also disappears 2020-05-12T15:58:25Z dddddd quit (Read error: Connection reset by peer) 2020-05-12T15:59:49Z scymtym_ joined #lisp 2020-05-12T16:00:22Z scymtym_ quit (Client Quit) 2020-05-12T16:01:32Z scymtym_ joined #lisp 2020-05-12T16:01:59Z scymtym_ quit (Remote host closed the connection) 2020-05-12T16:02:23Z saravia quit (Ping timeout: 240 seconds) 2020-05-12T16:02:40Z orivej quit (Ping timeout: 246 seconds) 2020-05-12T16:02:44Z scymtym quit (Ping timeout: 272 seconds) 2020-05-12T16:03:03Z scymtym_ joined #lisp 2020-05-12T16:03:49Z Bourne joined #lisp 2020-05-12T16:04:18Z stylewarning: Welp I tried to rebuild SBCL on PPC and it seg faulted 2020-05-12T16:07:19Z dale_ joined #lisp 2020-05-12T16:07:31Z dale_ is now known as dale 2020-05-12T16:07:54Z v88m quit (Ping timeout: 256 seconds) 2020-05-12T16:10:03Z orivej joined #lisp 2020-05-12T16:11:55Z dalz joined #lisp 2020-05-12T16:14:18Z ntqz quit (Remote host closed the connection) 2020-05-12T16:14:34Z gko quit (Ping timeout: 240 seconds) 2020-05-12T16:24:08Z sdumi joined #lisp 2020-05-12T16:25:13Z v88m joined #lisp 2020-05-12T16:27:21Z oxum joined #lisp 2020-05-12T16:31:54Z karlosz joined #lisp 2020-05-12T16:33:39Z liberliver quit (Ping timeout: 260 seconds) 2020-05-12T16:33:47Z scymtym_ quit (Quit: ERC (IRC client for Emacs 28.0.50)) 2020-05-12T16:34:03Z scymtym joined #lisp 2020-05-12T16:37:41Z davepdotorg quit (Remote host closed the connection) 2020-05-12T16:38:02Z oxum quit (Remote host closed the connection) 2020-05-12T16:38:20Z oxum joined #lisp 2020-05-12T16:38:25Z davepdotorg joined #lisp 2020-05-12T16:38:28Z sstc joined #lisp 2020-05-12T16:38:49Z kpoeck quit (Ping timeout: 245 seconds) 2020-05-12T16:45:43Z davepdot_ joined #lisp 2020-05-12T16:47:29Z davepdot_ quit (Remote host closed the connection) 2020-05-12T16:48:07Z davepdot_ joined #lisp 2020-05-12T16:48:31Z davepdotorg quit (Ping timeout: 246 seconds) 2020-05-12T16:48:49Z sdumi quit (Ping timeout: 264 seconds) 2020-05-12T16:49:55Z rand_t quit (Quit: rand_t) 2020-05-12T16:52:47Z davepdot_ quit (Ping timeout: 260 seconds) 2020-05-12T16:54:26Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-12T16:56:11Z bitmapper: AAAAAAA 2020-05-12T16:56:27Z bitmapper: "My name is Yan and I am the business manager here at Franz. Sorry that 2020-05-12T16:56:27Z bitmapper: ACL v6.2 is more than 15 years old and we no longer proivde it to users." 2020-05-12T16:56:50Z rpg joined #lisp 2020-05-12T16:56:58Z sdumi joined #lisp 2020-05-12T16:58:12Z papachan: Thank you phoe 2020-05-12T16:58:47Z orivej quit (Read error: Connection reset by peer) 2020-05-12T16:59:14Z orivej joined #lisp 2020-05-12T17:00:19Z phoe: papachan: <3 2020-05-12T17:01:38Z sdumi quit (Ping timeout: 272 seconds) 2020-05-12T17:02:47Z ayuce joined #lisp 2020-05-12T17:02:54Z sdumi joined #lisp 2020-05-12T17:08:00Z buffergn0me joined #lisp 2020-05-12T17:08:25Z ayuce left #lisp 2020-05-12T17:09:52Z ebrasca joined #lisp 2020-05-12T17:16:07Z ayuce joined #lisp 2020-05-12T17:20:46Z davepdotorg joined #lisp 2020-05-12T17:21:09Z _whitelogger quit (Remote host closed the connection) 2020-05-12T17:23:23Z _whitelogger joined #lisp 2020-05-12T17:23:35Z cosimone quit (Quit: Quit.) 2020-05-12T17:23:58Z Kundry_Wag quit (Remote host closed the connection) 2020-05-12T17:24:06Z cosimone joined #lisp 2020-05-12T17:24:27Z Kundry_Wag joined #lisp 2020-05-12T17:26:14Z davepdotorg quit (Ping timeout: 246 seconds) 2020-05-12T17:28:28Z cosimone quit (Client Quit) 2020-05-12T17:31:56Z oxum quit (Remote host closed the connection) 2020-05-12T17:32:13Z stylewarning: luis: it looks like updating CFFI allows me to repro the bug 2020-05-12T17:32:20Z stylewarning: luis: older CFFI didn't have this issue 2020-05-12T17:32:31Z oxum joined #lisp 2020-05-12T17:32:47Z SGASAU` joined #lisp 2020-05-12T17:33:50Z luis: stylewarning: that's true. I believe the previous behaviour was a bug and a bugfix was contributed by Madhu. https://github.com/cffi/cffi/commit/c5d140fed60b8bbe29a6fd5c5491ac25044aedb0 2020-05-12T17:34:27Z stylewarning: luis: this is the old macroexpansion of a simple defcfun: https://pastebin.com/tjeyKh39 2020-05-12T17:34:36Z stylewarning: note the lines labeled ; ********... 2020-05-12T17:35:03Z rgherdt quit (Remote host closed the connection) 2020-05-12T17:35:46Z SGASAU quit (Ping timeout: 246 seconds) 2020-05-12T17:36:08Z luis: Hmm. The translator is kicking in properly. 🤔 2020-05-12T17:36:16Z stylewarning: luis: this is the new macroexpansion: https://pastebin.com/X6eGV4ga 2020-05-12T17:36:25Z stylewarning: Note the lines labeled ; **** #x 2020-05-12T17:36:41Z luis: That doesn't look right, does it? 2020-05-12T17:36:48Z oxum quit (Ping timeout: 256 seconds) 2020-05-12T17:36:56Z stylewarning: you can see the type error easily: the "inner" pointer is bound to a (COMPLEX a b); and the outer pointer is trying to deref the inner ptr 2020-05-12T17:37:09Z stylewarning: #4 is trying to deref the complex made by #3 2020-05-12T17:37:14Z luis: Indeed. 2020-05-12T17:37:58Z stylewarning: So I guess the question is: Who is in the wrong? Am I instructing CFFI wrong (and it somehow worked before)? Or did this CFFI change do some wacky stuff? 2020-05-12T17:38:58Z stylewarning: here is the minimal test case: https://pastebin.com/7pLMVcFA 2020-05-12T17:39:10Z stylewarning: you just need to quickload :cffi-libffi and load this file 2020-05-12T17:39:40Z luis: I don't see anything obviously wrong with magicl/src/cffi-types.lisp so I'll revert the alleged bugfix and analyse it later. 2020-05-12T17:40:21Z stylewarning: (I will admit that is somewhat unsatisfying) 2020-05-12T17:40:37Z efm joined #lisp 2020-05-12T17:40:37Z stylewarning: we were at the climax of this play! 2020-05-12T17:41:16Z abhixec quit (Ping timeout: 258 seconds) 2020-05-12T17:42:21Z SGASAU` quit (Remote host closed the connection) 2020-05-12T17:43:18Z SGASAU` joined #lisp 2020-05-12T17:43:20Z luis: So sorry. :-) To be continued? https://github.com/cffi/cffi/pull/152#issuecomment-627491922 2020-05-12T17:44:44Z mathrick quit (Remote host closed the connection) 2020-05-12T17:46:10Z luis: Xach: released 0.22.1 which should fix things for magicl 2020-05-12T17:46:51Z mathrick joined #lisp 2020-05-12T17:50:02Z kpoeck joined #lisp 2020-05-12T17:52:15Z orivej quit (Quit: No Ping reply in 210 seconds.) 2020-05-12T17:53:24Z orivej joined #lisp 2020-05-12T17:53:27Z milanj quit (Quit: This computer has gone to sleep) 2020-05-12T17:56:04Z Bike quit (Ping timeout: 256 seconds) 2020-05-12T18:03:42Z oxum joined #lisp 2020-05-12T18:04:04Z choegusung joined #lisp 2020-05-12T18:04:04Z choegusung quit (Client Quit) 2020-05-12T18:06:52Z mangul quit (Ping timeout: 272 seconds) 2020-05-12T18:07:09Z m1m0 quit (Quit: Leaving) 2020-05-12T18:09:13Z oxum quit (Ping timeout: 264 seconds) 2020-05-12T18:11:16Z rgherdt joined #lisp 2020-05-12T18:17:07Z Jesin joined #lisp 2020-05-12T18:18:23Z terpri quit (Remote host closed the connection) 2020-05-12T18:18:49Z terpri joined #lisp 2020-05-12T18:19:55Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-12T18:23:52Z asarch joined #lisp 2020-05-12T18:24:14Z lavaflow quit (Ping timeout: 240 seconds) 2020-05-12T18:24:28Z terpri quit (Remote host closed the connection) 2020-05-12T18:24:50Z terpri joined #lisp 2020-05-12T18:24:52Z asarch: How is better? (let (...) (defun foo (...) ...) ... (foo bar baz)) or (flet ((foo (...) ...)) (let (...) (foo bar baz))? 2020-05-12T18:26:58Z terpri quit (Remote host closed the connection) 2020-05-12T18:27:21Z terpri joined #lisp 2020-05-12T18:29:28Z terpri quit (Remote host closed the connection) 2020-05-12T18:30:00Z terpri joined #lisp 2020-05-12T18:30:09Z lavaflow joined #lisp 2020-05-12T18:30:49Z sauvin quit (Read error: Connection reset by peer) 2020-05-12T18:30:53Z terpri quit (Remote host closed the connection) 2020-05-12T18:31:21Z terpri joined #lisp 2020-05-12T18:31:21Z milanj joined #lisp 2020-05-12T18:34:42Z terpri quit (Remote host closed the connection) 2020-05-12T18:35:00Z terpri joined #lisp 2020-05-12T18:37:36Z kingragworm joined #lisp 2020-05-12T18:37:56Z kingragworm quit (Remote host closed the connection) 2020-05-12T18:39:50Z buffergn0me: asarch: The latter? Unless you really need a global function that is a closure 2020-05-12T18:40:26Z asarch: Thank you! 2020-05-12T18:41:05Z jprajzne quit (Quit: Leaving.) 2020-05-12T18:41:08Z asarch: That is for GTK+ with cl-cffi-gtk's (within-main-loop (flet ... (let ...))) 2020-05-12T18:45:08Z Bike joined #lisp 2020-05-12T18:53:00Z mathrick quit (Remote host closed the connection) 2020-05-12T18:53:33Z mathrick joined #lisp 2020-05-12T18:53:38Z mathrick_ joined #lisp 2020-05-12T18:54:48Z mathrick quit (Client Quit) 2020-05-12T18:54:55Z mathrick_ is now known as mathrick 2020-05-12T18:55:19Z rpg joined #lisp 2020-05-12T19:01:31Z _heisig joined #lisp 2020-05-12T19:03:52Z heisig quit (Ping timeout: 272 seconds) 2020-05-12T19:06:56Z _heisig quit (Quit: Leaving) 2020-05-12T19:09:17Z phoe: The first online Lisp meeting is over now and the recording is posted at https://www.youtube.com/watch?v=5xprY8GCxFQ - thanks to everyone who participated, and I'm looking for material and videos for future editions! 2020-05-12T19:12:17Z slyrus_ quit (Quit: Leaving) 2020-05-12T19:13:21Z phoe: pve: https://www.reddit.com/r/lisp/comments/gibycv/today_i_realized_that_to_live_reload_my_lisp_web/fqeaoj5/ 2020-05-12T19:16:08Z pve: heh 2020-05-12T19:16:19Z phoe: interesting stuff 2020-05-12T19:18:23Z davepdotorg joined #lisp 2020-05-12T19:22:31Z ljavorsk quit (Ping timeout: 246 seconds) 2020-05-12T19:23:18Z davepdotorg quit (Ping timeout: 260 seconds) 2020-05-12T19:23:20Z orivej quit (Ping timeout: 256 seconds) 2020-05-12T19:23:47Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-12T19:24:48Z orivej joined #lisp 2020-05-12T19:25:08Z ebrasca quit (Remote host closed the connection) 2020-05-12T19:28:03Z dddddd joined #lisp 2020-05-12T19:28:27Z abhixec joined #lisp 2020-05-12T19:42:35Z lucasb joined #lisp 2020-05-12T19:48:02Z efm quit (Write error: Connection reset by peer) 2020-05-12T19:48:26Z efm joined #lisp 2020-05-12T19:51:49Z jeosol quit (Remote host closed the connection) 2020-05-12T19:52:00Z efm quit (Excess Flood) 2020-05-12T19:52:23Z efm joined #lisp 2020-05-12T20:00:40Z milanj quit (Quit: This computer has gone to sleep) 2020-05-12T20:05:22Z SGASAU` quit (Remote host closed the connection) 2020-05-12T20:06:02Z SGASAU` joined #lisp 2020-05-12T20:06:49Z orivej quit (Ping timeout: 264 seconds) 2020-05-12T20:11:53Z kpoeck quit (Remote host closed the connection) 2020-05-12T20:13:13Z stoneglass quit (Quit: stoneglass) 2020-05-12T20:16:00Z bars0 joined #lisp 2020-05-12T20:17:57Z kpoeck joined #lisp 2020-05-12T20:18:06Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-12T20:18:50Z SGASAU joined #lisp 2020-05-12T20:20:44Z orivej joined #lisp 2020-05-12T20:24:14Z lavaflow quit (Ping timeout: 240 seconds) 2020-05-12T20:24:19Z fluxwave quit (Quit: leaving) 2020-05-12T20:28:19Z lavaflow joined #lisp 2020-05-12T20:31:45Z lottaquestions joined #lisp 2020-05-12T20:31:55Z izh_ joined #lisp 2020-05-12T20:34:10Z narimiran quit (Quit: leaving) 2020-05-12T20:41:37Z sstc quit (Quit: WeeChat 2.8) 2020-05-12T20:47:25Z cosimone joined #lisp 2020-05-12T20:50:19Z elflng quit (Ping timeout: 260 seconds) 2020-05-12T20:52:09Z pve quit (Quit: leaving) 2020-05-12T20:53:06Z orivej quit (Ping timeout: 256 seconds) 2020-05-12T20:56:42Z elflng joined #lisp 2020-05-12T21:00:46Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-12T21:01:27Z izh_ quit (Quit: Leaving) 2020-05-12T21:04:10Z bars0 quit (Ping timeout: 260 seconds) 2020-05-12T21:04:47Z karayan quit (Remote host closed the connection) 2020-05-12T21:05:24Z ahungry quit (Remote host closed the connection) 2020-05-12T21:05:28Z karayan joined #lisp 2020-05-12T21:07:43Z orivej joined #lisp 2020-05-12T21:11:07Z ayuce quit (Read error: Connection reset by peer) 2020-05-12T21:14:10Z rpg_ joined #lisp 2020-05-12T21:15:15Z rpg_ quit (Client Quit) 2020-05-12T21:15:49Z rpg quit (Ping timeout: 264 seconds) 2020-05-12T21:18:55Z kpoeck quit (Remote host closed the connection) 2020-05-12T21:19:24Z rozenglass1 quit (Ping timeout: 272 seconds) 2020-05-12T21:19:46Z davepdotorg joined #lisp 2020-05-12T21:20:46Z ljavorsk joined #lisp 2020-05-12T21:21:24Z oxum joined #lisp 2020-05-12T21:24:48Z davepdotorg quit (Ping timeout: 265 seconds) 2020-05-12T21:26:19Z SGASAU quit (Remote host closed the connection) 2020-05-12T21:26:56Z oxum quit (Ping timeout: 256 seconds) 2020-05-12T21:27:16Z SGASAU joined #lisp 2020-05-12T21:30:11Z Lord_of_Life_ joined #lisp 2020-05-12T21:30:18Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-12T21:31:53Z SGASAU quit (Remote host closed the connection) 2020-05-12T21:32:35Z SGASAU joined #lisp 2020-05-12T21:33:02Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-12T21:36:55Z hiroaki_ quit (Ping timeout: 246 seconds) 2020-05-12T21:38:03Z gxt quit (Ping timeout: 240 seconds) 2020-05-12T21:39:46Z dalz quit (Remote host closed the connection) 2020-05-12T21:41:40Z SGASAU quit (Remote host closed the connection) 2020-05-12T21:42:27Z SGASAU joined #lisp 2020-05-12T21:44:25Z gxt joined #lisp 2020-05-12T21:45:14Z efm quit (Ping timeout: 240 seconds) 2020-05-12T21:52:56Z orivej quit (Ping timeout: 256 seconds) 2020-05-12T21:55:48Z gravicappa quit (Ping timeout: 258 seconds) 2020-05-12T22:03:54Z davsebamse quit (Ping timeout: 240 seconds) 2020-05-12T22:04:14Z davsebamse joined #lisp 2020-05-12T22:04:44Z cosimone quit (Quit: Quit.) 2020-05-12T22:05:00Z jprajzne joined #lisp 2020-05-12T22:05:08Z jfrancis_: I have a need to draw some very very very basic graphics on a Linux console in a window. Doesn't even need to be color (ie, white lines on a black background is sufficient). Some basic primitives like, "draw a line from a,b to c,d" or "draw a circle with radius r at a,b" would be nice, but not critical. What's the easiest thing in quicklisp to do those basic tasks? 2020-05-12T22:05:38Z jfrancis_: ...and when I say "Linux console", what I mean specifically is a standard X desktop. 2020-05-12T22:06:15Z phoe: sounds like a use case for McCLIM I guess 2020-05-12T22:06:39Z jfrancis_: I'm not opposed to that, but there isn't something more lightweight? 2020-05-12T22:06:54Z orivej joined #lisp 2020-05-12T22:07:14Z phoe: https://www.xach.com/lisp/vecto/ 2020-05-12T22:07:34Z phoe: that doesn't render to X, but you can fire up a PNG viewer 2020-05-12T22:08:07Z jfrancis_: Vecto is cool, but I need to be able to do live (animated) images to an X window. 2020-05-12T22:08:55Z jfrancis_: lispbuilder-sdl looked like a reasonable choice, but didn't know if there was something even lighter 2020-05-12T22:21:33Z PuercoPope: jfrancis_: sketch may be what you are looking for 2020-05-12T22:21:48Z PuercoPope: https://github.com/vydd/sketch 2020-05-12T22:25:35Z igemnace joined #lisp 2020-05-12T22:28:58Z zulu-inuoe_ quit (Quit: Leaving) 2020-05-12T22:29:16Z mathrick quit (Remote host closed the connection) 2020-05-12T22:29:46Z mathrick joined #lisp 2020-05-12T22:31:28Z whiteline_ quit (Remote host closed the connection) 2020-05-12T22:31:57Z whiteline_ joined #lisp 2020-05-12T22:32:26Z _death: with lispbuilder-sdl, I sometimes use https://gist.github.com/death/89156262b6b3e25abc3b52da18c2ba24 2020-05-12T22:34:49Z jprajzne quit (Quit: jprajzne) 2020-05-12T22:36:15Z Kundry_Wag quit (Ping timeout: 260 seconds) 2020-05-12T22:36:37Z jprajzne joined #lisp 2020-05-12T22:36:39Z gigetoo quit (Ping timeout: 256 seconds) 2020-05-12T22:37:45Z gigetoo joined #lisp 2020-05-12T22:39:19Z jprajzne quit (Client Quit) 2020-05-12T22:39:21Z mathrick quit (Remote host closed the connection) 2020-05-12T22:39:51Z mathrick joined #lisp 2020-05-12T22:41:27Z jprajzne joined #lisp 2020-05-12T22:42:33Z rpg joined #lisp 2020-05-12T22:47:20Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-12T22:49:29Z monokrom quit (Quit: Leaving) 2020-05-12T22:58:40Z efm joined #lisp 2020-05-12T22:59:28Z terpri quit (Remote host closed the connection) 2020-05-12T22:59:47Z jprajzne quit (Quit: jprajzne) 2020-05-12T23:00:06Z terpri joined #lisp 2020-05-12T23:01:44Z jprajzne joined #lisp 2020-05-12T23:03:02Z terpri_ joined #lisp 2020-05-12T23:03:58Z terpri_ quit (Remote host closed the connection) 2020-05-12T23:05:05Z terpri quit (Ping timeout: 244 seconds) 2020-05-12T23:08:37Z thijso quit (Ping timeout: 264 seconds) 2020-05-12T23:09:03Z thijso joined #lisp 2020-05-12T23:09:13Z terpri joined #lisp 2020-05-12T23:09:30Z shifty joined #lisp 2020-05-12T23:11:12Z random-nick quit (Ping timeout: 256 seconds) 2020-05-12T23:11:45Z Kundry_Wag joined #lisp 2020-05-12T23:14:19Z jprajzne quit (Quit: jprajzne) 2020-05-12T23:14:40Z jprajzne joined #lisp 2020-05-12T23:15:25Z wxie joined #lisp 2020-05-12T23:16:34Z devon joined #lisp 2020-05-12T23:20:12Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-12T23:21:08Z davepdotorg joined #lisp 2020-05-12T23:24:33Z karstensrage joined #lisp 2020-05-12T23:26:59Z davepdotorg quit (Ping timeout: 272 seconds) 2020-05-12T23:27:23Z Oladon joined #lisp 2020-05-12T23:31:12Z wxie quit (Ping timeout: 260 seconds) 2020-05-12T23:39:47Z jprajzne quit (Quit: jprajzne) 2020-05-12T23:42:57Z lacroixboy_ quit (Remote host closed the connection) 2020-05-12T23:43:19Z lacroixboy_ joined #lisp 2020-05-12T23:44:43Z jprajzne joined #lisp 2020-05-12T23:48:02Z _whitelogger quit (Remote host closed the connection) 2020-05-12T23:48:21Z rgherdt quit (Ping timeout: 265 seconds) 2020-05-12T23:48:31Z markasoftware: are characters decent ways to store binary data? 2020-05-12T23:48:44Z markasoftware: and, if they aren't, is there any fast way to convert between an array of unsigned-byte and string? 2020-05-12T23:50:15Z _whitelogger joined #lisp 2020-05-12T23:50:24Z jprajzne quit (Quit: jprajzne) 2020-05-12T23:50:31Z no-defun-allowed: (babel:string-to-octets string) and (babel:octets-to-string unsigned-byte-vector) 2020-05-12T23:51:05Z no-defun-allowed: Character encoding problems are likely to bite you in the backside if you try to just CHAR-CODE and CODE-CHAR random bytes. 2020-05-12T23:56:52Z markasoftware: that's the sort of crap i was worried about. I've heard of babel briefly before, I'll look into it. Thanks! 2020-05-12T23:57:03Z davepdotorg joined #lisp 2020-05-13T00:01:07Z Xach: markasoftware: how does the binary data and the string relate? 2020-05-13T00:01:26Z markasoftware: it's data from a serial port. Sometimes it's ascii text, other times it's binary data. 2020-05-13T00:01:40Z markasoftware: i want consumers of my library to be able to access it either way. 2020-05-13T00:02:01Z oxum joined #lisp 2020-05-13T00:02:10Z oxum quit (Remote host closed the connection) 2020-05-13T00:02:32Z no-defun-allowed: If you have the time, you could investigate how exactly Drakma handles it; since it has to read characters for HTTP headers, and then bytes for the content. 2020-05-13T00:03:24Z Xach: markasoftware: ah, definitely binary initially then. 2020-05-13T00:03:59Z Xach: no-defun-allowed: in my http client i only store the headers as binary. i convert the search terms to binary when looking for header data. 2020-05-13T00:04:18Z Xach: it's faster than converting the header to strings and using string-on-string searching. 2020-05-13T00:04:50Z no-defun-allowed: Xach: I see. I think Drakma uses a wrapping stream that can read both characters and binary, from memory. 2020-05-13T00:05:12Z Xach: i didn't really like that layering 2020-05-13T00:05:19Z markasoftware: that's interesting. Maybe i should look into making mine a real stream 2020-05-13T00:05:35Z no-defun-allowed: flexi-streams:flexi-input-stream? 2020-05-13T00:05:43Z no-defun-allowed: It's an interesting technique, sure. 2020-05-13T00:07:46Z Krystof quit (Ping timeout: 246 seconds) 2020-05-13T00:08:55Z abhixec quit (Quit: leaving) 2020-05-13T00:09:15Z abhixec joined #lisp 2020-05-13T00:11:51Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-13T00:11:56Z Kundry_Wag joined #lisp 2020-05-13T00:13:08Z abhixec quit (Client Quit) 2020-05-13T00:13:42Z quazimodo quit (Ping timeout: 256 seconds) 2020-05-13T00:13:59Z quazimodo joined #lisp 2020-05-13T00:15:09Z jfrancis_: puercopope: thank you! sketch looks exactly like what I was looking for! 2020-05-13T00:17:45Z oxum joined #lisp 2020-05-13T00:20:08Z Oladon: Could someone help me understand this error when trying to load Alexandria? "ALEXANDRIA is a nickname for the package ALEXANDRIA.1.0.0" 2020-05-13T00:20:40Z Oladon: It sounds like a perfectly acceptable statement of fact to me, not an error :P 2020-05-13T00:22:51Z asarch quit (Quit: Leaving) 2020-05-13T00:23:07Z abhixec joined #lisp 2020-05-13T00:24:50Z dmc00 left #lisp 2020-05-13T00:25:17Z quazimodo quit (Read error: Connection reset by peer) 2020-05-13T00:25:36Z Bike: i think that's what you'd get if youalready had a package called alexandria? 2020-05-13T00:27:55Z quazimodo joined #lisp 2020-05-13T00:28:56Z Oladon: Ah, hrm. How can I track down what's loading that version to figure out where the conflict lies? 2020-05-13T00:33:34Z Xach: Oladon: do you use quicklisp? 2020-05-13T00:33:39Z Oladon: Xach: indeed 2020-05-13T00:33:44Z Xach: (ql:where-is-system "alexandria") will show some info 2020-05-13T00:36:52Z Oladon: Ah, that's helpful, thanks Xach 2020-05-13T00:39:50Z zaquest quit (Quit: Leaving) 2020-05-13T00:42:20Z lucasb quit (Quit: Connection closed for inactivity) 2020-05-13T00:42:51Z zaquest joined #lisp 2020-05-13T00:43:33Z anticrisis joined #lisp 2020-05-13T00:50:32Z Bourne quit (Ping timeout: 260 seconds) 2020-05-13T00:53:35Z davepdotorg quit (Ping timeout: 244 seconds) 2020-05-13T00:56:46Z akoana joined #lisp 2020-05-13T01:01:12Z rozenglass1 joined #lisp 2020-05-13T01:01:43Z srandon111 quit (Quit: leaving) 2020-05-13T01:04:01Z oxum quit (Ping timeout: 258 seconds) 2020-05-13T01:04:42Z bitmapper quit (Ping timeout: 256 seconds) 2020-05-13T01:06:55Z gko joined #lisp 2020-05-13T01:23:14Z mangul joined #lisp 2020-05-13T01:26:44Z buffergn0me quit (Remote host closed the connection) 2020-05-13T01:28:56Z jeosol joined #lisp 2020-05-13T01:36:28Z oxum joined #lisp 2020-05-13T01:40:54Z oxum quit (Ping timeout: 260 seconds) 2020-05-13T01:43:27Z Bourne joined #lisp 2020-05-13T01:44:10Z gko quit (Ping timeout: 260 seconds) 2020-05-13T01:47:54Z orivej quit (Ping timeout: 260 seconds) 2020-05-13T01:48:48Z orivej joined #lisp 2020-05-13T01:52:18Z jeosol: phoe: thanks for uploading the video. Watching now. 2020-05-13T01:54:16Z rozenglass1 quit (Ping timeout: 272 seconds) 2020-05-13T01:56:02Z ralt quit (Quit: Connection closed for inactivity) 2020-05-13T01:57:29Z FennecCode joined #lisp 2020-05-13T02:00:23Z jeosol: I guess one thing is the "why" question (why PCS). Hopefully it's addressed and clear in the video. 2020-05-13T02:10:18Z oxum joined #lisp 2020-05-13T02:24:34Z rpg joined #lisp 2020-05-13T02:25:00Z oxum quit (Ping timeout: 256 seconds) 2020-05-13T02:25:26Z toorevitimirp joined #lisp 2020-05-13T02:26:33Z Oladon quit (Quit: Leaving.) 2020-05-13T02:31:48Z Josh_2` quit (Ping timeout: 256 seconds) 2020-05-13T02:36:33Z turona quit (Ping timeout: 265 seconds) 2020-05-13T02:37:42Z turona joined #lisp 2020-05-13T02:43:27Z PuercoPope quit (Read error: Connection reset by peer) 2020-05-13T02:48:13Z rozenglass1 joined #lisp 2020-05-13T02:49:45Z beach: Good morning everyone! 2020-05-13T02:50:03Z beach: jeosol: So that SICL can finally have a condition system. 2020-05-13T02:52:24Z dyelar quit (Quit: Leaving.) 2020-05-13T02:52:26Z oxum joined #lisp 2020-05-13T02:54:14Z beach: jeosol: In fact, not only does it come at a perfect time for SICL, since I haven't written much condition-system code yet. It is also perfectly inline with the goals of the SICL project, namely to create implementation-independent modules that can be used by creators of Common Lisp implementations. 2020-05-13T02:54:58Z beach: jeosol: If FLOSS Common Lisp implementations were to use more such modules, we would cut down on the global maintenance burden. 2020-05-13T02:56:16Z jeosol: beach: Aha. I forgot the bigger picture of the SICL goal. I was looking at PCS in isolation. This makes a lot of sense now. 2020-05-13T02:56:30Z Kundry_Wag quit (Remote host closed the connection) 2020-05-13T02:56:37Z jeosol: Thanks for clarifying. 2020-05-13T02:56:40Z beach: Of course, phoe didn't write it with SICL in mind. 2020-05-13T02:56:44Z beach: But still... 2020-05-13T02:56:55Z jeosol: that PCS integrates/or can integrate into SICL 2020-05-13T02:57:07Z beach: Very definitely. 2020-05-13T02:57:20Z beach: At the moment, we have Eclector (reader), Concrete Syntax Tree (representing Common Lisp code with source information), Trucler (compile-time environments), PCS. 2020-05-13T02:57:36Z jeosol: very nice. 2020-05-13T02:57:57Z beach: We are working on extracting Cleartext (configurable print-object), AST, CST-to-AST, FORMAT, LOOP. 2020-05-13T02:58:06Z jeosol: Are you using like a battery-type design, where parts can be swapped in and out, so it's more modular? 2020-05-13T02:58:15Z beach: PCS? 2020-05-13T02:58:38Z jeosol: I meant what phoe is calling the Portable Condition System in the video 2020-05-13T02:58:59Z beach: I didn't watch the video. Busy cooking. 2020-05-13T02:59:13Z Bike quit (Quit: leaving) 2020-05-13T02:59:22Z beach: For SICL, it is going to be just PCS, since there is no native system yet. 2020-05-13T02:59:23Z jeosol: what cooking? In early or I lost track of time 2020-05-13T03:00:00Z beach: I didn't watch the video last night at 18:00 my time zone, because I was in charge of feeding my (admittedly small) family. 2020-05-13T03:00:36Z beach: And now it is 5:00 am and I haven't had my coffee yet. 2020-05-13T03:00:42Z beach: But I'll watch it sometime today. 2020-05-13T03:00:46Z jeosol: No I meant you coming in here. 2020-05-13T03:01:02Z jeosol: haha, you use that line (admittedly small) family, sweet 2020-05-13T03:01:12Z jeosol: often 2020-05-13T03:02:17Z beach: I have an Emacs abbrev, so I just type "asf" and it comes out as "(admittedly small) family". 2020-05-13T03:06:20Z beach: Speaking of modules, we haven't started on Cleartext yet, so if someone (perhaps an ambitious newbie) is interested in that project, let me know. 2020-05-13T03:06:59Z beach: The idea is to create a bunch of methods for PRINT-OBJECT, and also the macro PRINT-UNREADABLE-OBJECT, in a way that can be configured by the client. 2020-05-13T03:07:29Z jeosol: cool trick with the "asf" 2020-05-13T03:08:15Z beach: I have the same for "first-class global environments", "Common Lisp HyperSpec", "Common Lisp", "(first) Climacs", "Second Climacs", "Good morning everyone!", "Good afternoon everyone!", etc. etc. 2020-05-13T03:08:28Z jeosol: That sounds like something I may take a stab at. I normally write print-objects for my classes, maybe I could use that to learn deepen my skills. Is the spec and expectations somewhere 2020-05-13T03:08:31Z beach: Saves hours of typing every month. 2020-05-13T03:08:50Z beach: Not yet, but we can work on it. 2020-05-13T03:08:58Z jeosol: I need to get those shorts cuts too. I use this via the web, but have emacs open for code. I should just use irc via emacs 2020-05-13T03:08:58Z beach: For that, I think there will be a special variable *CLIENT* that client code can bind before calling PRINT-OBJECT. 2020-05-13T03:09:21Z jeosol: I see 2020-05-13T03:09:25Z LdBeth: Good evening 2020-05-13T03:09:41Z beach: Then PRINT-OBJECT will call PRINT-OBJECT-USING-CLIENT with the value of *CLIENT*, the object, and the stream. 2020-05-13T03:09:46Z beach: Hello LdBeth. 2020-05-13T03:10:16Z jeosol: morning LdBeth 2020-05-13T03:10:29Z beach: PRINT-OBJECT-USING-CLIENT will be exported so that client code can create methods on it. It can also specialize to the STREAM parameter which is not conforming for PRINT-OBJECT. 2020-05-13T03:11:13Z beach: I think perhaps each method on PRINT-OBJECT will call PRINT-OBJECT-USING-CLIENT, which seems to call for a macro. 2020-05-13T03:11:27Z beach: Maybe DEFINE-PRINT-OBJECT-METHOD or something like that. 2020-05-13T03:11:58Z beach: That way, PRINT-OBJECT will have as many methods as a client might expect. 2020-05-13T03:13:14Z jeosol: when you say "as many methods", as many for any object 2020-05-13T03:13:24Z beach: As many as the usual classes, yes. 2020-05-13T03:13:34Z jeosol: I get the rest of the idea. 2020-05-13T03:13:37Z jeosol: Ok I see 2020-05-13T03:13:54Z beach: Some methods on PRINT-OBJECT-USING-CLIENT will be trivial, mainly calling PRINT-UNREADABLE-OBJECT, but others will be very tricky, like the one for SYMBOL will be tricky because of the many cases. 2020-05-13T03:14:49Z beach: And PRINT-UNREADABLE-OBJECT will have to call a generic function for the "identity" of an object, because that is highly client specific. 2020-05-13T03:15:00Z jeosol: I think I need to get something clear in my head is the ultimate goal of SICL, 2020-05-13T03:15:09Z beach: Heh, sure. 2020-05-13T03:15:36Z beach: If people in #lisp get tired of us, we can move to #sicl. 2020-05-13T03:15:38Z jeosol: I then to confuse it as in living within SBCL or something. hence the confusion above 2020-05-13T03:15:43Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-13T03:15:52Z jeosol: oh I'll need to join that group. 2020-05-13T03:24:59Z davepdotorg joined #lisp 2020-05-13T03:27:19Z elflng quit (Quit: Changing server) 2020-05-13T03:27:31Z elflng joined #lisp 2020-05-13T03:27:47Z _jrjsmrtn joined #lisp 2020-05-13T03:29:01Z __jrjsmrtn__ quit (Ping timeout: 264 seconds) 2020-05-13T03:30:05Z Kundry_Wag joined #lisp 2020-05-13T03:30:22Z davepdotorg quit (Ping timeout: 260 seconds) 2020-05-13T03:35:46Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-13T03:42:49Z Oladon joined #lisp 2020-05-13T03:44:55Z EvW joined #lisp 2020-05-13T03:51:44Z SGASAU` joined #lisp 2020-05-13T03:56:01Z SGASAU quit (Ping timeout: 264 seconds) 2020-05-13T03:56:24Z davepdotorg joined #lisp 2020-05-13T03:57:29Z elflng quit (Quit: leaving) 2020-05-13T04:01:37Z davepdotorg quit (Ping timeout: 265 seconds) 2020-05-13T04:01:51Z elflng joined #lisp 2020-05-13T04:11:40Z oxum quit (Remote host closed the connection) 2020-05-13T04:19:57Z EvW quit (Ping timeout: 260 seconds) 2020-05-13T04:22:50Z dddddd quit (Ping timeout: 260 seconds) 2020-05-13T04:23:41Z rpg joined #lisp 2020-05-13T04:25:04Z Necktwi quit (Ping timeout: 256 seconds) 2020-05-13T04:36:51Z Lord_Nightmare quit (Quit: ZNC - http://znc.in) 2020-05-13T04:38:10Z Lord_Nightmare joined #lisp 2020-05-13T04:46:33Z Oladon quit (Quit: Leaving.) 2020-05-13T04:52:18Z Oladon joined #lisp 2020-05-13T04:55:46Z akoana left #lisp 2020-05-13T05:02:22Z zaquest quit (Ping timeout: 272 seconds) 2020-05-13T05:06:03Z patlv quit (Quit: patlv) 2020-05-13T05:06:07Z oxum joined #lisp 2020-05-13T05:07:00Z Oladon quit (Quit: Leaving.) 2020-05-13T05:09:28Z davepdotorg joined #lisp 2020-05-13T05:11:42Z srazzaque quit (Remote host closed the connection) 2020-05-13T05:14:32Z gravicappa joined #lisp 2020-05-13T05:15:52Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-13T05:16:35Z v88m quit (Remote host closed the connection) 2020-05-13T05:17:54Z sauvin joined #lisp 2020-05-13T05:19:55Z davepdotorg quit (Ping timeout: 265 seconds) 2020-05-13T05:26:41Z narimiran joined #lisp 2020-05-13T05:28:20Z shifty quit (Ping timeout: 272 seconds) 2020-05-13T05:36:57Z mangul is now known as shangul 2020-05-13T05:38:50Z Oladon joined #lisp 2020-05-13T05:50:04Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-13T05:50:46Z SGASAU joined #lisp 2020-05-13T05:54:43Z JohnMS_WORK joined #lisp 2020-05-13T05:54:45Z davepdotorg joined #lisp 2020-05-13T05:57:28Z toorevitimirp quit (Ping timeout: 272 seconds) 2020-05-13T05:57:52Z markasoftware: Is there any predicate for symbols like &optional and &rest? 2020-05-13T05:57:56Z rwcom3417491 joined #lisp 2020-05-13T05:59:28Z davepdotorg quit (Ping timeout: 256 seconds) 2020-05-13T05:59:30Z markasoftware: i guess lambda-list-keywords will do the trick 2020-05-13T05:59:52Z rgherdt joined #lisp 2020-05-13T06:02:29Z mangul joined #lisp 2020-05-13T06:04:21Z dalz joined #lisp 2020-05-13T06:04:57Z shangul quit (Ping timeout: 260 seconds) 2020-05-13T06:09:12Z amer joined #lisp 2020-05-13T06:12:36Z amerlyq quit (Ping timeout: 258 seconds) 2020-05-13T06:12:51Z rwcom3417491 quit (Quit: Ping timeout (120 seconds)) 2020-05-13T06:13:27Z rwcom3417491 joined #lisp 2020-05-13T06:16:22Z gravicappa quit (Ping timeout: 256 seconds) 2020-05-13T06:16:25Z yankM quit (Ping timeout: 264 seconds) 2020-05-13T06:17:16Z gravicappa joined #lisp 2020-05-13T06:24:40Z toorevitimirp joined #lisp 2020-05-13T06:24:57Z ralt joined #lisp 2020-05-13T06:26:30Z milanj joined #lisp 2020-05-13T06:29:00Z elephant joined #lisp 2020-05-13T06:32:59Z slyrus joined #lisp 2020-05-13T06:33:00Z phoe: markasoftware: member with lambda-list-keywords 2020-05-13T06:38:25Z Oladon quit (Quit: Leaving.) 2020-05-13T06:39:18Z phoe: jeosol: funnily enough, I totally did not mention SICL in the video - I forgot it out of stress (: 2020-05-13T06:39:53Z phoe: I mention a) learning material from the book, b) languages that compile to CL and have their own separate 1condition system 2020-05-13T06:40:12Z phoe: c) SICL is a valid point though, too, just as beach mentioned 2020-05-13T06:40:24Z jeosol: phoe: I was expecting it in the first few slides, but beach did provide clarification and the global context of the PCS project 2020-05-13T06:40:53Z phoe: as is d) "Science isn't about «why», it's about «why not?»" 2020-05-13T06:41:11Z jeosol: hahaha. That's ok. 2020-05-13T06:41:28Z jeosol: I meant motivation for the work. Maybe why does not convey my intent 2020-05-13T06:41:31Z phoe: and as is e) to spread knowledge about the condition system in general, because such exercises are an amazing way to get to know what can be done with it at all in a portable matter 2020-05-13T06:41:40Z phoe: oh! well then, all five of these 2020-05-13T06:41:52Z SGASAU quit (Remote host closed the connection) 2020-05-13T06:42:06Z jeosol: but great video. The slides are very clear. Good use of colors to distinguish the host condition and PCS system 2020-05-13T06:42:41Z SGASAU joined #lisp 2020-05-13T06:42:53Z phoe: it is not a universal trick since I had a colorblind person during the stream, but I'm glad that it worked for people who could use color data 2020-05-13T06:43:03Z jeosol: I am definitely interested in (e), to know it well. In the past, my application runs several works in steps, but if one fails, I often have to go back to the beginning, it was a pain to waste those compute cycles 2020-05-13T06:43:46Z jeosol: my amateur hack was to save the state of the object between the workflows. A better solution will be to use a restarts etc, so I just pick things up from the last previous workflow that run without problems 2020-05-13T06:44:13Z phoe: that would work 2020-05-13T06:44:55Z jeosol: phoe: color was useful, especially for the path, where you described how PCS talks to the host system to get the host system errors and trigger the corresponding one on the PCS side. 2020-05-13T06:45:01Z jeosol: If that is worded correctly. 2020-05-13T06:45:17Z phoe: yes, it is; thank you 2020-05-13T06:45:49Z varjag joined #lisp 2020-05-13T06:46:33Z jeosol: In my case, one would not know what workflows to run, but all of them are functions that take one object as argument. 2020-05-13T06:47:27Z jeosol: So I could have 10 possible functions 1, 2, 3, ...,10 and a user decides to run (1,2,4,5) or (1,3,6,7), I would like to generate restart information for this as the top-level function 2020-05-13T06:48:14Z jeosol: is called. I do know all possible function, just that a subset is used, and in the restart info, I will have the function names for each function and restart info provided upon error. I did write a small use case that worked. 2020-05-13T06:48:30Z phoe: this sounds doable 2020-05-13T06:48:39Z jeosol: Not sure I used macros, but I to abandon it because it's just me for now 2020-05-13T06:48:51Z random-nick joined #lisp 2020-05-13T06:48:59Z orivej_ joined #lisp 2020-05-13T06:49:24Z orivej quit (Ping timeout: 272 seconds) 2020-05-13T06:49:27Z jeosol: Good to know it's doable. 2020-05-13T06:54:33Z zaquest joined #lisp 2020-05-13T06:57:23Z toorevitimirp quit (Remote host closed the connection) 2020-05-13T06:57:51Z toorevitimirp joined #lisp 2020-05-13T06:58:25Z sdumi quit (Ping timeout: 264 seconds) 2020-05-13T06:58:47Z sdumi joined #lisp 2020-05-13T07:06:19Z beach: phoe: I am looking at your presentation now, since I wasn't around yesterday. 2020-05-13T07:06:51Z phoe: beach: yes, I've noticed, thanks! 2020-05-13T07:06:54Z beach: phoe: One thing I noticed. In the word "bind", the `i' is pronounced "eye". 2020-05-13T07:07:39Z beach: ... not "ee". 2020-05-13T07:08:32Z toorevitimirp quit (Remote host closed the connection) 2020-05-13T07:09:11Z toorevitimirp joined #lisp 2020-05-13T07:10:32Z phoe: beach: you're not the first person to notice this! I'll correct that, thanks 2020-05-13T07:10:47Z beach: Oh, OK. Just thought I would mention it. 2020-05-13T07:11:22Z Fare joined #lisp 2020-05-13T07:12:07Z Cymew joined #lisp 2020-05-13T07:15:51Z beach: phoe: And the "a" in "datum" is long, as in "late". 2020-05-13T07:20:02Z phoe: beach: thanks for that too 2020-05-13T07:20:14Z beach: And it is "vAr-ee-abble" 2020-05-13T07:20:41Z beach: Emphasis on first syllable and a short `a'. 2020-05-13T07:21:10Z toorevitimirp quit (Remote host closed the connection) 2020-05-13T07:21:39Z toorevitimirp joined #lisp 2020-05-13T07:23:22Z beach: phoe: Your English is otherwise excellent, so these remarks are just to make it perfect. :) 2020-05-13T07:23:43Z SGASAU quit (Remote host closed the connection) 2020-05-13T07:24:15Z pve joined #lisp 2020-05-13T07:24:29Z SGASAU joined #lisp 2020-05-13T07:24:31Z Krystof joined #lisp 2020-05-13T07:26:19Z jeosol quit (Ping timeout: 245 seconds) 2020-05-13T07:26:39Z phoe takes notes 2020-05-13T07:29:27Z v88m joined #lisp 2020-05-13T07:31:06Z jeosol joined #lisp 2020-05-13T07:32:49Z Kundry_Wag joined #lisp 2020-05-13T07:34:59Z ljavorsk joined #lisp 2020-05-13T07:37:05Z SGASAU quit (Remote host closed the connection) 2020-05-13T07:37:26Z Kundry_Wag quit (Ping timeout: 260 seconds) 2020-05-13T07:37:47Z SGASAU joined #lisp 2020-05-13T07:38:50Z FennecCode quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-13T07:39:58Z jprajzne joined #lisp 2020-05-13T07:51:13Z beach: phoe: Nice presentation! I won't need it though, since SICL doesn't have a host condition system. So PCS will be THE system for SICL. 2020-05-13T07:52:20Z beach: phoe: But I will download your code for PCS, study it, and ask you questions on the best way to adapt it to what I want for SICL. 2020-05-13T07:56:04Z davepdotorg joined #lisp 2020-05-13T07:56:20Z phoe: beach: no problem :) 2020-05-13T07:56:29Z phoe: thanks for the review! 2020-05-13T07:57:36Z phoe: If the code for PCS is *not* self-explanatory, then please file a bug - it's meant to be educational material, so it is supposed to be as clean and well-documented as possible 2020-05-13T07:58:01Z beach: I will certainly do that. 2020-05-13T07:59:59Z phoe: The only thing that might be non-obvious immediately is that someplace I use DEFGENERIC where normally DEFUN would do; that is because I need generic dispatch for integration. 2020-05-13T08:00:21Z davepdotorg quit (Ping timeout: 244 seconds) 2020-05-13T08:04:02Z beach: I see. Also, if you even need auxiliary methods, a generic function is a must. 2020-05-13T08:04:40Z remix2000 joined #lisp 2020-05-13T08:04:41Z liberliver joined #lisp 2020-05-13T08:06:55Z phoe: In many of these places you don't need generics if you don't need integration with the host, so it's possible that the SICL version might even want to revert those back to DEFUN ;) 2020-05-13T08:07:36Z beach: Possibly. Then, on the other hand, SICL generic dispatch is fast, so it won't matter much. :) 2020-05-13T08:09:45Z pve: can I ask how you guys name your auxiliary/helper methods? any particular strategy? I often end up with hacky names for those.. 2020-05-13T08:10:16Z beach: Er, what? Every method has the same name as its generic function. 2020-05-13T08:10:28Z beach: Perhaps you don't mean "methods"? 2020-05-13T08:10:32Z pve: i meant methods 2020-05-13T08:10:34Z pve: yes 2020-05-13T08:10:42Z pve: i meant generic functions 2020-05-13T08:10:48Z pve: sorry, still having coffee 2020-05-13T08:11:02Z phoe: pve: that's a context-dependent question; could you provide some examples? 2020-05-13T08:11:03Z beach: Now I am confused. What is an auxiliary generic function? 2020-05-13T08:11:13Z Fare: Lispers have lots of gf's. 2020-05-13T08:11:25Z Fare: Lispers are Alisters -- but also Plisters. 2020-05-13T08:12:00Z remix2000: Hi all, a very unusual question here: Do you know if there is an interpreted LISP implementation suitable for embedded (headless, statically linked et al) *and* with support for serializable continuations? 2020-05-13T08:12:25Z Fare: Minima! 2020-05-13T08:13:26Z Fare: remix2000, ThinLisp requires manual deallocation, and is probably not suitable to run delico on top of. 2020-05-13T08:13:46Z Fare: remix2000, does ECL count as suitable for embedded to you? 2020-05-13T08:13:51Z phoe: remix2000: sounds like uLisp, but I have no idea if it has the latter property 2020-05-13T08:14:02Z Fare: hu.dwin.delico on top of ECL might do it. 2020-05-13T08:14:12Z phoe: also, by "embedded", you mean kilobytes or megabytes or gigabytes of RAM? 2020-05-13T08:14:30Z Fare: or on top of CLISP if you can live with CLISP's idiosyncrasies (has it been released since 2010?) 2020-05-13T08:14:49Z beach: pve: Auxiliary methods are methods that are typically introduced with :BEFORE, :AFTER, and :AROUND on generic functions. 2020-05-13T08:15:33Z remix2000: Ram counts in megabytes, it's just that I have quite an unusual libc (Newlib) there which implements only basic functionalities https://en.wikipedia.org/wiki/Newlib 2020-05-13T08:15:36Z pve: beach: gotcha, thanks.. i was thinking of something different 2020-05-13T08:15:49Z beach: pve: And what was that? 2020-05-13T08:15:54Z phoe: pve: give us a code example, we should understand it better that way ;) 2020-05-13T08:16:04Z davepdotorg joined #lisp 2020-05-13T08:20:30Z pve: hmm let me see if I can come up with one 2020-05-13T08:20:42Z remix2000: Fare, that delico thing looks like it's a real deal. I'm impressed with such a quick response :D Do you have any copy of its (likely defunct?) website? 2020-05-13T08:21:44Z phoe: remix2000: http://dwim.hu/?_x=KdOV&_f=yodrOizR still seems alive 2020-05-13T08:22:33Z Fare: remix2000, the website should me in the darcs or git repository 2020-05-13T08:28:08Z remix2000: Thank you! OT: Who are those dwim.hu guys? Even their website looks like work of some kind of sorcerer :D 2020-05-13T08:29:05Z phoe: they are lisp sorcerers, obviously 2020-05-13T08:30:37Z dale quit (Quit: My computer has gone to sleep) 2020-05-13T08:30:38Z shifty joined #lisp 2020-05-13T08:30:41Z remix2000: Citing the famous XKCD, it's truly the language of gods ;D 2020-05-13T08:31:33Z phoe: except gods are few and far between and even then they usually use perl™... to quote the same xkcd 2020-05-13T08:32:15Z remix2000: They just glue things together with it, but who doesn't? :P 2020-05-13T08:33:21Z oxum quit (Remote host closed the connection) 2020-05-13T08:34:44Z ralt quit (Quit: Connection closed for inactivity) 2020-05-13T08:37:09Z davepdotorg quit (Remote host closed the connection) 2020-05-13T08:37:25Z davepdotorg joined #lisp 2020-05-13T08:40:11Z anticrisis quit (Quit: Leaving) 2020-05-13T08:43:22Z edgar-rft joined #lisp 2020-05-13T08:47:05Z heisig joined #lisp 2020-05-13T08:48:17Z remix2000 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-13T08:54:22Z remix2000 joined #lisp 2020-05-13T09:06:00Z dddddd joined #lisp 2020-05-13T09:06:14Z oxum joined #lisp 2020-05-13T09:15:32Z oxum quit (Remote host closed the connection) 2020-05-13T09:19:42Z pve: phoe: I'm struggling to come up with a *good* example, so my question isn't very well prepared, but if I could direct your attention here: 2020-05-13T09:19:49Z pve: https://github.com/pve1/shell-utility/blob/7b245d72782787eb8e7e7f3c0eb8b567d0ff65b4/shell-utility.lisp#L214 2020-05-13T09:20:12Z pve: The names of those three preprocess-command functions is the kind of thing I'm pondering. 2020-05-13T09:20:26Z pve: beach: ^ 2020-05-13T09:20:51Z pve: I don't really have a problem with the way it's done now, but I get the feeling that there should be a better way. 2020-05-13T09:21:03Z shinohai quit (Ping timeout: 272 seconds) 2020-05-13T09:21:12Z drot quit (Ping timeout: 256 seconds) 2020-05-13T09:22:47Z phoe: what does /2r mean in this context? 2020-05-13T09:22:59Z beach: pve: I need to have a look later. I am in the middle of something. 2020-05-13T09:23:37Z phoe: (apply #'preprocess-command/2r s (first command) (rest command)) === (apply #'preprocess-command/2r s command) 2020-05-13T09:24:32Z pve: ah yes of course 2020-05-13T09:24:55Z pve: 2r just denotes 2 required args + a rest argument 2020-05-13T09:25:13Z ArthurStrong joined #lisp 2020-05-13T09:25:32Z phoe: I see no point in storing that information in the function name in Lisp - slime/sly will tell you the lambda list of every function object, and so should DESCRIBE 2020-05-13T09:26:20Z phoe: do you define methods on PREPROCESS-COMMAND elsewhere? 2020-05-13T09:26:53Z pve: no, it's currently only used in preprocess-commands 2020-05-13T09:29:11Z Lord_of_Life_ joined #lisp 2020-05-13T09:29:28Z pve: the point of 2r here is just to make it not clash with preprocess-command, so the question is: what should preprocess-command/2r be called instead? 2020-05-13T09:29:41Z phoe: https://plaster.tymoon.eu/view/1821#1821 2020-05-13T09:30:02Z phoe: IMO, it shouldn't 2020-05-13T09:30:24Z Lord_of_Life quit (Ping timeout: 258 seconds) 2020-05-13T09:30:29Z phoe: but you might call this design dirty, since I ignore arguments if COMMAND is a list 2020-05-13T09:30:31Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-13T09:30:57Z phoe: my question would rather by, why do you call PREPROCESS-COMMAND with a list passed as COMMAND 2020-05-13T09:31:41Z phoe: so I would instead go with https://plaster.tymoon.eu/view/1821#1822 (the second post) 2020-05-13T09:31:51Z phoe: like, I wouldn't define a method where COMMAND is a list, and I'd instead let it fail 2020-05-13T09:32:06Z phoe: this way I can fix up my code to actually use APPLY instead of FUNCALL 2020-05-13T09:32:42Z pve: ok, so that's just bad naming on my part.. command here really means a list, like (:eval (+ 1 2)) 2020-05-13T09:33:07Z pve: and in /2r command should be "OP" or something 2020-05-13T09:33:20Z phoe: I'd use APPLY then 2020-05-13T09:33:40Z phoe: so COMMAND ends up being the symbol :EVAL and so the dispatch works correctly 2020-05-13T09:37:06Z phoe: I actually solve a very similar problem in the PCS debugger 2020-05-13T09:37:21Z phoe: https://github.com/phoe/portable-condition-system/blob/master/src/debugger.lisp - see DEFINE-COMMAND 2020-05-13T09:39:19Z pve: that second post is indeed clearer 2020-05-13T09:39:51Z davepdotorg quit (Remote host closed the connection) 2020-05-13T09:41:38Z phoe: the original looks like your interface attempting to fix issues with the code, which isn't the good way around 2020-05-13T09:42:09Z phoe: the code should fix issues with how it uses the interface 2020-05-13T09:43:28Z hiroaki_ joined #lisp 2020-05-13T09:44:45Z ralt joined #lisp 2020-05-13T09:49:09Z oxum joined #lisp 2020-05-13T09:53:51Z davepdotorg joined #lisp 2020-05-13T09:54:49Z oxum quit (Ping timeout: 264 seconds) 2020-05-13T09:57:15Z pve: I am happy with the end result, thank you for that.. I'll push that change when I get the chance 2020-05-13T09:57:32Z phoe: <3 2020-05-13T09:57:56Z pve: but at least for me, personally, it's very difficult to *always* resolve naming issues by restructuring the code 2020-05-13T09:59:44Z pve: sometimes, because I'm tired, lazy or whatever, I just need to resort to those /2r hacks (which are usually local in nature) just to get the whole thing working 2020-05-13T10:00:08Z phoe: they make code dirty though 2020-05-13T10:00:29Z pve: so I'm still wondering, what is your version of "/2r"? 2020-05-13T10:04:46Z phoe: if I need to, %foo 2020-05-13T10:05:17Z oxum joined #lisp 2020-05-13T10:07:16Z rogersm joined #lisp 2020-05-13T10:08:33Z milanj quit (Quit: This computer has gone to sleep) 2020-05-13T10:12:44Z karlosz quit (Quit: karlosz) 2020-05-13T10:14:40Z rozenglass1 quit (Ping timeout: 246 seconds) 2020-05-13T10:15:26Z rozenglass1 joined #lisp 2020-05-13T10:17:19Z EvW joined #lisp 2020-05-13T10:19:08Z cosimone joined #lisp 2020-05-13T10:20:15Z dddddd_ joined #lisp 2020-05-13T10:22:01Z dddddd quit (Ping timeout: 246 seconds) 2020-05-13T10:22:16Z ayuce joined #lisp 2020-05-13T10:22:21Z dddddd__ joined #lisp 2020-05-13T10:25:25Z dddddd_ quit (Ping timeout: 264 seconds) 2020-05-13T10:27:34Z dddddd__ quit (Ping timeout: 240 seconds) 2020-05-13T10:29:40Z dddddd__ joined #lisp 2020-05-13T10:29:55Z dddddd__ is now known as dddddd 2020-05-13T10:30:10Z jeosol quit (Remote host closed the connection) 2020-05-13T10:30:34Z rogersm quit (Read error: Connection reset by peer) 2020-05-13T10:31:19Z rogersm joined #lisp 2020-05-13T10:34:47Z EvW quit (Ping timeout: 240 seconds) 2020-05-13T10:34:47Z monokrom joined #lisp 2020-05-13T10:36:43Z jeosol joined #lisp 2020-05-13T10:41:24Z EvW joined #lisp 2020-05-13T10:44:55Z jeosol: Is there a profiling option to see memory consumed/used at function level 2020-05-13T10:45:36Z phoe: implementation-defined, if any 2020-05-13T10:45:44Z phoe: I think SBCL has one - see sb-aprof 2020-05-13T10:45:52Z davepdotorg quit (Remote host closed the connection) 2020-05-13T10:46:12Z jeosol: I just used sb-sprof but I was thinking the function is some time proxy 2020-05-13T10:46:16Z jeosol: let me post the output 2020-05-13T10:46:28Z davepdotorg joined #lisp 2020-05-13T10:46:41Z elflng quit (Ping timeout: 258 seconds) 2020-05-13T10:46:43Z nullman quit (Ping timeout: 260 seconds) 2020-05-13T10:47:20Z phoe: okie, use a pastebin for hat 2020-05-13T10:47:22Z phoe: that 2020-05-13T10:47:39Z Xach: why did two independent zipper libraries pop up in the last 24 hours 2020-05-13T10:47:44Z Xach: are zippers in the air? 2020-05-13T10:48:04Z no-defun-allowed: Well, clearly you should zip them up. 2020-05-13T10:48:08Z flip214: jeosol: sb-sprof can _also_ do statistical :mode :alloc, but aprof is for _full_ allocation tracing. 2020-05-13T10:48:21Z jeosol quit (Remote host closed the connection) 2020-05-13T10:49:14Z phoe: Xach: which ones? 2020-05-13T10:49:50Z jeosol joined #lisp 2020-05-13T10:51:20Z ebrasca joined #lisp 2020-05-13T10:52:15Z Xach: https://github.com/inaimathi/cl-zipper and https://github.com/conjunctive/zip 2020-05-13T10:52:30Z Xach: zip is clearly unsuitable due to its name 2020-05-13T10:52:56Z jeosol: flip214: you said something about :mode :alloc 2020-05-13T10:53:00Z jeosol: chrome crashed again 2020-05-13T10:53:36Z elflng joined #lisp 2020-05-13T10:54:31Z EvW quit (Ping timeout: 252 seconds) 2020-05-13T10:55:43Z jeosol: phoe: https://pastebin.com/paer2tCP 2020-05-13T10:56:21Z phoe: jeosol: what are you measuring? 2020-05-13T10:57:28Z terpri quit (Remote host closed the connection) 2020-05-13T10:57:49Z terpri joined #lisp 2020-05-13T10:58:00Z dalz quit (Remote host closed the connection) 2020-05-13T10:58:25Z elflng quit (Ping timeout: 264 seconds) 2020-05-13T10:59:05Z elflng joined #lisp 2020-05-13T11:00:09Z EvW joined #lisp 2020-05-13T11:01:25Z scymtym quit (Ping timeout: 264 seconds) 2020-05-13T11:02:32Z jeosol: I have to rerun it. to add the :mode :alloc 2020-05-13T11:05:51Z elflng quit (Ping timeout: 258 seconds) 2020-05-13T11:11:04Z Bourne quit (Read error: Connection reset by peer) 2020-05-13T11:11:37Z elflng joined #lisp 2020-05-13T11:11:40Z jeosol: here is the update: https://pastebin.com/gtNWxV5i 2020-05-13T11:11:55Z phoe: jeosol: what are you measuring? 2020-05-13T11:12:00Z flip214: jeosol: http://www.sbcl.org/manual/#Macro-sb_002dsprof-with_002dprofiling, look for :mode 2020-05-13T11:12:19Z jeosol: I did, I just ran this with :mode :alloc 2020-05-13T11:13:02Z flip214: yeah, that's statistical profiling... aprof measures _every_ allocation, but IIRC it needs to be enabled during sbcl compilation 2020-05-13T11:13:09Z jeosol: I am trying to see what areas are consuming much resources. 2020-05-13T11:13:21Z jeosol: oh really 2020-05-13T11:13:32Z jeosol: I wasn't using aprof 2020-05-13T11:14:11Z Bourne joined #lisp 2020-05-13T11:14:32Z Bike joined #lisp 2020-05-13T11:19:28Z terpri quit (Remote host closed the connection) 2020-05-13T11:20:03Z terpri joined #lisp 2020-05-13T11:21:22Z davepdotorg quit (Remote host closed the connection) 2020-05-13T11:21:50Z davepdotorg joined #lisp 2020-05-13T11:23:28Z terpri quit (Remote host closed the connection) 2020-05-13T11:24:19Z cosimone quit (Remote host closed the connection) 2020-05-13T11:24:46Z cosimone joined #lisp 2020-05-13T11:24:47Z scymtym joined #lisp 2020-05-13T11:26:37Z davepdotorg quit (Ping timeout: 264 seconds) 2020-05-13T11:28:53Z milanj joined #lisp 2020-05-13T11:29:31Z oxum quit (Remote host closed the connection) 2020-05-13T11:36:32Z rwcom3417491 quit (Ping timeout: 256 seconds) 2020-05-13T11:37:14Z jprajzne quit (Quit: jprajzne) 2020-05-13T11:37:55Z RedMallet joined #lisp 2020-05-13T11:40:48Z oxum joined #lisp 2020-05-13T11:41:07Z X-Scale` joined #lisp 2020-05-13T11:43:34Z X-Scale quit (Ping timeout: 246 seconds) 2020-05-13T11:43:35Z X-Scale` is now known as X-Scale 2020-05-13T11:48:03Z nullman joined #lisp 2020-05-13T11:51:31Z davepdotorg joined #lisp 2020-05-13T11:52:48Z davepdotorg quit (Remote host closed the connection) 2020-05-13T11:53:28Z davepdotorg joined #lisp 2020-05-13T11:57:59Z davepdotorg quit (Ping timeout: 260 seconds) 2020-05-13T11:59:24Z davepdotorg joined #lisp 2020-05-13T12:02:02Z davepdotorg quit (Remote host closed the connection) 2020-05-13T12:02:21Z Kundry_Wag joined #lisp 2020-05-13T12:02:41Z davepdotorg joined #lisp 2020-05-13T12:03:41Z jprajzne joined #lisp 2020-05-13T12:06:27Z davepdotorg quit (Remote host closed the connection) 2020-05-13T12:08:46Z davepdot_ joined #lisp 2020-05-13T12:18:43Z RedMallet quit (Quit: WeeChat 2.8) 2020-05-13T12:21:19Z sdumi quit (Read error: Connection reset by peer) 2020-05-13T12:22:05Z sdumi joined #lisp 2020-05-13T12:23:01Z Kundry_Wag quit (Ping timeout: 264 seconds) 2020-05-13T12:24:29Z Kundry_Wag joined #lisp 2020-05-13T12:24:34Z cosimone quit (Remote host closed the connection) 2020-05-13T12:26:02Z yankM joined #lisp 2020-05-13T12:33:15Z mangul is now known as shangul 2020-05-13T12:37:06Z toorevitimirp quit (Remote host closed the connection) 2020-05-13T12:37:41Z gko joined #lisp 2020-05-13T12:38:28Z toorevitimirp joined #lisp 2020-05-13T12:40:40Z EvW quit (Ping timeout: 256 seconds) 2020-05-13T12:41:13Z cosimone joined #lisp 2020-05-13T12:41:22Z srazzaque joined #lisp 2020-05-13T12:48:51Z jw4 quit (Read error: Connection reset by peer) 2020-05-13T12:50:52Z jw4 joined #lisp 2020-05-13T12:52:51Z jeosol quit (Remote host closed the connection) 2020-05-13T12:53:25Z RedMallet joined #lisp 2020-05-13T12:54:31Z davepdot_ quit (Remote host closed the connection) 2020-05-13T12:58:43Z davepdotorg joined #lisp 2020-05-13T13:02:20Z shinohai joined #lisp 2020-05-13T13:08:02Z drot joined #lisp 2020-05-13T13:08:33Z srazzaque quit (Remote host closed the connection) 2020-05-13T13:09:06Z lukego: Hey in SBCL if I'd (proclaim '(optimize (debug 3) (speed 1))) what're the likely reasons I'll regret so much debug / so little speed? 2020-05-13T13:09:31Z oxum quit (Remote host closed the connection) 2020-05-13T13:11:05Z Bike: your program being slow? 2020-05-13T13:11:05Z beach: I have even better in my .sbclrc. 2020-05-13T13:11:08Z Bike: i'm not sure what you're asking. 2020-05-13T13:11:30Z beach: lukego: It is plenty fast with (debug 3) (speed 0) (compilation-speed 0) (safety 3) 2020-05-13T13:11:46Z beach: ... for me at least. 2020-05-13T13:12:08Z lukego: Cool. Just thought maybe wildly impractical things might happen at level 0 and/or 3 for some quantities. 2020-05-13T13:12:14Z gxt quit (Remote host closed the connection) 2020-05-13T13:12:23Z phoe: lukego: they might, depending on the implementation 2020-05-13T13:12:30Z Bike: i wouldn't describe any of it as wildly impractical, no 2020-05-13T13:12:35Z beach: Apparently, it generates huge amounts of debug information. But that's good in my book. 2020-05-13T13:12:42Z phoe: but that depends on your defin---- what Bike said 2020-05-13T13:12:53Z phoe: with safety 0 lots of code is going to crash the implementation instead of signaling errors 2020-05-13T13:13:00Z jeosol joined #lisp 2020-05-13T13:13:03Z gxt joined #lisp 2020-05-13T13:13:10Z phoe: and/or cause memory corruption 2020-05-13T13:13:17Z srazzaque joined #lisp 2020-05-13T13:13:17Z davepdotorg quit (Remote host closed the connection) 2020-05-13T13:13:24Z srazzaque left #lisp 2020-05-13T13:13:25Z phoe: with debug 3, AFAIR, tail calls are no longer optimized 2020-05-13T13:13:43Z davepdotorg joined #lisp 2020-05-13T13:13:46Z phoe: but all of that is implementation-specific 2020-05-13T13:13:50Z beach: But you can use the stepper apparently. :) 2020-05-13T13:13:56Z phoe: yes 2020-05-13T13:14:03Z dalz joined #lisp 2020-05-13T13:14:33Z lukego: I'll try beach's settings and see how that goes. thanks all 2020-05-13T13:14:37Z phoe: (defun dance () (declare (optimize debug)) (loop (step left-foot) (step right-foot))) 2020-05-13T13:14:43Z beach: lukego: I have had it like that for years, and only experienced a problem when I compiled huge generated files, which I no longer do. 2020-05-13T13:16:40Z zulu-inuoe joined #lisp 2020-05-13T13:18:52Z lavaflow quit (Ping timeout: 256 seconds) 2020-05-13T13:19:03Z davepdot_ joined #lisp 2020-05-13T13:20:26Z davepdotorg quit (Ping timeout: 260 seconds) 2020-05-13T13:22:12Z lavaflow joined #lisp 2020-05-13T13:22:59Z jdz: lukego: Indeed some library authors think that (safety 0) is a good thing to do, so I've also added (sb-ext:restrict-compiler-policy 'safety 1) to my ~/.sbclrc. 2020-05-13T13:23:46Z JohnMS_WORK quit (Read error: Connection reset by peer) 2020-05-13T13:24:06Z oxum joined #lisp 2020-05-13T13:24:54Z jdz: The only problems I've had is ending up in debugger when the assumptions of such libraries don't hold. 2020-05-13T13:25:08Z jdz: For some values of "problems." 2020-05-13T13:25:15Z milanj quit (Quit: This computer has gone to sleep) 2020-05-13T13:27:07Z EvW1 joined #lisp 2020-05-13T13:28:39Z phoe: that's bugs 2020-05-13T13:29:53Z patlv joined #lisp 2020-05-13T13:31:45Z davepdot_ quit (Remote host closed the connection) 2020-05-13T13:32:12Z davepdotorg joined #lisp 2020-05-13T13:35:00Z davepdot_ joined #lisp 2020-05-13T13:38:47Z davepdotorg quit (Ping timeout: 260 seconds) 2020-05-13T13:38:53Z fanta1 joined #lisp 2020-05-13T13:40:26Z rogersm quit (Ping timeout: 240 seconds) 2020-05-13T13:43:09Z jdz: Indeed. 2020-05-13T13:43:40Z jdz: Well, not always. 2020-05-13T13:45:00Z phoe: it's bugs if setting certain optimization settings causes your code to explode 2020-05-13T13:45:12Z phoe: similar as when libraries depend on implementation-dependent behavior that might or might not be triggered on certain optimization settings 2020-05-13T13:45:35Z jdz: If I try to inflate /dev/urandom I'd expect to end up in debugger, not with a crashed lisp image, even though it's my fault I did not pass properly deflated data to the library. 2020-05-13T13:45:57Z phoe: inflate? what do you mean? 2020-05-13T13:46:22Z jdz: Decompress. 2020-05-13T13:46:23Z jackdaniel: you eat entropy when you read from urandom 2020-05-13T13:46:39Z jackdaniel: ah, I misunderstood 2020-05-13T13:46:40Z jackdaniel: sorry 2020-05-13T13:46:53Z phoe: jdz: decompress using which library/format? I don't understand just yet 2020-05-13T13:47:18Z jackdaniel: a function may assume valid input, so it may put some declarations to speed things up 2020-05-13T13:47:21Z jackdaniel: without checking each ybte 2020-05-13T13:47:32Z jackdaniel: s/ybte/data piece/ 2020-05-13T13:47:44Z jdz: It does not matter. It's about the contract between the library and the library user. 2020-05-13T13:47:50Z phoe: I see 2020-05-13T13:48:27Z jdz: jackdaniel: Yes, internal functions. External functions should not just blow up if instead of number I pass a string in the REPL. 2020-05-13T13:49:33Z jdz: And even with internal functions it's mostly not worth the trouble (SAFETY 0 that is). 2020-05-13T13:52:55Z davepdot_ quit (Remote host closed the connection) 2020-05-13T13:53:51Z jonatack quit (Quit: jonatack) 2020-05-13T13:58:18Z phoe: I'm staring at ccldoc 2020-05-13T13:58:31Z phoe: the documentation at https://trac.clozure.com/ccldoc/wiki/CCLDocOverview seems rather sane 2020-05-13T13:58:35Z EvW1 quit (Ping timeout: 252 seconds) 2020-05-13T13:58:52Z phoe: the source code of it is still unreadable to me though 2020-05-13T14:07:00Z pjb: phoe: that's the point, you should be able to give a library any data, even wrong, even purposely wrong, and expect it doesn't crash, and it doesn't open security holes. 2020-05-13T14:07:12Z pjb: phoe: fuzzing explicitely breaks code like this. 2020-05-13T14:07:25Z ljavorsk quit (Ping timeout: 264 seconds) 2020-05-13T14:07:26Z pjb: we'd need a good fuzzer for lisp functions… 2020-05-13T14:09:08Z pjb: jdz: this goes beyond contracts (as in pre/post conditions). With contract programming, you assume that if the contract is not respected, anything can happens, even nasal daemons. But we're beyond that! We need to avoid nasal daemons at all costs, in an internetworked environment, where hostile users do exist, not just idiots. 2020-05-13T14:09:38Z pjb: jdz: so we have to add to the contract that (not (union (all preconditions))) => (error signaled) instead of anything else. 2020-05-13T14:10:26Z pjb: Ultimately, fuzzying should only detect implementation bugs. 2020-05-13T14:10:56Z phoe: this is getting dangerously close to pfdietz's random testing framework 2020-05-13T14:12:45Z pjb: I need to try it… 2020-05-13T14:16:46Z davepdotorg joined #lisp 2020-05-13T14:18:05Z davepdotorg quit (Remote host closed the connection) 2020-05-13T14:18:33Z davepdotorg joined #lisp 2020-05-13T14:19:08Z elephant quit (Quit: Leaving) 2020-05-13T14:19:43Z terpri joined #lisp 2020-05-13T14:21:32Z jdz: pjb: Yes, I agree. 2020-05-13T14:31:58Z toorevitimirp quit (Remote host closed the connection) 2020-05-13T14:38:37Z Bourne quit (Ping timeout: 264 seconds) 2020-05-13T14:44:36Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-13T14:48:58Z terpri quit (Remote host closed the connection) 2020-05-13T14:49:10Z rippa joined #lisp 2020-05-13T14:49:26Z terpri joined #lisp 2020-05-13T14:50:11Z milanj joined #lisp 2020-05-13T14:51:15Z sdumi quit (Ping timeout: 258 seconds) 2020-05-13T14:53:17Z ebrasca quit (Remote host closed the connection) 2020-05-13T14:56:30Z Josh_2 joined #lisp 2020-05-13T14:56:47Z kpoeck joined #lisp 2020-05-13T15:00:04Z rpg joined #lisp 2020-05-13T15:03:49Z MichaelRaskin quit (Ping timeout: 264 seconds) 2020-05-13T15:07:28Z EvW joined #lisp 2020-05-13T15:12:33Z MichaelRaskin joined #lisp 2020-05-13T15:13:27Z dyelar joined #lisp 2020-05-13T15:13:42Z rogersm joined #lisp 2020-05-13T15:15:19Z jmercouris: how to do something like "7" and make a string with it 7 times? 2020-05-13T15:15:35Z jmercouris: so the resultant string = "7777777" 2020-05-13T15:15:46Z jmercouris: python has this nifty syntax "7" * 7 2020-05-13T15:15:56Z jmercouris: I'm thinking you could use format 2020-05-13T15:15:59Z jmercouris: any other way? 2020-05-13T15:16:47Z Bike: mm, basically concatenate 2020-05-13T15:17:07Z beach: Also make-array. 2020-05-13T15:17:30Z Bike: since the string being "multiplied" can be more than one character, it's probably not as easy as that 2020-05-13T15:17:31Z beach: (make-array 7 :element-type 'character :initial-element #\7) 2020-05-13T15:17:32Z jmercouris: so you make a list of '("7" ...) and concatenate? 2020-05-13T15:17:38Z beach: Oh, I see. 2020-05-13T15:17:55Z Bike: jmercouris: or call REPLACE repeatedly. might cons less 2020-05-13T15:18:21Z shinohai: Can't you use `(make-string 7 :initial-element #\7)` ? 2020-05-13T15:18:24Z Bike: well, almost certainly will cons less, rather 2020-05-13T15:18:37Z Bike: the python syntax in question also works like "78" * 4 = "78787878" 2020-05-13T15:18:42Z Bike: so, no 2020-05-13T15:19:03Z beach: shinohai: That's what I suggested, but the "7" in the example can be a string with several characters in it. 2020-05-13T15:19:12Z jmercouris: yeah it could just as well have been "seven" 2020-05-13T15:19:40Z shinohai: ah sorry beach just saw that before "SEND" 2020-05-13T15:19:40Z jmercouris: this could be a good candidate for the str library I think 2020-05-13T15:20:12Z beach: jmercouris: Then I suggest the technique suggested by Bike. 2020-05-13T15:20:50Z beach: jmercouris: Allocate a string with the right length, and then call REPLACE repeatedly. 2020-05-13T15:20:53Z dlowe: (format nil "~v@{~a~:*~}" 7 "7") 2020-05-13T15:21:27Z Bike: (defun string* (string n) (let* ((len (length string)) (new-len (* len n)) (r (make-string new-len))) (loop for i from 0 by len below new-len do (replace r string :start1 i)) r)) 2020-05-13T15:21:36Z Bike: i think that's about right 2020-05-13T15:21:39Z dlowe: (format nil "~v@{~a~:*~}" 4 "78") 2020-05-13T15:22:40Z phoe: jmercouris: (phoe-toolbox:vector-times "7" 7) 2020-05-13T15:23:04Z Bike: oh yeah, why not generalize it with vectors i guess 2020-05-13T15:23:22Z jmercouris: phoe: Ah! 2020-05-13T15:23:33Z phoe shines in his five seconds of fame 2020-05-13T15:23:34Z beach: I am surprised that such an operation is needed often enough to justify a library routine. 2020-05-13T15:23:39Z phoe: okay, back to coding 2020-05-13T15:23:43Z jmercouris: well, it is very useful 2020-05-13T15:23:53Z jmercouris: you'll find that when you have such a hammer you find its application 2020-05-13T15:23:58Z sdumi joined #lisp 2020-05-13T15:24:05Z beach: jmercouris: I am willing to believe you, but I don't see it. 2020-05-13T15:24:37Z phoe: beach: alternatively, the function is not used often, but it is annoying to write it yourself *when* you actually use it 2020-05-13T15:24:44Z phoe: or rather, when you actually want to use it 2020-05-13T15:24:49Z beach: I guess so. 2020-05-13T15:25:02Z davepdotorg quit (Remote host closed the connection) 2020-05-13T15:25:07Z shifty quit (Ping timeout: 246 seconds) 2020-05-13T15:25:33Z FreeBirdLjj joined #lisp 2020-05-13T15:26:04Z oxum quit (Quit: Leaving...) 2020-05-13T15:27:15Z remix2000: Hi again, I've fiddled a bit with ECL and it still has quite a few moving parts. GMP is not that much of a problem, but Boehm was quite "unwilling" to be ported. Then I realized there is also TCP support in ECL, which in turn newlib (the c library I use) doesn't provide header (sys/un.h) for... Sooo, is there an even more basic CL implementation? The thing I need the most is C/C++ FFI. 2020-05-13T15:27:37Z pve: is (with-output-to-string (s) (dotimes (n 7) (princ "7" s))) terribly inefficient? 2020-05-13T15:27:41Z pjb: beach: I don't think it's needed often. You will probably find that 99% of the use case is the initialization of the vector to 0s. 2020-05-13T15:27:48Z phoe: remix2000: where are you porting it? 2020-05-13T15:27:57Z pjb: 1000*[0] == (make-array 1000 :initial-element 0) 2020-05-13T15:28:00Z phoe: beach: most of the cases can be solved via :INITIAL-ELEMENT 2020-05-13T15:28:02Z phoe: yes, that 2020-05-13T15:28:02Z Bike: pve: probably less efficient than allocating the whole vector to begin with. 2020-05-13T15:28:19Z pve: Bike: yes 2020-05-13T15:28:21Z remix2000: phoe: mipsallegrexel-psp AKA Sony PSP :P 2020-05-13T15:28:44Z pjb: Let's just think about it, what is the meaning of repeating elements in a vector? 2020-05-13T15:29:29Z davepdot_ joined #lisp 2020-05-13T15:29:52Z phoe: remix2000: what the hell! nice 2020-05-13T15:30:06Z phoe: you could try CLISP, although your mileage may vary 2020-05-13T15:30:29Z Bike: can you not conditionalize out the tcp support in ecl? 2020-05-13T15:30:45Z Bike: i assume you don't want to actually use tcp 2020-05-13T15:31:43Z remix2000: Bike: No, I don't use TCP and haven't noticed conditional there. 2020-05-13T15:31:44Z dlowe: I don't think my format solution reiceved the attention it deserved :D 2020-05-13T15:31:45Z Bike: it looks like there's a WITH_TCP flag of some kind 2020-05-13T15:32:28Z Bike: jackdaniel is probably the person to ask 2020-05-13T15:33:33Z remix2000: Oh, found that flag. I incorrectly assumed that there would be a mention of it in tcp.d :D 2020-05-13T15:33:42Z karswell joined #lisp 2020-05-13T15:34:02Z Bike: and i don't think there's gonna be anything more "basic" in this sense than ECL 2020-05-13T15:34:24Z Bike: boehm not working sounds like a barrier 2020-05-13T15:34:29Z remix2000: OT: what is ECL made in? It says ".d" but for me it looks like C more that Dlang :P 2020-05-13T15:36:11Z beach: I believe it uses a heavily macro-ized C which is then expanded to C, but check with jackdaniel. 2020-05-13T15:36:31Z beach: It would be too tedious to write it in plain C. 2020-05-13T15:36:58Z Cymew quit (Ping timeout: 272 seconds) 2020-05-13T15:38:16Z rozenglass1 quit (Ping timeout: 256 seconds) 2020-05-13T15:38:49Z remix2000: Most likely. My compiler failing to expand them would explain one thing I though was an error: https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop/src/c/time.d#L64 2020-05-13T15:40:09Z _death: looks like a genuine error to me.. 2020-05-13T15:40:45Z rozenglass1 joined #lisp 2020-05-13T15:42:47Z jonatack joined #lisp 2020-05-13T15:42:59Z rutabaga joined #lisp 2020-05-13T15:43:26Z remix2000: There is a progress: now the blocker is https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop/src/c/unixint.d#L235 failing with "error: called object ‘signal’ is not a function or function pointer" and that one I genuinely have no idea how to solve :P 2020-05-13T15:43:58Z Bike: er, what? signal is not a function? 2020-05-13T15:44:28Z kpoeck: There is #ecl, perhaps better to ask there 2020-05-13T15:44:31Z phoe: you are compiling a file named unixint 2020-05-13T15:44:39Z Bike: yeah also that, is this actually a unix system? 2020-05-13T15:44:47Z phoe: it likely assumes you're compiling for a unixlike, which might not be the case for a playstation portable 2020-05-13T15:44:50Z Bike: signal is a standard C function, tho 2020-05-13T15:44:55Z davepdot_ quit (Remote host closed the connection) 2020-05-13T15:44:57Z Bike: so that's kind of a weird problem 2020-05-13T15:46:08Z remix2000: The funny part is that signal (as a function) works outside of ecl for me :P 2020-05-13T15:46:23Z phoe: remix2000: which header defines it? 2020-05-13T15:46:43Z Bike: i don't know what to tell you. maybe your compiler has been cursed by a witch. but yeah, #ecl might know more, i don't think any of us are ecl maintainers. 2020-05-13T15:46:59Z remix2000: signal.h of course (newlib has sys/signal.h as equivalent) 2020-05-13T15:47:26Z phoe: https://github.com/pspdev/newlib/blob/1fac24078a8c619d015a5e8d951c7d127f7c75f7/newlib/libc/signal/signal.c#L203 the function is there, so the compiler that builds ECL should pick it up 2020-05-13T15:47:32Z phoe: no idea where to go from here 2020-05-13T15:49:07Z _death: doubt that the compiler is pointing at line 235 with that error.. 2020-05-13T15:49:39Z kpoeck quit (Ping timeout: 245 seconds) 2020-05-13T15:50:40Z remix2000: _death: I was surprised with that behavior too, but it genuinely throws exactly that *error* on that very macro definition :O 2020-05-13T15:50:53Z terpri quit (Remote host closed the connection) 2020-05-13T15:51:12Z _death: strange 2020-05-13T15:51:18Z terpri joined #lisp 2020-05-13T15:55:16Z _death: could try to define it as a function 2020-05-13T15:55:33Z kpoeck joined #lisp 2020-05-13T15:57:53Z remix2000: Removing (x,y) on both sides worked. Now it does some implicit function declarations (likely from missing functions in c library). What a bummer that I'm not smart enough to fix it :< Okay, gotta try my luck with CLISP maybe and possibly return to ECL in case that works even worse... 2020-05-13T15:57:55Z jackdaniel: remix2000: you may disable most features in ./configure 2020-05-13T15:57:58Z jackdaniel: try ./conifgure --help 2020-05-13T15:58:41Z jackdaniel: as of ".d" file, it is input for dpp (our own preprocessor), which outputs C file with line annotations and some syntactic sugar 2020-05-13T15:58:54Z jackdaniel: like @"lisp string" 2020-05-13T15:59:50Z jmercouris: http://clhs.lisp.se/Body/f_rm_rm.htm#remove-if-not 2020-05-13T15:59:59Z jmercouris: says remove-if-not is deprecated 2020-05-13T16:00:03Z jmercouris: what does this mean? 2020-05-13T16:00:18Z jmercouris: it’ll be removed in subsequent releases? 2020-05-13T16:00:23Z beach: jmercouris: Ignore that. 2020-05-13T16:00:44Z jackdaniel: that means that you should avoid using it because it is included for backward compatibility with other lisps 2020-05-13T16:00:49Z _death: overzeal when defining complement 2020-05-13T16:01:05Z jmercouris: this is exactly about complement 2020-05-13T16:01:10Z jmercouris: how did you know lol 2020-05-13T16:01:52Z jmercouris: if they remove it in a subsequent lisp though, it would break so much code 2020-05-13T16:01:59Z beach: jmercouris: There will be no "subsequent release", 2020-05-13T16:02:03Z jmercouris: I don’t understand why they would remove things? 2020-05-13T16:02:18Z jmercouris: perhaps not in this universe, or in this lifetime :-D 2020-05-13T16:02:35Z jackdaniel: deprecated does not mean "to be removed", it means that you should not use it 2020-05-13T16:04:14Z Bike: they'd remove it because nominally you can accomplish the same task more cleanly using remove-if and complement. 2020-05-13T16:05:11Z _death: it could have a better name, like keep-if 2020-05-13T16:05:30Z jackdaniel: don't forget about keep-if-not! ,) 2020-05-13T16:05:57Z beach: _death: But then you could not distinguish between the destructive and the non-destructive versions. 2020-05-13T16:06:08Z jackdaniel: complement should be named ~, then it would not be so bothersome to write 2020-05-13T16:06:20Z jackdaniel: so, how about a new standard! it's clearly needed ;) 2020-05-13T16:06:36Z _death: beach: if remove has delete, keep it could have collect :) 2020-05-13T16:06:59Z jackdaniel: oh, word leitmotif is present in English 2020-05-13T16:07:27Z Bike: i probably would prefer keep-if to remove-if-not 2020-05-13T16:07:38Z smazga joined #lisp 2020-05-13T16:11:48Z bitmapper joined #lisp 2020-05-13T16:13:55Z phoe: wow 2020-05-13T16:13:56Z phoe: https://plaster.tymoon.eu/view/1823#1823 2020-05-13T16:14:03Z phoe: eclector is *amazing* 2020-05-13T16:14:06Z bitmapper: "The function SB-C::%MORE-ARG-CONTEXT is undefined." what 2020-05-13T16:14:07Z gko quit (Ping timeout: 246 seconds) 2020-05-13T16:14:20Z phoe: bitmapper: what did you do, and where is the stack trace 2020-05-13T16:14:52Z EvW quit (Ping timeout: 256 seconds) 2020-05-13T16:15:19Z remix2000: Wait wait, clisp is dead, right? Last version is from 2010... 2020-05-13T16:15:49Z phoe: remix2000: it's undead; it hasn't had a release for a decade, but it's maintained 2020-05-13T16:16:05Z phoe: you can pull the newest source from clnet gitlab and build it 2020-05-13T16:16:17Z bitmapper: phoe: a) Yale Haskell on sbcl 2020-05-13T16:16:37Z bitmapper: b) i cant look at the stack trace or i get brain hurt 2020-05-13T16:16:54Z bitmapper: because it's a mixture of scheme, haskell, and common lisp 2020-05-13T16:17:00Z phoe: bitmapper: we could try to do that though 2020-05-13T16:17:02Z Bike: have you considered that when you post something on irc, other people can read it, and maybe their brains won't hurt as much? 2020-05-13T16:17:06Z phoe: ^ 2020-05-13T16:17:10Z bitmapper: sure 2020-05-13T16:17:31Z Bike: because if you just post an error message without any context there's nothing we can do for you and it's pretty much just noise. 2020-05-13T16:17:41Z bitmapper: yeah i get that 2020-05-13T16:17:56Z phoe begins plotting a plot to get CCLDoc to use Eclector 2020-05-13T16:18:10Z bitmapper: https://gist.github.com/bitmappergit/45bfb42c6a71b143f5692ad3d39be552 2020-05-13T16:18:30Z beach: phoe: Nice! 2020-05-13T16:18:42Z phoe: which yale haskell source are you using? 2020-05-13T16:18:54Z bitmapper: the original, but i've heavily modified a lot of it 2020-05-13T16:18:58Z bitmapper: i'll put it up on git too 2020-05-13T16:19:04Z phoe: please do so, yes 2020-05-13T16:20:15Z davepdotorg joined #lisp 2020-05-13T16:20:36Z cantstanya quit (Write error: Connection reset by peer) 2020-05-13T16:20:38Z zooey quit (Remote host closed the connection) 2020-05-13T16:20:57Z phoe: beach: CCLDoc currently has a really ugly hack 2020-05-13T16:20:58Z zooey joined #lisp 2020-05-13T16:21:02Z jackdaniel: if I understand correctly someone got burned for using sbcl internal symbol 2020-05-13T16:21:05Z bitmapper: oh god i think it has to do with the fact that it defines the symbol "type" 2020-05-13T16:21:33Z phoe: if it doesn't find an external symbol in a package, it interns and exports it; if it doesn't find a package, it creates it 2020-05-13T16:21:39Z phoe: which is as ugly as it can get 2020-05-13T16:21:44Z phoe: and that's what I hope to fix with eclector 2020-05-13T16:21:49Z bitmapper: it's trying to use sb-int:index which is a type 2020-05-13T16:22:01Z phoe: bitmapper: let's see the source 2020-05-13T16:22:08Z bitmapper: im cleaning up the files 2020-05-13T16:22:51Z bitmapper: https://github.com/bitmappergit/yale-haskell-work 2020-05-13T16:22:53Z cantstanya joined #lisp 2020-05-13T16:23:03Z bitmapper: like an idiot i wasn't working in a git repo 2020-05-13T16:23:07Z bitmapper: :v 2020-05-13T16:24:04Z _death: you can at least copy your files over the original repo and commit that 2020-05-13T16:24:15Z bitmapper: was planning on doing that 2020-05-13T16:24:29Z ralt quit (Quit: Connection closed for inactivity) 2020-05-13T16:24:46Z davepdotorg quit (Ping timeout: 240 seconds) 2020-05-13T16:25:04Z phoe: so I understand that Yale Haskell has attempted to compile some Haskell to Scheme and then the Scheme gets translated into Lisp 2020-05-13T16:25:11Z bitmapper: yes 2020-05-13T16:25:18Z bitmapper: but it's not actually scheme 2020-05-13T16:25:37Z jackdaniel: naive folk would ask: but why? 2020-05-13T16:25:39Z phoe: and the generated source code, for whatever reason, tries to evaluate a form named (SB-C::%MORE-ARG-CONTEXT ...) 2020-05-13T16:25:44Z bitmapper: it's a lisp-2 2020-05-13T16:26:00Z _death: (sb-ext:unlock-package "CL") 2020-05-13T16:26:03Z _death: does not bid well 2020-05-13T16:26:14Z bitmapper: _death: it redefines the pretty print stuff and that's it 2020-05-13T16:26:17Z bitmapper: but also "type" 2020-05-13T16:26:20Z bitmapper: which is... 2020-05-13T16:26:20Z bitmapper: uhh 2020-05-13T16:26:25Z jackdaniel: (add-locak-package-nickname "my-cl" "cl") or something 2020-05-13T16:26:28Z bitmapper: it loads in CCL though! 2020-05-13T16:26:49Z _death: better do that in your own package, and shadow the stuff you want 2020-05-13T16:27:02Z bitmapper: it does actually do that 2020-05-13T16:27:13Z phoe: I ain't gonna touch it if it invokes UB 2020-05-13T16:27:31Z bitmapper: phoe: everything is undefined behaviour 2020-05-13T16:27:36Z phoe: bitmapper: no. 2020-05-13T16:27:42Z bitmapper: there's a fork that works on modern CLisp though 2020-05-13T16:27:50Z bitmapper: which i probably should have used as a base 2020-05-13T16:27:59Z bitmapper: and there's one that works on modern cmucl 2020-05-13T16:30:52Z cosimone_ joined #lisp 2020-05-13T16:31:55Z boeg: If i want to read the content of a file, and I know that there will always ever be only one line in the file, which is the line i want, and if there is more, i dont want them, how would I go about that? I don't want to take in to account that there might be more than one, I just want the very first line as a string (and nil if file is missing or line is missing). How would I do that? 2020-05-13T16:32:20Z rogersm quit (Quit: Leaving...) 2020-05-13T16:32:22Z cosimone quit (Read error: Connection reset by peer) 2020-05-13T16:32:24Z Bike: read-line? 2020-05-13T16:32:28Z boeg: when I say take into account, i mean looping over all lines, and taking the first one. I dont want that 2020-05-13T16:32:34Z mood: boeg: You can just open the file, read-line, close the file 2020-05-13T16:32:36Z Bike: i mean just call read-line once. 2020-05-13T16:32:44Z Bike: am i missing a complication? 2020-05-13T16:32:55Z boeg: nope, maybe its that simple 2020-05-13T16:32:59Z boeg: thanks, ill try it 2020-05-13T16:33:20Z ljavorsk joined #lisp 2020-05-13T16:36:09Z bitmapper: well nevermind 2020-05-13T16:36:11Z bitmapper: Yale Haskell Y2.0.5 Clozure Common Lisp version Version 1.12 (v1.12) DarwinX8664 on x86_64 2020-05-13T16:36:11Z bitmapper: Type :? for help. 2020-05-13T16:36:12Z bitmapper: Main> main = print "hello" 2020-05-13T16:36:13Z bitmapper: Main> :eval 2020-05-13T16:36:15Z bitmapper: Evaluating main. 2020-05-13T16:36:17Z bitmapper: "hello" 2020-05-13T16:36:19Z bitmapper: Main> 2020-05-13T16:36:21Z Bike: please don't dump multiple lines into chat 2020-05-13T16:36:22Z ChanServ has set mode +o phoe 2020-05-13T16:36:24Z bitmapper [~phoe@2001:19f0:5:689f:5400:2ff:fe77:b1de] has been kicked from #lisp by phoe (bitmapper) 2020-05-13T16:36:28Z ChanServ has set mode -o phoe 2020-05-13T16:36:36Z bitmapper joined #lisp 2020-05-13T16:37:11Z bitmapper: sorry about the multiple lines, i intended just to post the first 2020-05-13T16:37:19Z Bike: it happens 2020-05-13T16:37:25Z bitmapper: phoe: why'd you kick me though 2020-05-13T16:37:34Z phoe: didn't know if you'd post 7 or 70 lines 2020-05-13T16:37:47Z phoe: reacted as fast as I noticed 2020-05-13T16:37:48Z _death: maybe aimed at boeg's irc client 2020-05-13T16:37:53Z phoe: spam avoidance, and such 2020-05-13T16:37:56Z bitmapper: fair 2020-05-13T16:37:57Z _death: which only shows the first line 2020-05-13T16:40:33Z phoe: we have no yale haskell in quicklisp 2020-05-13T16:45:41Z boeg: _death: whats with my client? 2020-05-13T16:45:43Z bars0 joined #lisp 2020-05-13T16:45:52Z EvW1 joined #lisp 2020-05-13T16:47:35Z drainful- quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-13T16:47:50Z _death: nothing.. it was a joke 2020-05-13T16:48:02Z boeg: alright 2020-05-13T16:48:02Z drainful joined #lisp 2020-05-13T16:50:37Z devon quit (Ping timeout: 264 seconds) 2020-05-13T16:52:50Z PuercoPope joined #lisp 2020-05-13T16:52:59Z PuercoPope is now known as PuercoPop 2020-05-13T16:53:43Z Kundry_W_ joined #lisp 2020-05-13T16:53:48Z Kundry_Wag quit (Read error: Connection reset by peer) 2020-05-13T16:54:37Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-13T16:54:45Z phantomics joined #lisp 2020-05-13T16:56:46Z shangul quit (Ping timeout: 272 seconds) 2020-05-13T16:59:46Z scymtym quit (Ping timeout: 240 seconds) 2020-05-13T17:00:26Z natj212 quit (Ping timeout: 256 seconds) 2020-05-13T17:02:46Z drainful quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-13T17:03:13Z drainful joined #lisp 2020-05-13T17:03:51Z natj212 joined #lisp 2020-05-13T17:06:59Z davepdotorg joined #lisp 2020-05-13T17:10:16Z davepdotorg quit (Remote host closed the connection) 2020-05-13T17:12:22Z rgherdt quit (Ping timeout: 260 seconds) 2020-05-13T17:13:15Z bitmapper: is it possible to define an alternative name for a package 2020-05-13T17:13:16Z bitmapper: ? 2020-05-13T17:13:20Z bitmapper: like a synonym 2020-05-13T17:14:10Z Bike: a nickname, they're called 2020-05-13T17:14:21Z Bike: clhs package-nicknames 2020-05-13T17:14:21Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_pkg_ni.htm 2020-05-13T17:14:35Z Bike: well that's not very helpful 2020-05-13T17:14:41Z Bike: it's just a list of strings, though, any of which name the package 2020-05-13T17:15:01Z bitmapper: is it possible to make a nickname for an already existing package though 2020-05-13T17:15:12Z phoe: yes 2020-05-13T17:15:24Z phoe: via one of the ugliest functions in the CL standard: RENAME-PACKAGE 2020-05-13T17:15:30Z dyelar quit (Quit: Leaving.) 2020-05-13T17:15:40Z phoe: don't do that though; use package-local nicknames instead 2020-05-13T17:15:52Z phoe: they do not mutate the global state and therefore do not pollute the global namespace. 2020-05-13T17:17:09Z heisig: You don't have to use rename-package. The consequences of evaluating more than one defpackage form for a package are undefined - meaning in practice it will just update the existing package. 2020-05-13T17:17:10Z scymtym joined #lisp 2020-05-13T17:17:49Z heisig: So just add a nickname (or package local nickname) to your defpackage form and reevaluate it. 2020-05-13T17:17:58Z phoe: or that, if you are able to 2020-05-13T17:22:21Z Odin-: Assuming the implementation you're using hasn't chosen to invoke nasal demons. 2020-05-13T17:22:45Z Odin-: (Where's that term from, again? C?) 2020-05-13T17:22:49Z phoe: I would gladly have beach add this part to WSCL 2020-05-13T17:23:07Z phoe: so going C-c C-c on a DEFPACKAGE form actually becomes worthwhile in theory 2020-05-13T17:23:11Z phoe: as it is in practice 2020-05-13T17:24:34Z liberliver quit (Ping timeout: 240 seconds) 2020-05-13T17:26:00Z LdBeth: would there be any reason not to use `get` and `(setf get)`? 2020-05-13T17:27:10Z phoe: LdBeth: only use them if you get dynamic variable names passed to your at runtime 2020-05-13T17:27:17Z phoe: which is a relatively rare use case 2020-05-13T17:27:24Z bitmapper: ok i have no clue how to get this to stop setting TYPE as a global variable 2020-05-13T17:27:27Z phoe: (let ((x '*foo*)) (setf x :bar)) 2020-05-13T17:27:50Z phoe: bitmapper: re-lock the CL package and see where it attempts to do so 2020-05-13T17:27:54Z phoe: and then fix that place 2020-05-13T17:27:58Z bitmapper: good idea 2020-05-13T17:28:10Z phoe: it isn't that this is a good idea 2020-05-13T17:28:15Z phoe: it is that unlocking the CL package is a bad idea 2020-05-13T17:28:17Z bitmapper: yes 2020-05-13T17:28:24Z bitmapper: good idea is not unlocking it 2020-05-13T17:28:42Z _death: LdBeth: if you need a centralized place a hash table makes more sense.. otherwise there's no issue using them 2020-05-13T17:29:32Z phoe: uhhh wait 2020-05-13T17:29:34Z phoe: (let ((x '*foo*)) (set x :bar)) 2020-05-13T17:29:45Z phoe: there - I even have reflexes where I type SETF instead of SET :D 2020-05-13T17:29:45Z _death: phoe: SET is quite different from GET.. 2020-05-13T17:30:09Z phoe: _death: SET == SETF SYMBOL-VALUE 2020-05-13T17:30:15Z bitmapper: ugh i found it but renaming it would be an insane amount of effort 2020-05-13T17:30:36Z phoe: bitmapper: shadow the symbol then? 2020-05-13T17:30:49Z bars0 quit (Ping timeout: 264 seconds) 2020-05-13T17:30:50Z _death: phoe: and GET ~= (getf (symbol-plist symbol) 'xxx) 2020-05-13T17:30:51Z phoe: this way you will be setting FOO:TYPE instead of CL:TYPE 2020-05-13T17:31:06Z phoe: _death: wait 2020-05-13T17:31:10Z phoe: did I really... 2020-05-13T17:31:13Z phoe: yes, I read "get" as "set" 2020-05-13T17:31:19Z phoe goes to get an eye replacement 2020-05-13T17:31:20Z bitmapper: great, i forget how to do that 2020-05-13T17:31:28Z Bike: symbol-value should be renamed get, clearly 2020-05-13T17:31:49Z phoe: bitmapper: in the relevant DEFPACKAGE form where you (:use #:cl), add (:shadow #:type) 2020-05-13T17:32:02Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-13T17:33:07Z LdBeth: _death: ah, I think might could make use of CLOS instead 2020-05-13T17:33:46Z _death: LdBeth: sure 2020-05-13T17:33:46Z rabuf joined #lisp 2020-05-13T17:34:35Z rgherdt joined #lisp 2020-05-13T17:35:19Z _death: phoe: btw a neat trick with SET is when you defvar/defparameter in the repl, and notice you made a mistake.. (set * the-form-i-actually-meant) 2020-05-13T17:35:40Z phoe: _death: :D 2020-05-13T17:41:14Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-13T17:44:42Z abhixec quit (Ping timeout: 256 seconds) 2020-05-13T17:45:58Z terpri quit (Remote host closed the connection) 2020-05-13T17:46:21Z terpri joined #lisp 2020-05-13T17:47:55Z karlosz joined #lisp 2020-05-13T17:48:03Z orivej joined #lisp 2020-05-13T17:50:12Z davepdotorg joined #lisp 2020-05-13T17:50:35Z rpg joined #lisp 2020-05-13T17:50:58Z terpri quit (Remote host closed the connection) 2020-05-13T17:51:36Z Codaraxis_ quit (Quit: Leaving) 2020-05-13T17:51:38Z terpri joined #lisp 2020-05-13T17:52:33Z bars0 joined #lisp 2020-05-13T17:53:52Z efm quit (Read error: Connection reset by peer) 2020-05-13T17:54:19Z efm joined #lisp 2020-05-13T17:55:19Z davepdotorg quit (Ping timeout: 272 seconds) 2020-05-13T17:56:13Z milanj quit (Quit: This computer has gone to sleep) 2020-05-13T17:58:50Z RedMallet quit (Quit: WeeChat 2.6) 2020-05-13T17:59:01Z bars0 quit (Ping timeout: 264 seconds) 2020-05-13T18:03:25Z rand_t joined #lisp 2020-05-13T18:08:41Z akoana joined #lisp 2020-05-13T18:21:33Z dale joined #lisp 2020-05-13T18:26:02Z sauvin quit (Read error: Connection reset by peer) 2020-05-13T18:27:56Z kpoeck quit (Remote host closed the connection) 2020-05-13T18:29:59Z kpoeck joined #lisp 2020-05-13T18:38:30Z fanta1 quit (Quit: fanta1) 2020-05-13T18:39:46Z LdBeth: what is the format directive that ignores the white space between it and the newline before 2020-05-13T18:39:50Z Lycurgus joined #lisp 2020-05-13T18:40:42Z LdBeth: never mind, it's tilde newline I want 2020-05-13T18:42:54Z mikecheck joined #lisp 2020-05-13T18:44:01Z rand_t quit (Quit: rand_t) 2020-05-13T18:45:42Z Fare quit (Ping timeout: 272 seconds) 2020-05-13T18:48:07Z ravndal joined #lisp 2020-05-13T19:03:13Z orivej_ joined #lisp 2020-05-13T19:03:29Z orivej quit (Ping timeout: 256 seconds) 2020-05-13T19:06:07Z bars0 joined #lisp 2020-05-13T19:06:52Z Fare joined #lisp 2020-05-13T19:13:21Z karswell quit (Remote host closed the connection) 2020-05-13T19:14:38Z karswell joined #lisp 2020-05-13T19:15:02Z cantstanya quit (Remote host closed the connection) 2020-05-13T19:16:55Z cantstanya joined #lisp 2020-05-13T19:18:09Z Lycurgus quit (Read error: Connection reset by peer) 2020-05-13T19:26:16Z orivej_ quit (Ping timeout: 246 seconds) 2020-05-13T19:33:40Z Kundry_W_ quit (Remote host closed the connection) 2020-05-13T19:34:08Z Kundry_Wag joined #lisp 2020-05-13T19:48:22Z Lycurgus joined #lisp 2020-05-13T19:49:19Z bars0 quit (Quit: leaving) 2020-05-13T19:51:45Z davepdotorg joined #lisp 2020-05-13T19:56:12Z davepdotorg quit (Ping timeout: 260 seconds) 2020-05-13T19:56:45Z Lycurgus quit (Quit: Exeunt) 2020-05-13T19:58:03Z Bourne joined #lisp 2020-05-13T20:02:35Z efm quit (Quit: Konversation terminated!) 2020-05-13T20:04:03Z shangul joined #lisp 2020-05-13T20:04:52Z Posterdati quit (Ping timeout: 272 seconds) 2020-05-13T20:05:02Z heisig quit (Quit: Leaving) 2020-05-13T20:09:45Z sdumi quit (Read error: Connection reset by peer) 2020-05-13T20:10:27Z Fare quit (Ping timeout: 240 seconds) 2020-05-13T20:11:06Z Jesin quit (Quit: Leaving) 2020-05-13T20:11:09Z sdumi joined #lisp 2020-05-13T20:14:02Z Posterdati joined #lisp 2020-05-13T20:15:17Z Jesin joined #lisp 2020-05-13T20:20:16Z notzmv quit (Remote host closed the connection) 2020-05-13T20:21:21Z corpix_ joined #lisp 2020-05-13T20:21:46Z corpix quit (Quit: No Ping reply in 180 seconds.) 2020-05-13T20:22:59Z corpix_ quit (Remote host closed the connection) 2020-05-13T20:23:15Z corpix joined #lisp 2020-05-13T20:24:13Z notzmv joined #lisp 2020-05-13T20:24:30Z notzmv is now known as Guest60062 2020-05-13T20:29:49Z kingragworm joined #lisp 2020-05-13T20:31:48Z kingragworm quit (Remote host closed the connection) 2020-05-13T20:35:31Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-13T20:39:19Z narimiran quit (Ping timeout: 258 seconds) 2020-05-13T20:41:33Z jeosol quit (Remote host closed the connection) 2020-05-13T20:41:33Z kpoeck quit (Remote host closed the connection) 2020-05-13T20:42:01Z sputny[m] joined #lisp 2020-05-13T20:42:17Z kpoeck joined #lisp 2020-05-13T20:48:53Z terpri quit (Remote host closed the connection) 2020-05-13T20:49:56Z terpri joined #lisp 2020-05-13T20:53:26Z terpri quit (Remote host closed the connection) 2020-05-13T20:53:26Z SGASAU quit (Remote host closed the connection) 2020-05-13T20:53:50Z terpri joined #lisp 2020-05-13T20:54:05Z SGASAU joined #lisp 2020-05-13T20:55:21Z karayan quit (Ping timeout: 244 seconds) 2020-05-13T20:58:44Z pve quit (Quit: leaving) 2020-05-13T21:01:32Z rgherdt quit (Ping timeout: 260 seconds) 2020-05-13T21:01:54Z shangul quit (Ping timeout: 240 seconds) 2020-05-13T21:03:20Z kpoeck quit (Remote host closed the connection) 2020-05-13T21:03:29Z jeosol joined #lisp 2020-05-13T21:19:23Z asarch joined #lisp 2020-05-13T21:21:41Z rgherdt joined #lisp 2020-05-13T21:23:58Z Kundry_Wag quit (Read error: Connection reset by peer) 2020-05-13T21:24:02Z Kundry_W_ joined #lisp 2020-05-13T21:26:51Z rgherdt quit (Ping timeout: 272 seconds) 2020-05-13T21:29:41Z Lord_of_Life_ joined #lisp 2020-05-13T21:30:08Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-13T21:31:22Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-13T21:32:30Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-13T21:42:34Z nightfly quit (Ping timeout: 258 seconds) 2020-05-13T21:42:50Z SGASAU quit (Ping timeout: 265 seconds) 2020-05-13T21:42:50Z asarch quit (Quit: Leaving) 2020-05-13T21:48:55Z dalz quit (Remote host closed the connection) 2020-05-13T21:51:07Z gravicappa quit (Ping timeout: 260 seconds) 2020-05-13T21:53:49Z nightfly joined #lisp 2020-05-13T21:55:43Z rgherdt joined #lisp 2020-05-13T22:02:40Z rpg joined #lisp 2020-05-13T22:02:52Z Mawile joined #lisp 2020-05-13T22:03:03Z shifty joined #lisp 2020-05-13T22:04:08Z Mawile quit (Client Quit) 2020-05-13T22:04:25Z PuercoPop quit (Ping timeout: 258 seconds) 2020-05-13T22:05:52Z Lord_of_Life quit (Ping timeout: 246 seconds) 2020-05-13T22:05:57Z Archenoth quit (Ping timeout: 258 seconds) 2020-05-13T22:06:28Z Lord_of_Life joined #lisp 2020-05-13T22:06:44Z ayuce left #lisp 2020-05-13T22:07:06Z [df]_ quit (Ping timeout: 258 seconds) 2020-05-13T22:07:11Z SGASAU joined #lisp 2020-05-13T22:07:58Z [df] joined #lisp 2020-05-13T22:09:48Z jprajzne quit (Quit: jprajzne) 2020-05-13T22:10:14Z jprajzne joined #lisp 2020-05-13T22:14:19Z jprajzne quit (Client Quit) 2020-05-13T22:14:43Z jprajzne joined #lisp 2020-05-13T22:16:43Z SGASAU quit (Remote host closed the connection) 2020-05-13T22:17:25Z SGASAU joined #lisp 2020-05-13T22:27:43Z remix2000 quit (Quit: remix2000) 2020-05-13T22:28:00Z random-nick quit (Ping timeout: 272 seconds) 2020-05-13T22:30:29Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-13T22:34:02Z efm joined #lisp 2020-05-13T22:39:25Z ayuce joined #lisp 2020-05-13T22:43:36Z cosimone_ quit (Ping timeout: 256 seconds) 2020-05-13T22:51:24Z monokrom quit (Quit: Leaving) 2020-05-13T23:00:03Z lacroixboy_ quit (Read error: Connection reset by peer) 2020-05-13T23:05:23Z ralt joined #lisp 2020-05-13T23:05:37Z wxie joined #lisp 2020-05-13T23:06:58Z whiteline_ quit (Remote host closed the connection) 2020-05-13T23:07:27Z whiteline_ joined #lisp 2020-05-13T23:10:55Z ayuce quit (Read error: Connection reset by peer) 2020-05-13T23:16:29Z solrize joined #lisp 2020-05-13T23:16:42Z solrize: what's the purpose of using LABELS or FLET, instead of just nesting defuns like in scheme? 2020-05-13T23:17:09Z solrize: and what's the practical difference between LABELS and FLET ? 2020-05-13T23:19:25Z pjb: solrize: defun doesn't define lexically bound functions. It defines global functions. Therefore nesting defuns doesn't do anything useful. 2020-05-13T23:20:12Z pjb: solrize: it only defers the definition of the inner defuns to run-time, which makes that those functions are unknown at compilation-time, possibly not compiled, and thus leads to compilation-time warnings (undefined functions), and run-time performance problems. 2020-05-13T23:20:52Z Odin-: The practical difference between labels and flet is in when the scope of the functions kicks in, similar to the difference between let and let*. 2020-05-13T23:21:09Z Odin-: Unless I'm completely misremembering, which is possible. 2020-05-13T23:21:19Z pjb: solrize: note that certain rules in CL are present to let CL compiler generate efficient code for function calls. This would be made impossible by the use of run-time defined functions. 2020-05-13T23:21:29Z solrize: (defun ss (a b) 2020-05-13T23:21:29Z solrize: (defun sq (n) (* n n)) 2020-05-13T23:21:29Z solrize: (+ (sq a) (sq b))) 2020-05-13T23:21:35Z solrize: doesn't seem to leave a global definition of sq around 2020-05-13T23:21:38Z pjb: warning unknown function sq! 2020-05-13T23:21:46Z pjb: exactly. 2020-05-13T23:21:51Z mikecheck quit (Remote host closed the connection) 2020-05-13T23:22:06Z no-defun-allowed: Yes, you can't nest defuns like that. 2020-05-13T23:22:18Z solrize: i just did in clisp, it worked fine ? 2020-05-13T23:22:20Z pjb: and if you call (ss 1 2), sq is defined globally. 2020-05-13T23:22:32Z no-defun-allowed: If you want local functions, use FLET or LABELS. 2020-05-13T23:23:12Z solrize: oh i see, yeah it went and defined sq as a function 2020-05-13T23:23:23Z pjb: solrize: there's a difference between working fine and doing what you expect. 2020-05-13T23:23:39Z pjb: solrize: most lisp forms will do something. 2020-05-13T23:23:47Z no-defun-allowed: What will happen in your function is that calling SS will define the function SQ at runtime. 2020-05-13T23:23:53Z solrize: i got confused because i typed "sq" and said "variable sq has no value" and i said aha, sq is undefined like i wanted ;) 2020-05-13T23:24:05Z pjb: solrize: also, it will redefine sq again, when you call it again. 2020-05-13T23:24:09Z solrize: because i didn't notice the function binding was there when the value binding wasn't 2020-05-13T23:24:15Z solrize: yeah i get it now 2020-05-13T23:24:19Z solrize: lisp-2 ;O 2020-05-13T23:24:23Z solrize: thanks 2020-05-13T23:24:27Z pjb: (function sq) #| ERROR: Undefined function: sq |# (ss 1 2) #| --> 5 |# (sq 3) #| --> 9 |# 2020-05-13T23:24:30Z no-defun-allowed: If a compiler were to look at that, it would not be informed that you are defining a function called SQ and subsequently warns you. 2020-05-13T23:24:32Z Odin-: More than that, actually. 2020-05-13T23:24:40Z pjb: So in loops it would be catastrophic. 2020-05-13T23:24:41Z solrize: #'sq 2020-05-13T23:24:52Z Odin-: defun doesn't do any of the "it's a function" magic. 2020-05-13T23:24:56Z Odin-: Not really. 2020-05-13T23:25:01Z no-defun-allowed: Try (defun ss (a b) (flet ((sq (n) (* n n))) (+ (sq a) (sq b)))) 2020-05-13T23:25:03Z Odin-: It's just a macro. 2020-05-13T23:25:09Z solrize: right 2020-05-13T23:25:58Z Odin-: So I guess in that sense flet and labels are "more fundamental". :p 2020-05-13T23:27:00Z solrize: i'm a little more used to scheme but this makes sense 2020-05-13T23:27:47Z White_Flame: solrize: fundamentally, it's purely a syntactic thing. Nested functions are different behavior than toplevel functions. Whether they share the name (define) or not (labels/flet) is purely surface level 2020-05-13T23:28:13Z White_Flame: also there's certainly some lisp-1 vs lisp-2 involved as well 2020-05-13T23:28:15Z tinga quit (Remote host closed the connection) 2020-05-13T23:28:32Z ralt: luis: good morning, are you around? 2020-05-13T23:29:15Z solrize: White_Flame, i got confused because i typed "sq" and saw "undefined" and thought "ah good, the binding was local" when i had overlooked the fbinding, that's all that happened 2020-05-13T23:29:17Z solrize: brb 2020-05-13T23:29:23Z pjb: basically, it's in the syntax of begin that you can use define to define stuff in its scope. But this must be extended to the fact that lambda and other operations contain an implicit begin. 2020-05-13T23:29:25Z tinga joined #lisp 2020-05-13T23:29:39Z White_Flame: yeah, that's the lisp-1 vs lisp-2 part ;) 2020-05-13T23:30:02Z Guest60062 is now known as notzmv 2020-05-13T23:30:08Z White_Flame: but, CL could easily have reused the DEFUN symbol for defining local functions, too, is all I'm saying 2020-05-13T23:30:09Z pjb: Similarly, in CL, you could write a set of macro, possibly named by symbols named "DEFUN", "LAMBDA", "PROGN", etc to allow the use of DEFUN forms inside and replace them by LABELS. 2020-05-13T23:30:20Z pjb: Or you could just use labels or flet. 2020-05-13T23:30:27Z White_Flame: the semantics would be the same (though flet/labels difference in parallelism would have to be expressed) 2020-05-13T23:30:29Z Odin- is so superficial that he keeps getting tripped up by not being able to call a short-term variable "list" in Lisp-1s. 2020-05-13T23:31:52Z White_Flame is so superficial he can't stand excessive commas, semicolons, etc of non-lisp-family languages 2020-05-13T23:37:33Z buffergn0me joined #lisp 2020-05-13T23:39:31Z aeth: I think I'm going to make a Lisp-3 at some point. (Lisp-3 is a better name than Lisp-2, although Lisp-6 is most accurate for CL. There are three namespaces that matter all of the time: variable, function, and type/class.) 2020-05-13T23:40:38Z buffergn0me: Lisp-∞ 2020-05-13T23:41:31Z aeth: I mean, yes, any language with macros is technically a Lisp-infinity, not just a Lisp-n. Especially something like CL, where you would expect different namespaces. You can create your own namespaces for your own macros with hash-tables, perhaps tied with symbol-macrolet to further mask it. 2020-05-13T23:41:46Z solrize: heh 2020-05-13T23:41:49Z buffergn0me: Does anyone know another way to reach Vsevolod Dyomkin? I am trying to buy a printed version of his new book, and Paypal keep showing me an error. I sent him an email a few days ago, but it probably went to spam 2020-05-13T23:44:56Z buffergn0me: Scheme only seems to be a Lisp-1 because the special forms like APPLY treat it like one. Anyone can introduce an extra namespace there, because symbols are first-class values. 2020-05-13T23:46:00Z solrize: is there an equivalent of takewhile, dropwhile, groups, etc. ? 2020-05-13T23:46:28Z buffergn0me: solrize: Where do those come from? 2020-05-13T23:46:50Z solrize: originally from ML, i think. scheme has a srfi for them, haskell and python have them, etc 2020-05-13T23:48:19Z aeth: buffergn0me: Additionally, Scheme only specifies type predicates like number? rather than types themselves, so if any Scheme had a CL-like DEFTYPE, then it would technically be a "Lisp-2" with (at least) two namespaces, even though it wouldn't have the function/variable namespace distinction. 2020-05-13T23:50:15Z Bike: you could define types as predicates. 2020-05-13T23:51:11Z aeth: Bike: Are you talking about SATISFIES types in CL? Yes, but they're inefficient and afaik unable to be checked ahead of runtime, so it's probably better to go the other way around, and specify type predicates via TYPEP. 2020-05-13T23:51:16Z carleos joined #lisp 2020-05-13T23:51:29Z Bike: no, i'm talking about how scheme could have a complex type system like CL's 2020-05-13T23:51:42Z Bike: without adding a namespace 2020-05-13T23:51:56Z aeth: By having the types share the type predicate's name? I guess. 2020-05-13T23:52:02Z buffergn0me: solrize: You would have to look in an iterator library. None made it into the standard, two were proposed (SERIES and generators) 2020-05-13T23:52:12Z solrize: aha thanks 2020-05-13T23:53:12Z ralt: solrize: I'd say ITERATE is the current trendy library for those? 2020-05-13T23:53:26Z davepdotorg joined #lisp 2020-05-13T23:53:32Z aeth: Bike: Something like this, I guess. (define-type positive-integer? () `(integer 1 *)) 2020-05-13T23:53:56Z solrize: ralt, thanks, i think i'm going to try this without lists. i'm trying an exercise i found on comp.lang.lisp 2020-05-13T23:55:09Z ralt: good luck. 2020-05-13T23:55:12Z buffergn0me: aeth: That is assuming those nefarious Schemers would not define types as some other opaque objects, and then have you put them as values into variables. Problem solved! 2020-05-13T23:59:08Z davepdotorg quit (Ping timeout: 265 seconds) 2020-05-13T23:59:55Z rpg joined #lisp 2020-05-14T00:07:06Z solrize: is there something like setf that destructures a list? like (destructuring-setf (a b) (1 2)) sets a to 1 and b to 2 2020-05-14T00:07:21Z solrize: destructuring-bind makes temporary bindings 2020-05-14T00:07:52Z solrize: i guess i can use it though, and set from the values 2020-05-14T00:08:25Z Bike: and hide it in a macro if you want 2020-05-14T00:08:33Z Bike: but there's no standard operator, no 2020-05-14T00:10:27Z solrize: thanks. emacs lisp-mode doesn't seem to understand destructuring-bind so it indents the stuff inside it way too much. but that's ok 2020-05-14T00:11:08Z solrize: i'll post the whole code once i'm done if you guys are willing to look at it 2020-05-14T00:15:16Z Bike: you could (setf (values a b) (values-list list)), too, probably 2020-05-14T00:15:40Z solrize: oh i didn't know about values, let me look that up. thanks 2020-05-14T00:21:52Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-14T00:26:44Z buffergn0me: solrize: Weird. Mine indents destructuring-bind normally even with lisp-indent-function being the default 'lisp-indent-function. Emacs 26.2 2020-05-14T00:28:01Z solrize: buffergn0me, i expect your emacs and mine do the same thing 2020-05-14T00:28:25Z solrize: (destructuring-bind (a b) (2 3) 2020-05-14T00:28:25Z solrize: (+ a b)) 2020-05-14T00:28:40Z solrize: i hopd that the (+ a b) would be indented less 2020-05-14T00:28:40Z dddddd quit (Ping timeout: 256 seconds) 2020-05-14T00:28:46Z solrize: *hoped 2020-05-14T00:29:11Z aeth: solrize: it should be, do you have SLIME? SLIME will indent it properly, but maybe only if SLIME is loaded so it knows it's a &body form 2020-05-14T00:29:16Z aeth: SLIME indents &body differently than &rest 2020-05-14T00:29:32Z aeth: and since that's an &body instead of an &rest (in most implementations, at least) then that will be correctly indented, unless the implementation used &rest 2020-05-14T00:29:44Z solrize: i should probably use slime... i've hard of it 2020-05-14T00:29:47Z solrize: heard 2020-05-14T00:31:31Z solrize: hmm it's not in melpa? 2020-05-14T00:32:21Z aeth: it is, and I have it installed through Emacs's package manager, I think. 2020-05-14T00:32:36Z solrize: looking again thanks 2020-05-14T00:32:58Z aeth: https://melpa.org/#/slime 2020-05-14T00:34:24Z solrize: yeah i see it there, i'm figuring out why my emacs isn't finding it 2020-05-14T00:35:37Z EvW1 quit (Ping timeout: 260 seconds) 2020-05-14T00:36:39Z buffergn0me: solrize: What is your Emacs version? 2020-05-14T00:36:53Z buffergn0me: The standard lisp-mode than comes with 26.2 does the correct indentation 2020-05-14T00:36:59Z solrize: 26.1 2020-05-14T00:40:33Z solrize: had to refresh package-list. hmm slime is an available obsolete package. 2020-05-14T00:42:20Z buffergn0me: You know what? It does not. I have SLIME minor mode and it does something to override lisp-indent-function in a very sneaky and probably bad way. 2020-05-14T00:42:58Z terpri quit (Remote host closed the connection) 2020-05-14T00:43:03Z solrize: slime indents destructuring-bind better but isn't communicating with inferior-lisp properly... looking into it 2020-05-14T00:43:59Z terpri joined #lisp 2020-05-14T00:44:23Z terpri quit (Remote host closed the connection) 2020-05-14T00:45:04Z terpri joined #lisp 2020-05-14T00:45:33Z buffergn0me: solrize: You can add the MELPA package repository to get more recent versions of SLIME and other Emacs packages, here is what I do: https://oneofus.la/files/melpa.el 2020-05-14T00:45:51Z nicktick joined #lisp 2020-05-14T00:46:09Z nicktick quit (Changing host) 2020-05-14T00:46:09Z nicktick joined #lisp 2020-05-14T00:46:32Z solrize: hmm ok thanks, meanwhile using older version and investigating how to connect it to inferior lisp... it seems to want to connect to a socket 2020-05-14T00:47:04Z pjb: solrize: how do you call a number 2020-05-14T00:47:04Z pjb: ? 2020-05-14T00:47:22Z solrize: pjb what do you mean? 2020-05-14T00:47:30Z pjb: (2 3) is not a valid form. 2020-05-14T00:47:39Z solrize: '(2 3) sorry 2020-05-14T00:47:44Z pjb: ok. 2020-05-14T00:47:56Z solrize: was looking at the indentation not what happens when you execute it 2020-05-14T00:48:16Z solrize: it's a perfectly valid s-expression, just don't try to run it 2020-05-14T00:48:32Z pjb: solrize: indentation may be shifted when the form is invalid. Perhaps not in this case, but it happens (purposefully). 2020-05-14T00:55:46Z wxie quit (Ping timeout: 258 seconds) 2020-05-14T00:56:26Z shifty quit (Ping timeout: 256 seconds) 2020-05-14T01:00:19Z _whitelogger quit (Read error: Connection reset by peer) 2020-05-14T01:03:57Z karayan joined #lisp 2020-05-14T01:04:01Z zaquest quit (Quit: Leaving) 2020-05-14T01:05:15Z _whitelogger joined #lisp 2020-05-14T01:05:42Z bitmapper quit (Ping timeout: 272 seconds) 2020-05-14T01:09:15Z zaquest joined #lisp 2020-05-14T01:12:57Z buffergn0me quit (Ping timeout: 260 seconds) 2020-05-14T01:22:42Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-14T01:24:23Z wxie joined #lisp 2020-05-14T01:26:51Z yyyyyy joined #lisp 2020-05-14T01:27:02Z SGASAU quit (Remote host closed the connection) 2020-05-14T01:27:39Z SGASAU joined #lisp 2020-05-14T01:30:05Z karswell quit (Read error: Connection reset by peer) 2020-05-14T01:33:25Z Fare joined #lisp 2020-05-14T01:41:24Z Kundry_W_ quit (Remote host closed the connection) 2020-05-14T01:47:39Z buffergn0me joined #lisp 2020-05-14T01:51:13Z SGASAU quit (Remote host closed the connection) 2020-05-14T01:51:35Z orivej joined #lisp 2020-05-14T01:52:12Z SGASAU joined #lisp 2020-05-14T01:56:48Z SGASAU quit (Remote host closed the connection) 2020-05-14T01:56:55Z kark joined #lisp 2020-05-14T01:57:30Z SGASAU joined #lisp 2020-05-14T02:04:52Z yyyyyy quit (Ping timeout: 260 seconds) 2020-05-14T02:10:02Z nicktick quit (Remote host closed the connection) 2020-05-14T02:10:31Z Fare quit (Ping timeout: 244 seconds) 2020-05-14T02:11:33Z wxie quit (Ping timeout: 244 seconds) 2020-05-14T02:18:25Z Lycurgus joined #lisp 2020-05-14T02:21:16Z Kundry_Wag joined #lisp 2020-05-14T02:21:24Z Kundry_Wag quit (Remote host closed the connection) 2020-05-14T02:21:36Z pjb` joined #lisp 2020-05-14T02:21:37Z Kundry_Wag joined #lisp 2020-05-14T02:22:22Z pjb quit (Ping timeout: 260 seconds) 2020-05-14T02:23:41Z pjb` quit (Client Quit) 2020-05-14T02:24:04Z pjb joined #lisp 2020-05-14T02:26:46Z ralt quit (Quit: Connection closed for inactivity) 2020-05-14T02:27:45Z nicktick joined #lisp 2020-05-14T02:35:26Z turona quit (Ping timeout: 265 seconds) 2020-05-14T02:36:18Z davepdotorg joined #lisp 2020-05-14T02:37:12Z turona joined #lisp 2020-05-14T02:37:59Z Lycurgus quit (Remote host closed the connection) 2020-05-14T02:39:18Z pjb quit (Ping timeout: 265 seconds) 2020-05-14T02:42:56Z pjb joined #lisp 2020-05-14T02:46:24Z carleos quit (Ping timeout: 272 seconds) 2020-05-14T02:48:45Z buffergn0me quit (Ping timeout: 244 seconds) 2020-05-14T02:55:57Z shifty joined #lisp 2020-05-14T02:56:32Z toorevitimirp joined #lisp 2020-05-14T03:01:08Z beach: Good morning everyone! 2020-05-14T03:01:52Z epony quit (Quit: reconf) 2020-05-14T03:05:40Z epony joined #lisp 2020-05-14T03:12:02Z _whitelogger quit (Remote host closed the connection) 2020-05-14T03:13:22Z gendl: morning beach. 2020-05-14T03:13:22Z gendl: and with that.... good night! 2020-05-14T03:14:15Z _whitelogger joined #lisp 2020-05-14T03:18:58Z terpri quit (Remote host closed the connection) 2020-05-14T03:19:17Z terpri joined #lisp 2020-05-14T03:22:52Z davepdotorg quit (Ping timeout: 256 seconds) 2020-05-14T03:23:29Z Bike quit (Quit: sleep) 2020-05-14T03:26:13Z Kundry_Wag quit (Remote host closed the connection) 2020-05-14T03:37:25Z Bourne quit (Ping timeout: 264 seconds) 2020-05-14T03:42:36Z Kundry_Wag joined #lisp 2020-05-14T03:44:00Z akoana left #lisp 2020-05-14T03:46:54Z Kundry_Wag quit (Ping timeout: 240 seconds) 2020-05-14T03:47:19Z solrize: pjb yeah, slime is indenting better than lisp mode... i've been hacking away at this and also dealing with some distractions here but thanks 2020-05-14T03:48:42Z _whitelogger quit (Ping timeout: 260 seconds) 2020-05-14T03:55:21Z beach: solrize: Make sure you use the slime-indentation contribution. Otherwise, your LOOP clauses will not be indented correctly. 2020-05-14T03:56:07Z SGASAU quit (Remote host closed the connection) 2020-05-14T03:56:16Z _whitelogger joined #lisp 2020-05-14T03:56:49Z SGASAU joined #lisp 2020-05-14T03:57:09Z solrize: beach, ok though atm i'm not using LOOP and i generally have avoided it so far 2020-05-14T03:57:21Z beach: You should not avoid it. 2020-05-14T04:00:00Z solrize: to iterate is human; to recurse, divine ;) 2020-05-14T04:00:38Z beach: Only of you have to, like for trees and stuff. For linear structures you absolutely should not use recursion in Common Lisp. 2020-05-14T04:01:13Z solrize: what about e.g. "while" ? 2020-05-14T04:01:22Z beach: What about it? 2020-05-14T04:01:30Z solrize: instead of loop 2020-05-14T04:01:56Z beach: I don't understand. (loop while do
*) 2020-05-14T04:03:19Z solrize: oh there is no function while 2020-05-14T04:03:49Z beach: No, and there couldn't be. It would have to be a macro or a special operator, not a function. 2020-05-14T04:05:13Z solrize: well there is no while builtin like the one in emacs lisp or in scheme 2020-05-14T04:05:53Z solrize: so loop while is how that's done 2020-05-14T04:06:09Z beach: LOOP is the preferred iteration mechanism and it can handle many typical looping constructs, including WHILE. 2020-05-14T04:06:54Z solrize: yeah it just adds a lot of syntactic hair that lisp mostly avoids 2020-05-14T04:07:29Z beach: What? 2020-05-14T04:08:35Z solrize: generally lisp avoids having complicated syntax.... LOOP is an exception to that 2020-05-14T04:09:23Z beach: Yes, but I would not qualify that as "syntactic hair". It is a highly convenient macro. 2020-05-14T04:10:10Z solrize: i will have to read about it, just changing my "while" to "loop while" is throwing errors 2020-05-14T04:10:47Z beach: Errors are not "thrown" in Common Lisp. They are "signaled". THROW is an operator that does something entirely different. 2020-05-14T04:11:06Z beach: (loop while do ) should work. 2020-05-14T04:11:57Z solrize: oh i see, i needed "do" 2020-05-14T04:12:05Z solrize: thanks 2020-05-14T04:12:58Z karlosz quit (Quit: karlosz) 2020-05-14T04:13:03Z beach: Anytime! 2020-05-14T04:13:49Z karlosz joined #lisp 2020-05-14T04:14:13Z Fare joined #lisp 2020-05-14T04:16:18Z wxie joined #lisp 2020-05-14T04:19:51Z Kundry_Wag joined #lisp 2020-05-14T04:24:29Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-14T04:27:54Z patlv quit (Quit: patlv) 2020-05-14T04:35:37Z pjb quit (Ping timeout: 272 seconds) 2020-05-14T04:37:21Z solrize: ok here's the problem i'm messing with: https://groups.google.com/forum/message/raw?msg=comp.lang.lisp/Jvrp-MYaRLg/GHyx5KarAAAJ 2020-05-14T04:37:36Z solrize: here's my solution: https://kate.hackyon.org/~phr/bellied.lisp 2020-05-14T04:37:58Z terpri_ joined #lisp 2020-05-14T04:38:46Z solrize: any thoughts? 2020-05-14T04:39:07Z terpri quit (Ping timeout: 240 seconds) 2020-05-14T04:41:21Z beach: Is n-max the same in each iteration? 2020-05-14T04:41:53Z beach: If so, there is no point in passing it as an argument. 2020-05-14T04:42:51Z beach: And the entire recursive function looks like it would be better expressed with iteration. 2020-05-14T04:44:21Z beach: Some stylistic problems: LOOP keywords should usually be first on a line. 2020-05-14T04:44:45Z beach: BELLIED looks like a predicate. Predicates are usually named with a `p' at the end. 2020-05-14T04:45:01Z beach: So BELLIEDP I guess. 2020-05-14T04:45:18Z solrize: the recursive version is axel's 2020-05-14T04:45:23Z solrize: i.e. the one in google groups 2020-05-14T04:45:27Z beach: I don't know Axel. 2020-05-14T04:45:48Z beach: I take it you are not Axel, then? 2020-05-14T04:45:54Z solrize: axel made the google group posting with some different versions of the function and asked for suggestions 2020-05-14T04:45:57Z solrize: my version is https://kate.hackyon.org/~phr/bellied.lisp this one is mine 2020-05-14T04:46:13Z beach: Got it. 2020-05-14T04:46:14Z solrize: i'll change bellied to bellied-p 2020-05-14T04:46:38Z solrize: changed 2020-05-14T04:47:00Z beach: OK, more stylistic things: An IF without an `else' clause is better expressed with WHEN. 2020-05-14T04:47:24Z beach: No need to have a newline after SETF. Vertical space is a precious resource. 2020-05-14T04:48:32Z solrize: you mean where i set the two components of current? 2020-05-14T04:48:51Z solrize: (setf (run-start current) i (run-length current) 0) 2020-05-14T04:48:52Z beach: Yes. 2020-05-14T04:49:15Z solrize: is there a way to set both components other than a new make-run ? 2020-05-14T04:49:21Z solrize: and is that preferable? 2020-05-14T04:49:48Z solrize: yeah i went and di that 2020-05-14T04:49:58Z solrize: keep the gc from getting bored :) 2020-05-14T04:50:01Z solrize: s/di/did/ 2020-05-14T04:50:32Z wxie quit (Ping timeout: 272 seconds) 2020-05-14T04:50:41Z beach: Hard to say. I don't think I would have bothered with a struct here. But I don't understand the problem. I am just reading the code superficially. 2020-05-14T04:51:03Z solrize: yeah the struct means using 2 variables instead of 4 2020-05-14T04:51:09Z solrize: i figured that keeps stuff cleaner 2020-05-14T04:51:13Z solrize: new version https://kate.hackyon.org/~phr/bellied.lisp 2020-05-14T04:51:54Z beach: You should put the DO LOOP keyword first on the line before (IF. 2020-05-14T04:52:44Z solrize: you mean DO (IF ... ) ? 2020-05-14T04:53:03Z beach: Yes, and it should be indented so that it is aligned with FOR. 2020-05-14T04:53:27Z beach: But SLIME will do that for you if you have the slime-indentation contribution. 2020-05-14T04:53:35Z solrize: https://kate.hackyon.org/~phr/bellied.lisp ok 2020-05-14T04:53:53Z beach: Looks good. 2020-05-14T04:54:05Z solrize: thanks! 2020-05-14T04:54:06Z beach: Oh, no need for newline after PROGN either. 2020-05-14T04:54:20Z heisig joined #lisp 2020-05-14T04:54:42Z solrize: ok 2020-05-14T04:55:01Z beach: Sorry, I need to go. I trust that other #lisp participants will help you if you need it. 2020-05-14T04:55:10Z solrize: thanks very much 2020-05-14T04:55:13Z solrize: i'll post that version 2020-05-14T05:01:56Z solrize: https://kate.hackyon.org/~phr/bellied.hs here's my haskell version 2020-05-14T05:06:46Z buffergn0me joined #lisp 2020-05-14T05:10:03Z davepdotorg joined #lisp 2020-05-14T05:10:21Z abhixec joined #lisp 2020-05-14T05:12:35Z pjb joined #lisp 2020-05-14T05:12:41Z SGASAU` joined #lisp 2020-05-14T05:14:19Z ArthurStrong quit (Quit: leaving) 2020-05-14T05:14:53Z davepdotorg quit (Ping timeout: 272 seconds) 2020-05-14T05:15:34Z yankM quit (Ping timeout: 240 seconds) 2020-05-14T05:15:49Z SGASAU quit (Ping timeout: 264 seconds) 2020-05-14T05:18:53Z terpri_ quit (Remote host closed the connection) 2020-05-14T05:19:21Z terpri_ joined #lisp 2020-05-14T05:19:40Z Necktwi joined #lisp 2020-05-14T05:23:22Z sauvin joined #lisp 2020-05-14T05:24:06Z shifty quit (Ping timeout: 258 seconds) 2020-05-14T05:28:44Z narimiran joined #lisp 2020-05-14T05:35:36Z toorevitimirp quit (Ping timeout: 258 seconds) 2020-05-14T05:37:51Z Archenoth joined #lisp 2020-05-14T05:39:51Z gravicappa joined #lisp 2020-05-14T05:40:00Z Fare quit (Quit: Leaving) 2020-05-14T05:41:53Z terpri_ quit (Remote host closed the connection) 2020-05-14T05:42:19Z terpri_ joined #lisp 2020-05-14T05:46:50Z pjb quit (Ping timeout: 265 seconds) 2020-05-14T05:53:06Z luis: beach: we've recently added slime-indentation to slime-fancy and made slime-fancy the default so it should be on for most people these days 2020-05-14T05:56:54Z frgo_ quit (Read error: Connection reset by peer) 2020-05-14T06:00:43Z JohnMS_WORK joined #lisp 2020-05-14T06:01:16Z orivej_ joined #lisp 2020-05-14T06:01:32Z orivej quit (Ping timeout: 256 seconds) 2020-05-14T06:05:01Z dale quit (Quit: My computer has gone to sleep) 2020-05-14T06:08:02Z beach: luis: Oh, good to know! Thanks! 2020-05-14T06:14:51Z yyyyyy joined #lisp 2020-05-14T06:34:24Z xantoz quit (Ping timeout: 272 seconds) 2020-05-14T06:35:12Z xantoz joined #lisp 2020-05-14T06:43:17Z random-nick joined #lisp 2020-05-14T06:51:55Z Necktwi quit (Ping timeout: 246 seconds) 2020-05-14T06:56:44Z Kundry_Wag joined #lisp 2020-05-14T06:58:58Z Necktwi joined #lisp 2020-05-14T07:03:49Z Kundry_Wag quit (Ping timeout: 264 seconds) 2020-05-14T07:05:57Z dalz joined #lisp 2020-05-14T07:06:31Z remix2000 joined #lisp 2020-05-14T07:06:40Z varjag joined #lisp 2020-05-14T07:11:38Z davepdotorg joined #lisp 2020-05-14T07:16:15Z davepdotorg quit (Ping timeout: 265 seconds) 2020-05-14T07:16:17Z SGASAU` quit (Remote host closed the connection) 2020-05-14T07:16:57Z SGASAU` joined #lisp 2020-05-14T07:20:55Z ljavorsk joined #lisp 2020-05-14T07:22:23Z solrize: is there a way to set the maximum stack depth? in clisp if that matters i don't see anything about it on clisp.org 2020-05-14T07:22:49Z no-defun-allowed: I don't believe so, but what are you doing that blows the stack? 2020-05-14T07:24:57Z pve joined #lisp 2020-05-14T07:25:19Z wxie1 joined #lisp 2020-05-14T07:27:50Z ralt joined #lisp 2020-05-14T07:29:43Z solrize: someone wrote a tail recursive function that clisp doesn't optimize 2020-05-14T07:30:17Z no-defun-allowed: What function? 2020-05-14T07:30:42Z beach: Tail recursion is usually a bad idea compared to iteration. 2020-05-14T07:31:18Z beach: solrize: But if you really want to execute it, use a different Common Lisp implementation that optimizes tail calls. 2020-05-14T07:31:28Z solrize: https://kate.hackyon.org/~phr/bellied.lisp yeah it's the one that the guy posted on comp.lang.lisp 2020-05-14T07:31:37Z solrize: this is the same thing as earlier 2020-05-14T07:31:47Z solrize: bellied-checker-helper 2020-05-14T07:32:03Z beach: Why do you want to execute it? You made a better version. 2020-05-14T07:32:09Z Kundry_Wag joined #lisp 2020-05-14T07:33:33Z solrize: just trying it out 2020-05-14T07:33:37Z no-defun-allowed: You could rewrite that as a loop, but if you're lazy, (compile 'bellied-checker) will compile that function and hopefully perform the tail call elimination. 2020-05-14T07:33:37Z solrize: it works in sbcl 2020-05-14T07:33:58Z phoe: Common Lisp implementations do not have to perform TCO 2020-05-14T07:34:12Z phoe: so the fact that it works in SBCL doesn't say anything about it needing to work in CLISP 2020-05-14T07:34:12Z solrize: hey yeah, using compile does the TOR 2020-05-14T07:34:14Z Necktwi quit (Ping timeout: 240 seconds) 2020-05-14T07:34:16Z solrize: TRO 2020-05-14T07:34:50Z solrize: yeah i mean clisp did the TCO after using compile 2020-05-14T07:35:09Z no-defun-allowed: You could probably write bellied-checker-helper using a LOOP quite easily. 2020-05-14T07:35:24Z beach: no-defun-allowed: solrize already did. 2020-05-14T07:35:27Z solrize: there's already a loop version 2020-05-14T07:35:34Z phoe: I see no problem then 2020-05-14T07:35:38Z no-defun-allowed: Indeed you did. My bad. 2020-05-14T07:35:43Z solrize: np 2020-05-14T07:37:06Z Kundry_Wag quit (Ping timeout: 260 seconds) 2020-05-14T07:43:49Z pjb joined #lisp 2020-05-14T07:46:01Z solrize: the loop version is very imperative 2020-05-14T07:46:09Z phoe: it is, yes 2020-05-14T07:46:44Z phoe: CL is a multi-paradigm language and iteration is best done in an imperative way rather than via tail calls 2020-05-14T07:47:02Z solrize: that sounds single paradigm to me ;) 2020-05-14T07:47:43Z solrize: i still want to check out the iterate package 2020-05-14T07:47:55Z buffergn0me: LOOP also does not have enough parentheses, DO is better 2020-05-14T07:48:02Z solrize: heh 2020-05-14T07:48:06Z solrize: https://kate.hackyon.org/~phr/bellied.hs here's my haskell version 2020-05-14T07:48:32Z liberliver joined #lisp 2020-05-14T07:55:09Z davepdotorg joined #lisp 2020-05-14T07:59:03Z Cymew joined #lisp 2020-05-14T08:00:26Z davepdotorg quit (Ping timeout: 246 seconds) 2020-05-14T08:04:47Z dddddd joined #lisp 2020-05-14T08:08:28Z wxie1 quit (Ping timeout: 256 seconds) 2020-05-14T08:08:54Z buffergn0me: I had to go to comp.lang.lisp to look this up, because I had no idea from the code what was going on 2020-05-14T08:09:04Z buffergn0me: This pot-bellied number nonsense is just a distraction 2020-05-14T08:09:20Z buffergn0me: This is a variation of the popular "longest consecutive sequence" interview question 2020-05-14T08:10:26Z solrize: buffergn0me, yeah i put a cll link further up 2020-05-14T08:11:23Z buffergn0me: I read my news the old-fashioned way, from a Usenet server. Also I missed the link 2020-05-14T08:11:36Z buffergn0me: There is no need to do so much consing in your Haskell version 2020-05-14T08:13:42Z buffergn0me: Fill a 1000 element array such that index i corresponds to i+1000 integer, the contents of index i is a boolean to indicate that i+1000 is bellied or not 2020-05-14T08:15:01Z yankM joined #lisp 2020-05-14T08:15:30Z buffergn0me: Then do the "longest consecutive sequence" algorithm the best way you know how. Should be linear time with constant space if I remember correctly from when I did it last time 2020-05-14T08:16:19Z solrize: i wrote the haskell version the simplest possible way. maybe the compiler can eliminate some consing 2020-05-14T08:16:30Z pjb quit (Ping timeout: 256 seconds) 2020-05-14T08:16:33Z solrize: simplest way i saw, anyway 2020-05-14T08:17:33Z solrize: i'm not sure but i think it may run in constant space 2020-05-14T08:18:03Z solrize: if the maximumBy can be optimized for strictness 2020-05-14T08:19:04Z solrize: i'm not good at examining GHC Core to tell how much consing is really going on 2020-05-14T08:19:12Z buffergn0me: Maybe I am not reading gby right. How many [[a]] is it going to make? 2020-05-14T08:19:39Z solrize: https://kate.hackyon.org/~phr/bellied.c C version 2020-05-14T08:19:57Z solrize: buffergn0me, it will make however many, but the thing is it's lazy evaluation, so they won't necessarily all be in memory at the same time 2020-05-14T08:20:23Z solrize: it's like iterators in python 2020-05-14T08:20:38Z solrize: it yields them one by one, rather than consing up a list and returning it 2020-05-14T08:21:02Z buffergn0me: But I think maximumBy has to examine all of them? 2020-05-14T08:21:41Z solrize: maximumBy reads them one at a time and keeps a running maximum. if nothing else needs them then they can be gc'd as it goes along 2020-05-14T08:22:07Z solrize: or the compiler can sometimes completely eliminate the intermediate lists 2020-05-14T08:22:52Z solrize: https://kate.hackyon.org/~phr/bellied.cpp C++ 2020-05-14T08:23:26Z solrize: (same as C more or less) 2020-05-14T08:23:35Z aeth: solrize: Imo, Common Lisp is more of a language for writing functional and/or declarative languages than it is one itself. 2020-05-14T08:23:51Z buffergn0me: I would be very surprised in this case, there are not many intermediate things to fuse 2020-05-14T08:23:55Z solrize: interesting i hadn't thought of it that way 2020-05-14T08:24:10Z solrize: buffergn0me, yeah i don't know 2020-05-14T08:25:34Z solrize: it's doable in principle, i think, but asking a bit much in practice 2020-05-14T08:26:18Z solrize: i know there's something called foldr/build fusion which is very good at eliminating intermediate lists, so you can often speed up code by writing in that style, but i've never really understood it 2020-05-14T08:27:05Z solrize: aeth i find CL pretty practical if a bit old fashioned, but if i were writing a compiler i'd almost surely use haskell 2020-05-14T08:27:09Z buffergn0me: Well, the problem is it can eliminate the intermediate steps, but not the produce-list consume-list on the ends 2020-05-14T08:27:12Z kpoeck joined #lisp 2020-05-14T08:28:52Z solrize: [0..9999] produces the list, and maximumBy which is a fold, consumes it 2020-05-14T08:29:40Z aeth: solrize: I suppose it depends on what kind of language you're writing and what languages you know. If you are writing a language in the Lisp family, then the easiest "compiler" would probably be to compile to CL or Racket. 2020-05-14T08:31:12Z buffergn0me: What I am wondering about is, is there a way to do longest consecutive sequence on bit patterns efficiently? 2020-05-14T08:31:32Z buffergn0me: Find the longest consecutive run of 1s 2020-05-14T08:32:13Z buffergn0me: You can represent the problem as an 8999 long bit vector 2020-05-14T08:32:24Z solrize: aeth, fair point, but that compiler could be written in haskell? 2020-05-14T08:32:24Z solrize: i've never done anything really substantial in CL 2020-05-14T08:32:26Z solrize: on bit patterns, like you have a long bit vector in machine words in memory? 2020-05-14T08:32:26Z solrize: yeah i guess so, have some 8-bit lookup tables 2020-05-14T08:33:22Z aeth: solrize: maybe in Yale Haskell! https://github.com/haskell-lisp/yale-haskell 2020-05-14T08:33:57Z solrize: haha 2020-05-14T08:34:04Z solrize: yeah that was the original haskell implementation 2020-05-14T08:34:17Z solrize: i don't know if ML existed then 2020-05-14T08:34:29Z solrize: it must have hmm 2020-05-14T08:40:18Z p_l: ML is significantly older than Haskell 2020-05-14T08:40:26Z p_l: (ML is also older than Miranda) 2020-05-14T08:40:36Z buffergn0me quit (Ping timeout: 244 seconds) 2020-05-14T08:41:00Z p_l: if Miranda had nicer license, there is huge chance Haskell wouldn't happen 2020-05-14T08:41:37Z shangul joined #lisp 2020-05-14T08:42:17Z solrize: they finally fixed the miranda license a few months ago ;) 2020-05-14T08:42:46Z p_l: in that time enough scots drunk enough alcohol to replace it thrice, so a bit late ;) 2020-05-14T08:42:58Z solrize: haha 2020-05-14T08:43:34Z p_l: the amount of haskell in glasgow-edinburgh belt is way high 2020-05-14T08:44:07Z solrize: even the lispers there use -fglasgow_exts ;) 2020-05-14T08:44:11Z solrize: is that where you're from? 2020-05-14T08:45:27Z davepdotorg joined #lisp 2020-05-14T08:52:13Z shifty joined #lisp 2020-05-14T08:55:14Z davepdotorg quit (Remote host closed the connection) 2020-05-14T08:55:30Z davepdotorg joined #lisp 2020-05-14T08:55:47Z p_l: nope, just spent 4.5 year in Aberdeen University 2020-05-14T08:58:22Z solrize: heh 2020-05-14T09:01:09Z solrize: zzz 2020-05-14T09:07:07Z solrize: may try to do an SQL version of that problem tomorrow ;) 2020-05-14T09:07:31Z toorevitimirp joined #lisp 2020-05-14T09:09:35Z nicktick quit (Remote host closed the connection) 2020-05-14T09:15:26Z karlosz quit (Quit: karlosz) 2020-05-14T09:30:58Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-14T09:31:12Z Lord_of_Life_ joined #lisp 2020-05-14T09:32:31Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-14T09:32:55Z v88m quit (Ping timeout: 246 seconds) 2020-05-14T09:37:07Z shifty quit (Ping timeout: 246 seconds) 2020-05-14T09:37:31Z shifty joined #lisp 2020-05-14T09:43:46Z v88m joined #lisp 2020-05-14T09:48:18Z luckless joined #lisp 2020-05-14T09:56:08Z ft quit (Ping timeout: 256 seconds) 2020-05-14T09:58:44Z amerigo joined #lisp 2020-05-14T10:02:37Z sdumi quit (Ping timeout: 264 seconds) 2020-05-14T10:02:58Z sdumi joined #lisp 2020-05-14T10:03:20Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-14T10:03:35Z orivej joined #lisp 2020-05-14T10:05:56Z davepdotorg quit (Remote host closed the connection) 2020-05-14T10:13:54Z pjb joined #lisp 2020-05-14T10:17:09Z Bourne joined #lisp 2020-05-14T10:18:31Z orivej quit (Read error: Connection reset by peer) 2020-05-14T10:21:40Z shifty quit (Ping timeout: 265 seconds) 2020-05-14T10:21:52Z shifty joined #lisp 2020-05-14T10:23:58Z davepdotorg joined #lisp 2020-05-14T10:27:11Z orivej joined #lisp 2020-05-14T10:31:51Z splittist: Silly question: I have an extended function name (i.e. it could be (setf foo) ) in a vrbl. I want to funcall (or equivalent) the function of that name. How do I do that? 2020-05-14T10:32:32Z Shinmera: use fdefinition 2020-05-14T10:33:04Z jackdaniel: splittist: (funcall #'(setf cursor-visibility) t) 2020-05-14T10:33:44Z splittist: Shinmera: thanks! 2020-05-14T10:36:12Z Kundry_Wag joined #lisp 2020-05-14T10:37:53Z davepdotorg quit (Remote host closed the connection) 2020-05-14T10:38:09Z davepdotorg joined #lisp 2020-05-14T10:40:05Z corpix quit (Remote host closed the connection) 2020-05-14T10:40:46Z jackdaniel: how cruel, my heart is broken :) 2020-05-14T10:44:04Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-14T10:44:21Z jeosol quit (Remote host closed the connection) 2020-05-14T10:45:18Z Bike joined #lisp 2020-05-14T10:45:48Z sdumi quit (Ping timeout: 260 seconds) 2020-05-14T10:45:48Z davepdotorg quit (Remote host closed the connection) 2020-05-14T10:46:15Z davepdotorg joined #lisp 2020-05-14T10:46:40Z pjb quit (Ping timeout: 244 seconds) 2020-05-14T10:54:38Z solrize: wow 2020-05-14T10:54:57Z solrize: that almost looks like partial application ;) 2020-05-14T10:58:49Z phoe: what exactly 2020-05-14T10:59:14Z phoe: (setf (cursor-visibility) t) === (funcall #'(setf cursor-visibility) t) in most cases 2020-05-14T11:00:11Z milanj joined #lisp 2020-05-14T11:01:29Z Kundry_Wag joined #lisp 2020-05-14T11:02:43Z gxt quit (Ping timeout: 240 seconds) 2020-05-14T11:02:58Z ft joined #lisp 2020-05-14T11:04:25Z dalz quit (Remote host closed the connection) 2020-05-14T11:05:18Z scymtym quit (Remote host closed the connection) 2020-05-14T11:06:10Z Kundry_Wag quit (Ping timeout: 260 seconds) 2020-05-14T11:07:37Z gxt joined #lisp 2020-05-14T11:08:01Z ljavorsk quit (Ping timeout: 264 seconds) 2020-05-14T11:08:14Z shifty quit (Ping timeout: 240 seconds) 2020-05-14T11:09:20Z shifty joined #lisp 2020-05-14T11:12:36Z splittist: but (let ((n '(setf cursor-visibility))) (funcall n t)) => ... 2020-05-14T11:13:17Z heisig quit (Quit: Leaving) 2020-05-14T11:13:27Z phoe: (let ((n (fdefinition '(setf cursor-visibility)))) ...) 2020-05-14T11:13:31Z phoe: or #' 2020-05-14T11:13:33Z phoe: you can't funcall a list 2020-05-14T11:13:40Z phoe: but that's not partial application though 2020-05-14T11:13:44Z phoe: that's a regular function call 2020-05-14T11:14:14Z splittist: phoe: exactly. Hence my thanks to Shinmera. It compiles, so I'll ship it. 2020-05-14T11:16:01Z davepdotorg quit (Remote host closed the connection) 2020-05-14T11:16:06Z sdumi joined #lisp 2020-05-14T11:17:47Z ft quit (Remote host closed the connection) 2020-05-14T11:21:07Z RedMallet joined #lisp 2020-05-14T11:27:48Z Josh_2 quit (Remote host closed the connection) 2020-05-14T11:28:43Z solrize quit (Ping timeout: 260 seconds) 2020-05-14T11:29:27Z Josh_2 joined #lisp 2020-05-14T11:29:33Z scymtym joined #lisp 2020-05-14T11:30:25Z solrize joined #lisp 2020-05-14T11:34:44Z Kundry_Wag joined #lisp 2020-05-14T11:34:59Z phoe: Would there be interest in a CI service that runs tests on the Quicklisp-provided software? 2020-05-14T11:36:22Z phoe: Like, basically, a server that pulls bleeding-edge versions of software from the Quicklisp list and goes (asdf:test-system) on them 2020-05-14T11:36:27Z phoe: and *somehow* parses the results 2020-05-14T11:38:39Z Xach: phoe: yes 2020-05-14T11:38:39Z yyyyyy quit (Remote host closed the connection) 2020-05-14T11:38:52Z yyyyyy joined #lisp 2020-05-14T11:39:29Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-14T11:41:46Z X-Scale` joined #lisp 2020-05-14T11:43:01Z phoe: Xach: probably the biggest requirement for that is the thing we've discussed previously - a yes/no answer from ASDF:TEST-SYSTEM that tells us whether a test suite has succeeded or not 2020-05-14T11:43:14Z phoe: or rather, whether anything has gone wrong or not 2020-05-14T11:44:07Z X-Scale quit (Ping timeout: 260 seconds) 2020-05-14T11:44:11Z jackdaniel: phoe: cl-test-grid does that (it takes the last ql release though, you'd need to create a local "early" distribution) 2020-05-14T11:44:19Z [X-Scale] joined #lisp 2020-05-14T11:44:28Z phoe: jackdaniel: perfect 2020-05-14T11:44:42Z rogersm joined #lisp 2020-05-14T11:44:46Z [X-Scale] is now known as X-Scale 2020-05-14T11:44:56Z Xach: taking the last ql dist has a huge amount of value too. i only test on sbcl on linux. more testing would help improve libraries and implementations. 2020-05-14T11:45:20Z Xach: "test" in the build sense 2020-05-14T11:45:31Z Xach: so even running test suites on the latest would increase information 2020-05-14T11:45:48Z phoe: well obviously, yes, software needs to build in order to be testable 2020-05-14T11:46:14Z jackdaniel: I think that some folks run cl-test-grid on regular basis 2020-05-14T11:46:18Z X-Scale` quit (Ping timeout: 260 seconds) 2020-05-14T11:46:20Z phoe: yes, I see that 2020-05-14T11:46:32Z jackdaniel: and results are publicly available 2020-05-14T11:46:54Z phoe: correct, https://common-lisp.net/project/cl-test-grid/test-runs-report.html 2020-05-14T11:48:13Z jackdaniel: as some folks can see, I'm running it mainly for regression testing before a new release 2020-05-14T11:48:20Z phoe: yes 2020-05-14T11:51:13Z phoe thinks 2020-05-14T11:51:33Z davepdotorg joined #lisp 2020-05-14T11:52:01Z pve: was there some conclusion in the discussion of getting a yes/no from asdf:test-system? (i missed it) 2020-05-14T11:52:08Z phoe: pve: nope 2020-05-14T11:52:54Z jackdaniel: it was implicit: I've tried to convey the information, that cl-test-grid gets the yes/no from the test-system 2020-05-14T11:53:29Z jackdaniel: with some custom curation which varies between libraries afair 2020-05-14T11:54:45Z davepdotorg quit (Remote host closed the connection) 2020-05-14T11:55:01Z davepdotorg joined #lisp 2020-05-14T12:02:11Z gko joined #lisp 2020-05-14T12:03:00Z monokrom joined #lisp 2020-05-14T12:05:16Z davepdotorg quit (Remote host closed the connection) 2020-05-14T12:05:38Z corpix joined #lisp 2020-05-14T12:05:42Z davepdotorg joined #lisp 2020-05-14T12:10:10Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-14T12:10:19Z phoe: a daily test run on multiple implementation would likely spam the existing infrastructure with a lot of information 2020-05-14T12:10:41Z phoe: I don't think it's a good idea to post regular runs there 2020-05-14T12:10:51Z SGASAU joined #lisp 2020-05-14T12:15:20Z pve: am I wrong in thinking that the least amount of work would be needed if the major testing libraries were patched with a "we're running asdf:test-system now"-mode, which would result in them returning something like :success or :failure? 2020-05-14T12:15:41Z nowhere_man joined #lisp 2020-05-14T12:15:44Z pve: or is ad-hoc parsing etc the way to go? 2020-05-14T12:16:01Z phoe: pve: depends on the systems' TEST-SYSTEM method - if they directly invoke the test framework, then that'd work 2020-05-14T12:16:52Z pve: perhaps they could signal success with a condition? 2020-05-14T12:17:18Z Xach: so when i was last thinking about this, i was thinking about something not directly inside the test framework 2020-05-14T12:17:46Z Xach: but that for each project, you could have a file to load. if the file loaded without a non-local transfer of control, things "passed" 2020-05-14T12:18:06Z Xach: that would allow people to add things that were important to them to third-party libraries that might not have the tests they wanted 2020-05-14T12:18:12Z Xach: you could have more than one file 2020-05-14T12:18:14Z dmc00 joined #lisp 2020-05-14T12:22:51Z kpoeck quit (Remote host closed the connection) 2020-05-14T12:26:12Z solrize quit (Changing host) 2020-05-14T12:26:12Z solrize joined #lisp 2020-05-14T12:35:55Z corpix quit (Quit: corpix) 2020-05-14T12:38:46Z yankM quit (Ping timeout: 256 seconds) 2020-05-14T12:44:07Z pjb joined #lisp 2020-05-14T12:44:51Z Kundry_Wag joined #lisp 2020-05-14T12:45:17Z pve: now I don't know anything, but would something like this work: 2020-05-14T12:45:19Z pve: https://plaster.tymoon.eu/view/1827# 2020-05-14T12:46:05Z corpix joined #lisp 2020-05-14T12:46:53Z phoe: pve: hmmmm 2020-05-14T12:48:49Z jw4 quit (Read error: Connection reset by peer) 2020-05-14T12:51:05Z jw4 joined #lisp 2020-05-14T12:57:22Z Kundry_Wag quit (Remote host closed the connection) 2020-05-14T12:57:51Z Kundry_Wag joined #lisp 2020-05-14T12:59:49Z _death: if you do that, why not unconditionally signal a condition that may contain more information about the run.. basically it's a hook 2020-05-14T13:00:03Z rpg joined #lisp 2020-05-14T13:01:01Z pve: yes of course, I was just trying to keep it simple 2020-05-14T13:01:23Z heisig joined #lisp 2020-05-14T13:02:34Z EvW joined #lisp 2020-05-14T13:05:47Z yyyyyy quit (Ping timeout: 260 seconds) 2020-05-14T13:06:53Z easye: What's the current hotness for paste bots now that paste.lisp.org is no more? 2020-05-14T13:07:52Z selwyn: https://plaster.tymoon.eu/edit# 2020-05-14T13:08:14Z easye: selwyn: thanks. I thought Shinmera has a pastebot, but didn't have the URI. 2020-05-14T13:08:23Z selwyn: no problem 2020-05-14T13:09:45Z easye: Of course it works with EWW. Thanks Shinmera! 2020-05-14T13:12:02Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-14T13:12:30Z Necktwi joined #lisp 2020-05-14T13:13:12Z orivej joined #lisp 2020-05-14T13:15:09Z bitmapper joined #lisp 2020-05-14T13:17:29Z pjb quit (Ping timeout: 272 seconds) 2020-05-14T13:24:01Z EvW quit (Ping timeout: 252 seconds) 2020-05-14T13:28:13Z amerigo quit (Quit: Connection closed for inactivity) 2020-05-14T13:29:01Z shka_ joined #lisp 2020-05-14T13:33:13Z Aurora_v_kosmose quit (Quit: brb) 2020-05-14T13:33:41Z luis: with-upgradibility drives me mad! 2020-05-14T13:34:01Z toorevitimirp quit (Remote host closed the connection) 2020-05-14T13:34:04Z patlv joined #lisp 2020-05-14T13:34:13Z luis: *upgradability 2020-05-14T13:37:27Z rixard quit (Read error: Connection reset by peer) 2020-05-14T13:37:50Z luis: It breaks M-. so badly. :-( 2020-05-14T13:37:55Z rixard joined #lisp 2020-05-14T13:39:19Z ljavorsk joined #lisp 2020-05-14T13:39:35Z cosimone joined #lisp 2020-05-14T13:41:25Z EvW joined #lisp 2020-05-14T13:43:01Z dalz joined #lisp 2020-05-14T13:46:34Z elflng quit (Ping timeout: 240 seconds) 2020-05-14T13:52:31Z phoe: luis: the question is, (how) do we fix it 2020-05-14T13:57:07Z davepdot_ joined #lisp 2020-05-14T13:59:58Z terpri_ quit (Remote host closed the connection) 2020-05-14T14:00:08Z davepdotorg quit (Ping timeout: 256 seconds) 2020-05-14T14:00:18Z _death: by making a pull request and hoping for the best 2020-05-14T14:01:06Z terpri joined #lisp 2020-05-14T14:02:08Z phoe: what is supposed to go in that pull request though 2020-05-14T14:02:34Z _death: use defun*/... directly into of this macro, whose sole purpose is to substitute names for other names 2020-05-14T14:02:44Z _death: *instead of 2020-05-14T14:03:33Z frgo joined #lisp 2020-05-14T14:04:09Z JohnMS_WORK quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2020-05-14T14:04:40Z elflng joined #lisp 2020-05-14T14:05:44Z jw4 quit (Read error: Connection reset by peer) 2020-05-14T14:07:14Z jw4 joined #lisp 2020-05-14T14:07:17Z ayuce joined #lisp 2020-05-14T14:09:28Z terpri quit (Remote host closed the connection) 2020-05-14T14:10:07Z terpri joined #lisp 2020-05-14T14:10:53Z davepdot_ quit (Remote host closed the connection) 2020-05-14T14:12:28Z terpri quit (Remote host closed the connection) 2020-05-14T14:12:50Z terpri joined #lisp 2020-05-14T14:15:49Z ahungry joined #lisp 2020-05-14T14:16:06Z davepdotorg joined #lisp 2020-05-14T14:17:43Z Aurora_v_kosmose joined #lisp 2020-05-14T14:18:07Z jmercouris: is there a difference between something in my sbclrc and something in my source? 2020-05-14T14:18:23Z jmercouris: for example: "(pushnew "/opt/local/lib/" cffi:*foreign-library-directories* :test #'equal)" in my sbcl rc vs. directly in the source 2020-05-14T14:18:56Z phoe: jmercouris: yes, there is a difference of when the statement will be executed 2020-05-14T14:20:16Z RedMallet quit (Quit: WeeChat 2.8) 2020-05-14T14:20:25Z jmercouris: OK 2020-05-14T14:20:27Z jmercouris: that's true 2020-05-14T14:20:36Z jmercouris: let me post my practical question, one moment please 2020-05-14T14:21:10Z davepdotorg quit (Ping timeout: 272 seconds) 2020-05-14T14:21:23Z pjb joined #lisp 2020-05-14T14:23:18Z jmercouris: https://pastebin.com/m8kwHNke 2020-05-14T14:23:26Z jmercouris: so I find myself having to push a foreign library TWICE 2020-05-14T14:23:36Z jmercouris: otherwise my program cannot find it 2020-05-14T14:24:01Z jmercouris: please note that I am pushing these paths because I am using Shinmera's deploy and trying to make an app bundle 2020-05-14T14:24:18Z jmercouris: (at-init ...) macro in cl-cffi-gtk, well, it doesn't find things 2020-05-14T14:25:14Z phoe: non-toplevel EVAL-WHEN is meaningless 2020-05-14T14:25:17Z jmercouris: here is that macro 2020-05-14T14:25:17Z jmercouris: https://github.com/Ferada/cl-cffi-gtk/blob/master/glib/glib.init.lisp#L92 2020-05-14T14:25:29Z jmercouris: Yes, I know, this is not my source code, I also was thinking what is the point of that 2020-05-14T14:25:31Z phoe: oh! it is toplevel then 2020-05-14T14:25:45Z jmercouris: is it though? I didn't look at the macro transformation 2020-05-14T14:25:50Z phoe: it expands into a PROGN 2020-05-14T14:26:07Z jmercouris: ah, yes 2020-05-14T14:26:18Z jmercouris: I'm not even sure why cl-cffi-gtk does this at-init business 2020-05-14T14:27:00Z jmercouris: anyways, it circumvent's deploy's loading of foreign libraries 2020-05-14T14:27:27Z jmercouris: I'm not sure how to proceed from here, but cffi:*foreign-library-diretories* is normally NIL within the at-init body 2020-05-14T14:27:38Z jmercouris: whereas it should obviously not be... 2020-05-14T14:27:41Z shangul quit (Ping timeout: 265 seconds) 2020-05-14T14:28:20Z jmercouris: should I modify deploy? or modify cl-cffi-gtk, or patch or whatever 2020-05-14T14:28:45Z jmercouris: and why must I modify the foreign-library-directories twice??? 2020-05-14T14:28:48Z phoe: how do you build your stuff 2020-05-14T14:28:50Z jmercouris: that is what makes the least amount of sense to me 2020-05-14T14:29:01Z phoe: does your build system run the lisp RC file before starting to build your software? 2020-05-14T14:29:02Z jmercouris: I just do (asdf:make :xyz) 2020-05-14T14:29:06Z davepdotorg joined #lisp 2020-05-14T14:29:18Z jmercouris: I run SBCL normally, so yes it will load my sbclrdc 2020-05-14T14:29:25Z jmercouris: s/sbclrdc/sbclrc 2020-05-14T14:29:53Z shangul joined #lisp 2020-05-14T14:30:22Z davepdotorg quit (Remote host closed the connection) 2020-05-14T14:30:48Z davepdotorg joined #lisp 2020-05-14T14:31:57Z jonatack quit (Quit: jonatack) 2020-05-14T14:34:33Z jmercouris: it seems unless I add the foreign library directories WITHIN the at-init, it doesn't work 2020-05-14T14:34:42Z jmercouris: I tried declaring it as a top level within the glib package, but NOTHING 2020-05-14T14:35:21Z phoe: is that variable rebound somewhere?... 2020-05-14T14:35:39Z jmercouris: appears no 2020-05-14T14:35:47Z jmercouris: I grepped for cffi:*foreign-library-directories* 2020-05-14T14:36:14Z jmercouris: is there any logical reason why someone would load foreign libraries NOT at the top level? 2020-05-14T14:36:22Z jmercouris: any reason why I should not just move all of these out of this at-init macro? 2020-05-14T14:36:39Z phoe: no idea 2020-05-14T14:37:02Z jmercouris: Dieter Kaiser has both blessed and cursed me simultaneously 2020-05-14T14:38:17Z jasom: I remember that some implementations will work fine without something like that, but others will not reload the library automatically when loading from an image 2020-05-14T14:38:49Z jasom: IIRC ccl and sbcl do it opposite, but I don't remember which does which 2020-05-14T14:38:56Z Bike: this at-init thing uses a lambda that's run at initialization time, and the forms in there won't be top level 2020-05-14T14:39:01Z Bike: so there's a reason 2020-05-14T14:39:35Z jasom: also this may have changed. Also they shouldn't be doing a define-foreign-library in the at-init, just the loading of the foreign library 2020-05-14T14:39:58Z jmercouris: there may not be a logical reason 2020-05-14T14:40:02Z jmercouris: but probably a reason 2020-05-14T14:40:27Z jmercouris: so I did the following: https://pastebin.com/v2mgajZg 2020-05-14T14:40:37Z jmercouris: and it loads almost all of the libraries, but fails at libcairo... 2020-05-14T14:40:41Z jmercouris: strange strange 2020-05-14T14:41:15Z jmercouris: does exist: lrwxr-xr-x 1 root admin 16 Oct 28 2019 libcairo.dylib -> libcairo.2.dylib 2020-05-14T14:41:37Z jmercouris: dlopen(libcairo.dylib, 10): image not found. 2020-05-14T14:41:52Z jmercouris: perhaps I will see if the foreign-library-paths are yet again reset 2020-05-14T14:44:42Z rippa joined #lisp 2020-05-14T14:45:55Z luis: phoe: yeah, what _death said. use defun* and defgeneric* directly. 2020-05-14T14:46:36Z phoe: luis: if it means anything, I can give you a thumbs-up on the MR when you submit it. 2020-05-14T14:46:45Z luis: :D 2020-05-14T14:47:20Z phoe: I don't think I can write much myself - I suffer from a writer's block at the moment. I can't stand looking at my book anymore, and that's troublesome, because review PRs and issues are waiting to be merged. 2020-05-14T14:47:44Z phoe: And I have no idea how to proceed, since a deadline for passing it to Apress is already established. :( 2020-05-14T14:49:40Z rozenglass1 quit (Ping timeout: 272 seconds) 2020-05-14T14:51:05Z jmercouris: passed, or established? 2020-05-14T14:51:15Z phoe: established - 22nd of May 2020-05-14T14:51:29Z phoe: that's roughly in a week 2020-05-14T14:57:58Z splittist: but I'm waiting until I read the book to actually use conditions properly! 2020-05-14T14:59:21Z theseb joined #lisp 2020-05-14T14:59:58Z phoe: I could use someone to help me handle the reviewer remarks 2020-05-14T15:00:23Z phoe: it's basically been a sprint for me, and I guess I'm exhausted after it 2020-05-14T15:00:26Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-14T15:00:47Z davepdotorg quit (Remote host closed the connection) 2020-05-14T15:01:50Z jmercouris: list of marks? 2020-05-14T15:02:06Z jmercouris: what is it? mostly grammatical fixes and wording? 2020-05-14T15:02:10Z luis: jmercouris: *foreign-library-paths* is a lousy mechanism because dlopen() doesn't know about it so libcairo.dylib can't find its dependencies 2020-05-14T15:02:23Z jmercouris: luis: I use rpaths within libcairo.dylib 2020-05-14T15:02:28Z jmercouris: luis: so it CAN find its dependencies 2020-05-14T15:02:30Z phoe: mostly, yes, though there are also some related to content 2020-05-14T15:02:44Z davepdot_ joined #lisp 2020-05-14T15:03:38Z jmercouris: this cl-cffi-gtk is driving me crazy 2020-05-14T15:03:46Z jmercouris: deploying it is a nightmare, even getting it to run properly on macOS took weeks 2020-05-14T15:04:15Z jmercouris: it literally felt like blind incantations 2020-05-14T15:04:56Z jmercouris: phoe: how about this, I go through and fix grammatical things, and you figure out cl-cffi-gtk issue for me :-D? 2020-05-14T15:06:06Z orivej quit (Ping timeout: 256 seconds) 2020-05-14T15:08:32Z luis: jmercouris: hmm. interesting. didn't know about that mechanism, is there a man page describing it? 2020-05-14T15:09:20Z jmercouris: luis: not that I know of, but you can read more about it here: https://www.mikeash.com/pyblog/friday-qa-2009-11-06-linking-and-install-names.html 2020-05-14T15:09:59Z jmercouris: I even wrote a little tool to update these paths 2020-05-14T15:10:13Z jmercouris: https://github.com/Shinmera/deploy/issues/14 2020-05-14T15:10:41Z jmercouris: son of a potato, I need to know why cl-cffi-gtk is doing this nonsense 2020-05-14T15:11:06Z davepdot_ quit (Remote host closed the connection) 2020-05-14T15:11:32Z davepdotorg joined #lisp 2020-05-14T15:12:59Z rpg joined #lisp 2020-05-14T15:15:12Z jmercouris: the docstring is wholly unhelpful 2020-05-14T15:15:18Z FreeBirdLjj joined #lisp 2020-05-14T15:15:43Z scymtym_ joined #lisp 2020-05-14T15:17:11Z davepdot_ joined #lisp 2020-05-14T15:17:13Z scymtym_ quit (Remote host closed the connection) 2020-05-14T15:17:14Z scymtym quit (Ping timeout: 260 seconds) 2020-05-14T15:19:02Z scymtym joined #lisp 2020-05-14T15:19:57Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-14T15:20:30Z jmercouris: as far as I can discern the at-init is because: It is used to reinitialize the libraries when the dumped image is loaded. (Works only on SBCL for now). 2020-05-14T15:20:32Z jmercouris: as jasom hinted 2020-05-14T15:20:49Z jmercouris: however why this when-top level nonsense? the at-init macro ensures only calling after sb init hooks 2020-05-14T15:21:02Z jmercouris: THE PLOT THICKENS FURTHER 2020-05-14T15:21:20Z davepdotorg quit (Ping timeout: 265 seconds) 2020-05-14T15:26:15Z phoe: jmercouris: I can't do mac things though 2020-05-14T15:26:22Z jmercouris: I believe in you phoe 2020-05-14T15:26:29Z jmercouris: you must believe in yourself 2020-05-14T15:26:38Z jmercouris: can you remove this at-init nonsense from the codebase? 2020-05-14T15:26:51Z jmercouris: I'm just kidding of course, I'm trying to sound like morpheus or something 2020-05-14T15:27:09Z jmercouris: sbcl at init hooks run before anything else I take it? 2020-05-14T15:27:51Z __jrjsmrtn__ joined #lisp 2020-05-14T15:28:17Z jmercouris: "A list of function designators which are called in an unspecified order when a saved core image starts up, after the system itself has been initialized." 2020-05-14T15:28:23Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-14T15:28:24Z jmercouris: *init-hooks* SBCL 2020-05-14T15:28:32Z _jrjsmrtn quit (Ping timeout: 256 seconds) 2020-05-14T15:30:19Z shifty quit (Ping timeout: 256 seconds) 2020-05-14T15:31:25Z rozenglass1 joined #lisp 2020-05-14T15:31:55Z rpg joined #lisp 2020-05-14T15:36:04Z frgo_ joined #lisp 2020-05-14T15:38:47Z frgo quit (Ping timeout: 240 seconds) 2020-05-14T15:45:05Z DavdL[m]: Hello ! I had a question about quicklisp. Is it possible to choose which version of a lib I want to use ? I think it's not possible, but then, why ? Could someone explain to me? 2020-05-14T15:46:15Z sdumi quit (Ping timeout: 258 seconds) 2020-05-14T15:46:17Z phoe: DavdL[m]: It is, but it's not obvious 2020-05-14T15:46:32Z phoe: Quicklisp has a concept of a "dist" which is a whole snapshot of the Lisp world taken at a given time and distributed together 2020-05-14T15:46:57Z phoe: So if you are using a dist from e.g. December 2019, then you are using software as it was when the dist was created in Dec 2019 2020-05-14T15:47:26Z phoe: The easiest way to control versions of single libraries is to clone them into ~/quicklisp/local-projects/ - ASDF systems from there override the ones downloaded by Quicklisp 2020-05-14T15:47:39Z phoe: so you can download a bleeding edge FOOBAR and store it at ~/quicklisp/local-projects/foobar/ 2020-05-14T15:47:55Z phoe: And when you go (ql:quickload :foobar), this bleeding-edge version will be loaded 2020-05-14T15:48:14Z phoe: When you go (ql:quickload :bazquux) and system BAZQUUX depends on FOOBAR, it will use that newer version of the library, too 2020-05-14T15:48:57Z DavdL[m]: Ok! Thank you for the explanation :) 2020-05-14T15:49:05Z sdumi joined #lisp 2020-05-14T15:49:18Z phoe: no problem! 2020-05-14T15:49:24Z phoe: feel free to post any questions you have here 2020-05-14T15:49:42Z DavdL[m]: Sure, will do. 2020-05-14T15:56:05Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-14T15:57:32Z davepdot_ quit (Quit: Leaving...) 2020-05-14T15:59:15Z EvW quit (Ping timeout: 244 seconds) 2020-05-14T15:59:56Z orivej joined #lisp 2020-05-14T16:05:40Z Cymew quit (Ping timeout: 272 seconds) 2020-05-14T16:06:14Z EvW joined #lisp 2020-05-14T16:17:00Z jackdaniel: oh oh, some polish words in unicode names: #\LATIN_SMALL_LETTER_S_WITH_OGONEK :-) 2020-05-14T16:17:46Z phoe: https://en.wikipedia.org/wiki/Ogonek 2020-05-14T16:17:46Z jackdaniel: literally "ogonek" means "little tail" 2020-05-14T16:17:50Z phoe: it's an international term! 2020-05-14T16:17:58Z remix2000 quit (Quit: remix2000) 2020-05-14T16:18:58Z phoe: ǫbvįǫųsly̨ thęsę ąrę thę bęst 2020-05-14T16:19:17Z efm quit (Read error: Connection reset by peer) 2020-05-14T16:19:27Z EvW quit (Ping timeout: 260 seconds) 2020-05-14T16:20:10Z MichaelRaskin: I am not able to suppress perceiving it as «little fire/flame» instead of «little tail» anyway 2020-05-14T16:20:12Z efm joined #lisp 2020-05-14T16:21:18Z phoe: Russian folk do not need to worry themselves about ogonkis 2020-05-14T16:21:22Z selwyn: Ǭ_Ǭ 2020-05-14T16:21:25Z phoe: they have отнег рговлемз though 2020-05-14T16:21:33Z phoe afk 2020-05-14T16:30:30Z catern joined #lisp 2020-05-14T16:33:18Z jmercouris: their λ looks so strange to me 2020-05-14T16:33:37Z jmercouris: what was the rationale for changing its shape... 2020-05-14T16:38:28Z terpri quit (Remote host closed the connection) 2020-05-14T16:39:16Z jeosol joined #lisp 2020-05-14T16:40:16Z terpri joined #lisp 2020-05-14T16:42:13Z jonatack joined #lisp 2020-05-14T16:42:28Z terpri quit (Remote host closed the connection) 2020-05-14T16:43:00Z terpri joined #lisp 2020-05-14T16:44:33Z rogersm_ joined #lisp 2020-05-14T16:51:49Z sdumi quit (Ping timeout: 246 seconds) 2020-05-14T16:52:24Z gko quit (Ping timeout: 256 seconds) 2020-05-14T16:55:07Z dale_ joined #lisp 2020-05-14T16:55:15Z dale_ is now known as dale 2020-05-14T16:55:23Z sdumi joined #lisp 2020-05-14T16:59:13Z rogersm_ quit (Remote host closed the connection) 2020-05-14T16:59:31Z rogersm_ joined #lisp 2020-05-14T16:59:59Z rogersm_ quit (Remote host closed the connection) 2020-05-14T17:05:03Z pjb quit (Ping timeout: 246 seconds) 2020-05-14T17:07:41Z yankM joined #lisp 2020-05-14T17:08:23Z jayspeer joined #lisp 2020-05-14T17:12:44Z remix2000 joined #lisp 2020-05-14T17:29:28Z EvW1 joined #lisp 2020-05-14T17:33:40Z pjb joined #lisp 2020-05-14T17:34:43Z karlosz joined #lisp 2020-05-14T17:36:09Z bitmapper quit 2020-05-14T17:37:29Z milanj quit (Read error: Connection reset by peer) 2020-05-14T17:39:34Z milanj joined #lisp 2020-05-14T17:41:57Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-14T17:43:07Z orivej joined #lisp 2020-05-14T17:43:10Z akoana joined #lisp 2020-05-14T17:44:29Z theBlackDragon quit (Remote host closed the connection) 2020-05-14T17:48:03Z theseb: Why is progn considered a special form? I don't see any deviations from the standard eval rules with it 2020-05-14T17:49:41Z theBlackDragon joined #lisp 2020-05-14T17:49:52Z beach: Maybe that it preserves top-level-ness. 2020-05-14T17:49:57Z phoe: ^ 2020-05-14T17:50:29Z phoe: you do not get that with standard function calls 2020-05-14T17:51:28Z theseb: beach: by "preserve top level-ness" does that mean..."ignore local environment" ? 2020-05-14T17:51:38Z phoe: nope, it means "preserve toplevelness" 2020-05-14T17:51:44Z phoe: http://clhs.lisp.se/Body/26_glo_t.htm#top_level_form 2020-05-14T17:51:49Z phoe: clhs 3.2.3.1 2020-05-14T17:51:49Z specbot: Processing of Top Level Forms: http://www.lispworks.com/reference/HyperSpec/Body/03_bca.htm 2020-05-14T17:52:00Z phoe: some forms, when they are toplevel, are processed in a special way 2020-05-14T17:52:52Z theseb: ok thanks 2020-05-14T17:53:16Z Bike: i suppose that that's it, though. versus (defun progn (&rest args) (first (last args))) 2020-05-14T17:53:31Z phoe: yes 2020-05-14T17:55:32Z Bike: ah, no, wait, that wouldn't preserve multiple values. 2020-05-14T17:55:42Z _death: it also doesn't need to hold on to the intermediate values 2020-05-14T17:56:11Z Bike: yeah, but that's just an efficiency concern, not semantics. 2020-05-14T17:58:18Z Bike: you could define progn like this and then have a smart enough inliner to handle it efficiently 2020-05-14T17:58:24Z Bike: other than the values thing and top level thing 2020-05-14T18:00:51Z rogersm_ joined #lisp 2020-05-14T18:04:06Z Bourne quit (Ping timeout: 272 seconds) 2020-05-14T18:04:41Z beach: Yeah, definitely values. 2020-05-14T18:04:58Z rogersm_ quit (Ping timeout: 246 seconds) 2020-05-14T18:05:56Z pjb: theseb: note that the notion of special form is rather useless: it CAN be implemented as a macro! 2020-05-14T18:05:57Z theseb: Bike: what do you mean by holding on to values? 2020-05-14T18:06:06Z Bike: (progn (values 1 2)) => 1, 2 2020-05-14T18:06:11Z Bike: whereas (identity (values 1 2)) => 1 2020-05-14T18:06:14Z pjb: theseb: also, any CL macro CAN actually be implemented as a special form by your implementation! 2020-05-14T18:06:34Z pjb: theseb: also, any CL function call CAN actually be open-coded, which is like being a special form! 2020-05-14T18:06:48Z Bike: lisp has a multiple value return mechanism. it should be explained somewhere around the evaluation semantics you're presumably reading. 2020-05-14T18:07:23Z theseb: pjb: in my understanding one of the purposes of macros is to implement special forms 2020-05-14T18:07:29Z theseb: at least some of them 2020-05-14T18:07:44Z Bike: i would not describe it that way. 2020-05-14T18:08:22Z phoe: very no 2020-05-14T18:08:24Z phoe: it's the other way around 2020-05-14T18:08:40Z pjb: theseb: however, the CL implementation still has to have some fundamental constructs. Note that more than the specified special forms are needed as fundamental constructs. For example, (setf gethash), apply, etc. 2020-05-14T18:08:48Z phoe: special forms are special 'cause they cannot be implemented with standard macros 2020-05-14T18:08:56Z pjb: phoe: no. 2020-05-14T18:08:56Z phoe: and standard functions 2020-05-14T18:09:19Z pjb: phoe: any special form CAN be implemented with standard macros. 2020-05-14T18:09:26Z pjb: phoe: it's up to the implementation. 2020-05-14T18:09:29Z theseb: phoe: i was thinking about your clarification about lisp not being a mystical magical software silver bullet....i still think you're right.....I think Brook's "No Silver Bullet" principle is also right....software seems to have "essential complexity" you can't get rid of....kinda reminds me of the Halting theorem....basically we may never be able to get Moore's law type improvements in software development...i can't see it 2020-05-14T18:09:37Z pjb: phoe: the implementation can do very special things! 2020-05-14T18:09:38Z phoe: pjb: how does one implement multiple-value-call 2020-05-14T18:09:57Z Bike: that is not what the halting theorem means, and moore's law is already coming to an end because it's pretty hard to make transistors smaller than an atom. 2020-05-14T18:10:57Z pjb: phoe: see for examples http://home.pipeline.com/~hbaker1/MetaCircular.html 2020-05-14T18:11:09Z pjb: phoe: then you can use your imagination to find an implementation of m-v-c. 2020-05-14T18:11:09Z amer quit (Quit: amer) 2020-05-14T18:11:16Z pjb: phoe: hint: all CL implementation DO implement it! 2020-05-14T18:11:29Z Bike: but not as a macro, so that's a completely pointless thing to say. 2020-05-14T18:11:42Z _death: but it could be implemented as a macro 2020-05-14T18:11:45Z theseb: Bike: yes..i know all about the Halting Theorem...i'm just saying the No Silver Bullet feels similar in flavor to the Halting Theorem....they both address limitations and complexity in some sense 2020-05-14T18:11:48Z Bike: you could implement (multiple-value-call f ...) as `(apply f (apply append ,@(mapcar (lambda (form) `(multiple-value-list ,form)) ...))) 2020-05-14T18:12:01Z Bike: and make multiple-value-list a special operator instead 2020-05-14T18:12:15Z pjb: Bike: the CL implementation can trivially define a macro, expanding to implementation specific things. 2020-05-14T18:12:57Z Bike: theseb: you should try to quantify any similarity so that this analogy has value more than a feeling. 2020-05-14T18:14:18Z _death: special operator is like calling something an axiom.. but clhs also allows implementors to use other axioms and treat the operator as a theorem 2020-05-14T18:18:33Z theseb: Bike: ok you asked for it...;)... One way to characterize the Halting Theorem is in terms of Gregory Chaitin's or Kolmogorov's definition of complexity..."You can't get a 20 lb theorem from 10 lbs of axioms!"....being able to bang out extremely complex programs with some magic bullet seems unlikely because it either...1. Suggests a way to violate Kolmogorov complexity or 2. Our brains are acting very "trans-computational" and doi 2020-05-14T18:18:33Z theseb: ng things that violate the Church-Turing thesis ;) 2020-05-14T18:19:15Z Bike: you're conflating perceived complexity with actual complexity in your first point. 2020-05-14T18:19:25Z Bike: but i didn't actually mean for you to try to explain it here. it is off topic, after all 2020-05-14T18:21:53Z kpoeck joined #lisp 2020-05-14T18:24:24Z buffergn0me joined #lisp 2020-05-14T18:25:41Z kingragworm joined #lisp 2020-05-14T18:27:32Z kingragworm quit (Remote host closed the connection) 2020-05-14T18:27:50Z theseb: Does anyone have any feel good CL stories where some team created an awesome DSL to handle a very complex problem that blew the pants off the competition? 2020-05-14T18:27:54Z theseb: That would be inspiring 2020-05-14T18:28:10Z sauvin quit (Read error: Connection reset by peer) 2020-05-14T18:29:08Z theseb: it be some sort of consolation since i can't have that lisp is a "silver bullet" anymore 2020-05-14T18:29:26Z _death: Paul Graham has a story like that 2020-05-14T18:29:43Z theseb: Viaweb! 2020-05-14T18:29:46Z theseb: that's one 2020-05-14T18:29:48Z theseb: definitely 2020-05-14T18:41:17Z p_l: was OPS5 originally in Lisp? 2020-05-14T18:42:37Z p_l: also, I think in ECLM/ELS in Amsterdam (2012) there was a presentation on using DSL and a compiler written in CL to generate much more efficient Cuda/OpenCL code 2020-05-14T18:43:06Z p_l: also, original roomba being programmed using DSL in CL 2020-05-14T18:44:24Z _heisig joined #lisp 2020-05-14T18:47:06Z heisig quit (Ping timeout: 256 seconds) 2020-05-14T18:49:10Z amerigo joined #lisp 2020-05-14T18:49:31Z cosimone quit (Quit: Quit.) 2020-05-14T18:51:02Z izh_ joined #lisp 2020-05-14T18:53:07Z White_Flame: theseb: Idunno, it's kind of just a normal everyday occurrence 2020-05-14T18:53:14Z White_Flame: instead of some singular special story 2020-05-14T18:53:26Z theseb: White_Flame: that's good 2020-05-14T19:00:12Z milanj quit (Quit: This computer has gone to sleep) 2020-05-14T19:01:28Z Bourne joined #lisp 2020-05-14T19:09:13Z _heisig quit (Quit: Leaving) 2020-05-14T19:14:58Z rogersm quit (Quit: Leaving...) 2020-05-14T19:27:55Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-14T19:30:06Z izh_ quit (Quit: Leaving) 2020-05-14T19:30:40Z rogersm joined #lisp 2020-05-14T19:30:51Z rogersm quit (Client Quit) 2020-05-14T19:31:08Z rogersm joined #lisp 2020-05-14T19:35:56Z rpg joined #lisp 2020-05-14T19:36:51Z bitmapper joined #lisp 2020-05-14T19:41:27Z nowhere_man quit (Read error: Connection reset by peer) 2020-05-14T19:41:50Z nowhere_man joined #lisp 2020-05-14T19:48:26Z sdv joined #lisp 2020-05-14T19:51:10Z jayspeer quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-14T19:54:52Z rogersm quit 2020-05-14T19:55:14Z rogersm joined #lisp 2020-05-14T19:56:00Z bitmapper: what happened to mocl 2020-05-14T19:56:39Z phoe: it exists: https://wukix.com/mocl 2020-05-14T20:11:18Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-14T20:17:13Z sdv left #lisp 2020-05-14T20:27:24Z abhixec_ joined #lisp 2020-05-14T20:27:35Z abhixec_ quit (Client Quit) 2020-05-14T20:30:46Z pjb quit (Ping timeout: 240 seconds) 2020-05-14T20:32:37Z narimiran quit (Ping timeout: 264 seconds) 2020-05-14T20:33:34Z Bourne quit (Ping timeout: 272 seconds) 2020-05-14T20:34:22Z SGASAU quit (Ping timeout: 260 seconds) 2020-05-14T20:37:22Z efm quit (Ping timeout: 256 seconds) 2020-05-14T20:37:26Z sstc joined #lisp 2020-05-14T20:41:54Z efm joined #lisp 2020-05-14T20:48:00Z PuercoPope joined #lisp 2020-05-14T20:48:25Z PuercoPope is now known as PuercoPop 2020-05-14T20:48:54Z PuercoPop is now known as Guest86914 2020-05-14T20:49:03Z rogersm quit (Remote host closed the connection) 2020-05-14T20:50:40Z Guest86914 is now known as PuercoPop 2020-05-14T20:57:57Z Kundry_W_ joined #lisp 2020-05-14T21:01:36Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-14T21:02:24Z pve quit (Quit: leaving) 2020-05-14T21:02:33Z pjb joined #lisp 2020-05-14T21:02:53Z kpoeck quit (Remote host closed the connection) 2020-05-14T21:04:02Z karayan quit (Remote host closed the connection) 2020-05-14T21:04:53Z karayan joined #lisp 2020-05-14T21:05:22Z CrazyEddy quit (Ping timeout: 256 seconds) 2020-05-14T21:08:19Z ahungry quit (Remote host closed the connection) 2020-05-14T21:09:01Z chipolux_ joined #lisp 2020-05-14T21:09:28Z sstc quit (Quit: WeeChat 2.8) 2020-05-14T21:09:40Z chipolux quit (Ping timeout: 256 seconds) 2020-05-14T21:22:31Z remix2000 quit (Quit: remix2000) 2020-05-14T21:22:59Z deselby joined #lisp 2020-05-14T21:32:14Z Lord_of_Life quit (Ping timeout: 240 seconds) 2020-05-14T21:32:24Z Lord_of_Life_ joined #lisp 2020-05-14T21:33:22Z dalz quit (Remote host closed the connection) 2020-05-14T21:35:17Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-14T21:35:35Z pjb quit (Ping timeout: 246 seconds) 2020-05-14T21:38:10Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-14T21:39:59Z Bourne joined #lisp 2020-05-14T21:48:28Z amerigo quit (Quit: Connection closed for inactivity) 2020-05-14T22:03:35Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-14T22:15:06Z rpg joined #lisp 2020-05-14T22:16:08Z frgo_ quit (Remote host closed the connection) 2020-05-14T22:16:41Z frgo joined #lisp 2020-05-14T22:17:34Z orivej quit (Ping timeout: 240 seconds) 2020-05-14T22:26:22Z gravicappa quit (Ping timeout: 260 seconds) 2020-05-14T22:30:17Z Kundry_W_ quit (Ping timeout: 258 seconds) 2020-05-14T22:31:30Z shka_ quit (Ping timeout: 265 seconds) 2020-05-14T22:40:06Z anticrisis joined #lisp 2020-05-14T22:41:38Z Kundry_Wag joined #lisp 2020-05-14T22:46:38Z Kundry_Wag quit (Ping timeout: 260 seconds) 2020-05-14T22:49:23Z efm quit (Ping timeout: 265 seconds) 2020-05-14T22:50:16Z efm joined #lisp 2020-05-14T22:52:46Z random-nick quit (Ping timeout: 265 seconds) 2020-05-14T23:04:08Z rgherdt quit (Ping timeout: 256 seconds) 2020-05-14T23:08:57Z shifty joined #lisp 2020-05-14T23:09:49Z pjb joined #lisp 2020-05-14T23:15:18Z wxie joined #lisp 2020-05-14T23:16:54Z Bourne quit (Read error: Connection reset by peer) 2020-05-14T23:22:50Z moon-child: how come (*) and (+) are usually well-defined (to multiplicative and additive identities), but (/) and (-) produce an error? 2020-05-14T23:23:24Z yottabyte joined #lisp 2020-05-14T23:24:49Z yottabyte: has anyone gotten drakma to work with windows 10 here? when I try e.g. (drakma:http-request "http://www.lisp.org/index.html") I get https://pastebin.com/MNLZeyS3 2020-05-14T23:25:26Z yottabyte: I tried to do some searching and it seems to be a CL+SSL error, but all I did was quickload drakma 2020-05-14T23:26:15Z aeth: moon-child: probably because / and - are actually two functions, depending on the lengths of the arguments provided, i.e. 1 argument vs. 2 or more arguments 2020-05-14T23:26:29Z aeth: moon-child: where / with 1 arg does inverse and - does negation 2020-05-14T23:26:57Z moon-child: aeth: hmmm 2020-05-14T23:26:59Z Bike: what would you expect (/) or (-) to return 2020-05-14T23:27:21Z moon-child: otoh, they still have well-defined identities, that are consistent for both forms 2020-05-14T23:27:38Z moon-child: (/ 1) = 1; (/ x 1) = x 2020-05-14T23:27:40Z aeth: if they were defined like + and * then there would be no difference with (- and +) or (* and /) for 0 and 1 arg calls and there would need to be separate functions for negation and inverse 2020-05-14T23:28:18Z pjb: moon-child: note that: (/ x) = 1/x 2020-05-14T23:28:39Z pjb: moon-child: the mathematical principle, is that (op) returns the neutral element for op. What is the neutral element of / or of - ? 2020-05-14T23:29:01Z pjb: moon-child: (- (-) x) = x (- x (-)) = x solve for (-) !!! 2020-05-14T23:29:21Z aeth: (/ x) is (/ 1 x) instead of the "expected" x if it were just an extension of / for 2+ args and (- x) is (* -1 x) instead of the "expected" x if it were just an extension of - for 2+ args. 2020-05-14T23:29:34Z Bike: (/ 4) isn't the same as (/ 4 1), see 2020-05-14T23:29:51Z moon-child: pjb: ahh, I see. So it's not because there are separate forms, but because parameter order matters 2020-05-14T23:30:12Z theseb quit (Quit: Leaving) 2020-05-14T23:30:22Z pjb: moon-child: well, at least for neutral elements. an operation can be anti-commutative, but the neutral element should still commute. 2020-05-14T23:30:29Z aeth: or I suppose you could define (- x) as (- 0 x) instead so it parallels / more. That is, (- x) is (- (+) x) and (/ x) is (/ (*) x) 2020-05-14T23:30:51Z pjb: aeth: (- x) IS defined as (- 0 x)! 2020-05-14T23:31:03Z pjb: aeth: just as (/ x) IS defined as (/ 1 x)! 2020-05-14T23:31:10Z moon-child: pjb: right, yes 2020-05-14T23:31:13Z pjb: and note that here, 0 is (+) and 1 is (*)1 2020-05-14T23:31:18Z moon-child: (re. commutativity) 2020-05-14T23:31:18Z pjb: s/)1/)!/ 2020-05-14T23:31:26Z EvW1 quit (Ping timeout: 240 seconds) 2020-05-14T23:36:45Z entel quit (Quit: Connection closed for inactivity) 2020-05-14T23:41:49Z ft joined #lisp 2020-05-14T23:43:48Z smazga quit (Ping timeout: 256 seconds) 2020-05-14T23:47:51Z hiredman_ is now known as hiredman 2020-05-14T23:49:21Z SGASAU joined #lisp 2020-05-14T23:57:12Z slyrus_ joined #lisp 2020-05-14T23:58:26Z dnm joined #lisp 2020-05-14T23:59:42Z karayan quit (Ping timeout: 260 seconds) 2020-05-14T23:59:54Z slyrus quit (Ping timeout: 260 seconds) 2020-05-15T00:12:09Z sstc joined #lisp 2020-05-15T00:15:39Z smazga joined #lisp 2020-05-15T00:24:36Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-15T00:25:44Z chipolux_ quit (Ping timeout: 256 seconds) 2020-05-15T00:27:25Z chipolux_ joined #lisp 2020-05-15T00:38:56Z ahungry joined #lisp 2020-05-15T00:43:55Z Krystof quit (Ping timeout: 260 seconds) 2020-05-15T01:03:31Z shifty quit (Ping timeout: 260 seconds) 2020-05-15T01:04:36Z shifty joined #lisp 2020-05-15T01:04:54Z bitmapper quit (Ping timeout: 240 seconds) 2020-05-15T01:08:07Z _whitelogger quit (Ping timeout: 240 seconds) 2020-05-15T01:19:40Z shifty quit (Ping timeout: 246 seconds) 2020-05-15T01:22:44Z zaquest quit (Quit: Leaving) 2020-05-15T01:26:15Z zaquest joined #lisp 2020-05-15T01:26:16Z _whitelogger joined #lisp 2020-05-15T01:37:28Z dddddd quit (Remote host closed the connection) 2020-05-15T01:44:35Z karayan joined #lisp 2020-05-15T01:50:40Z PuercoPop quit (Remote host closed the connection) 2020-05-15T01:51:16Z PuercoPope joined #lisp 2020-05-15T01:55:53Z SGASAU quit (Remote host closed the connection) 2020-05-15T01:58:55Z SGASAU joined #lisp 2020-05-15T02:05:43Z mono joined #lisp 2020-05-15T02:07:54Z monokrom quit (Ping timeout: 240 seconds) 2020-05-15T02:08:20Z Oladon joined #lisp 2020-05-15T02:10:36Z buffergn0me quit (Quit: ERC (IRC client for Emacs 26.2)) 2020-05-15T02:15:18Z elflng quit (Ping timeout: 258 seconds) 2020-05-15T02:16:52Z ralt quit (Quit: Connection closed for inactivity) 2020-05-15T02:18:59Z SGASAU quit (Remote host closed the connection) 2020-05-15T02:19:37Z SGASAU joined #lisp 2020-05-15T02:32:14Z sstc quit (Quit: WeeChat 2.8) 2020-05-15T02:32:21Z elflng joined #lisp 2020-05-15T02:33:07Z rozenglass1 quit (Quit: WeeChat 2.3) 2020-05-15T02:34:13Z turona quit (Ping timeout: 272 seconds) 2020-05-15T02:35:31Z turona joined #lisp 2020-05-15T02:35:33Z elflng quit (Client Quit) 2020-05-15T02:35:35Z rozenglass joined #lisp 2020-05-15T02:37:29Z elflng joined #lisp 2020-05-15T02:38:37Z elflng quit (Client Quit) 2020-05-15T02:39:57Z elflng joined #lisp 2020-05-15T02:43:34Z elflng quit (Client Quit) 2020-05-15T02:44:16Z elflng joined #lisp 2020-05-15T02:45:37Z elflng quit (Client Quit) 2020-05-15T02:51:04Z elflng joined #lisp 2020-05-15T02:54:05Z arpunk quit (Remote host closed the connection) 2020-05-15T03:08:45Z Bike quit (Quit: Lost terminal) 2020-05-15T03:12:19Z kark quit (Ping timeout: 265 seconds) 2020-05-15T03:14:47Z jprajzne quit (Quit: jprajzne) 2020-05-15T03:15:23Z jprajzne joined #lisp 2020-05-15T03:16:03Z shangul quit (Ping timeout: 260 seconds) 2020-05-15T03:18:30Z shifty joined #lisp 2020-05-15T03:21:43Z toorevitimirp joined #lisp 2020-05-15T03:24:20Z jprajzne quit (Quit: jprajzne) 2020-05-15T03:24:45Z jprajzne joined #lisp 2020-05-15T03:25:42Z toorevitimirp quit (Remote host closed the connection) 2020-05-15T03:26:32Z beach: Good morning everyone! 2020-05-15T03:36:22Z kpoeck joined #lisp 2020-05-15T03:53:53Z ahungry quit (Remote host closed the connection) 2020-05-15T03:54:12Z shifty quit (Ping timeout: 260 seconds) 2020-05-15T03:57:00Z Oladon quit (Quit: Leaving.) 2020-05-15T03:57:59Z ayuce quit (Remote host closed the connection) 2020-05-15T04:12:44Z wxie quit (Ping timeout: 272 seconds) 2020-05-15T04:24:43Z orivej joined #lisp 2020-05-15T04:30:40Z amerlyq joined #lisp 2020-05-15T04:32:16Z kpoeck quit (Remote host closed the connection) 2020-05-15T04:39:48Z jprajzne quit (Quit: jprajzne) 2020-05-15T04:41:47Z jprajzne joined #lisp 2020-05-15T04:43:34Z Oladon joined #lisp 2020-05-15T04:48:54Z markasoftware: I want to pass the value of a variable as an argument to a function, if that variable is non-nil 2020-05-15T04:49:07Z markasoftware: otherwise i want to omit the argument so that the function can use its default value for it. (it is &optional). 2020-05-15T04:49:45Z jprajzne quit (Quit: jprajzne) 2020-05-15T04:49:51Z markasoftware: Do I just make my own macro to handle this? Or is there some convenient way I am overlooking? 2020-05-15T04:50:09Z jprajzne joined #lisp 2020-05-15T04:50:37Z malm quit (Quit: Bye bye) 2020-05-15T04:54:08Z heisig joined #lisp 2020-05-15T05:02:51Z shka_ joined #lisp 2020-05-15T05:12:46Z akoana: markasoftware: maybe use something like this: (defun f (&optional (p 'default supplied-p)) (if (and supplied-p (null p)) 'default p)) 2020-05-15T05:13:47Z akoana: so both (f nil) and (f) give 'DEFAULT 2020-05-15T05:14:48Z jprajzne quit (Quit: jprajzne) 2020-05-15T05:15:24Z jprajzne joined #lisp 2020-05-15T05:15:27Z beach: (defun ff (&optional x &aux (x (if (null x) 234 x))) ...) 2020-05-15T05:15:50Z Kundry_Wag joined #lisp 2020-05-15T05:15:57Z akoana: ah, nice 2020-05-15T05:18:16Z beach: I guess &aux is on my mind because I used it in my paper on representing method combinations. 2020-05-15T05:19:30Z jprajzne quit (Client Quit) 2020-05-15T05:19:50Z rgherdt joined #lisp 2020-05-15T05:19:55Z jprajzne joined #lisp 2020-05-15T05:20:24Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-15T05:20:25Z rgherdt quit (Client Quit) 2020-05-15T05:23:18Z heisig quit (Ping timeout: 260 seconds) 2020-05-15T05:25:06Z shifty joined #lisp 2020-05-15T05:25:36Z malm joined #lisp 2020-05-15T05:26:32Z HDurer joined #lisp 2020-05-15T05:26:36Z rgherdt joined #lisp 2020-05-15T05:27:46Z sauvin joined #lisp 2020-05-15T05:33:22Z shifty quit (Ping timeout: 260 seconds) 2020-05-15T05:33:33Z shifty joined #lisp 2020-05-15T05:33:40Z heisig joined #lisp 2020-05-15T05:34:31Z narimiran joined #lisp 2020-05-15T05:35:21Z pjb quit (Ping timeout: 272 seconds) 2020-05-15T05:39:40Z gravicappa joined #lisp 2020-05-15T05:44:44Z jprajzne quit (Quit: jprajzne) 2020-05-15T05:44:48Z Oladon quit (Quit: Leaving.) 2020-05-15T05:45:08Z jprajzne joined #lisp 2020-05-15T05:45:23Z shifty quit (Ping timeout: 260 seconds) 2020-05-15T05:45:59Z shifty joined #lisp 2020-05-15T05:46:19Z anticrisis quit (Quit: Leaving) 2020-05-15T05:46:33Z beach guesses that markasoftware did not like the proposed solution. 2020-05-15T05:46:48Z Cymew joined #lisp 2020-05-15T05:48:26Z LdBeth: https://0branch.com/notes/tco-cl.html#sec-2-3 2020-05-15T05:49:09Z solrize: 0branch.com? that sounds forthy 2020-05-15T05:49:19Z jprajzne quit (Client Quit) 2020-05-15T05:49:45Z jprajzne joined #lisp 2020-05-15T05:51:50Z jonatack quit (Quit: jonatack) 2020-05-15T05:54:05Z wxie joined #lisp 2020-05-15T05:54:54Z patlv quit (Quit: patlv) 2020-05-15T05:55:29Z doesthiswork joined #lisp 2020-05-15T05:58:34Z rgherdt quit (Remote host closed the connection) 2020-05-15T05:58:37Z shifty quit (Ping timeout: 246 seconds) 2020-05-15T05:59:12Z shifty joined #lisp 2020-05-15T06:01:39Z Inoperable quit (Quit: All your buffer are belong to us!) 2020-05-15T06:01:40Z jonatack joined #lisp 2020-05-15T06:03:52Z nullheroes quit (Quit: WeeChat 2.8) 2020-05-15T06:04:22Z pjb joined #lisp 2020-05-15T06:04:32Z CrazyEddy joined #lisp 2020-05-15T06:06:13Z akoana: beach: your solution with &aux is superior - I like it :) 2020-05-15T06:08:40Z beach: Thanks! 2020-05-15T06:09:08Z dalz joined #lisp 2020-05-15T06:17:34Z shifty quit (Ping timeout: 240 seconds) 2020-05-15T06:18:12Z Bourne joined #lisp 2020-05-15T06:18:14Z shifty joined #lisp 2020-05-15T06:21:47Z abhixec quit (Ping timeout: 258 seconds) 2020-05-15T06:24:41Z shifty quit (Ping timeout: 265 seconds) 2020-05-15T06:25:44Z shifty joined #lisp 2020-05-15T06:30:02Z quazimodo quit (Ping timeout: 260 seconds) 2020-05-15T06:30:21Z quazimodo joined #lisp 2020-05-15T06:31:31Z shifty quit (Ping timeout: 246 seconds) 2020-05-15T06:32:21Z shifty joined #lisp 2020-05-15T06:33:11Z Inoperable joined #lisp 2020-05-15T06:36:20Z quazimodo quit (Ping timeout: 256 seconds) 2020-05-15T06:37:39Z pjb quit (Ping timeout: 252 seconds) 2020-05-15T06:38:12Z quazimodo joined #lisp 2020-05-15T06:39:13Z shifty quit (Ping timeout: 264 seconds) 2020-05-15T06:39:13Z CrazyEddy quit (Ping timeout: 264 seconds) 2020-05-15T06:39:33Z jprajzne quit (Quit: jprajzne) 2020-05-15T06:39:59Z shifty joined #lisp 2020-05-15T06:40:52Z random-nick joined #lisp 2020-05-15T06:42:17Z p_l: beach: we need more examples of using &aux in the world :) 2020-05-15T06:43:45Z ayuce joined #lisp 2020-05-15T06:45:25Z Shinmera: p_l: I used &aux in a custom macro to denote special bindings that should be emitted. https://shinmera.github.io/for/#bindings 2020-05-15T06:46:12Z beach: p_l: Yes, maybe so. I would certainly not want to see it disappear in this famous updated standard that so many people seem to want. 2020-05-15T06:47:53Z terpri quit (Remote host closed the connection) 2020-05-15T06:48:30Z kpoeck joined #lisp 2020-05-15T06:49:32Z jprajzne joined #lisp 2020-05-15T06:49:48Z CrazyEddy joined #lisp 2020-05-15T06:50:26Z shifty quit (Ping timeout: 272 seconds) 2020-05-15T06:50:44Z shifty joined #lisp 2020-05-15T06:51:07Z phoe: what is the difference between &aux and a function-toplevel let*? is there any? 2020-05-15T06:53:10Z beach: I don't think there is a difference. But in my paper on method combinations, I analyze the lambda list. It would be much harder to analyze the body of the function. 2020-05-15T06:53:28Z Shinmera: That's exactly what I do in FOR, too. 2020-05-15T06:53:44Z beach: I see. 2020-05-15T06:54:08Z heisig: phoe: Since &aux fits into the lambda list, it can sometimes shorten your code by one line. And it means that you have a central place to put your declarations (after the lambda list). 2020-05-15T06:54:19Z Shinmera: The &aux are used to emit bindings that surround the entire loop block, whereas the body is emitted within the iteration loop. 2020-05-15T06:54:33Z Shinmera: *loop iteration block 2020-05-15T06:54:42Z kpoeck: 3.4.1.5 Specifiers for aux variables .... &aux variable processing is analogous to let* processing. 2020-05-15T06:54:42Z Colleen: kpoeck: karlosz said 9 hours, 44 minutes ago: https://github.com/robert-strandh/SICL/pull/153 fixes the maxima issue, it compile instantly now 2020-05-15T06:54:43Z Colleen: kpoeck: karlosz said 9 hours, 9 minutes ago: that means you don't need to comment do-inlining out. if you do, everything will be kinda slow. 2020-05-15T06:54:53Z heisig: And of course &aux is important in cases where you have no body - like struct constructors. 2020-05-15T06:56:01Z shifty quit (Ping timeout: 246 seconds) 2020-05-15T07:02:09Z akoana left #lisp 2020-05-15T07:06:23Z remix2000 joined #lisp 2020-05-15T07:07:31Z remix2000 quit (Client Quit) 2020-05-15T07:13:22Z phoe: &aux is important in cases where you have nobody 2020-05-15T07:13:28Z phoe plays The Lonesome Lisper 2020-05-15T07:13:50Z frodef joined #lisp 2020-05-15T07:17:36Z kiboneu quit (Remote host closed the connection) 2020-05-15T07:23:52Z pve joined #lisp 2020-05-15T07:28:50Z ralt joined #lisp 2020-05-15T07:31:04Z RedMallet joined #lisp 2020-05-15T07:31:52Z sdumi quit (Ping timeout: 256 seconds) 2020-05-15T07:32:12Z sdumi joined #lisp 2020-05-15T07:33:30Z ozzloy_ is now known as ozzloy 2020-05-15T07:33:30Z remix2000 joined #lisp 2020-05-15T07:33:39Z ozzloy quit (Changing host) 2020-05-15T07:33:39Z ozzloy joined #lisp 2020-05-15T07:34:04Z JohnMS_WORK joined #lisp 2020-05-15T07:35:42Z Krystof joined #lisp 2020-05-15T07:41:38Z rixard_ joined #lisp 2020-05-15T07:42:42Z shangul joined #lisp 2020-05-15T07:44:20Z rixard quit (Ping timeout: 256 seconds) 2020-05-15T07:44:26Z remix2000 quit (Quit: remix2000) 2020-05-15T07:44:58Z scymtym quit (Ping timeout: 258 seconds) 2020-05-15T07:46:12Z wxie1 joined #lisp 2020-05-15T07:47:33Z wxie quit (Ping timeout: 260 seconds) 2020-05-15T07:47:34Z wxie1 is now known as wxie 2020-05-15T07:48:14Z rgherdt joined #lisp 2020-05-15T07:52:02Z dale quit (Quit: My computer has gone to sleep) 2020-05-15T07:52:30Z wxie quit (Ping timeout: 272 seconds) 2020-05-15T07:58:04Z McParen joined #lisp 2020-05-15T08:02:37Z Cymew quit (Ping timeout: 264 seconds) 2020-05-15T08:03:02Z doesthiswork quit (Ping timeout: 256 seconds) 2020-05-15T08:07:48Z rogersm joined #lisp 2020-05-15T08:08:00Z rogersm_ joined #lisp 2020-05-15T08:09:07Z gravicappa quit (Ping timeout: 260 seconds) 2020-05-15T08:12:19Z rogersm quit (Ping timeout: 246 seconds) 2020-05-15T08:20:22Z smazga quit (Ping timeout: 272 seconds) 2020-05-15T08:23:36Z davsebam1e joined #lisp 2020-05-15T08:24:48Z cosimone joined #lisp 2020-05-15T08:26:22Z davsebamse quit (Ping timeout: 258 seconds) 2020-05-15T08:29:14Z orivej quit (Ping timeout: 240 seconds) 2020-05-15T08:34:56Z pjb joined #lisp 2020-05-15T08:39:22Z ljavorsk joined #lisp 2020-05-15T08:43:40Z frgo_ joined #lisp 2020-05-15T08:43:49Z varjag joined #lisp 2020-05-15T08:45:43Z frgo quit (Ping timeout: 244 seconds) 2020-05-15T08:48:13Z shangul quit (Ping timeout: 264 seconds) 2020-05-15T08:50:16Z terpri joined #lisp 2020-05-15T08:54:48Z smazga joined #lisp 2020-05-15T08:55:07Z refpga joined #lisp 2020-05-15T08:55:54Z yankM quit (Ping timeout: 240 seconds) 2020-05-15T08:56:23Z doomlist3 joined #lisp 2020-05-15T08:56:48Z doomlist3: ((defvar x (list :a 2 :c 3 :g 4)) 2020-05-15T08:56:50Z doomlist3: (getf x :a) 2020-05-15T08:57:07Z doomlist3: what's wrong malformed property list: (2 3 4). 2020-05-15T08:58:19Z doomlist3: i am frustrated by gigamonkeys.com 2020-05-15T09:01:05Z phadthai: 2 should be the result, maybe something mistyped... there's an extra opening paren before your defvar 2020-05-15T09:01:13Z pve: use defparameter instead 2020-05-15T09:01:56Z phadthai: and yes it's important to understand the distinction between defvar and defparameter 2020-05-15T09:02:29Z phadthai: if it was already defined with defvar and '(2 3 4) then you could get that result 2020-05-15T09:02:59Z jeosol quit (Ping timeout: 245 seconds) 2020-05-15T09:03:07Z doomlist3: (defvar x (list :a 2 :c 3 :g 4)) 2020-05-15T09:03:09Z doomlist3: (getf x :a) 2020-05-15T09:03:24Z doomlist3: I still get malformed list error 2020-05-15T09:03:26Z doomlist3: fuk 2020-05-15T09:03:28Z toorevitimirp joined #lisp 2020-05-15T09:03:49Z doomlist3: although defparameter seems to work 2020-05-15T09:04:41Z phadthai: http://www.lispworks.com/documentation/lw61/CLHS/Body/m_defpar.htm 2020-05-15T09:04:43Z doomlist3: defvar and with '(1 2 3) instead of (list 1 2 3) too works 2020-05-15T09:04:51Z doomlist3: CL is too subtle 2020-05-15T09:04:58Z phadthai: "defvar it is evaluated only if name is not already bound" 2020-05-15T09:05:03Z doomlist3: clhs defparameter 2020-05-15T09:05:03Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_defpar.htm 2020-05-15T09:05:13Z phadthai: the distinction allows to use live images and reload code in them 2020-05-15T09:08:09Z pjb quit (Ping timeout: 272 seconds) 2020-05-15T09:08:42Z rogersm joined #lisp 2020-05-15T09:08:52Z doomlist3: is that difference explained in gigamonkeys.com later so that i can skip it now 2020-05-15T09:11:07Z nydel quit (Quit: WeeChat 2.3) 2020-05-15T09:12:01Z nydel joined #lisp 2020-05-15T09:12:11Z nydel quit (Changing host) 2020-05-15T09:12:11Z nydel joined #lisp 2020-05-15T09:13:22Z rogersm quit (Ping timeout: 265 seconds) 2020-05-15T09:15:18Z doomlist3: https://bpa.st/MRXQ 2020-05-15T09:15:46Z no-defun-allowed: doomlist3: Check your parens (and the structure suggested by your indentation). 2020-05-15T09:16:19Z phadthai: http://gigamonkeys.com/book/variables.html 2020-05-15T09:17:07Z no-defun-allowed: clhs dolist 2020-05-15T09:17:07Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_dolist.htm 2020-05-15T09:17:18Z no-defun-allowed: doomlist3: Compare what you have with the syntax provided for DOLIST. 2020-05-15T09:18:00Z troydm quit (Ping timeout: 272 seconds) 2020-05-15T09:19:41Z toorevitimirp quit (Remote host closed the connection) 2020-05-15T09:22:12Z toorevitimirp joined #lisp 2020-05-15T09:22:27Z kiboneu joined #lisp 2020-05-15T09:24:30Z beach: That is a very strange style warning though. 2020-05-15T09:25:25Z Kundry_Wag joined #lisp 2020-05-15T09:25:47Z orivej joined #lisp 2020-05-15T09:26:00Z beach: I mean CD is used in the RESULT-FORM. 2020-05-15T09:26:04Z jackdaniel: beach: I can imagine an expansion, where cd is separately bound in the end clause 2020-05-15T09:26:15Z no-defun-allowed: SBCL puts (let (( '())) ...) around its 2020-05-15T09:26:19Z jackdaniel: of course the style warning should not happen then 2020-05-15T09:26:49Z beach: I can imagine such an expansion as well, but then it is not helpful to give that kind of style warning. 2020-05-15T09:26:53Z jackdaniel: (benefit would be better type inference result if the list has all number i.e) 2020-05-15T09:26:58Z jackdaniel: yes, I agree 2020-05-15T09:27:49Z Krystof quit (Ping timeout: 264 seconds) 2020-05-15T09:28:05Z jackdaniel: doomlist3: to answer your explicit problem: you want (dolist (cd '(1 2 3)) (format t "hu ~a~%" cd)) 2020-05-15T09:28:28Z doomlist3: jackdaniel: i figured out thx for being so helpful 2020-05-15T09:28:30Z jackdaniel: dolist has two arguments: one is the binding and return-result clause, and the second is its body 2020-05-15T09:28:55Z toorevitimirp quit (Read error: Connection reset by peer) 2020-05-15T09:29:01Z beach: doomlist3: You should have seen the problem immediately from the indentation. 2020-05-15T09:29:58Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-15T09:30:00Z beach: doomlist3: If your code had been correct, with the FORMAT form in the body of the DOLIST, it would have been indented two positions compared to the (DOLIST, not 12. 2020-05-15T09:30:32Z toorevitimirp joined #lisp 2020-05-15T09:30:43Z Lord_of_Life_ joined #lisp 2020-05-15T09:31:45Z Lycurgus joined #lisp 2020-05-15T09:32:14Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-15T09:32:14Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-15T09:34:07Z beach: doomlist3: Did you get that? 2020-05-15T09:34:24Z troydm joined #lisp 2020-05-15T09:35:44Z orivej quit (Ping timeout: 272 seconds) 2020-05-15T09:37:28Z doomlist3: of course 2020-05-15T09:40:10Z sdumi quit (Ping timeout: 256 seconds) 2020-05-15T09:40:30Z Cymew joined #lisp 2020-05-15T09:41:22Z orivej joined #lisp 2020-05-15T09:52:57Z sdumi joined #lisp 2020-05-15T09:53:00Z refpga quit (Ping timeout: 265 seconds) 2020-05-15T09:55:18Z sdumi quit (Read error: Connection reset by peer) 2020-05-15T09:56:18Z sdumi joined #lisp 2020-05-15T09:56:45Z dddddd joined #lisp 2020-05-15T09:58:58Z Lycurgus quit (Quit: Exeunt) 2020-05-15T10:07:36Z sunwukong joined #lisp 2020-05-15T10:13:42Z karlosz quit (Quit: karlosz) 2020-05-15T10:20:45Z toorevitimirp quit (Remote host closed the connection) 2020-05-15T10:22:31Z milanj joined #lisp 2020-05-15T10:22:33Z toorevitimirp joined #lisp 2020-05-15T10:31:45Z toorevitimirp quit (Remote host closed the connection) 2020-05-15T10:32:17Z toorevitimirp joined #lisp 2020-05-15T10:33:50Z papachan quit (Quit: WeeChat 2.7.1) 2020-05-15T10:35:29Z rogersm_ quit (Quit: Leaving...) 2020-05-15T10:36:34Z papachan joined #lisp 2020-05-15T10:43:56Z RedMallet quit (Quit: WeeChat 2.6) 2020-05-15T10:46:39Z milanj quit (Quit: This computer has gone to sleep) 2020-05-15T10:47:39Z duuqnd joined #lisp 2020-05-15T10:49:29Z KateUpton joined #lisp 2020-05-15T10:52:29Z KateUpton quit (Client Quit) 2020-05-15T10:53:14Z doomlist3 quit (Ping timeout: 240 seconds) 2020-05-15T10:55:51Z Krystof joined #lisp 2020-05-15T10:59:49Z jprajzne quit (Quit: jprajzne) 2020-05-15T11:00:15Z jprajzne joined #lisp 2020-05-15T11:00:47Z Kundry_Wag joined #lisp 2020-05-15T11:04:19Z jprajzne quit (Client Quit) 2020-05-15T11:04:44Z jprajzne joined #lisp 2020-05-15T11:04:45Z pjb joined #lisp 2020-05-15T11:05:10Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-15T11:09:26Z rogersm joined #lisp 2020-05-15T11:11:17Z Trpger joined #lisp 2020-05-15T11:12:47Z Trpger: hi 2020-05-15T11:13:14Z jackdaniel: hey 2020-05-15T11:13:28Z Trpger: ÓÐÈËÄÜ¿´µ½ÎÒ˵»°Âð 2020-05-15T11:13:45Z Trpger adsf 2020-05-15T11:14:00Z rogersm quit (Ping timeout: 256 seconds) 2020-05-15T11:14:11Z jackdaniel: do you have a problem with a cat on the apl-tailored keyboard? 2020-05-15T11:14:51Z Trpger left #lisp 2020-05-15T11:15:00Z jackdaniel: apparently yes 2020-05-15T11:15:40Z sdumi quit (Read error: Connection reset by peer) 2020-05-15T11:16:55Z Bike joined #lisp 2020-05-15T11:17:14Z sdumi joined #lisp 2020-05-15T11:17:59Z igemnace quit (Ping timeout: 272 seconds) 2020-05-15T11:18:46Z selwyn: maybe it has an ogonek 2020-05-15T11:19:06Z jackdaniel: ogonek is on the bottom, like in "ą" 2020-05-15T11:19:14Z jackdaniel: µ doesn't count of course 2020-05-15T11:19:54Z jeosol joined #lisp 2020-05-15T11:20:57Z MichaelRaskin: μ counts if it is μ̨! 2020-05-15T11:24:08Z papachan quit (Quit: WeeChat 2.7.1) 2020-05-15T11:25:22Z milanj joined #lisp 2020-05-15T11:26:11Z Inoperable quit (Quit: All your buffer are belong to us!) 2020-05-15T11:27:02Z scymtym joined #lisp 2020-05-15T11:29:05Z jackdaniel: If my grandmother had wheels, she would've been a bike. :-) 2020-05-15T11:31:55Z papachan joined #lisp 2020-05-15T11:32:32Z gravicappa joined #lisp 2020-05-15T11:32:38Z phoe: Bike: please comment 2020-05-15T11:33:33Z igemnace joined #lisp 2020-05-15T11:34:11Z Bike: Atomic theory says all matter is made up of tiny little balls science calls "atoms". When you ride a bike, your and the bike's atoms get jostled around, so when you do it long enough you swap atoms. 2020-05-15T11:34:23Z Bike: This is why people who ride bikes a lot eventually become more like bicycles with bell like voices 2020-05-15T11:36:12Z phoe: < Bike> Rrrring ringgg, rrringgg, ring ring rinnnggggg rrinnnnng 2020-05-15T11:36:15Z phoe: I don't understand 2020-05-15T11:38:15Z pjb quit (Ping timeout: 272 seconds) 2020-05-15T11:38:32Z dddddd quit (Ping timeout: 260 seconds) 2020-05-15T11:40:39Z dddddd joined #lisp 2020-05-15T11:40:45Z shangul joined #lisp 2020-05-15T11:42:13Z sdumi quit (Ping timeout: 264 seconds) 2020-05-15T11:43:37Z X-Scale` joined #lisp 2020-05-15T11:46:12Z X-Scale quit (Ping timeout: 272 seconds) 2020-05-15T11:46:13Z X-Scale` is now known as X-Scale 2020-05-15T11:49:32Z sunwukong quit (Quit: Leaving) 2020-05-15T11:53:09Z entel joined #lisp 2020-05-15T11:56:29Z JohnMS_WORK quit (Read error: Connection reset by peer) 2020-05-15T11:56:56Z JohnMS_WORK joined #lisp 2020-05-15T11:57:08Z flip214: ah, the great hunter8 heist 2020-05-15T12:02:53Z jmercouris: http://ix.io/2m6S/text 2020-05-15T12:03:07Z jmercouris: so, given the foreign library directories being printed 2020-05-15T12:03:12Z jmercouris: why is it loading libraries from the wrong location? 2020-05-15T12:03:20Z jmercouris: why is libfixposix being loaded in the correct location, but libcrypto not? 2020-05-15T12:04:08Z phoe: I can't see a difference there 2020-05-15T12:04:10Z jmercouris: Yes, 2020-05-15T12:04:11Z jmercouris: sorry 2020-05-15T12:04:18Z phoe: all three lists of pathnames seem the same 2020-05-15T12:04:58Z liberliver1 joined #lisp 2020-05-15T12:05:09Z jmercouris: phoe: https://pastebin.com/yzki5sXn 2020-05-15T12:05:31Z jmercouris: I didn't have the flag in the DYLD_PRINT_LIBRARIES=1 that I posted 2020-05-15T12:05:34Z gko joined #lisp 2020-05-15T12:05:46Z jmercouris: as you can see it is loading shared libraries from /opt/local/lib which IS NOT in the library load paths 2020-05-15T12:05:55Z jmercouris: sorry, the CFFI foreign library directories 2020-05-15T12:07:07Z igemnace quit (Ping timeout: 260 seconds) 2020-05-15T12:08:19Z liberliver quit (Ping timeout: 258 seconds) 2020-05-15T12:08:19Z liberliver1 is now known as liberliver 2020-05-15T12:08:27Z phoe: huh! no idea 2020-05-15T12:08:33Z jmercouris: :'( 2020-05-15T12:09:38Z jmercouris: all it does is: cffi:load-foreign-library 2020-05-15T12:10:08Z jmercouris: I can pass a search path 2020-05-15T12:10:25Z rogersm joined #lisp 2020-05-15T12:11:27Z jmercouris: maybe I should do that 2020-05-15T12:12:55Z igemnace joined #lisp 2020-05-15T12:14:52Z rogersm quit (Ping timeout: 256 seconds) 2020-05-15T12:19:46Z shangul quit (Ping timeout: 272 seconds) 2020-05-15T12:22:27Z jmercouris: on this page: https://common-lisp.net/project/cffi/manual/html_node/_002aforeign_002dlibrary_002ddirectories_002a.html 2020-05-15T12:22:36Z jmercouris: I found a foot note at the bottom: https://common-lisp.net/project/cffi/manual/html_node/_002adarwin_002dframework_002ddirectories_002a.html#g_t_002adarwin_002dframework_002ddirectories_002a 2020-05-15T12:22:38Z jmercouris: that may be the key 2020-05-15T12:23:33Z jmercouris: is there a way to get the path that CFFI thinks a library is located in? 2020-05-15T12:23:45Z phoe: it might not be CFFI at that point 2020-05-15T12:23:51Z phoe: I mean, it might already be the OS that is doing this 2020-05-15T12:23:59Z jmercouris: instead of calling cffi:load-foreign-library 2020-05-15T12:24:08Z jmercouris: ah, because of dlopen 2020-05-15T12:25:58Z MichaelRaskin: I would check is the library is loaded even before your code runs 2020-05-15T12:26:18Z jmercouris: it is loaded before my code runs 2020-05-15T12:26:25Z jmercouris: my code is only "hello world" 2020-05-15T12:26:39Z jmercouris: this is just trying to handle loading of foreign libraries 2020-05-15T12:26:48Z MichaelRaskin: OK, before the CFFI load path is set 2020-05-15T12:27:02Z jmercouris: I can confirm it is happening before it is set 2020-05-15T12:27:04Z jmercouris: if you see the printout 2020-05-15T12:27:48Z MichaelRaskin: Well, CFFI does not reload already-loaded libraries as far as I remember 2020-05-15T12:28:36Z jmercouris: you are correct 2020-05-15T12:28:44Z jmercouris: this is handled by deploy by maybe-reload-library 2020-05-15T12:28:54Z jmercouris: I'm in SBCL so they are not already loaded I believe 2020-05-15T12:29:10Z MetaYan: jmercouris: What's in your cffi:*foreign-library-directories* ? 2020-05-15T12:29:15Z jmercouris: I do not understand why is it searching for love in all the wrong places 2020-05-15T12:29:52Z refpga joined #lisp 2020-05-15T12:30:38Z jmercouris: MetaYan: https://pastebin.com/VuH42DSf 2020-05-15T12:31:04Z jmercouris: and yet we see /opt/local/lib!!! 2020-05-15T12:31:12Z jmercouris: WHERE IS IT GETTING THAT FROM? I even modified darwin frameworks path 2020-05-15T12:31:30Z MichaelRaskin: set | grep /opt/local 2020-05-15T12:31:48Z jmercouris: MichaelRaskin: can you elaborate? 2020-05-15T12:31:48Z shka_ quit (Ping timeout: 272 seconds) 2020-05-15T12:31:54Z jmercouris: run that in a terminal? where? 2020-05-15T12:31:57Z shka_ joined #lisp 2020-05-15T12:32:00Z MichaelRaskin: (also, possibly, check /etc/ld* fpr /opt/local) 2020-05-15T12:32:22Z MichaelRaskin: Yes, as a terminal command — check if there is an environment variable with such contents 2020-05-15T12:32:24Z jmercouris: there is no /etc/ld, i'm on macOS 2020-05-15T12:32:48Z jmercouris: there are environment variables with such contents yes 2020-05-15T12:32:51Z jmercouris: my path contains it for example 2020-05-15T12:32:52Z MichaelRaskin: Well, there is never /etc/ld even on Linux 2020-05-15T12:33:10Z jmercouris: echo $PATH -> /Users/jmercouris/User:/opt/local/sbin:/opt/local/bin:/opt/local/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS 2020-05-15T12:33:11Z jmercouris: for example 2020-05-15T12:33:12Z MetaYan: jmercouris: That paste doesn't show cffi:*foreign-library-directories* . You see, on my macOS I have (CFFI::DARWIN-FALLBACK-LIBRARY-PATH), which adds /opt/local/lib 2020-05-15T12:33:21Z sdumi joined #lisp 2020-05-15T12:33:32Z jmercouris: ah there is a DARWIN-FALLBACK-LIBRARY-PATH! 2020-05-15T12:33:47Z cosimone_ joined #lisp 2020-05-15T12:33:52Z jmercouris: MetaYan: yes it does, CFFI: Foreign Library directories (/Users/jmercouris/Source/Lisp/xyz/bin/xyz.app/Contents/MacOS/../Resources/ 2020-05-15T12:33:52Z jmercouris: /Users/jmercouris/Source/Lisp/xyz/bin/xyz.app/Contents/MacOS/) 2020-05-15T12:35:37Z jmercouris: it should not be touching that though unless *foreign-library-directories* is not set, which it is 2020-05-15T12:35:46Z MetaYan: I mean the actual contents of cffi:*foreign-library-directories* 2020-05-15T12:37:16Z MetaYan: Like https://termbin.com/x128 2020-05-15T12:37:25Z cosimone quit (Ping timeout: 264 seconds) 2020-05-15T12:37:31Z jmercouris: MetaYan: https://pastebin.com/Sac021HB 2020-05-15T12:37:40Z jmercouris: oh, that's what you mean 2020-05-15T12:37:50Z jmercouris: I can only print in this case 2020-05-15T12:37:58Z karswell joined #lisp 2020-05-15T12:38:24Z jackdaniel: since we discuss cffi pats not really related to common lisp, any idea why after enabling terminal raw mode, if the very first input is i.e C-c it is delivered as a signal? 2020-05-15T12:38:28Z jackdaniel: parts* 2020-05-15T12:41:22Z duuqnd quit (Remote host closed the connection) 2020-05-15T12:41:46Z duuqnd joined #lisp 2020-05-15T12:41:55Z MetaYan: And the output of (print cffi:*foreign-library-directories*) doesn't give something like https://termbin.com/3g28 ? 2020-05-15T12:42:30Z jmercouris: let me try that 2020-05-15T12:42:32Z jmercouris: I think it is expanded 2020-05-15T12:43:50Z jmercouris: yeah, it is expanded: (#P"/Users/jmercouris/Source/Lisp/xyz/bin/xyz.app/Contents/MacOS/../Resources/" #P"/Users/jmercouris/Source/Lisp/xyz/bin/xyz.app/Contents/MacOS/") 2020-05-15T12:43:56Z jmercouris: but that's all there is in there 2020-05-15T12:44:08Z jmercouris: here are the fallback dirs though 2020-05-15T12:44:17Z jmercouris: (/Users/jmercouris/lib/ /opt/local/lib/ /usr/local/lib/ /usr/lib/) 2020-05-15T12:44:42Z jmercouris: it is probably hitting the fallback dirs, and the question is therefore why? 2020-05-15T12:45:23Z Kundry_Wag joined #lisp 2020-05-15T12:47:00Z jmercouris: im going to take a break and be back later 2020-05-15T12:56:29Z doesthiswork joined #lisp 2020-05-15T12:59:18Z random-nick quit (Quit: quit) 2020-05-15T12:59:47Z jprajzne quit (Quit: jprajzne) 2020-05-15T13:00:14Z jprajzne joined #lisp 2020-05-15T13:00:40Z cosimone_ is now known as cosimone 2020-05-15T13:02:25Z frodef` joined #lisp 2020-05-15T13:03:26Z frodef quit (Ping timeout: 260 seconds) 2020-05-15T13:04:19Z jprajzne quit (Client Quit) 2020-05-15T13:04:43Z jprajzne joined #lisp 2020-05-15T13:05:50Z duuqnd quit (Remote host closed the connection) 2020-05-15T13:06:02Z Kundry_Wag quit (Remote host closed the connection) 2020-05-15T13:06:18Z Kundry_Wag joined #lisp 2020-05-15T13:06:19Z duuqnd joined #lisp 2020-05-15T13:06:40Z Kundry_Wag quit (Remote host closed the connection) 2020-05-15T13:07:06Z Kundry_Wag joined #lisp 2020-05-15T13:10:15Z pjb joined #lisp 2020-05-15T13:11:19Z rogersm joined #lisp 2020-05-15T13:13:35Z frodef` quit (Ping timeout: 265 seconds) 2020-05-15T13:14:01Z flazh quit (Ping timeout: 264 seconds) 2020-05-15T13:14:58Z JohnMS_WORK quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2020-05-15T13:16:08Z rogersm quit (Ping timeout: 272 seconds) 2020-05-15T13:17:08Z random-nick joined #lisp 2020-05-15T13:18:50Z Kundry_W_ joined #lisp 2020-05-15T13:18:51Z Kundry_Wag quit (Read error: Connection reset by peer) 2020-05-15T13:20:26Z shidima joined #lisp 2020-05-15T13:21:38Z beach hesitates to tell jmercouris about the very simple technique for avoiding all those FFI problems. 2020-05-15T13:23:37Z orivej quit (Ping timeout: 264 seconds) 2020-05-15T13:26:22Z X-Scale` joined #lisp 2020-05-15T13:26:54Z _death: the WIIL technique 2020-05-15T13:27:02Z phoe hesitates to tell beach about the very simple technique of failing to create a web browser following today's HTML5/CSS/JC standards 2020-05-15T13:27:10Z X-Scale quit (Ping timeout: 256 seconds) 2020-05-15T13:27:12Z X-Scale` is now known as X-Scale 2020-05-15T13:27:54Z beach hesitates to tell phoe that there are other projects than web browsers that need to be worked on. 2020-05-15T13:27:55Z jackdaniel: I'm not hestitating to say, that tracking OSX linking problems (even with cffi) is not very ontopic on this channel 2020-05-15T13:28:10Z beach: True. 2020-05-15T13:28:36Z phoe: right 2020-05-15T13:29:44Z jackdaniel: I've tried to signal it with a joke about terminal in raw mode and interrupts, but I think I've failed communication-wise 2020-05-15T13:29:47Z doomlist3 joined #lisp 2020-05-15T13:31:30Z ski quit (Ping timeout: 258 seconds) 2020-05-15T13:32:12Z ski joined #lisp 2020-05-15T13:32:45Z kpoeck quit (Remote host closed the connection) 2020-05-15T13:38:32Z orivej joined #lisp 2020-05-15T13:43:13Z heisig quit (Quit: Leaving) 2020-05-15T13:44:47Z jprajzne quit (Quit: jprajzne) 2020-05-15T13:45:13Z jprajzne joined #lisp 2020-05-15T13:45:33Z rippa joined #lisp 2020-05-15T13:45:47Z SGASAU` joined #lisp 2020-05-15T13:46:18Z kpoeck joined #lisp 2020-05-15T13:46:34Z SGASAU quit (Ping timeout: 246 seconds) 2020-05-15T13:49:19Z jprajzne quit (Client Quit) 2020-05-15T13:49:41Z jprajzne joined #lisp 2020-05-15T13:50:24Z luis quit (Quit: The Lounge - https://thelounge.chat) 2020-05-15T13:51:00Z luis joined #lisp 2020-05-15T13:53:44Z X-Scale` joined #lisp 2020-05-15T13:54:16Z X-Scale quit (Ping timeout: 246 seconds) 2020-05-15T13:54:17Z X-Scale` is now known as X-Scale 2020-05-15T13:56:17Z doomlist3: (push 4.4 '(1)) illegal function call does push only accept variables 2020-05-15T13:56:30Z jmercouris: yes 2020-05-15T13:56:52Z jmercouris: just imagine the location must be setfable 2020-05-15T13:57:53Z beach: doomlist3: (push ) is roughly the same as (setf (cons )) 2020-05-15T13:58:19Z beach: doomlist3: And you can't do (setf '(1) ...) 2020-05-15T13:59:24Z pjb: doomlist3: and beware with (let ((x '(1))) (push 4.4 x) x) #| --> (4.4 1) |# because only the first cons is mutable! The last cons is (1) which must be considered immutable since you quoted it! 2020-05-15T13:59:53Z Bike: you can do (cons 4.4 '(1)) and get (4.4 1) if you want 2020-05-15T14:00:05Z pjb: doomlist3: to initialize a mutable list, use list, make-list, etc. 2020-05-15T14:00:27Z pjb: so it would be better to use (list 4.4 1) #| --> (4.4 1) |# to get a fully mutbale list! 2020-05-15T14:00:41Z pjb: (let ((x (list 1))) (push 4.4 x) x) #| --> (4.4 1) |# fully mutable list. 2020-05-15T14:02:14Z shka_ quit (Ping timeout: 240 seconds) 2020-05-15T14:03:16Z shka_ joined #lisp 2020-05-15T14:04:04Z toorevitimirp quit (Remote host closed the connection) 2020-05-15T14:05:02Z toorevitimirp joined #lisp 2020-05-15T14:05:49Z jw4 quit (Read error: Connection reset by peer) 2020-05-15T14:06:07Z milanj quit (Quit: This computer has gone to sleep) 2020-05-15T14:06:45Z beach: doomlist3: Your problems are so basic that you should probably move your questions to #clschool. 2020-05-15T14:07:53Z duuqnd quit (Quit: Leaving) 2020-05-15T14:07:58Z jw4 joined #lisp 2020-05-15T14:08:58Z samlamamma joined #lisp 2020-05-15T14:09:02Z toorevitimirp quit (Remote host closed the connection) 2020-05-15T14:09:20Z arbv quit (Ping timeout: 272 seconds) 2020-05-15T14:11:42Z toorevitimirp joined #lisp 2020-05-15T14:12:17Z rogersm joined #lisp 2020-05-15T14:13:25Z liberliver quit (Ping timeout: 264 seconds) 2020-05-15T14:13:44Z liberliver joined #lisp 2020-05-15T14:14:03Z arbv joined #lisp 2020-05-15T14:15:50Z toorevitimirp quit (Remote host closed the connection) 2020-05-15T14:17:07Z rogersm quit (Ping timeout: 258 seconds) 2020-05-15T14:17:08Z toorevitimirp joined #lisp 2020-05-15T14:18:26Z wsinatra joined #lisp 2020-05-15T14:23:11Z whiteline_ quit (Read error: Connection reset by peer) 2020-05-15T14:23:22Z toorevitimirp quit (Remote host closed the connection) 2020-05-15T14:23:26Z whiteline joined #lisp 2020-05-15T14:24:09Z refpga quit (Ping timeout: 265 seconds) 2020-05-15T14:24:25Z toorevitimirp joined #lisp 2020-05-15T14:25:00Z refpga joined #lisp 2020-05-15T14:25:31Z beach: doomlist3: Also, it would be good if you would at least acknowledge that you saw the advice that was given to you, and even better if you would tell us whether you understood it or not. 2020-05-15T14:25:52Z doomlist3: yes 2020-05-15T14:28:25Z toorevitimirp quit (Remote host closed the connection) 2020-05-15T14:29:10Z toorevitimirp joined #lisp 2020-05-15T14:30:17Z jmercouris: what is a CFFI framework vs a shared library? 2020-05-15T14:32:26Z jmercouris: doomlist3: are you trapped in a slow motion timewarp? 2020-05-15T14:32:35Z doomlist3: no 2020-05-15T14:32:46Z jmercouris: ah, so you are just a jerk then, OK 2020-05-15T14:33:07Z doomlist3: jmercouris: what do you mean i am in slow motion... i answered immediately 2020-05-15T14:33:13Z jackdaniel: jmercouris: please do not be rude 2020-05-15T14:33:34Z doomlist3: jmercouris: ok your question-- idk anything about that 2020-05-15T14:33:42Z doomlist3: cffi vs ... never used it 2020-05-15T14:33:58Z refpga quit (Ping timeout: 260 seconds) 2020-05-15T14:34:05Z jmercouris: jackdaniel: 1 2020-05-15T14:34:11Z jmercouris: jackdaniel: yes 2020-05-15T14:34:24Z doomlist3 left #lisp 2020-05-15T14:34:31Z narimiran quit (Ping timeout: 246 seconds) 2020-05-15T14:35:07Z refpga joined #lisp 2020-05-15T14:41:29Z Bike: https://gitlab.common-lisp.net/asdf/asdf/-/blob/master/uiop/common-lisp.lisp#L10 nice typo 2020-05-15T14:43:17Z jmercouris: I bet a good tool to detect typos could be used when you cant do real code analysis 2020-05-15T14:43:22Z jackdaniel: I'm sure that the macro uiop/package:define-package code-walks its arguments and fixes all uoip typos 2020-05-15T14:43:24Z jmercouris: just find things with VERY CLOSE levenshtein distance 2020-05-15T14:43:45Z jmercouris: and show them and you can quickly glance and see if they are logical 2020-05-15T14:44:32Z _death: the dmwi feature 2020-05-15T14:44:40Z jackdaniel: :-) 2020-05-15T14:45:29Z samlamamma: _death:Do Me what I? 2020-05-15T14:45:36Z jmercouris: do what I mean 2020-05-15T14:45:49Z jmercouris: get it? 2020-05-15T14:45:50Z samlamamma: Oh right, close levenshtein distance haha 2020-05-15T14:45:58Z samlamamma: Should've read the rest of it first. 2020-05-15T14:46:11Z samlamamma: This is why stack semantics for chat is bad! 2020-05-15T14:51:57Z luis: Speaking of CFFI, mid-30s-luis is quite disappointed at some of early-20s-luis's design decisions and particularly angry at late-20s-luis's integration of foreign-structs-by-value... 2020-05-15T14:52:18Z jmercouris: luis: can you explain why load-foreign library is ignoring a path? 2020-05-15T14:52:19Z jackdaniel: dam youngsters ; 2020-05-15T14:52:21Z jackdaniel: ;) 2020-05-15T14:52:33Z luis: cffi:*default-foreign-encoding* was a bad idea. What was he thinking? 2020-05-15T14:52:54Z jmercouris: I've written: (cffi:load-foreign-library (library-name library) :search-path "/Users/jmercouris/Source/Lisp/xyz/bin/xyz.app/Contents/MacOS/../Resources/") 2020-05-15T14:52:56Z jmercouris: and YET 2020-05-15T14:52:59Z jmercouris: dyld: loaded: <9C53D76D-70B1-346A-992A-E5E4D60225EA> /opt/local/lib/libssl.dylib 2020-05-15T14:53:02Z jmercouris: how can it be? 2020-05-15T14:53:17Z jmercouris: luis: I assume you are luis oliveiro from the source? 2020-05-15T14:53:28Z jmercouris: s/oliveiro/oliveira? 2020-05-15T14:53:45Z luis: not, that one is early-20s-luis. I'm mid-30s-luis. Pay attention. 2020-05-15T14:53:57Z jmercouris: I see 2020-05-15T14:54:09Z jmercouris: can you perhaps look into your crystal ball into the path and explain to me why that is happening? 2020-05-15T14:54:15Z jmercouris: or a place where I can start investigating? 2020-05-15T14:54:29Z luis: jmercouris: ISTR search-path is only used as a fallback if dlopen() fails to find your library the first time around 2020-05-15T14:54:57Z bitmapper joined #lisp 2020-05-15T14:56:25Z luis: jmercouris: but younger-fe[nl]ix is the one to blame for adding that feature and not documenting it in the manual! 2020-05-15T14:56:31Z luis: fe[nl]ix: shame! 2020-05-15T14:56:46Z bitmapper: the ccl ide really doesn't want me to add dark mode support 2020-05-15T14:56:59Z jackdaniel: luis: pay attention, it's not fe[nl]ix but younger-fe[nl]ix who should be put at shame! ;-) 2020-05-15T14:57:14Z luis: :D 2020-05-15T14:57:32Z jmercouris: luis: any way to force the behavior? 2020-05-15T14:58:11Z luis: jmercouris: pass the absolute path to load-foreign-library? 2020-05-15T14:58:24Z jmercouris: I'll give that a try, thank you 2020-05-15T14:58:28Z jackdaniel: speaking of: fe[nl]ix is there any chance for marging mailbox support to bordeaux-threads? 2020-05-15T14:58:40Z jackdaniel: merging* 2020-05-15T15:07:14Z gko quit (Ping timeout: 240 seconds) 2020-05-15T15:09:09Z gko joined #lisp 2020-05-15T15:09:28Z toorevitimirp quit (Remote host closed the connection) 2020-05-15T15:09:47Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-15T15:11:02Z rpg joined #lisp 2020-05-15T15:22:22Z milanj joined #lisp 2020-05-15T15:23:33Z dddddd quit (Remote host closed the connection) 2020-05-15T15:27:54Z FreeBirdLjj joined #lisp 2020-05-15T15:28:15Z yankM joined #lisp 2020-05-15T15:41:22Z jmercouris: luis: that works, thanks 2020-05-15T15:41:53Z jmercouris: luis: I'm just wondering why it doesn't look in the foreign library directories and instead tries these random paths 2020-05-15T15:42:02Z jmercouris: well, they aren't random, but they are not in the cffi foreign library directories 2020-05-15T15:42:55Z jmercouris: I wish there was at least an option to only look in the foreign-library search paths because the reason I have had this strugge is because libssl HAPPENS to be supplid on Darwin, but my Lisp is using a different version 2020-05-15T15:43:00Z jmercouris: s/strugge/struggle 2020-05-15T15:43:17Z flazh joined #lisp 2020-05-15T15:43:37Z xristos: jmercouris: looking at the code usually provides definitive answers to these sort of questions 2020-05-15T15:43:55Z rogersm joined #lisp 2020-05-15T15:44:39Z kpoeck quit (Ping timeout: 245 seconds) 2020-05-15T15:46:20Z jackdaniel: why bother, there are literally 427 of volunteers to help on #lisp 2020-05-15T15:47:11Z Archenoth: Glad to be on board 2020-05-15T15:53:53Z abhixec joined #lisp 2020-05-15T15:57:54Z efm quit (Ping timeout: 256 seconds) 2020-05-15T16:00:24Z SGASAU` quit (Remote host closed the connection) 2020-05-15T16:01:10Z narimiran joined #lisp 2020-05-15T16:02:15Z fe[nl]ix: jackdaniel: I'll go over it this weekend 2020-05-15T16:02:26Z jackdaniel: fe[nl]ix: alright, thank you 2020-05-15T16:03:20Z pjb: jackdaniel: the trick is that those 427 volunteers do indeed look at the code to get the definitive answers! 2020-05-15T16:04:58Z dale_ joined #lisp 2020-05-15T16:05:01Z gko quit (Remote host closed the connection) 2020-05-15T16:05:16Z dale_ is now known as dale 2020-05-15T16:05:18Z jackdaniel makes a shocked face and leaves to make some tea (in a shocked manner of walking) 2020-05-15T16:05:42Z Kaisyu quit (Quit: Connection closed for inactivity) 2020-05-15T16:06:14Z fe[nl]ix: jmercouris: luis was right. the point of the search path is to have a list of often used directories, as a fallback 2020-05-15T16:06:30Z fe[nl]ix: if you already know the exact location of the library, just construct an absolute pathname and load that 2020-05-15T16:10:46Z jmercouris: the code says WHAT 2020-05-15T16:10:48Z jmercouris: I asked WHY 2020-05-15T16:11:06Z jmercouris: and if you didn't have a habit of trying to make people look stupid and making snarky comments, you would see that 2020-05-15T16:11:26Z jmercouris: and I addressed the author, not the channel in general 2020-05-15T16:11:49Z jmercouris: I really don't think jackdaniel should be a moderator to this channel 2020-05-15T16:11:56Z jmercouris: he is not impartial and is abrasive 2020-05-15T16:12:04Z LdBeth: good morning 2020-05-15T16:12:57Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-15T16:13:04Z rogersm_ joined #lisp 2020-05-15T16:13:17Z jonatack quit (Ping timeout: 260 seconds) 2020-05-15T16:14:50Z phoe: jmercouris: I assume that this would be to solve a problem that is the inverse of yours: CFFI being unable to find libraries on Darwin even if they were located in directories available by default 2020-05-15T16:14:50Z jackdaniel: I don't remember when I have last used moderator privigiles, but it is a fact that I'm sometimes tempted to kick and ban you, and some of the reasons are even valid :) that said I'm not overly attached to the '@' sign. 2020-05-15T16:14:53Z theseb joined #lisp 2020-05-15T16:15:40Z phoe: while you want to avoid loading libraries from /opt/ as a software deployer, some other people might want to load libraries from /opt/ as software developers 2020-05-15T16:15:56Z phoe: that's how I understand the "Darwin fallback" term in that source code 2020-05-15T16:16:24Z phoe: "if you can't find it in the list of CFFI dirs, fall back to the default list; if you can find it there, good, and if you can't find it there, signal an error" 2020-05-15T16:16:27Z fe[nl]ix: jmercouris: because especially on OSX, there are package managers like MacPorts, Brew, etc... which can install libraries in locations that are not in the default search path of libc 2020-05-15T16:16:29Z jmercouris: phoe: well, they are located in that directory by default, but of course the system supplied libraries are frequently out of date 2020-05-15T16:16:39Z fe[nl]ix: so dlopen() won't see them by default 2020-05-15T16:17:07Z jmercouris: fe[nl]ix: I am asking why we can't prioritize the paths in foreign-library-directories and THEN try others 2020-05-15T16:17:20Z fe[nl]ix: because it's not the right way to do things 2020-05-15T16:17:21Z jmercouris: why that choice? why offer the user the ability to set it when it will ignore it? 2020-05-15T16:17:24Z fe[nl]ix: system-wide should be the default 2020-05-15T16:17:28Z jmercouris: ah, well in that case :-D 2020-05-15T16:17:48Z jmercouris: man, I should have consulted the source code 2020-05-15T16:17:51Z jonatack joined #lisp 2020-05-15T16:17:52Z rogersm_ quit (Ping timeout: 258 seconds) 2020-05-15T16:17:54Z jmercouris: I would have totally seen that 2020-05-15T16:18:21Z fe[nl]ix: and if you already know the exact location, building an absolute path is one make-pathname away 2020-05-15T16:18:50Z jmercouris: it causes many problems when making app bundles, I will just say that 2020-05-15T16:18:56Z theseb: OMG i took a peak at Let Over Lambda....that seems like it is going to be an amazing read...I love the author's passion.....Don't be ashamed of macros...rather, turn them up to an 11 and let you "freak flag" fly! 2020-05-15T16:19:23Z jmercouris: I understand now the idea behind specify absolute path, but it is a little bit problematic in the case of an app bundle 2020-05-15T16:19:56Z phoe: theseb: Let Over Lambda is a wonderful exercise in mind-bending macros that you will likely never use in actual application code 2020-05-15T16:20:06Z xristos: jmercouris: nobody is obligated to spend his personal time and educate you for free, but your manners imply otherwise 2020-05-15T16:20:20Z jmercouris: xristos: sure thing pal 2020-05-15T16:20:20Z fe[nl]ix: jmercouris: how is it problematic ? 2020-05-15T16:20:41Z jmercouris: xristos: I'll reply RTFM next time someone asks me a question on my channel too, I'm sure that will win me many friends 2020-05-15T16:20:52Z gravicappa quit (Ping timeout: 260 seconds) 2020-05-15T16:21:27Z jmercouris: fe[nl]ix: for example, I've set foreign library directories to be a relative dir within my app bundle, it will behave as expected for libs not found on a typical system, however when I get to a lib that IS on a typical system it will try to use that one, which may be differenet 2020-05-15T16:21:30Z phoe: I enjoyed the read, but I never really came back to the book afterwards; it was certainly a good read to see what the Lisp macro system is capable of, but it has little "replayability value" to me since the author's style does not really align with the contemporary Lisp style that I know 2020-05-15T16:21:37Z jmercouris: different than the one I compiled with 2020-05-15T16:22:20Z jmercouris: fe[nl]ix: so the result is I cannot rely on foreign library directories and must always calculate an absolute path to every shared library within my app bundle to avoid potentially using the wrong system library 2020-05-15T16:22:29Z phoe: jmercouris: you seem to be trying to solve the problem of deploying applications and ensuring that the libraries that you bundle are going to be loaded 2020-05-15T16:22:37Z jmercouris: that is exactly the problem 2020-05-15T16:22:42Z jmercouris: and SOME were loaded from the bundle but not others 2020-05-15T16:22:48Z phoe: I remember Shinmera cursing multiple times when he was working on Portacle due to a similar problem 2020-05-15T16:23:05Z jmercouris: yes, I am also using Nicolas' software, which I've modified 2020-05-15T16:23:06Z phoe: it wasn't CFFI but emacs loading up stuff that it wasn't bundled with, but the idea is the same 2020-05-15T16:23:26Z jmercouris: anyways, it has been a frustrating experience 2020-05-15T16:23:37Z jmercouris: and the last thing I want to hear is a comment about "read the source code" as if I haven't been 2020-05-15T16:23:56Z heisig joined #lisp 2020-05-15T16:24:41Z LdBeth: I would rather let the user fix up libraries 2020-05-15T16:25:01Z McParen left #lisp 2020-05-15T16:25:35Z LdBeth: Otherwise you might use App bundles that should handle dynamic libraries properly 2020-05-15T16:26:06Z LdBeth: If it’s a product that you gonna to distribute 2020-05-15T16:26:21Z fe[nl]ix: jmercouris: LD_LIBRARY_PATH should be able to do what you want 2020-05-15T16:27:28Z Lycurgus joined #lisp 2020-05-15T16:27:36Z jmercouris: fe[nl]ix: not sure I can set that in an app bundle, but thanks for the tips 2020-05-15T16:27:57Z phoe: Bike: that typo in UIOP was fixed 2020-05-15T16:28:06Z phoe: thanks for noticing it and giving a heads-up 2020-05-15T16:28:16Z liberliver quit (Ping timeout: 246 seconds) 2020-05-15T16:28:18Z fe[nl]ix: you write a wrapper shell script that sets up the environment and calls your binary 2020-05-15T16:28:38Z samlamamma: jmercouris:You probably already know this, but can't you just bundle your shared libraries as a pre-determined relative path to your application? 2020-05-15T16:29:36Z phoe: samlamamma: I think he's already doing it 2020-05-15T16:29:49Z shidima quit (Ping timeout: 265 seconds) 2020-05-15T16:29:51Z phoe: and the issue is that the /opt/ ones are prioritized anyway, and these are the ones that get loaded 2020-05-15T16:31:40Z samlamamma: Aha, ouch. 2020-05-15T16:31:56Z fe[nl]ix: jmercouris: see https://www.manpagez.com/man/3/dlopen/, section "Searching" 2020-05-15T16:32:34Z sdumi quit (Ping timeout: 240 seconds) 2020-05-15T16:33:10Z phoe: I bet that if macOS bundling worked in this exact way, we wouldn't see any of that frustration or sparks that start flying off the channel 2020-05-15T16:33:13Z sdumi joined #lisp 2020-05-15T16:33:29Z phoe: let's assume good faith of everyone involved in the discussion and continue 2020-05-15T16:33:42Z phoe: and then, later and in retrospective, possibly turn this into a blogpost of sorts 2020-05-15T16:34:03Z phoe: there's going to be people deploying Lisp apps for macOS with foreign dependencies in the future; they might stumble upon a similar issue 2020-05-15T16:36:48Z phoe: https://i.redd.it/733evqt0w4y41.jpg 2020-05-15T16:38:51Z sdumi quit (Read error: Connection reset by peer) 2020-05-15T16:39:38Z sdumi joined #lisp 2020-05-15T16:41:08Z luis: fe[nl]ix: what do you think about augmenting CFFI's :string type to accept a special variable name that can be looked up at runtime so that each library can control their own encoding? E.g., (defcfun foo (:string :encoding mylibrary:*foreign-encoding*) ...) 2020-05-15T16:44:15Z fe[nl]ix: why at runtime and not at compile-time ? 2020-05-15T16:45:04Z fe[nl]ix: this is potentially slow because it defeats all compiler-macro optimizations in babel 2020-05-15T16:45:54Z luis: My motivation is some FFI for accessing a database that sometimes wants one encoding sometimes others, depending on the environment. 2020-05-15T16:45:56Z LdBeth: Configuring by rebuilding 2020-05-15T16:46:06Z luis: Babel doesn't have any compiler macros. 2020-05-15T16:46:16Z fe[nl]ix: inlining ? 2020-05-15T16:46:19Z jw4 quit (Quit: tot siens) 2020-05-15T16:46:57Z jw4 joined #lisp 2020-05-15T16:47:36Z fe[nl]ix: sure, it can be done 2020-05-15T16:47:39Z luis: You have to look up the encoder/decoder by name. Note that by default, :string will go through *default-foreign-encoding* 2020-05-15T16:47:49Z fe[nl]ix: is this for Oracle ? 2020-05-15T16:47:50Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-15T16:47:58Z luis: Bingo. 2020-05-15T16:48:01Z fe[nl]ix: lol 2020-05-15T16:49:16Z Fare joined #lisp 2020-05-15T16:50:30Z fe[nl]ix: how do you decide the encoding ? only when connecting to the DB ? 2020-05-15T16:52:16Z fe[nl]ix: anyway, I'm ok with it, I don't see a much better way 2020-05-15T16:52:17Z fe[nl]ix: go to go 2020-05-15T16:52:19Z luis: This is probably not Oracle's fault. You can write whatever bytes you want in the database. Some clients use one encoding, other clients use a different one... Clients have control over these settings like it's the 1990s ¯\_(ツ)_/¯ 2020-05-15T16:52:28Z terpri quit (Remote host closed the connection) 2020-05-15T16:52:30Z kpoeck joined #lisp 2020-05-15T16:52:36Z fe[nl]ix: wow 2020-05-15T16:52:39Z fe[nl]ix: I feel your pain 2020-05-15T16:53:09Z remix2000 joined #lisp 2020-05-15T16:53:11Z luis: No pain. I stay away from the database. 2020-05-15T16:53:39Z phoe: blessings of the elder gods upon you who needs to interface with that bullsh#t 2020-05-15T16:53:56Z corpix_ joined #lisp 2020-05-15T16:54:03Z corpix quit (Ping timeout: 240 seconds) 2020-05-15T16:55:08Z rogersm quit (Quit: Leaving...) 2020-05-15T17:05:20Z scymtym quit (Ping timeout: 244 seconds) 2020-05-15T17:07:59Z refpga quit (Read error: Connection reset by peer) 2020-05-15T17:08:20Z refpga joined #lisp 2020-05-15T17:09:25Z luis quit (Quit: The Lounge - https://thelounge.chat) 2020-05-15T17:09:51Z jprajzne quit (Quit: jprajzne) 2020-05-15T17:10:01Z cosimone quit (Remote host closed the connection) 2020-05-15T17:10:31Z cosimone joined #lisp 2020-05-15T17:11:24Z luis joined #lisp 2020-05-15T17:11:33Z akoana joined #lisp 2020-05-15T17:12:21Z rpg joined #lisp 2020-05-15T17:13:27Z mikecheck joined #lisp 2020-05-15T17:14:00Z rogersm joined #lisp 2020-05-15T17:18:56Z rogersm quit (Ping timeout: 256 seconds) 2020-05-15T17:24:45Z fourier joined #lisp 2020-05-15T17:35:04Z kpoeck quit (Ping timeout: 245 seconds) 2020-05-15T17:37:25Z Bike: can anyone think of a situation in which the transform (if (not [test]) [then] [else]) => (if [test] [else] [then]) is not valid? 2020-05-15T17:38:24Z samlamamma quit (Ping timeout: 244 seconds) 2020-05-15T17:38:32Z phoe: hmmmm. if [test] returns no values then the missing value is coerced into NIL, which still works correctly after that transformation 2020-05-15T17:38:59Z phoe: if control is transferred out of the test, neither option is evaluated, same thing after the transformation 2020-05-15T17:39:05Z phoe: seems bulletproof to me 2020-05-15T17:40:03Z ahungry joined #lisp 2020-05-15T17:41:56Z Bike: same... wonder what i'm seeing then 2020-05-15T17:42:13Z phoe: what are you seeing 2020-05-15T17:43:30Z madand quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-15T17:44:55Z Lycurgus assumes concurrency isn't at issue 2020-05-15T17:45:22Z madand joined #lisp 2020-05-15T17:46:42Z funnel quit (Ping timeout: 260 seconds) 2020-05-15T17:47:11Z funnel joined #lisp 2020-05-15T17:48:46Z Lycurgus quit (Quit: Exeunt) 2020-05-15T17:51:36Z Bike: well, i'm seeing it not be equivalent, basically. and no obvious example of a [test] it's not working for, of course. 2020-05-15T17:51:46Z Bike: does concurrency matter? doesn't seem like it ought to. 2020-05-15T17:52:18Z phoe: Bike: hold on for a second 2020-05-15T17:52:30Z phoe: if you see it not be equivalent, then you need to have some example to back it up 2020-05-15T17:52:47Z phoe: otherwise, if there's no such example, then it is equivalent 2020-05-15T17:53:10Z Bike: i mean there is such an example (or something else is going wrong), i just don't know what it is because the error isn't anything obvious. 2020-05-15T17:53:39Z phoe: I kind of wouldn't expect that transform to be at fault here though 2020-05-15T17:53:49Z Bike: it's the only difference. 2020-05-15T17:53:50Z phoe: or rather, the idea behind that transform 2020-05-15T17:53:59Z Bike: me neither, i'm asking as a sanity check 2020-05-15T17:54:08Z phoe: OK 2020-05-15T17:55:27Z theseb quit (Quit: Leaving) 2020-05-15T17:55:46Z refpga quit (Ping timeout: 256 seconds) 2020-05-15T17:56:12Z theseb joined #lisp 2020-05-15T17:57:50Z rogersm joined #lisp 2020-05-15T17:58:00Z karlosz joined #lisp 2020-05-15T18:00:48Z scymtym joined #lisp 2020-05-15T18:02:00Z jackdaniel: Bike: maybe (if [test] foo) is transformed to (if (not [test]) foo) due to i.e calling reverse on "rest" args? 2020-05-15T18:02:44Z Bike: no, that should be handled. not a bad idea though, it's probably something dumb on my part like that 2020-05-15T18:02:53Z PuercoPope left #lisp 2020-05-15T18:03:23Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-15T18:05:32Z madmonkey joined #lisp 2020-05-15T18:05:58Z kpoeck joined #lisp 2020-05-15T18:06:33Z cosimone quit (Remote host closed the connection) 2020-05-15T18:07:02Z cosimone joined #lisp 2020-05-15T18:07:40Z yottabyte: if I want to use Drakma to make a request and work with a json response, what's the best way to do that? for example, if I make the request (drakma:http-request "http://ip.jsontest.com/") which returns a simple json response, it's received as an octet stream. is the best way to use some library to turn this into a map? how would I do that? I tried using yason like the Drakma guide did, but I got an SSL exception 2020-05-15T18:08:02Z yottabyte: the http-request itself is successful, though 2020-05-15T18:08:10Z dalz quit (Remote host closed the connection) 2020-05-15T18:08:28Z refpga joined #lisp 2020-05-15T18:08:32Z phoe: yottabyte: SSL exception? what sort of? 2020-05-15T18:08:53Z phoe: SSL has nothing to do with JSON 2020-05-15T18:09:22Z yottabyte: An I/O error occurred: undocumented reason (return code: 5). SSL error queue is empty. [Condition of type CL+SSL::SSL-ERROR-SYSCALL] 2020-05-15T18:10:07Z yottabyte: I did the following: https://pastebin.com/1sDFaX7i 2020-05-15T18:10:54Z phoe: a workaround is to go from https:// to http:// 2020-05-15T18:11:02Z yottabyte: That's just straight from the Drakma page though. I'm willing to use anything 2020-05-15T18:11:05Z phoe: I wonder why CL+SSL would generate such issues though 2020-05-15T18:11:21Z yottabyte: oh that worked! 2020-05-15T18:14:01Z pve: Is it allowed to subclass standard-method and add an instance of the subclass to an instance of standard-generic-function? When I try it, the method goes in, but upon inspection of the generic function, it shows the method to be of type standard-method instead of the subclass. 2020-05-15T18:14:12Z rogersm quit (Quit: Leaving...) 2020-05-15T18:14:25Z phoe: pve: could you post a code example? 2020-05-15T18:14:54Z rogersm joined #lisp 2020-05-15T18:15:01Z pve: sure, just a sec 2020-05-15T18:15:45Z yottabyte: so phoe: that returns a list, but it doesn't appear to be a plist, how do I work with it? should I really look to make a map out of it instead of a plist? 2020-05-15T18:16:00Z phoe: yottabyte: look up yasom's manual for that 2020-05-15T18:16:12Z phoe: every JSON library returns its own thing, really 2020-05-15T18:16:24Z phoe: and has its own internal format of dealing with things 2020-05-15T18:16:32Z yottabyte: should I use yason or cl-json? 2020-05-15T18:16:53Z _death: whatever you do, don't use cl-json 2020-05-15T18:17:47Z Bike: pve: the answer is yes, though, so probably there's some other issue 2020-05-15T18:17:59Z yottabyte: ha, thanks 2020-05-15T18:18:49Z rpg joined #lisp 2020-05-15T18:19:29Z dlowe looks at all his projects that use cl-json 2020-05-15T18:20:08Z rogersm quit (Ping timeout: 272 seconds) 2020-05-15T18:23:53Z pve: phoe: something like this: 2020-05-15T18:23:54Z pve: https://plaster.tymoon.eu/view/1832#1832 2020-05-15T18:23:56Z pve: Bike: ^ 2020-05-15T18:24:13Z rogersm joined #lisp 2020-05-15T18:24:19Z phoe: pve: DEFCLASS DELEGATOR-METHOD 2020-05-15T18:24:23Z phoe: I also need it 2020-05-15T18:24:29Z amerlyq quit (Quit: amerlyq) 2020-05-15T18:24:54Z Bike: and you're just using generic-function-methods to get the method list? 2020-05-15T18:25:03Z Bike: i can't imagine an implementation changing class of a method 2020-05-15T18:26:32Z pve: phoe: added the defclass 2020-05-15T18:26:58Z pve: i'm inspecting the gf in slime's inspector 2020-05-15T18:27:26Z Bike: could you check (generic-function-methods gf)? 2020-05-15T18:27:52Z pve: i just did, but it also reports all standard-method 2020-05-15T18:27:55Z pve: hmm 2020-05-15T18:28:04Z _death: yottabyte: actually yason has the same defect as cl-json.. sigh, just use something with a sane default such as com.gigamonkeys.json 2020-05-15T18:28:09Z Bike: what implementation are you on? 2020-05-15T18:28:12Z pve: sbcl 2020-05-15T18:28:25Z Bike: Do you have a custom method on add-method? 2020-05-15T18:28:38Z yottabyte: _death: what defect is that? 2020-05-15T18:28:52Z Bike: and the generic function class is just standard-generic-function, you said... 2020-05-15T18:28:53Z pve: Bike: no.. do I need one? 2020-05-15T18:28:57Z Bike: you shouldn't. 2020-05-15T18:29:04Z _death: (eql (yason:parse "false") (yason:parse "null")) ==> true 2020-05-15T18:29:05Z sauvin quit (Read error: Connection reset by peer) 2020-05-15T18:29:14Z pve: yes, standard-generic-function 2020-05-15T18:29:24Z pve: oh sorry, I'm getting called away, brb 2020-05-15T18:29:47Z fourier quit (Ping timeout: 260 seconds) 2020-05-15T18:30:09Z pve: so the method subclass is the only thing I added.. 2020-05-15T18:30:34Z Bike: and you're checking generic-function-methods immediately after the add-method call? 2020-05-15T18:30:42Z Bike: or is there intervening code? 2020-05-15T18:31:01Z Bike: oh, and you should give your method qualifiers 2020-05-15T18:31:51Z Bike: til sbcl has an initform nil on the qualifiers slot 2020-05-15T18:31:58Z pve: hm I think I discovered a mistake now 2020-05-15T18:33:00Z pve: ok, I think I know what's going on.. will explain shortly 2020-05-15T18:35:48Z _heisig joined #lisp 2020-05-15T18:35:48Z phoe: https://plaster.tymoon.eu/view/1833#1833 2020-05-15T18:35:51Z phoe: pve: cannot reproduce 2020-05-15T18:37:31Z milanj quit (Quit: This computer has gone to sleep) 2020-05-15T18:38:20Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-15T18:38:37Z heisig quit (Ping timeout: 264 seconds) 2020-05-15T18:43:29Z pjb: Bike: assuming it's a 3 argument IF, and assuming [then] and [else] don't have read-time side-effects, yes. 2020-05-15T18:43:53Z pjb: Bike: (if (not nil) #.(incf *foo*) #.(progn (incf *foo*) *bar*)) wouldn't work… 2020-05-15T18:44:28Z pjb: Bike: or (if (not nil) #.(incf *foo*) #.(bar *foo*)) wouldn't work… 2020-05-15T18:48:42Z RukiSama_ joined #lisp 2020-05-15T18:49:11Z rogersm quit (Quit: Leaving...) 2020-05-15T18:51:57Z RukiSama quit (Ping timeout: 260 seconds) 2020-05-15T18:55:20Z terpri joined #lisp 2020-05-15T18:56:14Z shka_ quit (Ping timeout: 240 seconds) 2020-05-15T18:59:13Z dddddd joined #lisp 2020-05-15T19:04:40Z ayuce quit (Read error: Connection reset by peer) 2020-05-15T19:09:13Z orivej quit (Ping timeout: 258 seconds) 2020-05-15T19:12:45Z phoe: oh my goodness 2020-05-15T19:13:14Z phoe: https://github.com/tvraman/aster-math/tree/master/lisp-code/latex-parser 2020-05-15T19:13:17Z Jesin quit (Quit: Leaving) 2020-05-15T19:13:34Z orivej joined #lisp 2020-05-15T19:14:08Z phoe: we can use that for parsing dpANS3! 2020-05-15T19:15:52Z rogersm joined #lisp 2020-05-15T19:17:57Z mikecheck quit (Remote host closed the connection) 2020-05-15T19:18:18Z karswell quit (Remote host closed the connection) 2020-05-15T19:19:00Z Jesin joined #lisp 2020-05-15T19:19:06Z karswell joined #lisp 2020-05-15T19:20:26Z rogersm quit (Ping timeout: 256 seconds) 2020-05-15T19:21:05Z phoe: (in-package :user) 2020-05-15T19:21:10Z phoe: woo boy 2020-05-15T19:21:37Z dlowe: I wrote a latex parser for dpANS3 and it was super hard to get right 2020-05-15T19:21:48Z phoe: dlowe: oh! could you link it? 2020-05-15T19:21:58Z jeosol quit (Remote host closed the connection) 2020-05-15T19:21:58Z kpoeck quit (Remote host closed the connection) 2020-05-15T19:22:02Z dlowe: I never made it work well enough that I wanted to publish it 2020-05-15T19:22:11Z phoe: dlowe: I could try fixing it up 2020-05-15T19:22:13Z dlowe: and then I had a kid 2020-05-15T19:22:18Z rogersm joined #lisp 2020-05-15T19:22:28Z dlowe: I was never convinced I was on the right track at all 2020-05-15T19:22:29Z phoe: it's time for me to pull the ultraspec out of the freezer 2020-05-15T19:22:49Z dlowe: What I was really after was a canonical s-exp form of the spec 2020-05-15T19:23:02Z phoe: sounds similar to what I'm after 2020-05-15T19:23:03Z dlowe: that could be used for whatever instead of the original 2020-05-15T19:23:25Z holycow joined #lisp 2020-05-15T19:23:31Z dlowe: I thought you made a by-hand wiki 2020-05-15T19:23:36Z phoe: I did 2020-05-15T19:23:47Z phoe: and then I stopped and actually thought about what I'm doing 2020-05-15T19:23:57Z phoe: and it turns out I should have reversed the two steps 2020-05-15T19:24:05Z dlowe: I can't say you were wrong to try it. 2020-05-15T19:24:11Z phoe: I can't say it either 2020-05-15T19:24:21Z phoe: now I know what the next step should look like 2020-05-15T19:24:23Z dlowe: Having another html spec form would have been really great 2020-05-15T19:24:35Z phoe: once we have sexprs, we can generate all the HTML we want though 2020-05-15T19:25:07Z dlowe: nod, that was the theory 2020-05-15T19:25:27Z phoe: and I fscked the theory up by the handiwork wiki 2020-05-15T19:25:28Z pve: Bike: ok I can see the method subclass getting added to the gf now, the weirdness was caused by a little thinko. Won't bore you with the details.. 2020-05-15T19:25:31Z phoe: time to take a step backwards 2020-05-15T19:25:38Z pve: thank you for your help, Bike, phoe 2020-05-15T19:27:12Z Cymew quit (Ping timeout: 265 seconds) 2020-05-15T19:27:44Z karswell quit (Read error: Connection reset by peer) 2020-05-15T19:28:28Z phoe: <3 2020-05-15T19:30:18Z Krystof quit (Ping timeout: 260 seconds) 2020-05-15T19:34:44Z rogersm quit 2020-05-15T19:35:03Z rogersm joined #lisp 2020-05-15T19:37:42Z _heisig is now known as heisig 2020-05-15T19:43:07Z z147 joined #lisp 2020-05-15T19:44:02Z heisig quit (Quit: Leaving) 2020-05-15T19:47:04Z roelj joined #lisp 2020-05-15T19:51:32Z ralt: so, hm 2020-05-15T19:51:50Z ralt: I am struggling to understand what cffi-toolchain point is 2020-05-15T19:51:53Z ralt: what is it trying to do? 2020-05-15T19:52:43Z roelj quit (Remote host closed the connection) 2020-05-15T19:52:46Z ralt: I feel like I understood it to be one thing, but it looks like it can't do half of it, so I'm not sure it is supposed to be doing. IOW I'd like to know which problem it's solving, and guess its limitations from there. 2020-05-15T19:52:52Z ralt: Fare: you might be able to help me there? 2020-05-15T19:53:21Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-15T19:53:57Z rogersm quit (Remote host closed the connection) 2020-05-15T19:57:08Z psilotorp joined #lisp 2020-05-15T20:01:18Z ralt: as I understand it, it is building an object file for every cffi-(grovel|wrapper)-file, bundling them all into a static library, then linking that static library with sbcl.o (or w/e is relevant to your implementation) to build an image. 2020-05-15T20:01:28Z gravicappa joined #lisp 2020-05-15T20:01:31Z ralt: so it does not handle foreign shared libraries at all, right? 2020-05-15T20:05:13Z ralt: e.g. it doesn't help at all for iolib which relies on libfixposix, right? 2020-05-15T20:06:43Z ralt: ok, looks like libfixposix is in major distros now at least 2020-05-15T20:06:55Z jackdaniel: it is a useful library 2020-05-15T20:10:05Z aeth: Yes, but on the other hand it's not a widely used library yet, so even though it's probably offered by your distro, it's also unlikely to be installed. (e.g. I don't have it installed, I just checked) 2020-05-15T20:11:15Z Shinmera: portable deployment on linux is impossible so you're better off just cutting your losses and focusing on more useful work. 2020-05-15T20:11:46Z dlowe: honestly more things should use libfixposix instead of re-implementing the wheel themselves 2020-05-15T20:12:19Z phoe: Would it make sense to add numbers to CLHS dictionaries? Like, System Class LIST would become 14.2.1, System Class NULL - 14.2.2, etc.. 2020-05-15T20:12:34Z aeth: Portable deployment on Linux is possible in a dozen different ways. The three most popular are Flatpak, Snap, and AppImage. You can also use something remarkably heavyweight like Nix. Games usually use the Steam runtime. 2020-05-15T20:12:53Z aeth: I suppose the real issue is that there's no consolidation in portable deployment on Linux. There's just... a dozen different ways. 2020-05-15T20:12:59Z Bike: phoe: i think that's how it is in the actual standard? 2020-05-15T20:13:08Z phoe: clhs 14.2.1 2020-05-15T20:13:08Z specbot: Couldn't find anything for 14.2.1. 2020-05-15T20:13:09Z Shinmera: aeth: those are all only portable to an extent. 2020-05-15T20:13:15Z Shinmera: aeth: like all solutions. 2020-05-15T20:13:24Z phoe: Bike: nope, AFAIK that doesn't apply for symbol dictionaries. 2020-05-15T20:13:29Z phoe: clhs 14.2 2020-05-15T20:13:29Z specbot: The Conses Dictionary: http://www.lispworks.com/reference/HyperSpec/Body/c_conses.htm 2020-05-15T20:13:31Z aeth: Shinmera: I mean, I could probably make a Linux distro that can't run any of those, but it's probably also a Linux distro that desktop users aren't going to be using. 2020-05-15T20:13:33Z Shinmera: linux makes pretty much nil guarantees about what the system will look like and you're just fucked. 2020-05-15T20:13:48Z Bike: phoe: i mean the ansi document, rather than the hyperspec 2020-05-15T20:13:54Z Shinmera: so just cut your losses and do more useful work instead of wasting it on below 1% users. 2020-05-15T20:14:01Z phoe: Bike: actually let me read 2020-05-15T20:14:29Z phoe: http://l4u-00.jinr.ru/pub/misc/symbolic/lisp/dpANS3/book.pdf pg. 836 2020-05-15T20:14:29Z samlamamma joined #lisp 2020-05-15T20:14:30Z aeth: Shinmera: Literally any of the methods I listed, except maybe Nix, will cover > 95% of Linux desktop users. Just because you can't cover 100% doesn't mean you should give up. 2020-05-15T20:14:33Z phoe: I can't see numeration there 2020-05-15T20:14:54Z Shinmera: aeth: Choosing them is also a form of cutting your losses. 2020-05-15T20:14:56Z aeth: Shinmera: This isn't even taking into account writing your code entirely in a portable language, like Java or, say, Common Lisp 2020-05-15T20:15:32Z Shinmera: my point is that this obsession with creating a 'portable application' is a waste of time beyond those 95% of users. 2020-05-15T20:16:08Z aeth: Just use Flatpak. Gnome bundles it so most people probably have it installed without even realizing that they have it installed. 2020-05-15T20:17:05Z aeth: (And nearly every distro will support Gnome even if it's not a Gnome-defaulting distro) 2020-05-15T20:17:45Z ralt: I'm actually okay with having to declare a bunch of dependencies in my packages 2020-05-15T20:18:27Z ralt: I guess my main issue is one of misunderstanding -- "static-program-op" doesn't really make you think "shared binary with some embedded libraries, and not even all of them" 2020-05-15T20:19:20Z ralt: Not being able to statically build libsqlite is ok. Looks like that's what all distros are forcing. 2020-05-15T20:20:24Z ralt: when https://common-lisp.net/project/cffi/manual/html_node/Static-Linking.html says "To dump a statically linked executable standalone application", it really brings a lot of confusion :) 2020-05-15T20:20:34Z ralt: I think I'll come up with a PR to fix the docs. 2020-05-15T20:24:30Z phoe: (defmethod child ((document document) (position integer)) ...) 2020-05-15T20:24:34Z phoe: (defmethod child ((position integer) (document document)) ...) 2020-05-15T20:24:45Z phoe: I did not expect this level of wizardry in the code I'm reviving right now 2020-05-15T20:28:38Z fe[nl]ix: ralt: I will give you the latest SBCL compiled with libfixposix statically linked 2020-05-15T20:28:58Z fe[nl]ix: only Linux/x86_64, is that good enough ? 2020-05-15T20:29:03Z fe[nl]ix: I need to automate this 2020-05-15T20:29:07Z ralt: libfixposix was just an example :) 2020-05-15T20:29:48Z fe[nl]ix: my plan is to automate it and distribute SBCL with libfixposix and openssl statically linked 2020-05-15T20:30:08Z fe[nl]ix: that should cover a lot of people's needs 2020-05-15T20:30:38Z ralt: if you could get a static sbcl binary that doesn't end up with thousands of memory corrupted errors, that'd be nice 2020-05-15T20:31:04Z ralt: I could add more static libraries on top of it, dump images, and distribute static binaries 2020-05-15T20:31:17Z fe[nl]ix: I have the first already 2020-05-15T20:31:35Z fe[nl]ix: turning that into a DIY linkking kit is more difficult 2020-05-15T20:31:42Z Mawile joined #lisp 2020-05-15T20:31:47Z fe[nl]ix: what libreries do you need ? 2020-05-15T20:32:11Z phoe: fe[nl]ix: I really like the sound of that 2020-05-15T20:33:01Z fe[nl]ix: for the moment I can do this manually and stay on top of openssl security patches 2020-05-15T20:33:30Z fe[nl]ix: but ideally I'd like an automated system that does that 2020-05-15T20:33:42Z fe[nl]ix: phoe: ok, this weekend 2020-05-15T20:34:07Z fe[nl]ix: dlowe: I should probably write some documentation and a nice website for libfixposix 2020-05-15T20:34:13Z fe[nl]ix: and advertise it a little 2020-05-15T20:35:02Z Archenoth quit (Ping timeout: 272 seconds) 2020-05-15T20:36:09Z smazga quit (Quit: leaving) 2020-05-15T20:38:42Z phoe: okay, TeX parser forked 2020-05-15T20:38:53Z phoe: I'll make it compile tomorrow 2020-05-15T20:43:12Z phoe gets his scheduled garbage collection 2020-05-15T20:43:54Z Fare: fe[nl]ix, instead of libfixposix, I want a libkill-9posix 2020-05-15T20:44:20Z Fare: but oh well, I suppose a libfixposix will do in the meantime. 2020-05-15T20:44:49Z phoe: Fare: you and no-defun-allowed need to talk more often about kill-9ing posix and unix stuffs in general 2020-05-15T20:44:57Z phoe: you two seem to have a lot in common on the matter 2020-05-15T20:45:43Z ralt: ok, the main issue I seem to have at the moment is that (1) if I keep static-program-op as is, it still tries to load the foreign libraries that were statically embedded, but if (2) I unload all saved libraries before dumping the image, the binary doesn't know how to load it after restoring 2020-05-15T20:45:48Z ralt: that sounds like a solvable problem 2020-05-15T20:46:49Z Fare: ralt, maybe you can propose a better name for static-program-op. Or at least, better documentation. 2020-05-15T20:47:19Z ralt: yup, I said so above already 2020-05-15T20:47:23Z Fare: ralt, you can use the hooks of UIOP to do the unloading and reloading. 2020-05-15T20:47:27Z Necktwi_ joined #lisp 2020-05-15T20:47:30Z jackdaniel: static-ish-image-op 2020-05-15T20:48:15Z refpga quit (Remote host closed the connection) 2020-05-15T20:48:16Z Fare: I remember doing that unloading and reloading at ITA before UIOP existed to provide such portable hooks. 2020-05-15T20:48:35Z refpga joined #lisp 2020-05-15T20:48:52Z Fare: actually, UIOP embodies a lot of the lessons learnt the hard way at ITA. 2020-05-15T20:49:17Z ralt: UIOP provides something similar to sbcl's *init-hooks*/*exit-hooks*? 2020-05-15T20:49:21Z Fare: yes 2020-05-15T20:49:25Z ralt: great, thanks 2020-05-15T20:49:29Z Fare: see uiop/image.lisp 2020-05-15T20:49:44Z Necktwi quit (Ping timeout: 256 seconds) 2020-05-15T20:49:55Z Fare: except it's portable. 2020-05-15T20:50:00Z ralt: my immediate question is: where should this code live? 2020-05-15T20:50:17Z Fare: BUT, you need to explicitly call the UIOP functions (or hook them into SBCL's). 2020-05-15T20:50:19Z ralt: with cffi-toolchain I have the nice advantage that I can just put :static-program-op in my .asd and everything is magic 2020-05-15T20:50:55Z Fare: ralt: ASDF does call the appropriate UIOP hooks, at least by default 2020-05-15T20:51:13Z Fare: (for ECL's sake, I kept a mode where it doesn't even use UIOP) 2020-05-15T20:51:38Z ralt: essentially I just need to do a (loop for library in (cffi:list-foreign-libraries) unless (eq (cffi:foreign-library-type library) :system) do (cffi:close-foreign-library library)) 2020-05-15T20:51:50Z Fare: jackdaniel, any chance to merge ECL's fork of ASDF back into the mainline? 2020-05-15T20:52:14Z jackdaniel: Fare: this fork are only some backported fixes, nothing to merge back 2020-05-15T20:52:27Z Fare: ralt: #:*image-restore-hook* #:*image-prelude* #:*image-entry-point* #:*image-postlude* #:*image-dump-hook* 2020-05-15T20:52:57Z ralt: I actually used *image-entry-point* the other day, should've noticed those ones as well 2020-05-15T20:52:59Z Fare: jackdaniel, any reason not to "just" adopt ASDF 3.3.5 or whatever comes next with all the fixes? 2020-05-15T20:53:29Z jackdaniel: there is plenty of reasons, the most pressing one is that last time I've checked "new" asdf plenty of things didn't work, most notably bundles 2020-05-15T20:54:29Z Fare: if anything doesn't work about bundles, that's definitely a but. I remember spending a LOT of time making sure bundles would keep working on ECL and MKCL as well as on the other image-based Lisps. 2020-05-15T20:54:31Z jackdaniel: another is that ASDF seems to grow without upper bound 2020-05-15T20:55:19Z jackdaniel: so freezing just before 3.2 puts a cap on it. if someone wants to upgrade their asdf, then they load it as any other library 2020-05-15T20:55:30Z Fare: jackdaniel, it's the purpose creep of ASDF, well described and explained in my ASDF3 paper. It has stopped when I left the helm. 2020-05-15T20:56:36Z ralt: > First, finalize the image, by evaluating the POSTLUDE as per EVAL-INPUT, then calling each of the functions in DUMP-HOOK, in reverse order of registration by REGISTER-DUMP-HOOK. 2020-05-15T20:56:38Z Fare: yup, ASDF3's ability to self-upgrade means that you can focus on stability, and people who need more features can "just" install a new ASDF in a registered path. 2020-05-15T20:57:02Z ralt: I spent a good 30s grepping for register-dump-hook :) 2020-05-15T20:57:07Z jackdaniel: to be honest if I had to upgrade asdf, I'd simply not load the old one 2020-05-15T20:57:12Z jackdaniel: I don't trust the upgradability-creep 2020-05-15T20:57:33Z Fare: jackdaniel, not everyone can afford to "not load the old one". 2020-05-15T20:57:53Z jackdaniel: in that case I pity them! 2020-05-15T20:57:55Z Fare: upgradability was a cost to pay, but it was paid for long ago. That part of ASDF just works, nowadays. 2020-05-15T20:58:32Z orivej quit (Ping timeout: 260 seconds) 2020-05-15T20:58:59Z Fare: Fare, imagine the world before ASDF2, where you couldn't upgrade, but you couldn't not upgrade either. No Lisp scripting was possible without being your own system administrator. 2020-05-15T20:59:36Z Fare: Therefore, a lot of extra shell / perl / python / sed scripting... ugh. 2020-05-15T21:00:53Z Fare: These days, between ASDF, cl-launch, quicklisp, etc., scripting in Lisp is quite easy (though CL has a higher barrier to entry than most languages). 2020-05-15T21:01:00Z narimiran quit (Ping timeout: 272 seconds) 2020-05-15T21:01:01Z jackdaniel: I'm sure there is a verbose explanation of each decision you took, I don't have plans to argue with them; I simply don't like huge chunks of the end effect 2020-05-15T21:02:03Z jackdaniel: and of course I use ASDF daily, so it is certainly useful software to me 2020-05-15T21:02:49Z karayan quit (Remote host closed the connection) 2020-05-15T21:03:01Z jackdaniel: either way, thanks to a great feature of upgradability, there is no pressing need to update asdf version bundled with ecl 2020-05-15T21:03:28Z ralt: Fare: sorry, it looks like I cannot login on gitlab.common-lisp.net, so I couldn't open an issue explaning that UIOP:DUMP-IMAGE's docstring is mentioning an apparently dead function (REGISTER-DUMP-HOOK) 2020-05-15T21:06:22Z karayan joined #lisp 2020-05-15T21:10:31Z gravicappa quit (Remote host closed the connection) 2020-05-15T21:11:29Z Fare: send email to admin@common-lisp.net to create an account or get your password reset. 2020-05-15T21:12:03Z Fare: ralt: it should be register-image-dump-hook, I suppose. 2020-05-15T21:13:20Z ralt: thanks 2020-05-15T21:13:50Z Fare: jackdaniel, yup, as long as it's stable and bug fixes get ported between the branches, your fork is most welcome and not a hindrance in any way (except for that lingering doubt about whether indeed all the bug fixes were ported). 2020-05-15T21:14:58Z jackdaniel: I'm more concerned about backporting bugs than bugfixes 2020-05-15T21:14:59Z Fare: jackdaniel, I remember my explanation: "it was not feature creep, it was mission creep" 2020-05-15T21:15:15Z orivej joined #lisp 2020-05-15T21:16:04Z Fare: jackdaniel, there certainly have been plenty of bugs in the 3.3 series. It looks much more stable now, though. 2020-05-15T21:17:37Z ralt: alright, this seems to work, and I'm pretty happy with it https://gitlab.com/ralt/ballish/-/blob/master/ballish.asd#L33-43 2020-05-15T21:18:17Z ralt: cc luis what do you think? ^ 2020-05-15T21:18:19Z pve quit (Quit: leaving) 2020-05-15T21:19:01Z Kundry_Wag joined #lisp 2020-05-15T21:22:32Z Kundry_W_ quit (Ping timeout: 272 seconds) 2020-05-15T21:22:44Z ralt: Fare: any thoughts on the link? does that look like the correct way to go? IOW does it fit your understanding of static-program-op as well? 2020-05-15T21:23:14Z ahungry quit (Remote host closed the connection) 2020-05-15T21:24:31Z jfrancis joined #lisp 2020-05-15T21:24:57Z jfrancis quit (Remote host closed the connection) 2020-05-15T21:25:19Z Fare: ralt: you're doing it for all systems. Don't you want to do it just for one system? (say with an eql specializer)? 2020-05-15T21:25:21Z jfrancis_ quit (Read error: Connection reset by peer) 2020-05-15T21:25:30Z jfrancis joined #lisp 2020-05-15T21:25:40Z rpg joined #lisp 2020-05-15T21:25:43Z Fare: ralt, also, a system should be able to specify a :entry-point instead of setting it like that. 2020-05-15T21:26:21Z Fare: rpg, ralt found a bug in UIOP docstring, s/REGISTER-DUMP-HOOK/REGISTER-IMAGE-DUMP-HOOK/ 2020-05-15T21:26:24Z ralt: Fare: that would make a lot of sense :) what about the idea behind closing those foreign libraries in a static-program-op? 2020-05-15T21:26:46Z kmeow quit (Ping timeout: 244 seconds) 2020-05-15T21:27:06Z ralt: the :entry-point thing is because calling (call-next-method) was failing, I assume because it's a :before, and cffi-toolchain is setting it that way in a :before. It's really my lack of Lisp knowledge, there. 2020-05-15T21:27:12Z kmeow joined #lisp 2020-05-15T21:27:27Z Fare: ralt, it sounds to me like it makes sense, as long as you devise a sensible mechanism to reopen in a new properly initialized environment. 2020-05-15T21:27:53Z ralt: no need to reopen given that it's embedded, do I? 2020-05-15T21:28:07Z Fare: if you don't have a universal such mechanism, it can't become the default for cffi-toolchain. 2020-05-15T21:28:23Z Fare: not such about the "no need to reopen". 2020-05-15T21:28:29Z rpg: ralt, Fare : just got on -- LM look and see what's up. 2020-05-15T21:28:50Z ralt: Fare: it doesn't seem to be needed in my admittedly limited testing 2020-05-15T21:29:30Z Fare: ralt: looks like you're the new cffi-toolchain maintainer. 2020-05-15T21:30:07Z ralt: 🎉 2020-05-15T21:30:47Z rpg: Fare, ralt -- This is in line 341, correct? Will fix and push. 2020-05-15T21:31:24Z luis: ralt: It's definitely weird that static-program-op leaves these libraries open when dumping. 2020-05-15T21:31:42Z Lord_of_Life_ joined #lisp 2020-05-15T21:31:56Z rpg: done.... 2020-05-15T21:32:24Z ralt: rpg: slime-edit-definition is leading me to the giant asdf.lisp file, can't help with the line number, sorry 2020-05-15T21:32:38Z luis: ralt: perhaps in Fare's original use case they were never opened in the first place? 2020-05-15T21:33:01Z rpg: ralt: It's the docstring to DUMP-IMAGE, right? That's what I fixed. 2020-05-15T21:33:10Z ralt: rpg: correct, thanks! 2020-05-15T21:33:19Z Fare: ralt: there is a recipe on how to do better in the asdf/README.md -- (map () 'load (asdf:input-files :monolithic-concatenate-source-op "asdf/defsystem")) 2020-05-15T21:33:33Z z147 quit (Quit: z147) 2020-05-15T21:33:44Z Lord_of_Life quit (Ping timeout: 258 seconds) 2020-05-15T21:33:45Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-15T21:33:51Z ralt: Fare: sorry, better what? 2020-05-15T21:34:06Z Fare: better debugging of ASDF, with line numbers. 2020-05-15T21:34:11Z ralt: ah, debugging asdf 2020-05-15T21:34:20Z Fare: at least, the line of the closest (with-upgradability) 2020-05-15T21:34:28Z ralt: gotcha, thanks 2020-05-15T21:34:35Z luis curses with-upgradability 2020-05-15T21:34:53Z ralt: luis: not sure how that's possible given that dump-image means LOADing 2020-05-15T21:35:44Z Fare: luis: There were ways around it. I could use `DEFUN*` and `DEFMETHOD*` and `DEFTYPE*` etc. at each statement instead of the wrapping. 2020-05-15T21:35:50Z ralt: Fare: much nicer. 2020-05-15T21:35:58Z Fare: luis: at this point, talk with rpg. 2020-05-15T21:36:10Z luis eyes rpg 2020-05-15T21:37:09Z rpg: luis -- I think this may be somewhat a problem with SLIME rather than anything else. I don't think it's WITH-UPGRADEABILITY specifically, since that's effectively just EVAL-WHEN. 2020-05-15T21:38:59Z Fare: it's eval-when, but also declaring every function notinline and other shenanigans to ensure functions can be upgraded. 2020-05-15T21:39:48Z rpg curses slime for never merging... 2020-05-15T21:39:54Z luis: rpg: interestingly, M-. works for defclass and defmethod but not defun. 2020-05-15T21:43:20Z Fare: a few of the with-upgradability shenanigans with :supersede might have been made obsolete by how ASDF3 preemptively upgrades ASDF early on then restarts if upgraded, vs ASDF2 that was trying to heroically upgrade itself mid-build (and failing in the hard cases). 2020-05-15T21:44:41Z ralt: luis: should I open a PR with essentially this small loop closing foreign-libraries, but leaving the system ones? 2020-05-15T21:44:57Z rpg: luis: Does M-. work the same in all lisp implementations? If not, are you specifically talking about SBCL? 2020-05-15T21:45:28Z Fare: in particular, we don't try to update-instance-for-redefined-class anymore. 2020-05-15T21:46:03Z luis: rpg: I'm specifically talking about SBCL. I /think/ it's SBCL's SB-INTROSPECT:FIND-DEFINITION-SOURCES-BY-NAME that's returning wrong results for defun* and defgeneric* 2020-05-15T21:46:40Z Fare: luis: not for defun* and defgeneric*, but for the specific content of an expanded eval-when. 2020-05-15T21:47:27Z rpg: luis: To debug slime, I have to figure out how to restore my configuration on top of master, including my waiting-for-more-than-six-years pull request :-P 2020-05-15T21:47:50Z fe[nl]ix: Fade: the whole upgradeability is a wrong approach 2020-05-15T21:47:52Z Fare: rpg: only 6 years? That's nothing, my PR... 2020-05-15T21:48:01Z Fare: fe[nl]ix, yet it's necessary. 2020-05-15T21:48:05Z fe[nl]ix: it's a software distribution problem, not upgrade 2020-05-15T21:48:25Z Fare: fe[nl]ix, problem being, ASDF is driving the software distribution. 2020-05-15T21:48:29Z luis: rpg: I think you're trying to tell me something :D 2020-05-15T21:48:35Z fe[nl]ix: you don't need it if you have a way of loading the latest ASDF first thingg in the .rc file 2020-05-15T21:48:46Z fe[nl]ix: it's a CL implementation distribution problem 2020-05-15T21:48:55Z rpg: luis: You scratch my back, I scratch yours! #184... 2020-05-15T21:48:57Z Bourne quit (Read error: Connection reset by peer) 2020-05-15T21:49:14Z Fare: fe[nl]ix, "the" .rc file? Good luck convincing 15 different vendors to agree on "the" rc file. 2020-05-15T21:49:36Z luis: ralt: it seems reasonable, but you're the cffi-toolchain maintainer! 2020-05-15T21:50:14Z fe[nl]ix: Fare: no, simply showing users how to load asdf in the .rc 2020-05-15T21:50:18Z rpg: luis: Looking at sbcl.lisp, hoping that I can recall how source code is found. 2020-05-15T21:50:31Z fe[nl]ix: and possibly together with an implementation manager like cim or roswell 2020-05-15T21:51:58Z luis: rpg: what about the "I do not believe that this is a final version" bit? 2020-05-15T21:52:28Z Fare: ralt, cffi-toolchain was supposed to run on SBCL, ECL, MKCL, CLISP -- and could support more with work. Be sure to keep all targets working... 2020-05-15T21:52:46Z ralt: :( 2020-05-15T21:53:17Z rpg: luis: I don't know -- to be honest. I have been applying this patch on top of slime and running with it ever since. 2020-05-15T21:54:46Z rpg: I wonder if I meant to make it easier to switch back and forth? Right now one just gets to specify if one prefers the original slime behavior or the ELI behavior (merging history instead of replacing). 2020-05-15T21:55:42Z ralt: Fare: do you have a trick to run all of those? I know about roswell but am not particularly fan of fukamachi's work. 2020-05-15T21:55:43Z Lycurgus joined #lisp 2020-05-15T21:57:15Z rpg: luis: WRT finding definitions, I'm not sure how SLIME + SBCL does this. Allegro had 2 halves to it -- the compiler recorded only the source file, I believe, and then there was a way of declaring definition forms that ELI would use to search the corresponding file buffer to find the input definition. I believe SBCL stores file position as well as just the filename. Does slime just jump to the file position? That would account for why it gets 2020-05-15T21:57:15Z rpg: increasingly worse at this as my interactive development session persists. 2020-05-15T21:57:16Z luja joined #lisp 2020-05-15T21:57:51Z luja quit (Quit: Leaving) 2020-05-15T21:58:38Z Fare: ralt, roswell is not my style (I wrote cl-launch instead), but basically, you could use what comes with you debian or homebrew or nixpkgs distribution, to start with. 2020-05-15T21:59:44Z Fare: Then in fare-scripts, I wrote my own scripts to rebuild each of the implementations I care for from source, in the cases where I need recent modifications to the implementation (which was the case a lot when I was writing ASDF3 and discovering plenty of implementation bugs) 2020-05-15T22:00:24Z ralt: I'm surprised that MKCL is part of your implementations -- the little information I gathered from mailing lists and such showed little to no usage 2020-05-15T22:00:26Z Fare: (or writing cffi-toolchain and depending on Google-originated patches that hadn't made it to upstream SBCL yet) 2020-05-15T22:00:29Z luis: rpg: let's switch places. You rebase #184 and I'll debug find-definition :) 2020-05-15T22:00:54Z rgherdt quit (Ping timeout: 256 seconds) 2020-05-15T22:01:20Z Fare: ralt, it has at least one user. It also provided an alternative to ECL in the "linking, not dumping" style, so my code would remain properly abstracted. 2020-05-15T22:01:38Z Fare: these days, CLASP is also in this style, IIUC. 2020-05-15T22:01:59Z ralt: fair enough 2020-05-15T22:02:31Z rpg: luis: Cool. Tell you what, though -- if we can work out why it is that WITH-UPGRADEABILITY is confusing SBCL, I'm happy to work with you to help fix it. Do you think it's as simple as SBCL looking up to find the enclosing top level form when it decides what the definition's file position is? 2020-05-15T22:02:50Z ralt: I most likely won't test mkcl if it's not in fedora repos though :) 2020-05-15T22:04:15Z Fare: rpg, my understanding of the WITH-UPGRADABILITY issue is that SBCL doesn't remember position information for individual forms (like CCL) but only for toplevel forms, so you'd need to break the with-upgradability into individual forms to have a different toplevel form per function. 2020-05-15T22:04:45Z Fare: At which point, you'd use defun*, etc., directly, except hoisting the eval-when in them, if still needed. 2020-05-15T22:05:25Z Fare: the ASDF3 upgrade strategy, as opposed to ASDF2, might remove the need for some eval-when's -- or not. 2020-05-15T22:06:33Z Fare: and/or you could further specialize the way ASDF upgrades itself from source, so that it does NOT call perform on each file (which breaks without the eval-when) but specially emulates their behavior without the CLOS infrastructure, specially, just when bootstrapping ASDF. 2020-05-15T22:07:53Z Fare: I don't see any great clean way to do that, and you'll have to be careful not to break the bundle operations. 2020-05-15T22:07:58Z luis: Fare: sbcl does keep position for inner forms. It's something else. 2020-05-15T22:09:14Z Fare: OK. well the inner-forms are themselves expanded. When expanding, does SBCL propagate to the post-expansion forms the information from the pre-expansion forms? 2020-05-15T22:10:25Z v88m quit (Ping timeout: 264 seconds) 2020-05-15T22:12:58Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-15T22:13:52Z wsinatra joined #lisp 2020-05-15T22:15:53Z luis: that works too. 2020-05-15T22:15:58Z rpg: Fare: I think that ACL ELI's way of doing this was better -- record the source file and then parse it at search time (with the ability to specify defining forms for things like your DEFUN*). Recording textual position is super-brittle if one interactively compiles forms (as, being someone who learned to program on a Symbolics, is something I do *all the time*). 2020-05-15T22:16:37Z rpg: Recording source file position is great for C, but for a non-batch-compiled language... meh 2020-05-15T22:17:39Z theseb quit (Quit: Leaving) 2020-05-15T22:19:43Z rpg: luis: BTW, the other long-deferred PR is one that fixes compilation from strings on Allegro. 2020-05-15T22:20:18Z pjb: rpg: true. However, lisp projects still contain a lot of static and rarely changing code. So this can still be useful 90% of the time even with lisp. 2020-05-15T22:23:13Z luis: rpg: slime's find-definition doesn't rely on position alone, so it deals perfectly well with chaging source files 2020-05-15T22:23:47Z luis: rpg: on SBCL that is. It works less well with ACL. 2020-05-15T22:23:48Z rpg: luis: Does it? I find that for example, my compiler warnings start to wander around the file after a number of C-c c 2020-05-15T22:23:56Z rpg: compilations 2020-05-15T22:24:32Z luis: rpg: that's because you're using ACL and a 6-year-old SLIME :) I've fixed that in the meantime 2020-05-15T22:24:36Z rpg: I think my patch for ACL addresses this by spoofing file names (from the buffer file) when compiling interactively. 2020-05-15T22:25:01Z rpg: I don't think my SLIME is actually 6 years old -- just my PR. I have rebased it a few times since then. 2020-05-15T22:26:07Z ralt: luis: I'm terrible at English https://github.com/cffi/cffi/pull/158 2020-05-15T22:26:09Z luis: rpg: I've fixed a bunch of bugs with ACL warning positioning somewhere in the past 2-3 years 2020-05-15T22:26:24Z rpg: Cool! I'll have a look. 2020-05-15T22:27:47Z kmeow quit (Quit: No Ping reply in 180 seconds.) 2020-05-15T22:28:57Z kmeow joined #lisp 2020-05-15T22:33:44Z luis: ralt: I'm confused, didn't you say static-image-op bundled things like sqlite? 2020-05-15T22:34:16Z grumble is now known as rawr 2020-05-15T22:34:19Z ralt: luis: nope, see https://github.com/cffi/cffi/pull/156#issuecomment-629197699 2020-05-15T22:35:04Z ralt: sorry for the confusion, it's been a confusing journey for myself as well 2020-05-15T22:35:19Z luis: ralt: it's hard work becoming the cffi-toolchain maintainer! 2020-05-15T22:36:18Z ralt: if someone has a hardcoded .so file somewhere, and loads it with cffi:load-foreign-library, does it become a system library? 2020-05-15T22:36:38Z ralt: I would assume yes 2020-05-15T22:40:40Z fe[nl]ix: yes 2020-05-15T22:42:28Z terpri quit (Remote host closed the connection) 2020-05-15T22:42:49Z luis: fe[nl]ix: what's the foreign-library type for? Yet another undocumented feature by young fe[nl]ix :) 2020-05-15T22:42:50Z terpri joined #lisp 2020-05-15T22:43:37Z luis: shame! 2020-05-15T22:45:17Z yottabyte: question on yason and drakma: this works: (yason:parse (drakma:http-request "https://jsonplaceholder.typicode.com/posts/1" :want-stream t)) but if I don't have the :want-stream t, it fails. but I thought even without the :want-stream, a flexistream is returned 2020-05-15T22:46:06Z fe[nl]ix: luis: to distinguish between groveler-generated libraries and the rest 2020-05-15T22:48:00Z luis: fe[nl]ix: ACK 2020-05-15T22:49:40Z Lycurgus quit (Quit: Exeunt) 2020-05-15T22:49:58Z no-defun-allowed: yottabyte: possibly as one of the other values, but it may be closed already as Hunchentoot consumed the contents from it 2020-05-15T22:51:14Z luis: Fare, rpg: https://gist.github.com/luismbo/6e769345bd5092ddde82aa8315740de8 2020-05-15T22:51:22Z yottabyte: so I can't use yason:parse without :want-stream t? 2020-05-15T22:52:48Z no-defun-allowed: Can it parse from a string? 2020-05-15T22:54:41Z Fare: luis, ok, so do you have a fix in mind? 2020-05-15T22:55:24Z Fare: if rpg is ok with expanding the with-upgradability into a tens of the same, then fine. IIRC, that slowed down compilation a bit, but that shouldn't matter much. 2020-05-15T22:55:57Z Fare: It's mostly, do we want to rewrite every defun into a defun*, every defgeneric, maybe every defmethod, etc. 2020-05-15T22:56:44Z rpg: Fare: If this can be automated, or if someone else does it, fine. But I don't have a weekend to spend grinding on that by hand. 2020-05-15T22:57:18Z Fare: I'm not doing it. I'm just willing to consult on caveats. 2020-05-15T22:57:19Z luis: I don't understand why find definition fails here yet. 2020-05-15T22:57:24Z ralt: doesn't sound that hard with paredit + a couple of emacs macros 2020-05-15T22:57:33Z rpg: luis: IIUC the problem is that SB-INTROSPEC isn't filling out the FORM-PATH, right? 2020-05-15T22:58:21Z Fare: luis: it might be that the support for :supersede t / nil is what's breaking things, but it looks like this support is not really used anymore in ASDF3, so could be done away with. 2020-05-15T22:58:21Z rpg: Like in your FAILS example, it should be (3 2), not (3), right? 2020-05-15T22:58:56Z Fare: as in (defun (foo) ) versus (defun foo ). 2020-05-15T22:59:20Z rpg: And FAILS-TOO path should be (7 1) 2020-05-15T22:59:20Z Jesin quit (Quit: Leaving) 2020-05-15T22:59:49Z Fare: where (foo) means (foo :supersede t) vs foo meaning :supersede nil 2020-05-15T22:59:51Z luis: Yes, something like that. 2020-05-15T23:00:02Z rpg: I haven't counted, but presumably the CHARACTER-OFFSET is to the start of the initial WITH-UPGRADEABILITY, not the nested DEFUN. 2020-05-15T23:00:22Z Fare: This were necessary when upgrading from ASDF2, something less and less relevant, and I believe not used anymore 2020-05-15T23:00:51Z Fare: We should probably get rid of the supersede feature. 2020-05-15T23:01:03Z luis: rpg: the character offset seems to be from the beginning of the file excluding whitespace and comments or something weird like that 2020-05-15T23:01:33Z ralt: luis: fyi, I have to go now, but I'm playing with testing the PR on ecl/clisp 2020-05-15T23:01:36Z Jesin joined #lisp 2020-05-15T23:01:44Z ralt: ECL is a bit slow at compiling. 2020-05-15T23:02:25Z Fare: problem: to actually test that nothing is breaking, you must identify the worst old implementation / old asdf combination. 2020-05-15T23:02:30Z ralt: ah, ECL seems broken before my patch :) 2020-05-15T23:02:36Z Fare: and do the extra slow upgrade test. 2020-05-15T23:03:09Z ralt: does it count if it's broken from the get-go? :P 2020-05-15T23:04:21Z cosimone quit (Ping timeout: 252 seconds) 2020-05-15T23:05:01Z luis: ralt: I think Fare is talking about WITH-UPGRADABILITY 2020-05-15T23:05:26Z ralt: Ah, sorry, crossing streams 2020-05-15T23:06:15Z yottabyte: no-defun-allowed: the return of the Drakma request isn't a string without :want-stream t. it's a Flexi-streams either way seemingly. yason can work with json strings, though 2020-05-15T23:06:58Z yottabyte: but like you said the stream might already be closed without want-stream 2020-05-15T23:07:04Z no-defun-allowed scratches head 2020-05-15T23:09:45Z luis: Fare, rpg: so, understandably in retrospect, SBCL stores the position of the nearest read (i.e. non-consed) form. And that's with-upgradability. 2020-05-15T23:10:54Z luis: Maybe mutating the form would work? 2020-05-15T23:11:00Z luis: (ew) 2020-05-15T23:11:06Z rpg: luis: I guess what I don't understand is that if that's all it does, why is there even a FORM-PATH? 2020-05-15T23:11:20Z rpg: It seems to be made precisely for this use case. 2020-05-15T23:12:17Z remix2000 quit (Quit: remix2000) 2020-05-15T23:18:50Z Fare: luis: that's what I was trying to say, and apparently failed. 2020-05-15T23:19:49Z Fare: rpg: I think the FORM-PATH is getting confused because of all the macroexpansion. 2020-05-15T23:28:28Z terpri quit (Remote host closed the connection) 2020-05-15T23:30:15Z terpri joined #lisp 2020-05-15T23:32:53Z terpri quit (Remote host closed the connection) 2020-05-15T23:33:32Z terpri joined #lisp 2020-05-15T23:36:46Z luis: Fare, rpg: mutation works. (defmacro sort-of-like-upgradability (&body body) (setf (first (first body)) 'defun*) `(progn ,@body)) not sure what the spec has to say about it, though. 2020-05-15T23:37:07Z rpg: luis, Fare sorry -have to run 2020-05-15T23:42:34Z random-nick quit (Ping timeout: 256 seconds) 2020-05-15T23:47:49Z Fare: I'm pretty sure the standard says that it's unspecified what happens if you modify a source form. 2020-05-15T23:50:52Z HiRE quit (Quit: Later) 2020-05-15T23:51:29Z Fare: IIRC, the problem that the EVAL-WHEN is fixing is to handle the case where an old ASDF compiles a new one, hasn't loaded it yet, and now tries to use the CLOS functions that are super confused between the old and the new state. And then there's the case when the gf is defined in one file, but some of the methods used by ASDF are defined in the next file, but are not available anymore (and that's why we use concatenate-source-op). 2020-05-15T23:55:27Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-16T00:02:44Z luis: Fare: the eval-when doesn't seem to affect this issue, right? 2020-05-16T00:03:14Z Fare: indirectly: right now, all forms are in a same eval-when from with-upgradability 2020-05-16T00:03:51Z Fare: But we could conceivably put them each in their own eval-when 2020-05-16T00:04:33Z luis: but that's not a problem for find-definition. defclass and defmethod, it's when the macro discards the defun cons and replaces it with a new defun* cons that we get into trouble 2020-05-16T00:05:06Z luis: so if defun* actually accepted the defun form as input and included it in the expansion that'd work 2020-05-16T00:05:07Z Fare: well, it will still do it, but this the toplevel read form will have only one thing in it, no problem. 2020-05-16T00:07:55Z Fare: there are historical reasons why the forms are grouped in a common eval-when, but I don't think there is any current constraint why they must remain so. 2020-05-16T00:08:21Z luis: again, then eval-when is irrelevant! 2020-05-16T00:08:28Z Fare: no it isn't 2020-05-16T00:09:11Z Fare: if the forms are separate, then no matter how confused SBCL is about the macroexpansion, it will remember the position of the toplevel form, which will happen to be the location you need. 2020-05-16T00:10:14Z Fare: it's the grouping that's an issue, not the eval-when as such. You could have individual eval-whens. 2020-05-16T00:11:03Z luis: ok, I see what you mean now. Still, find-definition would still point at with-upgradability instead of defun. It'd be a little bit less wrong, but still wrong. 2020-05-16T00:11:23Z luis: Well, a lot less wrong for large with-upgradability forms. 2020-05-16T00:11:59Z luis: Anyway, I have a fix that doesn't involve mutation! 2020-05-16T00:12:22Z luis: Or going through ASDF's source code and change all with-upgradability forms. 2020-05-16T00:12:51Z Fare: well, we'd have a defun* which would include its own eval-when. 2020-05-16T00:13:04Z Fare: luis: yay 2020-05-16T00:15:51Z Kundry_Wag joined #lisp 2020-05-16T00:16:06Z Kundry_Wag quit (Remote host closed the connection) 2020-05-16T00:16:32Z Kundry_Wag joined #lisp 2020-05-16T00:18:08Z solrize: does anyone know if there's a way to increase the max allowed recursion depth in clisp ? 2020-05-16T00:18:27Z zaquest quit (Quit: Leaving) 2020-05-16T00:19:00Z dlowe: solrize: look for something referencing clisp's call stack 2020-05-16T00:20:25Z solrize: yeah i spent a while looking, will keep looking but haven't found anything yet 2020-05-16T00:23:25Z dlowe: https://clisp.sourceforge.io/impnotes/faq.html#faq-stack 2020-05-16T00:24:19Z luis: Fare: annoyingly, now find-definition also finds the declaim notinline 2020-05-16T00:27:11Z solrize: dlowe, hmm that's the process stack, i'll try that but i didn't think that was the issue 2020-05-16T00:27:14Z solrize: thanks 2020-05-16T00:28:59Z pjb quit (Ping timeout: 265 seconds) 2020-05-16T00:36:17Z zaquest joined #lisp 2020-05-16T00:36:45Z luis: Fare, rpg: https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/141 2020-05-16T00:42:38Z samlamamma quit (Ping timeout: 256 seconds) 2020-05-16T00:42:45Z Fare: luis: two thumbs up! 2020-05-16T00:43:36Z Fare: These days I'd don't push code to master or merge things anymore (though I occasionally still push documentation tweaks), so you'll have to wait for rpg to press the button. 2020-05-16T00:43:53Z Fare: But, excellent work. 2020-05-16T00:54:59Z Fare: "do more by doing less" 2020-05-16T00:58:10Z quazimodo quit (Ping timeout: 256 seconds) 2020-05-16T00:58:14Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-16T00:58:28Z quazimodo joined #lisp 2020-05-16T01:01:30Z pjb joined #lisp 2020-05-16T01:04:10Z bitmapper quit (Ping timeout: 246 seconds) 2020-05-16T01:04:25Z jonatack quit (Ping timeout: 264 seconds) 2020-05-16T01:06:10Z jonatack joined #lisp 2020-05-16T01:08:25Z abhixec quit (Quit: leaving) 2020-05-16T01:22:00Z Kundry_Wag quit (Remote host closed the connection) 2020-05-16T01:23:35Z Kundry_Wag joined #lisp 2020-05-16T01:25:13Z Kundry_Wag quit (Remote host closed the connection) 2020-05-16T01:38:19Z SGASAU joined #lisp 2020-05-16T01:40:51Z Kundry_Wag joined #lisp 2020-05-16T01:43:05Z jason_m joined #lisp 2020-05-16T01:45:07Z Kundry_Wag quit (Ping timeout: 246 seconds) 2020-05-16T01:50:24Z v88m joined #lisp 2020-05-16T01:50:38Z orivej quit (Ping timeout: 256 seconds) 2020-05-16T01:54:52Z abhixec joined #lisp 2020-05-16T02:02:01Z mwgkgk joined #lisp 2020-05-16T02:04:43Z monok joined #lisp 2020-05-16T02:07:42Z mono quit (Ping timeout: 260 seconds) 2020-05-16T02:18:28Z terpri quit (Remote host closed the connection) 2020-05-16T02:18:57Z terpri joined #lisp 2020-05-16T02:28:37Z ralt quit (Quit: Connection closed for inactivity) 2020-05-16T02:30:57Z lemoinem quit (Ping timeout: 256 seconds) 2020-05-16T02:33:09Z turona quit (Ping timeout: 272 seconds) 2020-05-16T02:34:35Z lemoinem joined #lisp 2020-05-16T02:46:32Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-16T02:51:39Z Kundry_Wag joined #lisp 2020-05-16T02:56:10Z Kundry_Wag quit (Ping timeout: 246 seconds) 2020-05-16T02:59:33Z beach: Good morning everyone! 2020-05-16T03:00:06Z holycow: o/ 2020-05-16T03:05:48Z yankM quit (Remote host closed the connection) 2020-05-16T03:10:48Z gko joined #lisp 2020-05-16T03:15:40Z shangul joined #lisp 2020-05-16T03:19:06Z jason_m quit (Ping timeout: 272 seconds) 2020-05-16T03:27:38Z madmonkey quit (Ping timeout: 265 seconds) 2020-05-16T03:27:56Z _jrjsmrtn joined #lisp 2020-05-16T03:28:30Z wxie joined #lisp 2020-05-16T03:29:06Z __jrjsmrtn__ quit (Ping timeout: 260 seconds) 2020-05-16T03:43:21Z zooey quit (Remote host closed the connection) 2020-05-16T03:43:41Z zooey joined #lisp 2020-05-16T03:53:52Z Fare quit (Ping timeout: 260 seconds) 2020-05-16T04:06:33Z Fare joined #lisp 2020-05-16T04:10:06Z Inoperable joined #lisp 2020-05-16T04:16:11Z Bike quit (Quit: leaving) 2020-05-16T04:17:23Z karlosz quit (Quit: karlosz) 2020-05-16T04:20:08Z mwgkgk quit (Quit: Connection closed for inactivity) 2020-05-16T04:21:34Z luckless quit (Remote host closed the connection) 2020-05-16T04:21:40Z karlosz joined #lisp 2020-05-16T04:21:48Z luckless joined #lisp 2020-05-16T04:22:27Z wxie quit (Ping timeout: 260 seconds) 2020-05-16T04:27:40Z doesthiswork quit (Ping timeout: 256 seconds) 2020-05-16T04:32:54Z fluxwave joined #lisp 2020-05-16T04:44:57Z narimiran joined #lisp 2020-05-16T04:47:46Z shangul quit (Ping timeout: 272 seconds) 2020-05-16T04:48:49Z dddddd quit (Ping timeout: 264 seconds) 2020-05-16T05:00:00Z oldtopman quit (Quit: *pouf*) 2020-05-16T05:00:20Z oldtopman joined #lisp 2020-05-16T05:10:14Z nullniverse joined #lisp 2020-05-16T05:10:14Z nullniverse quit (Changing host) 2020-05-16T05:10:14Z nullniverse joined #lisp 2020-05-16T05:24:12Z mwgkgk joined #lisp 2020-05-16T05:24:19Z orivej joined #lisp 2020-05-16T05:26:54Z sdumi quit (Ping timeout: 240 seconds) 2020-05-16T05:31:24Z akoana quit (Quit: leaving) 2020-05-16T05:33:54Z zulu-inuoe quit (Read error: Connection reset by peer) 2020-05-16T05:34:57Z sauvin joined #lisp 2020-05-16T05:42:36Z heisig joined #lisp 2020-05-16T05:53:16Z Necktwi_ quit (Ping timeout: 246 seconds) 2020-05-16T05:54:31Z bilegeek joined #lisp 2020-05-16T05:54:42Z bilegeek quit (Client Quit) 2020-05-16T06:01:00Z sdumi joined #lisp 2020-05-16T06:05:17Z Necktwi joined #lisp 2020-05-16T06:05:41Z sdumi quit (Ping timeout: 265 seconds) 2020-05-16T06:06:40Z sdumi joined #lisp 2020-05-16T06:08:17Z PuercoPope joined #lisp 2020-05-16T06:11:02Z sdumi quit (Ping timeout: 260 seconds) 2020-05-16T06:13:25Z Necktwi quit (Ping timeout: 265 seconds) 2020-05-16T06:17:45Z sdumi joined #lisp 2020-05-16T06:24:16Z sdumi quit (Ping timeout: 258 seconds) 2020-05-16T06:24:38Z luckless quit (Remote host closed the connection) 2020-05-16T06:24:43Z sdumi joined #lisp 2020-05-16T06:39:02Z quazimodo quit (Ping timeout: 265 seconds) 2020-05-16T06:40:43Z quazimodo joined #lisp 2020-05-16T06:40:54Z sdumi quit (Ping timeout: 240 seconds) 2020-05-16T06:43:53Z kpoeck joined #lisp 2020-05-16T06:47:55Z phoe: morniiiing 2020-05-16T06:49:36Z beach: Hello phoe. 2020-05-16T06:50:42Z no-defun-allowed: Morning phoe. 2020-05-16T06:53:01Z sdumi joined #lisp 2020-05-16T06:54:52Z froggey quit (Ping timeout: 246 seconds) 2020-05-16T06:55:19Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-16T06:55:23Z pve joined #lisp 2020-05-16T06:56:28Z orivej joined #lisp 2020-05-16T06:56:52Z ralt joined #lisp 2020-05-16T06:56:52Z froggey joined #lisp 2020-05-16T07:00:13Z phoe: I go to sleep and nice discussions happen 2020-05-16T07:00:26Z phoe read-evals the backlog 2020-05-16T07:04:39Z sdumi quit (Ping timeout: 265 seconds) 2020-05-16T07:04:53Z terpri quit (Remote host closed the connection) 2020-05-16T07:07:17Z terpri joined #lisp 2020-05-16T07:11:12Z sdumi joined #lisp 2020-05-16T07:22:53Z shka_ joined #lisp 2020-05-16T07:23:41Z refpga quit (Ping timeout: 258 seconds) 2020-05-16T07:25:45Z sugarwren joined #lisp 2020-05-16T07:26:04Z refpga joined #lisp 2020-05-16T07:27:14Z sdumi quit (Ping timeout: 256 seconds) 2020-05-16T07:31:30Z sdumi joined #lisp 2020-05-16T07:32:30Z toorevitimirp joined #lisp 2020-05-16T07:33:04Z rgherdt joined #lisp 2020-05-16T07:35:25Z SGASAU quit (Remote host closed the connection) 2020-05-16T07:37:40Z SGASAU joined #lisp 2020-05-16T07:41:28Z sdumi quit (Read error: Connection reset by peer) 2020-05-16T07:42:46Z sdumi joined #lisp 2020-05-16T07:56:09Z pjb quit (Ping timeout: 272 seconds) 2020-05-16T08:00:28Z terpri quit (Remote host closed the connection) 2020-05-16T08:00:45Z Willi-Smith joined #lisp 2020-05-16T08:00:50Z terpri joined #lisp 2020-05-16T08:03:17Z Willi-Smith: Hi, can somebody explain me error "The function SB-EXT:DISABLE-PACKAGE-LOCKS is undefined." when I'm trying "(ql:quickload :ltk)". Run by cl-launch. Thanks. 2020-05-16T08:06:10Z beach: The function is simply not defined. Perhaps it was at some point. 2020-05-16T08:06:26Z phoe: Willi-Smith: which SBCL version are you using and which Quicklisp dist do you have? 2020-05-16T08:07:42Z phoe: sb-ext:disable-package-locks is a SBCL-specific declaration, not a function, so using it as a function is invalid anyway 2020-05-16T08:13:44Z Willi-Smith: I'm very beginner in lisp and this is my first project with GUI. I need some lightweight environment so I chose cl-launch with sbcl (on arch linux). For run project I use 'cl -Q --source-registry /home/william/.local/share/common-lisp/source: "%f"'. In source folder is unpacked ltk. I guess I'm wrong with my approach. 2020-05-16T08:14:19Z Willi-Smith: I also tried to '(asdf:load-system 'ltk)' but error is the same 2020-05-16T08:14:38Z phoe: Willi-Smith: what is your SBCL version and where did you get LTK from? 2020-05-16T08:14:41Z toorevitimirp quit (Remote host closed the connection) 2020-05-16T08:14:47Z ralt: phoe: tldr: with-upgradeability now works with slime-edit-definition 2020-05-16T08:14:54Z narimiran quit (Ping timeout: 256 seconds) 2020-05-16T08:14:55Z phoe: ralt: I saw, amazing stuff 2020-05-16T08:15:08Z no-defun-allowed: Huh, the symbol sb-ext:disable-package-locks is present here but not fbound. 2020-05-16T08:15:21Z phoe: no-defun-allowed: do DESCRIBE on it, it's a declaration 2020-05-16T08:15:25Z toorevitimirp joined #lisp 2020-05-16T08:15:54Z no-defun-allowed: I suppose it is; I thought it was once a function, and I think the ltk author must have too. 2020-05-16T08:16:05Z no-defun-allowed: Though ltk loads fine here. 2020-05-16T08:17:29Z remix2000 joined #lisp 2020-05-16T08:18:16Z ralt: His error looks like something intentionally disabled the function 2020-05-16T08:18:23Z Willi-Smith: LTK is downloaded from: http://www.peter-herth.de/ltk/, I expect cl-launch uses system sbcl which is sbcl-2.0.3-1 2020-05-16T08:19:25Z dale quit (Quit: My computer has gone to sleep) 2020-05-16T08:19:49Z SGASAU quit (Remote host closed the connection) 2020-05-16T08:20:26Z SGASAU joined #lisp 2020-05-16T08:20:34Z orivej quit (Ping timeout: 272 seconds) 2020-05-16T08:20:39Z orivej_ joined #lisp 2020-05-16T08:21:42Z pve: Willi-Smith: I seem to recall that it used to be a function in older versions of SBCL 2020-05-16T08:22:02Z phoe: it might be incompatible with newer LTK versions then 2020-05-16T08:22:17Z phoe: https://github.com/herth/ltk is where Quicklisp pulls its versions from, so it should work on SBCL 2.0.3 2020-05-16T08:22:35Z Willi-Smith: Well, what must be done to run ltk with cl-launch? 2020-05-16T08:22:43Z phoe: update LTK 2020-05-16T08:22:50Z phoe: the version I linked is the fresh one 2020-05-16T08:23:30Z pjb joined #lisp 2020-05-16T08:26:27Z toorevitimirp quit (Remote host closed the connection) 2020-05-16T08:27:00Z SGASAU quit (Remote host closed the connection) 2020-05-16T08:27:14Z Kundry_Wag joined #lisp 2020-05-16T08:27:42Z SGASAU joined #lisp 2020-05-16T08:28:06Z LdBeth: It’s interesting to know that CL doesn’t have PRIN2 2020-05-16T08:28:35Z emys joined #lisp 2020-05-16T08:28:41Z ym joined #lisp 2020-05-16T08:30:21Z Willi-Smith: Now I can quickload it without error. Last thing is how can I start using ltk package? After I test (ltk::ltk-eyes) this error shows 'READ error during COMPILE-FILE: Package LTK does not exist.' 2020-05-16T08:30:51Z ym: Hi. I have a simple expression: (mod (apply #'+ angles) (* 2 pi)) ; it returns value > 2pi in some cases. Is it rounding problem? 2020-05-16T08:32:08Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-16T08:33:29Z phoe: ym: could you give an example? 2020-05-16T08:33:49Z phoe: Willi-Smith: wait a second 2020-05-16T08:33:50Z Willi-Smith: Do I need to create .asd system file for my project or can I only quickload ltk in my .lisp file? 2020-05-16T08:34:12Z phoe: after quickloading it, you should be able to have a LTK package 2020-05-16T08:34:28Z terpri quit (Remote host closed the connection) 2020-05-16T08:34:31Z phoe: what programming environment do you use for lisp? 2020-05-16T08:34:35Z White_Flame: regardless of how it's loaded (and completely regardless of how your other stuff loads), once LTK is in the package should exist 2020-05-16T08:35:06Z White_Flame: since packages are a flat global namespace 2020-05-16T08:36:23Z fe[nl]ix: phoe: https://cdn.cddr.org/ci/sbcl-2.0.4+r01-binary.tar.bz2 2020-05-16T08:36:36Z phoe: fe[nl]ix: <3 2020-05-16T08:37:07Z fe[nl]ix: phoe: I statically linked it to libfixposix (git), libcrypto and libssl 1.1.1g, upgraded ASDF to 3.3.4 2020-05-16T08:37:26Z fe[nl]ix: and it's linked against glibc 2.26 so it runs on Travis 2020-05-16T08:38:39Z phoe: does it mean that CFFI is automatically instructed not to look for these libraries externally? 2020-05-16T08:38:52Z Josh_2 quit (Ping timeout: 256 seconds) 2020-05-16T08:39:04Z fe[nl]ix: I need to think about how to add that feature 2020-05-16T08:39:06Z phoe: I never really thought of that since I'm not used to statically link Lisp binaries 2020-05-16T08:39:22Z phoe: s/link/linking/ 2020-05-16T08:39:33Z Willi-Smith: This simple .lisp example gives me error "(ql:quickload :ltk) (ltk::ltk-eyes)" > Package LTK does not exist. 2020-05-16T08:39:46Z fe[nl]ix: phoe: that said, you can simply comment out the loading in the respective sources (cl+ssl or iolib) if you want to play with it 2020-05-16T08:39:52Z phoe: Willi-Smith: what programming environment do you use for lisp? 2020-05-16T08:39:59Z phoe: fe[nl]ix: OK, I'll do that 2020-05-16T08:40:14Z phoe: Willi-Smith: how do you launch your example? 2020-05-16T08:40:19Z Willi-Smith: cl-launch > https://www.cliki.net/cl-launch 2020-05-16T08:41:06Z beach: ym: Also, what implementation are you using? 2020-05-16T08:41:11Z phoe: beach: SBCL 2.0.3 2020-05-16T08:41:16Z phoe: oh wait! wrong person 2020-05-16T08:41:21Z phoe: that's what Willi-Smith uses 2020-05-16T08:41:48Z Willi-Smith: That is right 2020-05-16T08:42:02Z Bourne joined #lisp 2020-05-16T08:42:18Z phoe: Willi-Smith: I have no idea what cl-launch does nor I have ever used it in my life; I'm a SLIME user 2020-05-16T08:43:13Z phoe: it seems to be 2700 lines of bash code 2020-05-16T08:43:53Z phoe: nothing I'd like to use if I was beginning to learn, especially if I wanted to use the interactive facilities that Lisp provides 2020-05-16T08:44:18Z pve: Willi-Smith: are you loading or compiling your example? 2020-05-16T08:44:25Z Willi-Smith: I chose it because I can simply run lisp from bash. It works well but Im confused about package importing. It has bad documentation. 2020-05-16T08:45:04Z kpoeck quit (Ping timeout: 245 seconds) 2020-05-16T08:45:24Z Willi-Smith: I plan to use lisp for only small projects. i don't need interactivity 2020-05-16T08:45:36Z no-defun-allowed: I would advise against running Lisp like a "batch" compiler, as using it interactively will make you much more productive and make programming easier. 2020-05-16T08:45:45Z phoe: running Lisp from bash is not the typical workflow one uses when doing Lisp stuff 2020-05-16T08:46:26Z phoe: so you might find little support for it - there's few people who do it that way and therefore few people who can advise you with that programming style 2020-05-16T08:46:52Z no-defun-allowed: Willi-Smith: Trust me that you would benefit from interactivity, unless you are able to reason about your entire program without needing to consult a computer. 2020-05-16T08:49:19Z no-defun-allowed: And even then, you would work faster with interactive tooling; there isn't a reason not to want interactivity. 2020-05-16T08:49:51Z Willi-Smith: I tried atom with slime but it wasn't so straightforward as this simple bash launcher. I've never worked with emac. Do you recommend me to give it a try? 2020-05-16T08:49:57Z phoe: Yes 2020-05-16T08:49:59Z phoe: Very yes 2020-05-16T08:50:33Z White_Flame: emacs+slime is the best supported environment for working with Lisp, both the repl .lisp and files, and their interaction 2020-05-16T08:50:46Z White_Flame: *repl and .lisp files 2020-05-16T08:51:08Z phoe: The idea behind Lisp is that you never really kill or close the Lisp program while you're programming. You instead send commands to the Lisp program that define functions, variables, modify things, or just cause some stuff to happen like (print "hello world") 2020-05-16T08:51:46Z White_Flame: there's a quicklisp-slime-helper to get evertyhing set up for you, too 2020-05-16T08:51:48Z phoe: that's the concept of image-based programming 2020-05-16T08:51:55Z phoe: White_Flame: or even https://portacle.github.io/ 2020-05-16T08:52:00Z White_Flame: yep 2020-05-16T08:52:07Z phoe: a ready-to-go emacs+sbcl+quicklisp+git distribution 2020-05-16T08:52:49Z ralt: I really want to combine image based programming with something like popcornlinux 2020-05-16T08:53:03Z ralt: For production deployment 2020-05-16T08:53:11Z phoe: ralt: there was an ELS presentation this year that did that in Scheme 2020-05-16T08:53:12Z White_Flame: the "image" is named as such because it was an OS anyway 2020-05-16T08:53:21Z White_Flame: eg, an image of the entire machine, like a VM snapshot 2020-05-16T08:53:27Z phoe: nothing for CL though 2020-05-16T08:53:31Z ym: phoe, beach, I'm sorry, never mind, my fault. 2020-05-16T08:53:33Z jeosol joined #lisp 2020-05-16T08:53:48Z ralt: phoe: popcornlinux with scheme running in it? 2020-05-16T08:53:52Z phoe: ym: rubber-duck programming strikes again! 2020-05-16T08:54:12Z Willi-Smith: Shall I go with this emac how to https://lispcookbook.github.io/cl-cookbook/emacs-ide.html ? 2020-05-16T08:54:16Z phoe: ralt: nope - the possibility to transfer running code from one Scheme image to another fully at run-time, stack and continuation and everything. 2020-05-16T08:54:34Z phoe: Willi-Smith: yes, the Cookbook is a good source for that 2020-05-16T08:55:11Z Willi-Smith: Thanks for advices, lets dive in it 2020-05-16T08:55:30Z phoe: however, you might want to try out Portacle first 2020-05-16T08:55:41Z phoe: it saves you a step from manually setting many emacs things first 2020-05-16T08:55:51Z ralt: Ah, I meant more the concept of having a process that never dies, ala what used to run on mainframes, so that you can take full advantage of instance upgrades and stuff, but abstracted away by the kernel to trust it to run forever 2020-05-16T08:55:52Z phoe: such as configuring slime et cetera 2020-05-16T08:56:20Z phoe: ralt: oh! yes, I see, that's basically a lisp os 2020-05-16T08:57:13Z ralt: popcornlinux.org is basically that, it's a distributed Linux kernel 2020-05-16T08:57:42Z ralt: So your single process ends up spanning over several physical machines 2020-05-16T08:57:49Z rogersm joined #lisp 2020-05-16T08:57:59Z rogersm quit (Remote host closed the connection) 2020-05-16T08:58:45Z Willi-Smith: Portacle sounds very nice for my purpose 2020-05-16T08:59:03Z holycow quit (Quit: leaving) 2020-05-16T08:59:19Z White_Flame: yep, if you've not used emacs before, it's probaly the easiest way to get it up and running with everything 2020-05-16T08:59:50Z refpga quit (Ping timeout: 272 seconds) 2020-05-16T08:59:51Z ralt: One thing I really like with this concept is that you no longer need a database, you can store everything in defvar or whatever, and that's effectively persistent 2020-05-16T09:00:10Z sdumi quit (Ping timeout: 246 seconds) 2020-05-16T09:00:28Z White_Flame: unless you want transactions 2020-05-16T09:00:57Z sdumi joined #lisp 2020-05-16T09:01:24Z ralt: Use temporary variables or locks or whatever, it's manageable 2020-05-16T09:01:43Z phoe: that's the problem solved by distributed databases 2020-05-16T09:01:58Z ralt: I would argue most people don't understand how transactions work anyway, so you're making it easier to understand 2020-05-16T09:02:22Z no-defun-allowed: Can I pitch cl-worlds here for in-memory "transactional" instances? 2020-05-16T09:02:42Z ralt: phoe: you would indeed need some sort of engine 2020-05-16T09:02:47Z phoe: no-defun-allowed: yes please 2020-05-16T09:03:55Z no-defun-allowed: cl-worlds is an implementation of the "worlds" concept proposed by Warth, Ohshima, Kaehler and Kay for "controlling the scope of side effects". 2020-05-16T09:05:22Z no-defun-allowed: The basic idea is that one can "sprout" a world from the current world, perform some changes in the world, and then commit those in an atomic manner, after checking that no slots that the computation has read have been changed. Oh, and it lives at https://gitlab.com/Theemacsshibe/cl-worlds or https://github.com/nodefunallowed/cl-worlds 2020-05-16T09:05:43Z solrize: do most ppl here use slime? do you have it set up so that it launches an inferior lisp as soon as you visit any .lisp file? 2020-05-16T09:05:57Z no-defun-allowed: In some ways, I think that acts like transactions do in databases. 2020-05-16T09:06:11Z no-defun-allowed: solrize: Yes and no, respectively. 2020-05-16T09:06:22Z heisig: solrize: Yes and yes. 2020-05-16T09:06:33Z ralt: no-defun-allowed: does it have to copy the whole object? 2020-05-16T09:07:06Z solrize: thanks, i got the autolaunch code from someone here and it freaked me out at first, but i see some point to it. other thing i notice is i have to restart slime a lot when the inferior lisp resets... is that an issue for you? i had never used slime before quite recently 2020-05-16T09:07:19Z phoe: solrize: yes and no, I launch slime manually at the start of my emacs session if I am going to work with lisp stuff 2020-05-16T09:07:22Z fe[nl]ix: phoe: https://cdn.cddr.org/ci/sbcl-2.0.4+r02-binary.tar.bz2 2020-05-16T09:07:31Z phoe: fe[nl]ix: ! 2020-05-16T09:07:34Z fe[nl]ix: phoe: with that you can load cl+ssl with no modifications 2020-05-16T09:07:37Z no-defun-allowed: I use a custom metaclass that stores (changed) object slots in a hash table in the current world, so no. 2020-05-16T09:07:53Z phoe: fe[nl]ix: nice! I'll test it in a moment 2020-05-16T09:07:55Z solrize: thanks all 2020-05-16T09:08:16Z jprajzne joined #lisp 2020-05-16T09:09:00Z no-defun-allowed: That might make accessing slots somewhat slower, especially if one is accessing a slot bound many parent worlds away for the first time. (After that, however, it'll be cached in the current world.) 2020-05-16T09:13:49Z no-defun-allowed: ralt: I would suggest skimming http://www.vpri.org/pdf/tr2011001_final_worlds.pdf for the space and time properties of worlds; my implementation is a rough translation of the algorithms in section 5. 2020-05-16T09:17:41Z ralt: no-defun-allowed: thanks, I actually did something similar for work, except I did a copy of the top-level container and used immutable objects inside 2020-05-16T09:19:31Z ralt: It effectively means a cheapish clone operation at first and then basically zero overhead 2020-05-16T09:20:22Z ralt: Nevermind, I'd need to track changes to implement parallel transactions 2020-05-16T09:30:26Z jonatack quit (Ping timeout: 256 seconds) 2020-05-16T09:31:49Z jonatack joined #lisp 2020-05-16T09:32:12Z Lord_of_Life_ joined #lisp 2020-05-16T09:34:30Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-16T09:34:31Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-16T09:42:52Z phoe: hmmmm 2020-05-16T09:43:08Z phoe: now I know what is the purpose of these 272 files that I removed from the repository 2020-05-16T09:43:16Z phoe takes a step back 2020-05-16T09:43:37Z refpga joined #lisp 2020-05-16T09:47:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T09:48:46Z Willi-Smith quit (Quit: Leaving) 2020-05-16T09:49:00Z jprajzne joined #lisp 2020-05-16T09:51:27Z pjb quit (Ping timeout: 240 seconds) 2020-05-16T09:52:31Z phoe: 24k lines of Lisp code... hmmmm 2020-05-16T09:52:41Z phoe: that's a very nontrivial system 2020-05-16T09:53:01Z phoe: so nontrivial that it has a 240-pages-long book written about it 2020-05-16T10:03:11Z jackdaniel: so context-lacking... 2020-05-16T10:03:48Z no-defun-allowed: phoe: (compute-what-youre-doing) 2020-05-16T10:05:19Z orivej joined #lisp 2020-05-16T10:05:24Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-16T10:06:55Z shka_: hello all 2020-05-16T10:06:59Z phoe: Lucid Common Lisp/SPARC 4.0.2... 2020-05-16T10:07:01Z phoe: shka_: hello 2020-05-16T10:07:11Z shka_: another stylistic question 2020-05-16T10:07:25Z pve quit (Ping timeout: 264 seconds) 2020-05-16T10:07:29Z shka_: check-type establishes restart allowing user to change type 2020-05-16T10:07:40Z phoe: change *type*? 2020-05-16T10:07:45Z phoe: clhs check-type 2020-05-16T10:07:45Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_check_.htm 2020-05-16T10:08:10Z shka_: well, read new object 2020-05-16T10:08:15Z shka_: with a new type, hopefully 2020-05-16T10:08:20Z phoe: nope, it establishes a restart allowing user to set the place with a new value and retry the assertion 2020-05-16T10:08:51Z phoe: the type designator that is passed as the second argument to CHECK-TYPE stays constant 2020-05-16T10:08:58Z shka_: god 2020-05-16T10:09:02Z jackdaniel: so what's the question? 2020-05-16T10:09:51Z shka_: well, my issue here is that when check-type is used in the top level function, it is obviously very useful and restart helps 2020-05-16T10:10:56Z shka_: however, when used in a inner function, restart becomes misleading, because value was passed from the above, and therefore error was made before calling the inner function 2020-05-16T10:10:57Z jackdaniel: if you just want error (w/o restart) use unless typep error or use assert typep 2020-05-16T10:11:35Z shka_: well, that's obvious solution, but my question is do i want error without restart 2020-05-16T10:11:36Z phoe: yes, if you do (defun foo (x) (check-type x ...) ...) then the restart stores the value in the variable X 2020-05-16T10:11:40Z phoe: I have encountered this before 2020-05-16T10:12:03Z shka_: or i simply shouldn't bother 2020-05-16T10:12:26Z jackdaniel: if sysrem is interactive it is desireable 2020-05-16T10:12:53Z jackdaniel: if it is not, you wrap top call with handler case and dont use debugger at all 2020-05-16T10:12:56Z phoe: the STORE-VALUE restart in such context effectively becomes a USE-VALUE one since it only allows the function to be called once; the stored value may then discarded when the function exits and the local variable X goes out of scope 2020-05-16T10:13:03Z jackdaniel: so i would not bother 2020-05-16T10:13:41Z shka_: jackdaniel: ok, this is exactly what i wanted to know 2020-05-16T10:13:44Z shka_: thanks 2020-05-16T10:13:49Z jackdaniel: sure 2020-05-16T10:13:54Z sdumi quit (Ping timeout: 256 seconds) 2020-05-16T10:14:10Z phoe: using CHECK-TYPE in such contexts becomes more meaningful if you have places that are more persistent, such as (defun foo (x) (check-type (slot-value x 'my-slot) ...) ...) since then the value is *actually* stored and remembered even when the function quits 2020-05-16T10:14:13Z nowhere_man quit (Ping timeout: 272 seconds) 2020-05-16T10:14:31Z phoe: and, honestly, I don't really know how to work around that limitation in the general case 2020-05-16T10:14:43Z sdumi joined #lisp 2020-05-16T10:16:11Z shka_: i tend to use :before methods for validating arguments (it happens that i like OO style for interfaces) but i started to consider using :around instead 2020-05-16T10:16:22Z shka_: problem is that :before is really better suited toward this 2020-05-16T10:16:48Z jprajzne quit (Quit: jprajzne) 2020-05-16T10:17:09Z jprajzne joined #lisp 2020-05-16T10:17:26Z shka_: anyway, "don't bother" works 2020-05-16T10:17:33Z phoe: shka_: I really like :before with check-type for argument validation myself 2020-05-16T10:17:46Z shka_: well, as one should! 2020-05-16T10:18:17Z shka_: but check-type alters binding in the :before method after restart 2020-05-16T10:18:50Z phoe: shka_: check-type + slot-value, or check-type + accessor functions 2020-05-16T10:18:55Z shka_: and the main method will get original value 2020-05-16T10:19:07Z shka_: well, yes 2020-05-16T10:19:09Z phoe: oh wait a second... 2020-05-16T10:19:11Z shka_: for objects 2020-05-16T10:19:13Z phoe: yes, I see the issue now 2020-05-16T10:19:33Z shka_: but if you are just checking if the second argument is integer? 2020-05-16T10:20:09Z phoe: in initialize-instance :before the slots are not yet bound because shared-initialize was not yet run 2020-05-16T10:20:28Z shka_: :after for intialize-instance 2020-05-16T10:20:51Z shka_: initialize-instance is not a problem actually 2020-05-16T10:21:09Z pjb joined #lisp 2020-05-16T10:21:09Z shka_: some other functions are though 2020-05-16T10:21:12Z phoe: I found that validation in :after for initialize-instance does not compose well when you have multiple :after methods 2020-05-16T10:21:24Z phoe: where the more specific ones depend on the values of slots validated in the less specific ones 2020-05-16T10:21:48Z phoe: that makes the restarts established by CHECK-TYPE meaningless 2020-05-16T10:21:58Z phoe: hmm 2020-05-16T10:22:03Z shka_: oh, ok 2020-05-16T10:22:09Z shka_: i can see that 2020-05-16T10:22:21Z shka_: well, you can still :around 2020-05-16T10:22:33Z phoe: yes, :around looks like the only choice for actually getting that to work 2020-05-16T10:23:15Z shka_: not only-only 2020-05-16T10:23:50Z shka_: i mean, you are often ending up with (defgeneric make-a-very-specific-type-of-object ...) 2020-05-16T10:23:51Z pve joined #lisp 2020-05-16T10:24:35Z shka_: and if so, you can insert validation of initargs into the :before method 2020-05-16T10:25:32Z shka_: BUT again, check-type restart is miss-leading in :before methods 2020-05-16T10:25:39Z shka_: anyway, thanks for the input 2020-05-16T10:25:53Z phoe: yes, that's the issue - the restart is meaningless and does not actually store the value in the object 2020-05-16T10:29:49Z phoe: I can imagine that it could be fixed if the variables bound by DEFMETHOD were actually checked at the end of the method and their values were passed to the next called methods; meaning, if a :BEFORE method could alter the values that are passed to next methods 2020-05-16T10:30:03Z phoe: that would be as useful as it would be incompatible though 2020-05-16T10:30:33Z phoe: portable code may depend on these bindings being fresh and therefore mutate them freely 2020-05-16T10:30:41Z karlosz quit (Quit: karlosz) 2020-05-16T10:30:55Z phoe adds this issue to the bucket of issues for the Hypothetical Revision of the Standard 2020-05-16T10:31:45Z karlosz joined #lisp 2020-05-16T10:32:24Z karlosz quit (Client Quit) 2020-05-16T10:36:06Z pve quit (Ping timeout: 272 seconds) 2020-05-16T10:37:27Z pve joined #lisp 2020-05-16T10:42:34Z cosimone joined #lisp 2020-05-16T10:44:50Z Kundry_Wag joined #lisp 2020-05-16T10:45:57Z shka_: phoe: that's not everything 2020-05-16T10:46:10Z shka_: for instance i am writing a small random forest lib 2020-05-16T10:46:39Z shka_: uhm, whatever i explained this already 2020-05-16T10:47:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T10:50:02Z Kundry_Wag quit (Ping timeout: 272 seconds) 2020-05-16T10:50:41Z cosimone quit (Quit: Quit.) 2020-05-16T10:50:45Z phoe: clhs word 2020-05-16T10:50:45Z specbot: Couldn't find anything for word. 2020-05-16T10:52:11Z jprajzne joined #lisp 2020-05-16T10:54:25Z pjb quit (Ping timeout: 265 seconds) 2020-05-16T10:54:33Z ym: Is there some kind of macro extension library implementing typed declarations like for example (let ((foo :type fixnum)) ...)? 2020-05-16T10:55:23Z Shinmera: What do you hope that would achieve? 2020-05-16T10:55:32Z ralt: ym: a bunch, yes, essentially based on FTYPE 2020-05-16T10:57:09Z Xach: jackdaniel: http://report.quicklisp.org/2020-05-16/failure-report/mcclim.html#mcclim_test fyi 2020-05-16T10:58:29Z nullniverse quit (Remote host closed the connection) 2020-05-16T10:58:54Z nullniverse joined #lisp 2020-05-16T10:58:54Z nullniverse quit (Changing host) 2020-05-16T10:58:54Z nullniverse joined #lisp 2020-05-16T10:59:28Z ym: I hope it would generate declarations automatically. 2020-05-16T11:00:36Z ym: With some sort of CLP magic for derived types. 2020-05-16T11:01:11Z Shinmera: Do you really need to declare types that often? 2020-05-16T11:01:27Z Shinmera: It's a very uncommon thing to do. 2020-05-16T11:02:51Z random-nick joined #lisp 2020-05-16T11:03:03Z ym: I know that compilers like SBCL do all the magic inside, but I like to control the process, you know. 2020-05-16T11:03:35Z Shinmera: I actually do not know. 2020-05-16T11:03:39Z phoe: ahh, weak static typing time 2020-05-16T11:04:09Z ym: Lucky you. 2020-05-16T11:04:34Z ym: Will try to explain it to my duck. 2020-05-16T11:07:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T11:10:20Z remix2000 quit (Remote host closed the connection) 2020-05-16T11:12:09Z jprajzne joined #lisp 2020-05-16T11:12:47Z dddddd joined #lisp 2020-05-16T11:14:17Z HiRE joined #lisp 2020-05-16T11:14:44Z Xach: ym: I think there are some binding libraries that include type info in the binding. can't think of a specific one offhand though. 2020-05-16T11:14:52Z ayuce joined #lisp 2020-05-16T11:17:10Z kpoeck joined #lisp 2020-05-16T11:22:44Z Willi-Smith joined #lisp 2020-05-16T11:27:37Z jackdaniel: Xach: thank you 2020-05-16T11:28:15Z pjb joined #lisp 2020-05-16T11:29:18Z emys quit (Ping timeout: 260 seconds) 2020-05-16T11:33:53Z emys joined #lisp 2020-05-16T11:37:29Z luni joined #lisp 2020-05-16T11:41:52Z shangul joined #lisp 2020-05-16T11:52:48Z scymtym_ joined #lisp 2020-05-16T11:52:57Z nowhere_man joined #lisp 2020-05-16T11:53:00Z scymtym_ quit (Read error: Connection reset by peer) 2020-05-16T11:53:41Z scymtym_ joined #lisp 2020-05-16T11:53:54Z scymtym quit (Ping timeout: 240 seconds) 2020-05-16T11:53:57Z emys quit (Ping timeout: 260 seconds) 2020-05-16T11:54:16Z ralt: I wonder if I should make an asdf extension that generates a Debian package 2020-05-16T11:54:38Z ralt: With the C shared libraries dependencies automatically added to the package 2020-05-16T11:54:58Z scymtym_ quit (Remote host closed the connection) 2020-05-16T11:56:07Z phoe: ralt: Shinmera's DEPLOY is dangerously close to what you are describing 2020-05-16T11:56:30Z ralt: Like if you're using cl-sqlite, it'll automatically figure out that it should add the `libsqlite-3-0` package to the "Depends" field of the package 2020-05-16T11:56:38Z jackdaniel: is it going to bite ralt? or is it dangerous in some other way? 2020-05-16T11:57:13Z Bike joined #lisp 2020-05-16T11:57:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T11:57:34Z ralt: phoe: no, it's embracing the packages philosophy of declaring C dependencies rather than trying to bundle them all in a single deployed archive and some environment variables setup at startup to make it work 2020-05-16T11:57:57Z emys joined #lisp 2020-05-16T11:57:58Z ralt: jackdaniel: probably 2020-05-16T11:58:00Z jackdaniel: ralt: dim have some experience with producing debian packages from lisp systems 2020-05-16T11:58:32Z ralt: I made https://gitlab.com/ralt/deb-packager years ago :) 2020-05-16T11:58:47Z ralt: But I'm thinking of something a bit more "magic" 2020-05-16T11:59:14Z jackdaniel: afair he produced that from quicklisp dist 2020-05-16T11:59:27Z phoe: ralt: I see, so you'll want to actually make some kind of mapping between foreign libraries and debian packages that provide them 2020-05-16T11:59:28Z jackdaniel: but I don't know details, it was done so pgloader could be put in debian repositories 2020-05-16T11:59:43Z ralt: ... I made this thing years ago too: https://gitlab.com/ralt/qldeb :) 2020-05-16T11:59:51Z ralt: phoe: yup 2020-05-16T12:00:22Z orivej quit (Ping timeout: 256 seconds) 2020-05-16T12:00:49Z ralt: cffi-toolchain is doing half of the job, by providing a binary where grovel libraries are embedded, and the Debian package can provide additional metadata about the system shared libraries that your application is using 2020-05-16T12:00:51Z orivej_ joined #lisp 2020-05-16T12:01:05Z pjb quit (Ping timeout: 240 seconds) 2020-05-16T12:01:30Z d4ryus quit (Quit: WeeChat 2.7.1) 2020-05-16T12:02:03Z scymtym joined #lisp 2020-05-16T12:02:10Z jprajzne joined #lisp 2020-05-16T12:03:16Z d4ryus joined #lisp 2020-05-16T12:06:25Z ralt: I mostly need to figure out how to run some code after static-program-op is done 2020-05-16T12:08:27Z remix2000 joined #lisp 2020-05-16T12:14:33Z remix2000 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-16T12:22:56Z srazzaque joined #lisp 2020-05-16T12:26:24Z phoe: doesn't it quit Lisp? 2020-05-16T12:28:08Z refpga quit (Ping timeout: 256 seconds) 2020-05-16T12:28:42Z refpga joined #lisp 2020-05-16T12:29:01Z Kundry_Wag joined #lisp 2020-05-16T12:31:27Z emys quit (Ping timeout: 244 seconds) 2020-05-16T12:33:12Z pjb joined #lisp 2020-05-16T12:34:46Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-16T12:35:42Z emys joined #lisp 2020-05-16T12:37:28Z ralt: That would make sense. Maybe I can add a subclass to fork/save-lisp-and-die and do the rest afterwards? 2020-05-16T12:37:39Z phoe: a subclass, what do you mean? 2020-05-16T12:38:03Z ralt: A subclass of cffi-toolchain: static-program-op 2020-05-16T12:38:08Z phoe: after save-lisp-and-die finishes, the currently running Lisp image is destroyed - at least in case of SBCL 2020-05-16T12:38:19Z phoe: therefore you can count on that function never returning 2020-05-16T12:38:27Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-16T12:38:33Z ralt: Yes, that's why I'm saying I can fork, do the slad in the child, and do the rest in the parent 2020-05-16T12:38:44Z nowhereman joined #lisp 2020-05-16T12:38:46Z phoe: sure, that'll work 2020-05-16T12:38:52Z nowhere_man quit (Read error: Connection reset by peer) 2020-05-16T12:40:52Z emys quit (Ping timeout: 272 seconds) 2020-05-16T12:42:44Z ralt: So my subclass would implement asdf:perform, fork, do (call-next-method) in the child which will slad, and in the parent I wait for the child to die then do the Debian packaging 2020-05-16T12:42:45Z refpga quit (Remote host closed the connection) 2020-05-16T12:43:45Z refpga joined #lisp 2020-05-16T12:44:28Z emys joined #lisp 2020-05-16T12:44:30Z mibr joined #lisp 2020-05-16T12:44:30Z younder joined #lisp 2020-05-16T12:45:54Z Kundry_Wag joined #lisp 2020-05-16T12:49:45Z shangul quit (Ping timeout: 265 seconds) 2020-05-16T12:57:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T12:57:38Z jprajzne joined #lisp 2020-05-16T12:58:19Z ym555 joined #lisp 2020-05-16T12:58:25Z emys quit (Ping timeout: 264 seconds) 2020-05-16T12:59:51Z ym555 quit (Client Quit) 2020-05-16T13:00:45Z phoe: pjb: http://www.informatimago.com/develop/lisp/com/informatimago/languages/latex/parser.lisp is missing a closing paren somewhere 2020-05-16T13:01:51Z phoe: oh, I see why! There is a stray } in the code 2020-05-16T13:02:13Z jprajzne quit (Client Quit) 2020-05-16T13:02:54Z jonatack quit (Ping timeout: 240 seconds) 2020-05-16T13:04:27Z emys joined #lisp 2020-05-16T13:05:17Z jonatack joined #lisp 2020-05-16T13:06:06Z pjb quit (Ping timeout: 240 seconds) 2020-05-16T13:06:35Z phoe: welp, I can't get that code to compile 2020-05-16T13:06:46Z ayuce quit (Remote host closed the connection) 2020-05-16T13:07:19Z igemnace quit (Quit: WeeChat 2.8) 2020-05-16T13:08:06Z papachan quit (Quit: WeeChat 2.7.1) 2020-05-16T13:09:11Z wsinatra joined #lisp 2020-05-16T13:12:06Z nowhereman quit (Ping timeout: 256 seconds) 2020-05-16T13:13:52Z emys quit (Ping timeout: 260 seconds) 2020-05-16T13:14:38Z nowhereman joined #lisp 2020-05-16T13:17:03Z emys joined #lisp 2020-05-16T13:17:35Z jprajzne joined #lisp 2020-05-16T13:20:50Z Josh_2 joined #lisp 2020-05-16T13:21:49Z jprajzne quit (Client Quit) 2020-05-16T13:22:14Z jprajzne joined #lisp 2020-05-16T13:24:56Z X-Scale` joined #lisp 2020-05-16T13:26:36Z keepzen quit (Quit: Connection closed for inactivity) 2020-05-16T13:27:27Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-16T13:27:27Z X-Scale quit (Ping timeout: 265 seconds) 2020-05-16T13:27:27Z X-Scale` is now known as X-Scale 2020-05-16T13:27:40Z orivej joined #lisp 2020-05-16T13:29:25Z phoe: huh 2020-05-16T13:29:46Z phoe: this package has everything written in Lisp... save for the lexer, which is written in flex-generated C 2020-05-16T13:30:07Z Shinmera: phoe: I wrote a really primitive tex parser at one point 2020-05-16T13:30:17Z phoe: Shinmera: please show me 2020-05-16T13:30:22Z Shinmera: https://github.com/shinmera/plump-tex 2020-05-16T13:32:12Z phoe clicks 2020-05-16T13:32:49Z emys quit (Ping timeout: 246 seconds) 2020-05-16T13:33:50Z phoe: yep, that both works and is primitive; I'd need to e.g. implement TeX comments in it 2020-05-16T13:34:52Z Shinmera: I'm amazed it still works 2020-05-16T13:35:34Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-16T13:35:50Z doesthiswork joined #lisp 2020-05-16T13:37:37Z pjb joined #lisp 2020-05-16T13:47:23Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-16T13:47:32Z Kundry_Wag joined #lisp 2020-05-16T13:47:52Z MichaelRaskin: Hm, interesting, my single-target TeX parser also doesn't have comments 2020-05-16T13:48:14Z orivej quit (Ping timeout: 265 seconds) 2020-05-16T13:48:20Z orivej_ joined #lisp 2020-05-16T13:49:00Z phoe: I am staring at https://github.com/tvraman/aster-math/blob/master/lisp-code/lexer/lispify.l now 2020-05-16T13:54:02Z luni quit (Quit: Leaving) 2020-05-16T13:54:12Z MichaelRaskin: OK, I do have Comment support now, apparently 2020-05-16T13:55:34Z phoe: it seems that pjb's not-compiling code is based on this lex file. 2020-05-16T13:59:47Z jeosol quit (Remote host closed the connection) 2020-05-16T14:02:34Z orivej_ quit (Ping timeout: 246 seconds) 2020-05-16T14:03:00Z orivej joined #lisp 2020-05-16T14:04:25Z Kundry_Wag quit (Ping timeout: 264 seconds) 2020-05-16T14:05:53Z jw4 quit (Read error: Connection reset by peer) 2020-05-16T14:06:37Z narimiran joined #lisp 2020-05-16T14:08:04Z jw4 joined #lisp 2020-05-16T14:08:55Z emys joined #lisp 2020-05-16T14:09:37Z nowhereman quit (Ping timeout: 244 seconds) 2020-05-16T14:10:26Z pjb quit (Ping timeout: 240 seconds) 2020-05-16T14:13:35Z Adamclisi quit (Quit: leaving) 2020-05-16T14:14:11Z nowhereman joined #lisp 2020-05-16T14:19:49Z shangul joined #lisp 2020-05-16T14:22:13Z jprajzne quit (Quit: jprajzne) 2020-05-16T14:22:37Z jprajzne joined #lisp 2020-05-16T14:24:12Z remix2000 joined #lisp 2020-05-16T14:24:58Z montxero joined #lisp 2020-05-16T14:25:20Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-16T14:25:56Z emys quit (Ping timeout: 265 seconds) 2020-05-16T14:26:40Z orivej joined #lisp 2020-05-16T14:26:48Z jprajzne quit (Client Quit) 2020-05-16T14:27:10Z jprajzne joined #lisp 2020-05-16T14:27:12Z papachan joined #lisp 2020-05-16T14:28:27Z nowhereman quit (Ping timeout: 240 seconds) 2020-05-16T14:29:25Z emys joined #lisp 2020-05-16T14:30:03Z jeosol joined #lisp 2020-05-16T14:32:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T14:32:24Z phoe: Which regex library provides the symbol named SCAN-MATCH-REGEXP? The only occurrences of this symbol on Google and Github are in informatimago code. 2020-05-16T14:34:46Z orivej quit (Ping timeout: 246 seconds) 2020-05-16T14:35:20Z orivej joined #lisp 2020-05-16T14:37:17Z remix2000_ joined #lisp 2020-05-16T14:37:37Z jprajzne joined #lisp 2020-05-16T14:37:52Z emys quit (Ping timeout: 260 seconds) 2020-05-16T14:38:27Z sdumi quit (Ping timeout: 260 seconds) 2020-05-16T14:40:49Z fanta1 joined #lisp 2020-05-16T14:42:02Z pjb joined #lisp 2020-05-16T14:42:57Z montxero: How does on structure an appplication similarly to how Emacs is structured? That is tgere is a core, and several applications can be written to extend/complement this core in the same way Emacs packages extend the funtionality of Emacs? 2020-05-16T14:43:26Z phantomics: You can separate them into different software packages 2020-05-16T14:44:19Z phantomics: Have a "core" package, then write others that depend on its components 2020-05-16T14:44:59Z phantomics: Then you can write other packages that depend on the direct dependents of the core, creating a hierarchy 2020-05-16T14:45:14Z montxero: phantomics: Is there a simple application written this way I can study? or are there sources for learning about this style of architecture? 2020-05-16T14:45:18Z camlriot42 joined #lisp 2020-05-16T14:45:21Z phantomics: Then publish a guide to the API for writing addons for various purposes 2020-05-16T14:46:09Z phantomics: It's not that simple, but my April language may help you understand: https://github.com/phantomics/april 2020-05-16T14:46:22Z phoe: montxero: a Common Lisp implementation is such an application 2020-05-16T14:46:32Z phantomics: Inside the repo you'll see a folder called vex, that is the "core" 2020-05-16T14:46:45Z phantomics: Vex is a framework for building vector languages 2020-05-16T14:46:49Z phoe: where ANSI CL is the core, and other programs build atop that 2020-05-16T14:47:15Z phoe: you can also consider various implementation-dependent language extensions to the core, such as sockets, threads, Gray streams, MOP et cetera 2020-05-16T14:47:18Z phantomics: The symbols exported in vex/package.lisp are used in the april package 2020-05-16T14:47:33Z montxero: phantomics: thanks, checking april now 2020-05-16T14:48:06Z montxero: phoe: I get this in principle, I just don't know how to start. 2020-05-16T14:49:15Z phantomics: April is actually designed in such a way that you can extend the language, if you look at spec.lisp you'll see it contains a specification for the entire language, and then at the bottom of spec.lisp there's a small commented section where the spec is extended by creating another function in the language 2020-05-16T14:49:22Z emys joined #lisp 2020-05-16T14:49:50Z phantomics: These extensions could be done in software packages that depend on the april package, that's an example of a plugin-supporting system 2020-05-16T14:52:18Z jprajzne quit (Quit: jprajzne) 2020-05-16T14:53:44Z beach: montxero: I tend to split an application into "modules", where each "module" is located in a particular Unix directory, has its own ASDF system definition file, and has one or more package definitions (in the packages.lisp file) that are specific to that module. 2020-05-16T14:54:12Z emys quit (Ping timeout: 260 seconds) 2020-05-16T14:54:46Z sdumi joined #lisp 2020-05-16T14:54:49Z beach: montxero: Then, you can have one "core" module and use the :DEPENDS-ON clause in ASDF:DEFSYSTEM so that your other modules depend on the core module or any other module for that matter. 2020-05-16T14:56:48Z montxero: beach: I think I get the general idea... 2020-05-16T14:57:12Z beach: montxero: Do you use ASDF in general? 2020-05-16T14:57:36Z montxero: Yes, but I am still a novice 2020-05-16T14:57:41Z montxero: in Lisp 2020-05-16T14:57:43Z beach: I see. 2020-05-16T14:57:53Z phantomics: Understanding ASDF is the first thing, looking as .asd files will help you understand 2020-05-16T14:58:03Z phantomics: *looking at 2020-05-16T14:58:12Z beach: montxero: Then you won't have the "application structure" problem for some time. 2020-05-16T14:58:25Z toorevitimirp joined #lisp 2020-05-16T14:59:32Z phantomics: Unfortunately, the ASDF manual is rather dry: https://www.common-lisp.net/project/asdf/asdf.html 2020-05-16T14:59:50Z remix2000 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-16T14:59:59Z phantomics: I learned by messing around with ASDF, studying the existing .asd files and referring to the manual to clarify things 2020-05-16T15:00:05Z montxero: I want write an application to manage references and citations (like Jabref) but also research sources as well 2020-05-16T15:00:22Z bitmapper joined #lisp 2020-05-16T15:01:11Z beach: montxero: If you expose your code here (or in #clschool if the stuff is really trivial), then you will likely get remarks on it. 2020-05-16T15:01:22Z emys joined #lisp 2020-05-16T15:01:22Z montxero: The idea is to have a core application, then build the reference manager, document reader, document retriver, etc separately 2020-05-16T15:01:32Z orivej_ joined #lisp 2020-05-16T15:01:44Z beach: So what would the core contain? 2020-05-16T15:02:01Z montxero: Such that the overall program can be grown in a modular fashion. 2020-05-16T15:02:10Z jprajzne joined #lisp 2020-05-16T15:02:30Z phantomics: What would you say is the core data model in this program? 2020-05-16T15:02:44Z montxero: beach: still figuring that out 2020-05-16T15:02:50Z beach: Ah. 2020-05-16T15:03:01Z phantomics: Is everything build around the concept of a "paper", and you then build a graph connecting papers and sources, etc.? 2020-05-16T15:03:58Z pjb: phoe: it's not even stray, since it's prefixed by #\ ! 2020-05-16T15:03:58Z orivej quit (Ping timeout: 256 seconds) 2020-05-16T15:04:29Z phoe: pjb: what do you mean, stray - I lost context 2020-05-16T15:04:34Z pjb: phoe: ah, no. It's in the middle of parentheses… 2020-05-16T15:04:41Z phoe: oh! yes, it's like )))})) 2020-05-16T15:05:07Z montxero: phantomics: Not exactly, I want to manage my research resources better.. rather than have several directories holding different papers, I want to have all of them in a single location 2020-05-16T15:05:43Z montxero: I also want a bibliography manager that handles different kinds of sorces correctly. 2020-05-16T15:05:55Z toorevitimirp quit (Ping timeout: 246 seconds) 2020-05-16T15:06:57Z montxero: I want it to ensure conference papers have all the requisite fields including location (especially the conference location). 2020-05-16T15:07:48Z montxero: I want it to perform sanity checks on every bib entry to make sure they are all in order. 2020-05-16T15:07:50Z phantomics: I see, that's the goal but it's important to figure out the data model that will support that goal. It sounds like "paper" and "source" will be some of the major object types. 2020-05-16T15:08:38Z phantomics: This is a pretty big project to get started with, you may want to try for a smaller proof of concept and then evolve it 2020-05-16T15:08:58Z phoe: pjb: plus the main body doesn't compile due to some nested backquote issues; I've tried to work around that and fix it up a bit but I hard-crashed at the regex function. 2020-05-16T15:09:27Z emys quit (Ping timeout: 240 seconds) 2020-05-16T15:09:49Z phantomics: When you're starting out it's best to do something small, because it takes a good deal of trial and error to learn the right ways to architect things, that way you won't be overwhelmed 2020-05-16T15:10:16Z montxero: One of the main things I want is the concept of a document. Since sources may be books as well. 2020-05-16T15:10:53Z montxero: One of the main components is a library manager. 2020-05-16T15:11:27Z phantomics: Right, "document" would be the root class, then "paper" and "book" and so on would descend from it. A "library" containing multiple documents could be another object 2020-05-16T15:12:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T15:12:57Z montxero: The libray is a database of documents. Documents will have tags associated with them. 2020-05-16T15:12:58Z pjb: phoe: correction pushed. 2020-05-16T15:13:33Z phantomics: Sounds pretty straightforward, have you worked with CLOS much yet? 2020-05-16T15:13:35Z montxero: phantomics: the library is more pressing to me than the citation stuff 2020-05-16T15:13:57Z montxero: phantomics: No, not yet. 2020-05-16T15:14:29Z montxero: I'm working my way through on lisp now. 2020-05-16T15:14:34Z phantomics: That's what you'll want to use for this, you could practice creating classes for "library" and "document," then making subclasses of document, then writing some methods to ask questions about documents 2020-05-16T15:15:12Z montxero: phantomics: can you suggest good resources for getting started with CLOS? 2020-05-16T15:15:43Z phantomics: It's a good book, Paul Graham doesn't like doing anything object-oriented, you could adopt his approach but I like using objects when I feel it makes sense 2020-05-16T15:15:55Z beach: minion: Please tell montxero about PCL. 2020-05-16T15:15:55Z minion: montxero: 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). 2020-05-16T15:16:00Z phantomics: Some devs I think go overboard making everything object-oriented 2020-05-16T15:16:03Z dddddd quit (Remote host closed the connection) 2020-05-16T15:16:20Z phoe: pjb: https://plaster.tymoon.eu/view/1834#1834 2020-05-16T15:16:27Z phantomics: Seconded, the Gigamonkeys book is the best place to start 2020-05-16T15:16:53Z emys joined #lisp 2020-05-16T15:17:03Z montxero: Thanks guys 2020-05-16T15:17:10Z montxero: On to PCL 2020-05-16T15:17:19Z beach: Good luck! 2020-05-16T15:18:40Z phantomics: This is the chapter that starts covering CLOS: http://www.gigamonkeys.com/book/object-reorientation-generic-functions.html 2020-05-16T15:18:56Z phantomics: The next chapter covers classes 2020-05-16T15:21:06Z pjb: phoe: in any case, it's not in working order yet. 2020-05-16T15:21:33Z pjb: phoe: some functions are not implemented yet. 2020-05-16T15:21:37Z phoe: pjb: correct; my biggest question is which regex library you've used, since I have searched a few I know and none provided the regex function that you--- 2020-05-16T15:21:43Z phoe: oh! it's not done yet, I see. 2020-05-16T15:22:03Z pjb: phoe: we could hook in cl-ppcre. 2020-05-16T15:23:43Z pjb: Yeah, it would be nice, before I die, that I make a big code review, and finish all open projects… Some play chess with Death, some leave open projects… 2020-05-16T15:25:30Z emys quit (Ping timeout: 256 seconds) 2020-05-16T15:27:11Z jprajzne joined #lisp 2020-05-16T15:29:19Z rogersm joined #lisp 2020-05-16T15:29:21Z FreeBirdLjj joined #lisp 2020-05-16T15:29:54Z emys joined #lisp 2020-05-16T15:30:09Z phoe: pjb: I'll fix up a few more things in that code 2020-05-16T15:31:27Z srazzaque: phantomics: re "PG doesn't like doing anything OO" - mind elaborating? CLOS sounds like a natural fit for the doc/paper/book, would PG just prefer lists? structs? 2020-05-16T15:31:38Z phoe: pjb: I 2020-05-16T15:31:44Z phoe: I'm down to five style warnings in https://plaster.tymoon.eu/view/1835#1835 2020-05-16T15:31:54Z orivej_ quit (Ping timeout: 240 seconds) 2020-05-16T15:32:22Z srazzaque: (I haven't read On Lisp, have only read PCL) 2020-05-16T15:32:24Z beach: srazzaque: It is just a fact that Paul Graham doesn't like object-oriented programming, at least not using CLOS. 2020-05-16T15:32:37Z theseb joined #lisp 2020-05-16T15:32:40Z orivej joined #lisp 2020-05-16T15:32:56Z beach: srazzaque: On Lisp is about the use of the Common Lisp macro system for very advanced purposes, including so called embedded languages. 2020-05-16T15:33:04Z phoe: pjb: annnnnd four, please refresh that page. 2020-05-16T15:33:05Z pjb: srazzaque: my interpretation is that some people don't get OO so they deam OO bad and avoid it. 2020-05-16T15:33:22Z beach: srazzaque: It is not about general application programming. 2020-05-16T15:33:39Z theseb: Do other languages like Python have anything like the "let" form? In Python you just set variables to whatever values you want....Why don't they have a need to set them for a special block like with let? 2020-05-16T15:33:46Z pjb: phoe: you want me to patch from this? Didn't you do a clone and PR? 2020-05-16T15:33:56Z phoe: pjb: I'll do a clone and PR in a second. 2020-05-16T15:34:02Z pjb: ok 2020-05-16T15:34:18Z beach: theseb: Even C has the equivalent of LET: { int x; ...} 2020-05-16T15:34:57Z beach: theseb: I don't know Python enough, but there must be a nested block construct. No? 2020-05-16T15:35:46Z phantomics: I appreciate Graham's perspective more than the Java-style trend of making everything OO 2020-05-16T15:35:47Z theseb: beach: well in Python like C you don't generally create naked blocks...rather 2020-05-16T15:36:06Z theseb: beach: blocks just turn up for example when creating while and for loops 2020-05-16T15:36:15Z theseb: beach: or if statements, etc. 2020-05-16T15:36:33Z beach: theseb: I use blocks all the time in C (when I use C) just to limit scope. 2020-05-16T15:36:41Z theseb: beach: on the other hand, lisp's let form just seems to make a block "just for fun" 2020-05-16T15:36:44Z beach: theseb: Everyone should, or they are just bad programmers. 2020-05-16T15:36:46Z phantomics: But I see OO as being useful for things that fit the model, like the library/document/tag concept 2020-05-16T15:37:09Z beach: theseb: It has nothing to do with fun. It has to do with limiting scope and naming things. 2020-05-16T15:37:21Z theseb: beach: you may be able to do { int x; ..... } without anything in front of the left { in C but I've rarely seen it 2020-05-16T15:37:38Z emys quit (Ping timeout: 256 seconds) 2020-05-16T15:37:38Z beach: theseb: Then you are looking at bad code. 2020-05-16T15:37:53Z beach: Not that I am surprised that there is a lot of bad C code out there. 2020-05-16T15:37:59Z phantomics: Are { } blocks in C lexically scoped? 2020-05-16T15:38:13Z beach: Yes. 2020-05-16T15:38:36Z pjb: Only, since {} in C is a statement, you cannot use it in expressions: (+ (let ((a 42)) (* a a)) (let ((b 33)) (* b b))) #| --> 2853 |# 2020-05-16T15:38:52Z beach: pjb: Very true. 2020-05-16T15:39:24Z beach: theseb: A block should be created whenever you need a temporary computation that is needed only for the next few statements. 2020-05-16T15:39:24Z pjb: on the other hand, in C you can use (e1,e2,…,en) ; but you cannot put statements in the expressions. And you need to remember switching the syntax { ; } -> ( , ). 2020-05-16T15:39:49Z shangul quit (Ping timeout: 264 seconds) 2020-05-16T15:39:54Z Bike: could you introduce blocks like that in early C? I know until C99 things like if and while didn't actually introduce a new scope 2020-05-16T15:39:55Z beach: theseb: {int x = a + b; f(x); g(x);} for instance. 2020-05-16T15:40:22Z pjb: Bike: yes, it's early syntax. 2020-05-16T15:40:46Z theseb: beach: if I need to encapsulate some code in C or Python or ....i usually squirrel it away in a separate *function* 2020-05-16T15:41:01Z pjb: Bike: note that the syntax for if is: if ( expression ) statement [ else statement ] 2020-05-16T15:41:07Z Bike: but then you can't access variables from the outer scope. 2020-05-16T15:41:07Z pjb: Bike: no bracket here. 2020-05-16T15:41:27Z pjb: Bike: that's the point. 2020-05-16T15:41:43Z phoe: pjb: PR'd. 2020-05-16T15:41:50Z pjb: phoe: good. 2020-05-16T15:42:11Z pjb: phoe: github or githlab? 2020-05-16T15:42:15Z emys joined #lisp 2020-05-16T15:42:18Z beach: theseb: There is really not a big difference between the use of LET in Common Lisp and {} in C, other than what pjb is pointing out. 2020-05-16T15:42:19Z orivej quit (Ping timeout: 246 seconds) 2020-05-16T15:42:40Z phoe: pjb: github 2020-05-16T15:42:41Z theseb: ah ok 2020-05-16T15:42:48Z phoe: https://github.com/informatimago/lisp/pull/2 2020-05-16T15:43:00Z orivej joined #lisp 2020-05-16T15:43:04Z beach: theseb: Both introduced a lexically nested "block", and as Bike says, you can access variables from outside the "block". 2020-05-16T15:43:54Z beach: theseb: So if you would introduce a separate function in C, you would probably do the same in Common Lisp. That's worthwhile when there is a natural name to the chunk of code. 2020-05-16T15:46:08Z beach: theseb: Though, I used to have several students who avoided nested blocks in C, because they thought that "the variables had to be created every time the block is entered, so it is slow", which just shows their total lack of knowledge of compiler design. 2020-05-16T15:46:11Z srazzaque: beach: makes sense - I perhaps should have said ANSI Common Lisp, not On Lisp. 2020-05-16T15:46:22Z theseb: beach: actually that brings up another point....if let didn't exist...you could get similar encapsulation by using a lambda function...the only difference would be that you could not access the vars outside the snippet as you said! 2020-05-16T15:46:33Z pjb: phoe: merged. 2020-05-16T15:46:33Z beach: srazzaque: Yes, that one is notorious for avoiding classes and generic functions. 2020-05-16T15:46:36Z Bike: you could, because closures exist 2020-05-16T15:47:05Z theseb: beach: you're a teacher? nice 2020-05-16T15:47:20Z beach: theseb: LET is basically syntactic sugar for LAMBDA, and you can definitely access variables in outer scopes. 2020-05-16T15:47:41Z Bike: this should be covered in whatever text you're using to learn lisp and its implementation 2020-05-16T15:47:42Z pjb: phoe: thanks for the PR! 2020-05-16T15:48:18Z theseb: beach: i teach physics at a university for what its worth ;) 2020-05-16T15:48:20Z beach: theseb: (let ((x ) (y )) ) is basically ((lambda (x y) ) ) 2020-05-16T15:48:30Z beach: theseb: Great! 2020-05-16T15:49:00Z beach: theseb: And can refer to variables outside the scope of the LET or LAMBDA. 2020-05-16T15:49:13Z theseb: beach: i could blow you away with my physics knowledge...with my PLT not so much ;) 2020-05-16T15:49:31Z phoe: pjb: no problem. I'll send in another one when I figure more things out. 2020-05-16T15:49:34Z beach: theseb: Such variables are called "free" with respect to a particular block. 2020-05-16T15:49:40Z theseb: yes 2020-05-16T15:49:43Z pjb: ok 2020-05-16T15:50:42Z phoe: pjb: my main question is your use of SCAN-MATCH-REGEXP with a stream variable; doesn't the stream get used up when one reads from it? 2020-05-16T15:50:59Z beach: theseb: Perhaps the C programs you have seen were written by colleagues? 2020-05-16T15:51:09Z phoe: Like, we have multiple RULE forms in there. Won't each of them execute SCAN-MATCH-REGEXP that might possibly remove characters from the stream? 2020-05-16T15:51:55Z beach: theseb: Scientists often overestimate their ability to write good code. To the extent that some of them don't even think of software development or computer science as valid disciplines. 2020-05-16T15:52:47Z theseb: beach: yes scientists often have poor software engineering skills..i can vouch for that 2020-05-16T15:53:12Z theseb: beach: i've spent decades trying to rectify that in myself at lest 2020-05-16T15:53:14Z theseb: least 2020-05-16T15:53:24Z beach: Excellent! 2020-05-16T15:54:08Z Josh_2: There was a very good example of what you are saying beach in practice here in the UK government following advice based off of very poorly written models 2020-05-16T15:54:46Z Josh_2: academics wrote the code, not software engineers ¯\_(ツ)_/¯ 2020-05-16T15:55:23Z theseb: beach: since you're a teacher...maybe you can appreciate these fuzzy ideas I've had in my head ....I want to bring software to physics education...I'm thought of a "computational introductory physics course" with python or lisp...problem is not every student learns programming in high school 2020-05-16T15:55:24Z beach: Josh_2: Stuff like that is very common, unfortunately. 2020-05-16T15:55:42Z Josh_2: theseb: you should use Lisp ;) 2020-05-16T15:57:02Z beach: theseb: I would have to think about that. I have mostly given thought to how to teach it to computer-science and software-engineering students. 2020-05-16T15:58:22Z emys quit (Ping timeout: 256 seconds) 2020-05-16T15:58:30Z selwyn: john carmack reviewed the imperial epidemic simulation code and he concluded that "the software engineering seems fine" 2020-05-16T15:58:37Z theseb: beach: and I'm sure you know teaching programming is slow at first.....little things we take for granted like editors and syntax cause pain for newbies 2020-05-16T15:58:39Z phantomics: Non-CS students are less likely to know programming to start with, and thus less likely to have bad Algol habits to unlearn 2020-05-16T15:59:06Z EvW joined #lisp 2020-05-16T15:59:09Z beach: theseb: Indeed. 2020-05-16T15:59:10Z pjb: phoe: the question is whether the language needs backtracing for scanning. They usually don't. 2020-05-16T15:59:27Z beach: phantomics: That depends a lot on the country. 2020-05-16T15:59:32Z pjb: phoe: assumedly SCAN-MATCH-REGEXP will take care of the needed buffering. 2020-05-16T15:59:36Z phoe: pjb: does TeX need it?... I don't think so 2020-05-16T15:59:56Z pjb: Note that we have 1-char backtracking available with character streams. (unread-char). 2020-05-16T16:00:02Z theseb: beach: the teacher often wants to turbo ahead and it is excruciating because they make what seems to us like such trivial mistakes...so nothing seems to get done for a long time....THAT is the problem with the notion of "let's just a quick 1-2 week programming intro at the beginning of the semester!" idea...students would get pissed 2020-05-16T16:00:09Z phoe: pjb: correct 2020-05-16T16:00:13Z MichaelRaskin: TeX written by the most inventive TeX wizards or TeX from dpANS3? 2020-05-16T16:00:20Z phoe: MichaelRaskin: the latter 2020-05-16T16:00:35Z MichaelRaskin: My pretty trivial PEG grammar seems to survive the latter fine 2020-05-16T16:00:52Z phantomics: Although for teaching math-related material, I think APL is the best language for beginners. If you set someone up with an interpreter and you can teach them to enter the special characters, there is almost no boilerplate or other extraneous stuff to figure out 2020-05-16T16:01:00Z phoe: MichaelRaskin: please show me 2020-05-16T16:01:10Z MichaelRaskin: http://dpaste.com/2DQGK93 2020-05-16T16:01:33Z Kundry_Wag joined #lisp 2020-05-16T16:01:48Z phantomics: Understanding environments, editors, compilation etc. are often the biggest hurdles for beginners, it's important to get fast results with a small feedback loop 2020-05-16T16:01:57Z beach: theseb: I think we will get kicked if we continue this discussion here. We would have to find a different forum for it. 2020-05-16T16:02:09Z theseb: phantomics: as much as i respect CL...have you sen Racket and their DrRacket IDE? it is quite impressive and also removes a lot of barries as you brought up 2020-05-16T16:02:26Z theseb: may even be the best i've found for newbies 2020-05-16T16:02:31Z theseb: bar none 2020-05-16T16:02:40Z phantomics: Yes, I've used Racket, that's probably the best starter Lisp environment 2020-05-16T16:03:09Z phantomics: I've been working on creating an easier Lisp environment within the browser, but that's still a long way out 2020-05-16T16:03:27Z MichaelRaskin: phoe: the rest is http://dpaste.com/17930HR and it is pretty specific to what happens to this HTML on the next step 2020-05-16T16:04:06Z theseb: phantomics: yes...a browser lisp intro would be phenomenal 2020-05-16T16:04:30Z theseb: beach: i'm done ;) 2020-05-16T16:04:32Z phoe: MichaelRaskin: what is that first file? 2020-05-16T16:04:36Z phantomics: theseb: My browser app actually manifests an entirely different display of s-expressions, displaying them as a graphical tree grid rather than text 2020-05-16T16:04:52Z theseb: phantomics: nice 2020-05-16T16:04:57Z phoe: beach: #lispcafe welcomes you, and it's quiet at the moment 2020-05-16T16:05:01Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-16T16:05:10Z MichaelRaskin: The first file is PEG, in the syntax maximally similar to The Original PEG Paper, which is handled by esrap-peg 2020-05-16T16:05:10Z scymtym_ joined #lisp 2020-05-16T16:05:18Z phoe: Okay 2020-05-16T16:05:21Z beach: phoe: I wish I had the time and the energy. 2020-05-16T16:05:21Z phantomics: I also have the ability to insert arbitrary interface elements into the grid and show different output types, like images, d3.js graphics, spreadsheet grids, etc. 2020-05-16T16:05:38Z phantomics: But making it all robust and fast is the challenge 2020-05-16T16:05:45Z phoe: beach: gotcha 2020-05-16T16:06:02Z scymtym quit (Ping timeout: 260 seconds) 2020-05-16T16:06:05Z ayuce joined #lisp 2020-05-16T16:06:10Z orivej joined #lisp 2020-05-16T16:06:16Z emys joined #lisp 2020-05-16T16:06:21Z theseb: phantomics: sounds like you've thought of this for a long time 2020-05-16T16:06:23Z beach: phoe: Speaking of which, I think you are already overwhelmed with the help on the book, so I think I'll stay away. 2020-05-16T16:06:35Z phantomics: I've been working on it off and on since 2013 2020-05-16T16:06:42Z phoe: beach: I kind of am right now, agreed - thank you 2020-05-16T16:06:55Z beach: phoe: Good luck@ 2020-05-16T16:07:00Z beach: ! 2020-05-16T16:07:14Z theseb: beach: one last question....do you agree with me and phantomics that DrRacket IDE + Racket is probably the best programming intro environment there is? 2020-05-16T16:07:20Z phoe: If anything, I'll poke you later, when the book is already more or less typeset and the previous reviewers have their stuff merged 2020-05-16T16:07:29Z beach: Sure. 2020-05-16T16:07:33Z phoe: We'll see if you have the time and strength then 2020-05-16T16:07:42Z phoe: Does that sound okay? 2020-05-16T16:07:42Z Kundry_Wag quit (Ping timeout: 258 seconds) 2020-05-16T16:08:03Z scymtym_ quit (Remote host closed the connection) 2020-05-16T16:08:10Z beach: Oh, proofreading a book is not hard for me. It is just too messy with too many people pushing their own stuff right now. 2020-05-16T16:08:23Z phoe: Yes, correct 2020-05-16T16:08:27Z phoe: It *is* messy 2020-05-16T16:08:54Z beach: phoe: I can see how you would react, and I would not want to work that way myself. 2020-05-16T16:09:10Z phantomics: My April APL compiler was created to augment it, because spreadsheets are a major interface modality and vector languages are a natural fit for spreadsheets 2020-05-16T16:10:17Z phoe: MichaelRaskin: is there any README or tutorial on esrap-peg? 2020-05-16T16:11:08Z refpga quit (Ping timeout: 272 seconds) 2020-05-16T16:13:20Z MichaelRaskin: Hmm. I guess no. But that's all that is needed to get string -> parse tree: http://dpaste.com/092PP1D 2020-05-16T16:13:51Z phoe: oh! can I just skip the peg file and evaluate the stuff from http://dpaste.com/17930HR ? 2020-05-16T16:14:25Z phoe tests some things 2020-05-16T16:14:37Z emys quit (Ping timeout: 264 seconds) 2020-05-16T16:14:41Z scymtym joined #lisp 2020-05-16T16:14:56Z rpg joined #lisp 2020-05-16T16:15:23Z rpg: luis, Fare I will set up my Jenkins server to run some upgrade tests on that branch. 2020-05-16T16:15:49Z orivej quit (Ping timeout: 264 seconds) 2020-05-16T16:15:51Z orivej_ joined #lisp 2020-05-16T16:17:01Z MichaelRaskin: phoe: no, first is the grammar, third is the way to use it 2020-05-16T16:17:02Z rgherdt quit (Ping timeout: 260 seconds) 2020-05-16T16:17:17Z MichaelRaskin: Second is parse tree to something, where something happens to be some crazy HTML 2020-05-16T16:17:54Z phoe: MichaelRaskin: I see 2020-05-16T16:19:04Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-16T16:22:16Z emys joined #lisp 2020-05-16T16:23:37Z orivej_ quit (Ping timeout: 246 seconds) 2020-05-16T16:24:00Z orivej joined #lisp 2020-05-16T16:26:06Z pjb: theseb: AFAICS, it would be possible to write a CL compiler for DrRacket, so you could !lang cl and be happy for ever? 2020-05-16T16:29:12Z theseb: pjb: perhaps 2020-05-16T16:30:47Z theseb: pjb: someone implemented python in CL..you may have heard of CLPython... https://common-lisp.net/project/clpython/ 2020-05-16T16:31:09Z theseb: pjb: i want to do a subset of that for more educational purposes 2020-05-16T16:31:35Z theseb: i.e. Show how a Python subset can be implemented in lisp 2020-05-16T16:32:25Z shangul joined #lisp 2020-05-16T16:33:34Z orivej quit (Ping timeout: 256 seconds) 2020-05-16T16:33:42Z orivej_ joined #lisp 2020-05-16T16:39:38Z Fare: rpg, I ran upgrade tests on what I have and found plenty of failures. I'll analyze the failures and do better. 2020-05-16T16:39:49Z gko quit (Ping timeout: 264 seconds) 2020-05-16T16:40:59Z rpg: Sounds good. I will wait for a new push or two and then rerun. 2020-05-16T16:41:05Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2020-05-16T16:42:08Z phoe: MichaelRaskin: your parser seems to work, however it's pretty verbose - the string " does not appear in this chapter;" is represented in code by https://plaster.tymoon.eu/view/1836#1836 2020-05-16T16:42:13Z jprajzne quit (Quit: jprajzne) 2020-05-16T16:42:13Z srazzaque quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-16T16:42:17Z phoe: s/code/resulting data/ 2020-05-16T16:42:37Z jprajzne joined #lisp 2020-05-16T16:43:19Z MichaelRaskin: Yes, that's what the second stage tries to improve 2020-05-16T16:43:32Z phoe: could you link me the second stage again? 2020-05-16T16:44:16Z MichaelRaskin: http://dpaste.com/17930HR 2020-05-16T16:46:24Z phoe: MichaelRaskin: https://plaster.tymoon.eu/view/1837#1837 2020-05-16T16:46:31Z phoe: there are warnings that don't look all that nice 2020-05-16T16:46:47Z jprajzne quit (Client Quit) 2020-05-16T16:47:10Z jprajzne joined #lisp 2020-05-16T16:47:11Z phoe: related to global dynavars, should I define these myself? 2020-05-16T16:48:38Z MichaelRaskin: Ah right, sorry, I didn't paste that part of the file. Yes, these can be just defined. 2020-05-16T16:49:26Z phoe: I've defined these two dynavars, but I have no idea how to use that second part of the file just yet 2020-05-16T16:50:14Z phoe: https://plaster.tymoon.eu/view/1838#1838 2020-05-16T16:51:26Z MichaelRaskin: esrap-peg:ast-eval 2020-05-16T16:52:13Z MichaelRaskin: (esrap-peg:ast-eval (parse-tex s)) 2020-05-16T16:54:05Z phoe: https://plaster.tymoon.eu/view/1839#1839 2020-05-16T16:54:46Z phoe: I get a big string that seems very much glued together without any newlines or anything else - is that the intended result? 2020-05-16T16:55:35Z MichaelRaskin: Yes, For Reasons™ 2020-05-16T16:55:56Z MichaelRaskin: I can write a different convertor, of course 2020-05-16T16:56:11Z phoe: Oh wait, I see now 2020-05-16T16:56:21Z phoe: I can modify the structure of peg matchers to get different output 2020-05-16T16:59:32Z abhixec quit (Quit: leaving) 2020-05-16T17:02:57Z FreeBirdLjj joined #lisp 2020-05-16T17:03:08Z heisig quit (Quit: Leaving) 2020-05-16T17:05:11Z MichaelRaskin: AST-eval is _fully_ agnostic, so the fact that the output is a string is just an accident 2020-05-16T17:05:40Z phoe: yes, I see that 2020-05-16T17:05:46Z rogersm quit (Quit: Leaving...) 2020-05-16T17:07:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T17:09:19Z Kundry_Wag joined #lisp 2020-05-16T17:10:23Z jason_m joined #lisp 2020-05-16T17:11:43Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2020-05-16T17:12:12Z jprajzne joined #lisp 2020-05-16T17:12:41Z emys quit (Ping timeout: 265 seconds) 2020-05-16T17:14:43Z ebrasca joined #lisp 2020-05-16T17:16:10Z emys joined #lisp 2020-05-16T17:24:14Z emys quit (Ping timeout: 240 seconds) 2020-05-16T17:24:32Z emys joined #lisp 2020-05-16T17:27:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T17:27:52Z jprajzne joined #lisp 2020-05-16T17:28:54Z Willi-Smith quit (Quit: Leaving) 2020-05-16T17:29:15Z bitmapper: i'm getting there 2020-05-16T17:29:16Z bitmapper: slowly 2020-05-16T17:29:17Z bitmapper: http://0x0.st/iLUg.png 2020-05-16T17:31:47Z jprajzne quit (Client Quit) 2020-05-16T17:32:13Z jprajzne joined #lisp 2020-05-16T17:33:28Z EvW quit (Ping timeout: 260 seconds) 2020-05-16T17:35:09Z liberliver joined #lisp 2020-05-16T17:37:45Z beach: bitmapper: You were the one who tried the SICL REPL the other day, right? Well, it works again, but it can't do many useful things. You can do things like (car '(a b)) but you can't create generic functions yet. 2020-05-16T17:38:12Z bitmapper: yeah 2020-05-16T17:38:15Z beach: bitmapper: But I think progress is going to be fast from now on, so check back in a few weeks. 2020-05-16T17:39:02Z beach: Anyway, I am off for the day. I'll be back tomorrow morning (UTC+2). 2020-05-16T17:40:14Z Fare: beach, congratulations 2020-05-16T17:41:45Z beach: Fare: Thanks. It is till executing in the host Common Lisp system, but it is executing (mostly) SICL code. 2020-05-16T17:43:18Z fourier joined #lisp 2020-05-16T17:50:14Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-16T17:50:14Z sdumi quit (Ping timeout: 240 seconds) 2020-05-16T17:50:20Z orivej joined #lisp 2020-05-16T17:51:14Z Inoperable quit (Excess Flood) 2020-05-16T17:52:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T17:52:49Z jprajzne joined #lisp 2020-05-16T17:55:10Z TwoNotes joined #lisp 2020-05-16T17:55:53Z Inoperable joined #lisp 2020-05-16T17:56:47Z jprajzne quit (Client Quit) 2020-05-16T17:57:13Z jprajzne joined #lisp 2020-05-16T17:57:56Z TwoNotes quit (Client Quit) 2020-05-16T17:59:50Z sdumi joined #lisp 2020-05-16T18:00:42Z orivej quit (Ping timeout: 272 seconds) 2020-05-16T18:00:51Z orivej_ joined #lisp 2020-05-16T18:08:52Z frodef joined #lisp 2020-05-16T18:09:31Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-16T18:10:40Z orivej joined #lisp 2020-05-16T18:11:30Z pjb: beach: can we write normal functions and macros in sicl areadly? 2020-05-16T18:11:42Z pjb: s/readl/lread/ 2020-05-16T18:12:20Z shangul quit (Ping timeout: 256 seconds) 2020-05-16T18:19:57Z orivej quit (Ping timeout: 258 seconds) 2020-05-16T18:20:20Z orivej joined #lisp 2020-05-16T18:20:49Z LdBeth: good merning 2020-05-16T18:20:58Z theseb: The following returns "(+ 1 2)"......(print ( (lambda (a) a) '(+ 1 2) ) )....Must an eval be added inside the lambda expression "(eval a)" to evaluate a and return 3? 2020-05-16T18:21:26Z theseb: i.e. is there a way to eval w/o using eval? 2020-05-16T18:21:27Z LdBeth: theseb: yes 2020-05-16T18:21:56Z karlosz joined #lisp 2020-05-16T18:21:58Z phoe: theseb: FUNCALL with COMPILE NIL, which is sort of a cheat 2020-05-16T18:22:18Z LdBeth: but you can write `(print ((lambda (x) x) (+ 1 2)))` 2020-05-16T18:22:34Z theseb: right 2020-05-16T18:22:36Z phoe: (funcall (compile nil '(lambda () (print "look ma, no eval!")))) 2020-05-16T18:22:41Z phoe: (funcall (coerce '(lambda () (print "look ma, no eval!")) 'function)) 2020-05-16T18:22:58Z theseb: LdBeth: actually what you nested lambdas!? 2020-05-16T18:23:38Z theseb: (lambda (a) a) becomes (lambda (a) (lambda (b) b)) 2020-05-16T18:23:46Z theseb tests it 2020-05-16T18:24:12Z theseb: sorry i mean (lambda (a) ((lambda (b) b) a)) 2020-05-16T18:25:26Z theseb: nope..didn't work...emits (+ 1 2) 2020-05-16T18:25:34Z LdBeth: well, phoe could probably means to use '(lambda () (+ 1 2)) in place of '(+ 1 2) 2020-05-16T18:25:55Z Inoperable quit (Excess Flood) 2020-05-16T18:26:28Z LdBeth: but I cannot get what exactly theseb want 2020-05-16T18:27:07Z Fare: many of the upgrade failures are actually regular brokenness, as in CMUCL's subtypep being broken my some class redefinitions. 2020-05-16T18:27:21Z Inoperable joined #lisp 2020-05-16T18:27:21Z Inoperable quit (Excess Flood) 2020-05-16T18:28:15Z theseb: LdBeth: i'm implementing a lisp and didn't want to implement eval ;) 2020-05-16T18:28:36Z theseb: LdBeth: so just looking for a hacky way around it....no worries 2020-05-16T18:28:48Z Bike: have you considered making a good thing instead of a bad thing 2020-05-16T18:29:26Z Bike: if you want eval you should write eval 2020-05-16T18:29:34Z LdBeth have you considered that you can name anything that evals `eval`; 2020-05-16T18:29:37Z cosimone joined #lisp 2020-05-16T18:29:40Z theseb: Bike: yea 2020-05-16T18:30:24Z LdBeth: even it does only, for example, abstract eval, or eval by macro expansion 2020-05-16T18:30:27Z Inoperable joined #lisp 2020-05-16T18:30:27Z Bike: "implementing a lisp" is usually equivalent to implementing eval, even 2020-05-16T18:30:34Z Bike: at least to begin with 2020-05-16T18:31:07Z LdBeth: but have fun :D 2020-05-16T18:32:22Z orivej quit (Ping timeout: 272 seconds) 2020-05-16T18:32:32Z orivej_ joined #lisp 2020-05-16T18:32:45Z LdBeth: and probably you might end up with CPS in less than 30 lines of code 2020-05-16T18:33:40Z mwgkgk quit (Quit: Connection closed for inactivity) 2020-05-16T18:37:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T18:37:39Z jprajzne joined #lisp 2020-05-16T18:41:59Z FreeBirdLjj joined #lisp 2020-05-16T18:42:03Z emysion joined #lisp 2020-05-16T18:42:43Z EvW1 joined #lisp 2020-05-16T18:43:27Z emys quit (Ping timeout: 260 seconds) 2020-05-16T18:43:51Z Kundry_Wag quit (Remote host closed the connection) 2020-05-16T18:44:05Z jruiz joined #lisp 2020-05-16T18:44:37Z fourier quit (Ping timeout: 260 seconds) 2020-05-16T18:46:17Z Patzy quit (Quit: WeeChat 2.7) 2020-05-16T18:46:47Z jprajzne quit (Quit: jprajzne) 2020-05-16T18:47:02Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-16T18:47:10Z jprajzne joined #lisp 2020-05-16T18:47:28Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-16T18:47:40Z orivej joined #lisp 2020-05-16T18:53:35Z Patzy joined #lisp 2020-05-16T18:54:35Z Patzy quit (Client Quit) 2020-05-16T18:54:44Z Patzy joined #lisp 2020-05-16T18:55:25Z orivej quit (Ping timeout: 264 seconds) 2020-05-16T18:59:39Z Kundry_Wag joined #lisp 2020-05-16T18:59:55Z orivej joined #lisp 2020-05-16T19:00:49Z dale joined #lisp 2020-05-16T19:04:48Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-16T19:06:35Z bitmapper: hmm 2020-05-16T19:06:42Z bitmapper: how do i rebuild the cocoa bindings in ccl 2020-05-16T19:08:42Z Inoperable quit (Excess Flood) 2020-05-16T19:12:21Z pjb: bitmapper: last time I looked at it, it need ffi4gen, which needs an old apple-gcc-4.2 compiler to be compiled. 2020-05-16T19:12:30Z bitmapper: ughhhhhhh 2020-05-16T19:12:38Z pjb: bitmapper: ffi4gen would need to be ported on gcc9… 2020-05-16T19:12:44Z bitmapper: wait no 2020-05-16T19:12:49Z bitmapper: i'm seeing something about ffigen5 2020-05-16T19:13:04Z pjb: That would be good. 2020-05-16T19:13:21Z kpoeck: do you just wan't to recompile or regenerate them? 2020-05-16T19:13:47Z pjb: ffigen is need to build cocoa bindings for new frameworks… 2020-05-16T19:13:55Z kpoeck: recompiling is (rebuild-ccl :clean t) 2020-05-16T19:14:08Z bitmapper: i need to use the new messages in the cocoa library 2020-05-16T19:14:16Z bitmapper: for dark mode support 2020-05-16T19:14:34Z v88m quit (Ping timeout: 260 seconds) 2020-05-16T19:17:16Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-16T19:18:13Z liberliver quit (Ping timeout: 264 seconds) 2020-05-16T19:18:36Z orivej joined #lisp 2020-05-16T19:20:47Z Inoperable joined #lisp 2020-05-16T19:27:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T19:27:57Z jprajzne joined #lisp 2020-05-16T19:28:34Z orivej quit (Ping timeout: 260 seconds) 2020-05-16T19:28:45Z orivej joined #lisp 2020-05-16T19:31:40Z dddddd joined #lisp 2020-05-16T19:33:10Z younder quit (Quit: Leaving) 2020-05-16T19:34:16Z sdumi quit (Read error: Connection reset by peer) 2020-05-16T19:34:44Z sdumi joined #lisp 2020-05-16T19:36:47Z jprajzne quit (Quit: jprajzne) 2020-05-16T19:39:12Z fanta1 quit (Quit: fanta1) 2020-05-16T19:40:16Z anticrisis joined #lisp 2020-05-16T19:40:53Z Kundry_Wag joined #lisp 2020-05-16T19:44:24Z rogersm joined #lisp 2020-05-16T19:46:10Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-16T19:49:16Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-16T19:49:42Z hsaziz joined #lisp 2020-05-16T19:50:27Z orivej joined #lisp 2020-05-16T19:50:37Z hsaziz quit (Client Quit) 2020-05-16T19:57:30Z narimiran quit (Ping timeout: 265 seconds) 2020-05-16T19:57:54Z jprajzne joined #lisp 2020-05-16T19:58:16Z akoana joined #lisp 2020-05-16T19:58:55Z FreeBirdLjj joined #lisp 2020-05-16T20:02:11Z jruiz quit (Remote host closed the connection) 2020-05-16T20:02:14Z jprajzne quit (Client Quit) 2020-05-16T20:02:39Z jprajzne joined #lisp 2020-05-16T20:02:54Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2020-05-16T20:07:29Z pve: hi 2020-05-16T20:07:55Z remix2000 joined #lisp 2020-05-16T20:08:09Z pve: I'm experimenting further with some MOP stuff, and SBCL tells me (I think) that it cannot change the class of an instance of standard-generic-function into my subclass. Is it really forbidden or am I missing something? 2020-05-16T20:08:17Z pve: Like this: https://plaster.tymoon.eu/view/1842# 2020-05-16T20:09:43Z shifty joined #lisp 2020-05-16T20:12:22Z phoe: pve: (fmakunbound 'another-function) 2020-05-16T20:12:47Z pve: yes, but I would like to keep its methods 2020-05-16T20:13:46Z pve: I think I could manually *move* them one by one, from the old to the new, but that seems fishy 2020-05-16T20:14:25Z Bike: "Portable programs must not call change-class to change the class of any generic function metaobject or to turn a non-generic-function object into a generic function metaobject. " 2020-05-16T20:14:43Z Bike: In chapter 6 of AMOP under "Initialization of generic function metaobjects" 2020-05-16T20:14:46Z pve: ok, thanks that settles it 2020-05-16T20:16:20Z Bike: moving the methods should work, though 2020-05-16T20:16:38Z pve: great! maybe I'll try that 2020-05-16T20:17:23Z Bike: i think you'll have to get the list of methods, call remove-method on each to make them unaffiliated, fmakunbound the name, define the new generic function, and add-method them all 2020-05-16T20:17:26Z Bike: kind of a pain 2020-05-16T20:19:13Z pve: yeah 2020-05-16T20:22:32Z Krystof joined #lisp 2020-05-16T20:23:47Z cosimone_ joined #lisp 2020-05-16T20:24:08Z fitzsim quit (Ping timeout: 256 seconds) 2020-05-16T20:27:52Z cosimone quit (Ping timeout: 260 seconds) 2020-05-16T20:28:47Z frodef quit (Remote host closed the connection) 2020-05-16T20:29:05Z karlosz quit (Quit: karlosz) 2020-05-16T20:29:40Z emysion quit (Ping timeout: 246 seconds) 2020-05-16T20:29:42Z karlosz joined #lisp 2020-05-16T20:31:05Z frodef joined #lisp 2020-05-16T20:36:56Z emysion joined #lisp 2020-05-16T20:38:32Z orivej quit (Ping timeout: 256 seconds) 2020-05-16T20:38:37Z orivej_ joined #lisp 2020-05-16T20:40:53Z pve: Bike: this does indeed seem to work (first annotation): https://plaster.tymoon.eu/view/1842#1843 2020-05-16T20:41:06Z pve: thanks 2020-05-16T20:41:29Z emysion quit (Ping timeout: 265 seconds) 2020-05-16T20:42:06Z rogersm quit 2020-05-16T20:42:37Z Bike: change...class is kind of a problematic name for this, since it doesn't change-class (i.e. preserve the identity of the object) 2020-05-16T20:42:52Z pve: true, I'll modify it 2020-05-16T20:43:56Z phoe: replace-generic-function-using-class? 2020-05-16T20:44:20Z pve: that could work 2020-05-16T20:50:06Z FreeBirdLjj joined #lisp 2020-05-16T20:52:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T20:52:44Z jprajzne joined #lisp 2020-05-16T20:54:03Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-16T20:54:15Z orivej joined #lisp 2020-05-16T20:54:16Z mwgkgk joined #lisp 2020-05-16T20:54:49Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2020-05-16T20:56:47Z jprajzne quit (Client Quit) 2020-05-16T20:57:11Z jprajzne joined #lisp 2020-05-16T20:59:01Z emys joined #lisp 2020-05-16T21:02:52Z sugarwren quit (Quit: Leaving) 2020-05-16T21:03:22Z fe[nl]ix: phoe: did you try it out ? 2020-05-16T21:03:55Z karayan quit (Remote host closed the connection) 2020-05-16T21:04:36Z karayan joined #lisp 2020-05-16T21:05:21Z holycow joined #lisp 2020-05-16T21:10:52Z PuercoPope: Is there a way to splice (,@) outside of quasiquote? I'm trying splice code that is already being spliced (and evaluated at macro-expansion time) 2020-05-16T21:11:21Z phoe: fe[nl]ix: sorry, not yet; didn't have the time 2020-05-16T21:11:31Z PuercoPope: I'm trying to get rid of the surrounding parentes around write-byte at the end https://gist.github.com/PuercoPop/4e6a1bdb348d032a99261a0f81a84ba8 2020-05-16T21:11:50Z phoe: PuercoPope: you are most likely doing something wrong if you are working with , or ,@ outside quasiquoted forms 2020-05-16T21:12:11Z phoe: especially since concrete implementations of , and ,@ are implementation-dependent 2020-05-16T21:13:05Z Bike: PuercoPope: i think you want :append rather than :collect on line 18? 2020-05-16T21:13:17Z phoe: EXPAND-REQUEST-READER is undefined 2020-05-16T21:13:32Z phoe: also, you have DEFUN READ-CREATE-ALARM twice in a row 2020-05-16T21:13:44Z phoe: so likely a bug on line 2 2020-05-16T21:14:23Z terpri joined #lisp 2020-05-16T21:16:15Z PuercoPope: Bike: Thanks! I had tried using append in the inner loop instead (ლ‸-) 2020-05-16T21:18:49Z PuercoPope: phoe: yeah, because I haven't commited the code I couldn't link the repo directly. You can find expand-request-reader here https://git.sr.ht/~puercopop/cl-xcb/tree/schemas/src/xcb/schema.lisp#L39 2020-05-16T21:19:38Z PuercoPope: I still have to fix the non-sense of using expanding into a lambda + funcall. But I'm still early in the PoC phase 2020-05-16T21:21:28Z orivej quit (Ping timeout: 246 seconds) 2020-05-16T21:21:57Z orivej joined #lisp 2020-05-16T21:23:58Z v88m joined #lisp 2020-05-16T21:24:11Z pve quit (Quit: leaving) 2020-05-16T21:25:26Z Grue`: I always use nconcing for appending inner loops, it should be very efficient 2020-05-16T21:26:43Z Fare quit (Ping timeout: 244 seconds) 2020-05-16T21:27:23Z Bike: yeah, nconcing a loop collected list should be okay too 2020-05-16T21:29:01Z phoe: yes, the list is fresh 2020-05-16T21:29:05Z phoe: so NCONC is okay 2020-05-16T21:29:23Z terpri quit (Remote host closed the connection) 2020-05-16T21:29:51Z terpri joined #lisp 2020-05-16T21:30:16Z choegusung joined #lisp 2020-05-16T21:30:39Z Fare joined #lisp 2020-05-16T21:32:14Z orivej quit (Ping timeout: 265 seconds) 2020-05-16T21:32:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T21:32:19Z Lord_of_Life_ joined #lisp 2020-05-16T21:32:39Z jprajzne joined #lisp 2020-05-16T21:34:20Z ntr joined #lisp 2020-05-16T21:34:55Z Kundry_Wag joined #lisp 2020-05-16T21:35:32Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-16T21:35:32Z mibr quit (Ping timeout: 260 seconds) 2020-05-16T21:35:34Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-16T21:35:37Z FishByte joined #lisp 2020-05-16T21:35:49Z shifty quit (Ping timeout: 246 seconds) 2020-05-16T21:36:48Z jprajzne quit (Client Quit) 2020-05-16T21:37:00Z shifty joined #lisp 2020-05-16T21:37:13Z jprajzne joined #lisp 2020-05-16T21:39:44Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-16T21:43:55Z pjb quit (Ping timeout: 272 seconds) 2020-05-16T21:48:20Z Kundry_Wag joined #lisp 2020-05-16T21:50:51Z cosimone_ quit (Remote host closed the connection) 2020-05-16T21:51:20Z cosimone_ joined #lisp 2020-05-16T21:56:09Z ralt: I want a handler-bind* 2020-05-16T21:57:42Z phoe: ralt: gimme one second 2020-05-16T21:57:48Z phoe: wait 2020-05-16T21:57:52Z phoe: what do you mean, handler-bind* 2020-05-16T21:58:26Z ralt: (handler-bind ((error1 #'uiop:quit) (error2 (lambda (c) (error 'error1)))) 2020-05-16T21:58:39Z ralt: I want error2 to end up calling uiop:quit 2020-05-16T21:58:52Z ralt: it doesn't, it ends up being an unhandled error 2020-05-16T21:58:55Z orivej joined #lisp 2020-05-16T21:59:00Z phoe: that's not how handler clustering works 2020-05-16T21:59:19Z phoe: handlers can only see handlers older than their cluster 2020-05-16T21:59:44Z ralt: I declared it before, it looks a bit like LET/LET* to me 2020-05-16T21:59:46Z phoe: if anything, you'd want a pair of nested handler-binds 2020-05-16T21:59:53Z ralt: yeah, handler-bind* :) 2020-05-16T21:59:59Z phoe: well 2020-05-16T22:00:02Z phoe: all right 2020-05-16T22:00:06Z ralt: :P 2020-05-16T22:00:12Z phoe: but why 2020-05-16T22:00:44Z phoe: (handler-bind (((or error1 error2) #'uiop:quit)) ...) 2020-05-16T22:02:01Z ralt: no, I want to do additional stuff in error2 2020-05-16T22:02:19Z phoe: oh! that wasn't accounted for in your original example 2020-05-16T22:02:42Z ralt: yes, sorry, didn't want to expand too much, tried keeping minimal code 2020-05-16T22:03:01Z phoe: (handler-bind ((error1 #'uiop:quit) (error2 (lambda (c) (foo) (uiop:quit c)) ...) :D 2020-05-16T22:03:28Z ralt: I mean... :) 2020-05-16T22:03:49Z ralt: error1 handler is doing a bunch more things too, so yeah, that's why I came to the conclusion "I want handler-bind*" :P 2020-05-16T22:05:57Z ralt: anyway, done 2020-05-16T22:06:18Z ralt: https://pastebin.com/8u9Gb2dT 2020-05-16T22:07:03Z ralt: almost 2020-05-16T22:07:20Z shka_ quit (Ping timeout: 256 seconds) 2020-05-16T22:07:54Z holycow quit (Quit: leaving) 2020-05-16T22:08:10Z phoe: just :compile-toplevel? AFAIK it is going to make it impossible to use handler-bind* outside of that file 2020-05-16T22:08:14Z emys quit (Quit: Leaving) 2020-05-16T22:08:43Z phoe: or wait a second 2020-05-16T22:08:55Z ralt: fixed version: https://pastebin.com/4mW63zDK 2020-05-16T22:08:56Z phoe: it might work in that file, but might not work after the FASL is reloaded 2020-05-16T22:09:01Z ralt: ah 2020-05-16T22:09:09Z ralt: good to know, thanks 2020-05-16T22:09:25Z phoe: use all three for best results, (:compile-toplevel :load-toplevel :execute) 2020-05-16T22:10:12Z SGASAU quit (Remote host closed the connection) 2020-05-16T22:10:37Z ralt: recursive macros are always fun to write 2020-05-16T22:10:46Z aeth: recursive macros are recursive macros 2020-05-16T22:10:50Z phoe: they're just recursive functions 2020-05-16T22:10:52Z SGASAU joined #lisp 2020-05-16T22:11:15Z phoe: once you get that, the whole magic drops away, but the macros become easier to write in general 2020-05-16T22:11:16Z ralt: yeah, but the "code is data" mantra really shines there 2020-05-16T22:12:13Z phoe: random midnight question 2020-05-16T22:12:25Z phoe: should (eval-when () (if)) signal warnings about a malformed IF? 2020-05-16T22:13:04Z Bike: maybe it should signal a warning about eval-when () 2020-05-16T22:13:44Z phoe: why, it's legal code; maybe just a style-warning 2020-05-16T22:13:52Z phoe: so far only ABCL chokes on (compile nil (lambda () (eval-when () (if)))) 2020-05-16T22:13:54Z Bike: that's what i meant yeah 2020-05-16T22:13:59Z phoe: out of the six implementations I tested 2020-05-16T22:14:54Z phoe: out of the eight implementations I tested 2020-05-16T22:15:23Z phoe: and that seems like an ABCL bug, because 2020-05-16T22:15:26Z phoe: clhs eval-when 2020-05-16T22:15:26Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_eval_w.htm 2020-05-16T22:15:34Z phoe: "The body of an eval-when form is processed as an implicit progn, but only in the situations listed. " 2020-05-16T22:15:55Z LdBeth: Depends on whether (if t 1 (if)) would work 2020-05-16T22:16:30Z phoe: LdBeth: it should work, yes 2020-05-16T22:16:31Z Bike: i don't think the behavior of (if) in general is defined 2020-05-16T22:16:45Z phoe: trying to evaluate it is a program-error 2020-05-16T22:17:18Z jprajzne quit (Quit: jprajzne) 2020-05-16T22:17:27Z Bike: is it? are there rules for that? 2020-05-16T22:17:32Z Bike: if it was a function, maybe 2020-05-16T22:17:41Z rgherdt joined #lisp 2020-05-16T22:17:52Z jprajzne joined #lisp 2020-05-16T22:18:27Z ralt: shouldn't (eval-when ()) be a no-op? given the empty list 2020-05-16T22:19:08Z ralt: so AIUI, phoe's point is that given the empty list, it is never processed, and hence shouldn't fail 2020-05-16T22:19:20Z ralt: right? 2020-05-16T22:19:38Z Bike: there's nothing saying a compiler has to not error if it's given bad code, i think 2020-05-16T22:20:11Z Bike: i mean, i don't think whether it's executed matters to the compiler 2020-05-16T22:20:15Z phoe: Bike: hmmm 2020-05-16T22:20:17Z phoe: clhs 3.5.1.2 2020-05-16T22:20:17Z specbot: Too Few Arguments: http://www.lispworks.com/reference/HyperSpec/Body/03_eab.htm 2020-05-16T22:20:23Z phoe: this only mentions functions, not macros or specops 2020-05-16T22:20:27Z pjb joined #lisp 2020-05-16T22:20:46Z orivej quit (Ping timeout: 260 seconds) 2020-05-16T22:20:57Z orivej_ joined #lisp 2020-05-16T22:21:10Z Bike: but more broadly, i don't think the compiler is restricted to not fail just because the uncompilable code is never executed 2020-05-16T22:21:30Z Bike: in these cases it's obvious that it's never run, but in general it's the halting problem 2020-05-16T22:21:49Z phoe: I understand "The body of an eval-when form is processed (...) only in the situations listed" as "no situations, no processing" 2020-05-16T22:21:50Z Bike: it is nicer to not fail, of course 2020-05-16T22:21:55Z phoe: so it should not even look at (if) inside there 2020-05-16T22:22:11Z Bike: "processed" in that context returns to top level form processing. 2020-05-16T22:22:43Z Bike: it would be very weird if this is the only place the standard says something cannot be looked at by the compiler at all. 2020-05-16T22:22:59Z phoe: hmmm, I see 2020-05-16T22:24:30Z phoe: clhs 3.2.3.1 2020-05-16T22:24:30Z specbot: Processing of Top Level Forms: http://www.lispworks.com/reference/HyperSpec/Body/03_bca.htm 2020-05-16T22:24:48Z phoe: there's "ignore the form" which is kind of ambiguous if we want to nitpick 2020-05-16T22:25:14Z Bike: i really don't think so. 2020-05-16T22:25:25Z Bike: in the first case, in the example you gave with COMPILE none of that is relevant since it's not top level. 2020-05-16T22:25:59Z Bike: fundamentally i don't see what value there would be in restricting the compiler like this 2020-05-16T22:26:10Z phoe: well, neither do I 2020-05-16T22:26:49Z jprajzne quit (Quit: jprajzne) 2020-05-16T22:27:14Z jprajzne joined #lisp 2020-05-16T22:29:11Z fitzsim joined #lisp 2020-05-16T22:40:02Z FreeBirdLjj joined #lisp 2020-05-16T22:41:38Z ebrasca quit (Remote host closed the connection) 2020-05-16T22:44:25Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2020-05-16T22:47:18Z jprajzne quit (Quit: jprajzne) 2020-05-16T22:48:29Z remix2000 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-16T22:48:40Z kpoeck quit (Remote host closed the connection) 2020-05-16T22:50:12Z Lycurgus joined #lisp 2020-05-16T22:51:21Z theseb quit (Quit: Leaving) 2020-05-16T22:52:10Z jprajzne joined #lisp 2020-05-16T22:52:19Z rgherdt quit (Ping timeout: 272 seconds) 2020-05-16T22:53:35Z pjb quit (Ping timeout: 272 seconds) 2020-05-16T22:55:06Z PuercoPope quit (Ping timeout: 256 seconds) 2020-05-16T22:57:01Z choegusung quit (Quit: leaving) 2020-05-16T22:57:12Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-16T22:59:21Z efm joined #lisp 2020-05-16T23:04:02Z Lycurgus quit (Quit: Exeunt) 2020-05-16T23:04:22Z cosimone_ quit (Ping timeout: 244 seconds) 2020-05-16T23:14:07Z remix2000_ quit (Quit: remix2000_) 2020-05-16T23:17:16Z jprajzne quit (Quit: jprajzne) 2020-05-16T23:17:42Z jprajzne joined #lisp 2020-05-16T23:17:42Z efm quit (Ping timeout: 260 seconds) 2020-05-16T23:18:49Z toorevitimirp joined #lisp 2020-05-16T23:21:48Z jprajzne quit (Client Quit) 2020-05-16T23:22:16Z efm joined #lisp 2020-05-16T23:22:22Z jprajzne joined #lisp 2020-05-16T23:23:55Z toorevitimirp quit (Remote host closed the connection) 2020-05-16T23:24:19Z toorevitimirp joined #lisp 2020-05-16T23:26:37Z pjb joined #lisp 2020-05-16T23:27:13Z jprajzne quit (Quit: jprajzne) 2020-05-16T23:27:37Z jprajzne joined #lisp 2020-05-16T23:30:12Z ayuce quit (Remote host closed the connection) 2020-05-16T23:31:48Z jprajzne quit (Client Quit) 2020-05-16T23:32:14Z jprajzne joined #lisp 2020-05-16T23:35:08Z bitmapper: http://0x0.st/iLk_.mp4 2020-05-16T23:35:13Z bitmapper: it works! 2020-05-16T23:50:19Z sz0 quit (Quit: Connection closed for inactivity) 2020-05-16T23:54:34Z Josh_2 quit (Ping timeout: 260 seconds) 2020-05-16T23:57:13Z jprajzne quit (Quit: jprajzne) 2020-05-16T23:57:37Z jprajzne joined #lisp 2020-05-17T00:00:43Z random-nick quit (Ping timeout: 246 seconds) 2020-05-17T00:01:49Z jprajzne quit (Client Quit) 2020-05-17T00:01:58Z lispmacs joined #lisp 2020-05-17T00:03:22Z jprajzne joined #lisp 2020-05-17T00:04:47Z lispmacs: does anybody know if there is a way in GCL to increase the bind stack size. I have a case of bind stack overflow that does not seem to be a problem with the same code in SBCL 2020-05-17T00:05:53Z no-defun-allowed: All I can suggest is to quit GCL and just use SBCL. 2020-05-17T00:05:56Z Xach: lispmacs: i don't know of anyone who uses gcl, sorry. 2020-05-17T00:06:13Z Xach: i understand there are some appropriate uses but those users aren't here that i know of 2020-05-17T00:07:38Z bitmapper: lispmacs: are you running gcl master? 2020-05-17T00:07:41Z pjb: Well, maximal has been ported to ecl and other CL implementations, so I'm not sure there remains a use fo gcl. At least not until a big effort is made on it. 2020-05-17T00:07:48Z ralt: Oh, maxima uses GCL? 2020-05-17T00:07:53Z pjb: used. 2020-05-17T00:07:57Z ralt: Ah, no longer 2020-05-17T00:07:58Z pjb: now you can use ecl to compile it. 2020-05-17T00:08:57Z Bourne quit (Ping timeout: 260 seconds) 2020-05-17T00:11:01Z EvW1 quit (Ping timeout: 244 seconds) 2020-05-17T00:13:40Z shifty quit (Ping timeout: 265 seconds) 2020-05-17T00:16:41Z LdBeth: Axiom still get better performance using GCL 2020-05-17T00:18:44Z LdBeth: And some Axiom libraries are not going to port to FriCAS because of license 2020-05-17T00:20:11Z lispmacs: bitmapper: Xach: pjb: The wxmaxima 20.03.1 package in Guix uses maxima wih gcl 2.6.12. I didn't personally have anything against gcl, but I was just running into this case 2020-05-17T00:20:26Z bitmapper: lispmacs: bizzare 2020-05-17T00:20:29Z lispmacs: where bind stack overflows 2020-05-17T00:20:32Z no-defun-allowed: I swear I saw Maxima on SBCL once. Maybe on macOS? 2020-05-17T00:21:01Z bitmapper: maxima works fine on sbcl anywhere 2020-05-17T00:21:07Z lispmacs: i altered maxima package definition to use sbcl, and the error went away 2020-05-17T00:21:36Z MichaelRaskin: Nixpkgs defaults to Maxima on SBCL, and I assume this is not a completely unique decision 2020-05-17T00:22:35Z lispmacs: but I was still wondering if gcl had a way to adjust bind stack size. I don't really like to stop using a piece of software just because I run into one error 2020-05-17T00:23:14Z lispmacs: i couldn't find anything on that in the manuals that were installed with it, but maybe I missed something 2020-05-17T00:23:20Z frodef` joined #lisp 2020-05-17T00:25:08Z frodef quit (Ping timeout: 272 seconds) 2020-05-17T00:25:16Z LdBeth: lispmacs: you might want to check out maxima mailing list archives 2020-05-17T00:26:04Z lispmacs: LdBeth: they are all using sbcl it seems. Maybe that is the answer to my question :) 2020-05-17T00:27:07Z LdBeth: lispmacs: yes, if possible just use sbcl since maxima already dropped gcl seems 2020-05-17T00:27:43Z LdBeth: But some old threads from 2014 have discussed about bind stack overflow issue 2020-05-17T00:28:22Z LdBeth: You can checkout on maxima’s project page on sourceforge 2020-05-17T00:30:57Z Kundry_Wag quit (Remote host closed the connection) 2020-05-17T00:31:08Z LdBeth: But usually it means you’re writing wrong code/there’s a bug in maxima than the binding stack limit has been set too low 2020-05-17T00:31:48Z LdBeth: Since the default build setting should work 2020-05-17T00:32:18Z jprajzne quit (Quit: jprajzne) 2020-05-17T00:32:44Z jprajzne joined #lisp 2020-05-17T00:37:39Z lispmacs: LdBeth: hmm, yes, I'm thinking that there must be a maxima bug in the code triggering the overflow. Maybe I'll try some code adjustments and see if I can work around it 2020-05-17T00:42:13Z jprajzne quit (Quit: jprajzne) 2020-05-17T00:42:38Z jprajzne joined #lisp 2020-05-17T00:52:02Z gko joined #lisp 2020-05-17T00:52:13Z jprajzne quit (Quit: jprajzne) 2020-05-17T00:52:39Z jprajzne joined #lisp 2020-05-17T01:00:30Z jonatack_ joined #lisp 2020-05-17T01:04:25Z jonatack quit (Ping timeout: 265 seconds) 2020-05-17T01:06:54Z shangul joined #lisp 2020-05-17T01:07:24Z abhixec joined #lisp 2020-05-17T01:09:58Z SGASAU quit (Remote host closed the connection) 2020-05-17T01:10:40Z SGASAU joined #lisp 2020-05-17T01:11:49Z jprajzne quit (Quit: jprajzne) 2020-05-17T01:15:29Z karlosz quit (Ping timeout: 258 seconds) 2020-05-17T01:16:12Z karlosz joined #lisp 2020-05-17T01:18:43Z Kundry_Wag joined #lisp 2020-05-17T01:27:08Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-17T01:28:01Z sjl joined #lisp 2020-05-17T01:31:52Z karlosz quit (Read error: Connection reset by peer) 2020-05-17T01:32:06Z karlosz joined #lisp 2020-05-17T01:34:39Z bitmapper quit (Ping timeout: 258 seconds) 2020-05-17T01:37:16Z wxie joined #lisp 2020-05-17T01:40:58Z terpri quit (Remote host closed the connection) 2020-05-17T01:41:20Z terpri joined #lisp 2020-05-17T01:42:10Z Lycurgus joined #lisp 2020-05-17T01:42:53Z terpri quit (Remote host closed the connection) 2020-05-17T01:42:56Z shifty joined #lisp 2020-05-17T01:43:20Z terpri joined #lisp 2020-05-17T01:53:34Z karlosz: should it be foo-toplevel or foo-top-level? 2020-05-17T01:54:09Z karlosz: everything i read seems to be wildly inconsistent 2020-05-17T02:03:10Z mono joined #lisp 2020-05-17T02:04:51Z pjb quit (Ping timeout: 272 seconds) 2020-05-17T02:05:28Z terpri quit (Remote host closed the connection) 2020-05-17T02:05:54Z monok quit (Ping timeout: 256 seconds) 2020-05-17T02:06:06Z terpri joined #lisp 2020-05-17T02:07:43Z Lycurgus quit (Quit: Exeunt) 2020-05-17T02:10:45Z Xach: karlosz: cltl2 has rules that are consistent 2020-05-17T02:11:26Z karlosz: even there, since "top level" is written with a space, you'd expect foo-top-level 2020-05-17T02:11:41Z karlosz: but of course you have things like :load-toplevel, :compile-toplevel 2020-05-17T02:11:50Z Xach: oh, i guess top-level vs toplevel is the thing 2020-05-17T02:11:54Z karlosz: yah 2020-05-17T02:16:38Z ralt quit (Quit: Connection closed for inactivity) 2020-05-17T02:22:11Z jprajzne joined #lisp 2020-05-17T02:28:38Z akoana left #lisp 2020-05-17T02:35:04Z pjb joined #lisp 2020-05-17T02:37:14Z troydm quit (Ping timeout: 256 seconds) 2020-05-17T02:37:19Z nmg joined #lisp 2020-05-17T02:47:29Z notzmv quit (Read error: Connection reset by peer) 2020-05-17T02:50:25Z notzmv joined #lisp 2020-05-17T02:52:16Z jprajzne quit (Quit: jprajzne) 2020-05-17T02:52:48Z jprajzne joined #lisp 2020-05-17T02:54:37Z beach: Good morning everyone! 2020-05-17T02:56:47Z jprajzne quit (Client Quit) 2020-05-17T02:57:12Z jprajzne joined #lisp 2020-05-17T02:58:51Z beach: pjb: A hard question to answer. During bootstrapping, I compile (using the SICL compiler) files containing definitions of macros, normal functions, generic functions, classes, etc. Then I load the compiled files into first-class global environments and the resulting code is executable in the host Common Lisp system (using an interpreter for intermediate code). And I generate native code, but there is no system for that code to 2020-05-17T02:58:52Z beach: execute in yet. 2020-05-17T02:59:40Z pjb: I see. 2020-05-17T03:00:25Z pjb: So basically, it's already usable as a compiler targetting the host CL implementation. 2020-05-17T03:01:16Z monok joined #lisp 2020-05-17T03:01:17Z beach: You can say that, yes. I tried turning the intermediate code into Common Lisp code for execution in the host, but the SBCL compiler was unable to handle the size of the resulting code. 2020-05-17T03:01:31Z beach: So I am interpreting the intermediate representation instead. 2020-05-17T03:01:53Z beach: So it means I can test a lot of the SICL infrastructure, including the generation of discriminating functions and such, but I can't test the native-code generator yet. 2020-05-17T03:03:09Z pjb: ok. 2020-05-17T03:03:09Z Fare: beach, SICL is taking shape nicely. Congratulations. 2020-05-17T03:03:29Z beach: Fare: Thanks! Yes, I am very pleased with recent progress. 2020-05-17T03:03:49Z mono quit (Ping timeout: 264 seconds) 2020-05-17T03:04:23Z terpri quit (Remote host closed the connection) 2020-05-17T03:04:45Z beach: Plus, Bike and karlosz are working on Cleavir compiler optimizations that I have not integrated into SICL yet, but they are part of Clasp now. 2020-05-17T03:04:49Z terpri joined #lisp 2020-05-17T03:05:19Z beach: And heisig is working on a very nice implementation of the sequence functions, using sealed classes and generic functions. 2020-05-17T03:05:59Z beach: His functions are portable and they often perform better than the native ones in SBCL. 2020-05-17T03:06:27Z beach: So there is progress on several fronts. 2020-05-17T03:07:23Z beach: And scymtym continues to improve Eclector. It is an extremely useful library module now. 2020-05-17T03:08:21Z beach: Trucler (compile-time lexical environments) is not moving, but appears to be working as advertised. That was also heisig's work. 2020-05-17T03:09:37Z beach: Coming soon: Extraction of first-class global environments into a separate repository, and a version of PRINT-OBJECT that can be customized by the client. 2020-05-17T03:11:56Z beach: Coming a bit later: Separate repository of the Cleavir compiler framework, including the representation of abstract syntax trees and intermediate representation. 2020-05-17T03:14:57Z beach: All those modules are possible to use in order to create a complete Common Lisp implementation. But, most existing implementations can't use them because of the way these implementations are built. 2020-05-17T03:14:58Z beach: The modules often require the full Common Lisp language, and that is incompatible with the way most Common Lisp implementations are gradually bootstrapped from a subset of the language. 2020-05-17T03:15:48Z beach: So at some point, I need to turn the SICL bootstrapping technique into something that can be used by other Common Lisp implementations as well. 2020-05-17T03:18:27Z LdBeth: Congrats, it’s nice to see such a great progress 2020-05-17T03:18:46Z beach: Thanks! 2020-05-17T03:20:43Z rozenglass quit (Ping timeout: 265 seconds) 2020-05-17T03:21:50Z rozenglass joined #lisp 2020-05-17T03:24:13Z Kundry_Wag joined #lisp 2020-05-17T03:25:42Z mangul joined #lisp 2020-05-17T03:26:37Z LdBeth: I’d imagine that if SICL can access host lisp’s functions and data it is already ideal to be used for all sorts of code analysis 2020-05-17T03:28:00Z shangul quit (Ping timeout: 256 seconds) 2020-05-17T03:29:19Z Kundry_Wag quit (Ping timeout: 246 seconds) 2020-05-17T03:31:38Z Bike quit (Quit: Lost terminal) 2020-05-17T03:32:16Z jprajzne quit (Quit: jprajzne) 2020-05-17T03:32:52Z jprajzne joined #lisp 2020-05-17T03:33:27Z beach: What kind of analysis are you thinking of? 2020-05-17T03:34:31Z beach: But yeah, the Cleavir-based compiler can be customized, so it can be used to turn source code into an abstract syntax tree, using the macro definitions of your choice, including the host ones, if that is what you prefer. 2020-05-17T03:35:27Z beach: Those macro definitions are just part of a first-class global environment that the compiler works against, so it is even possible to stick (say) ECL macros in such an environment and compile ECL code in SBCL. 2020-05-17T03:36:47Z jprajzne quit (Client Quit) 2020-05-17T03:37:09Z jprajzne joined #lisp 2020-05-17T03:43:23Z terpri quit (Remote host closed the connection) 2020-05-17T03:44:23Z terpri joined #lisp 2020-05-17T03:45:56Z LdBeth: I don’t have exact idea, but it seems possible to be used to develop a distributed computing/compiling environment that multiple instances of lisp can sharing compiling environment via network 2020-05-17T03:47:32Z beach: That sounds possible. But I am not sure what it would be used for. It is also tricky because of compile-time execution, so a lot of sandboxing must be put in place. 2020-05-17T03:50:36Z wxie quit (Ping timeout: 244 seconds) 2020-05-17T03:51:10Z mangul quit (Ping timeout: 265 seconds) 2020-05-17T03:52:07Z beach: Aside from creating a new Common Lisp implementation (i.e., SICL) using these new techniques, another (possibly futile) objective is to convince maintainers of other Common Lisp implementations to use some of these modules, so as to cut down on the collective maintenance burden. 2020-05-17T03:53:04Z beach: I mean, imagine the possibility of writing compiler optimization passes that will automatically benefit several different Common Lisp implementations. 2020-05-17T04:01:43Z LdBeth: Yes, the probability to have more aggressive opts with configurability to disable or enable by need 2020-05-17T04:02:16Z jprajzne quit (Quit: jprajzne) 2020-05-17T04:07:40Z dddddd quit (Ping timeout: 256 seconds) 2020-05-17T04:11:04Z wxie joined #lisp 2020-05-17T04:11:23Z FreeBirdLjj joined #lisp 2020-05-17T04:15:36Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2020-05-17T04:21:02Z _whitelogger quit (Remote host closed the connection) 2020-05-17T04:23:14Z _whitelogger joined #lisp 2020-05-17T04:27:06Z Fare writes a detailed explanation of why the definition of uiop/package cannot be modified, ever. 2020-05-17T04:27:36Z Fare puts that explanation on top of the file uiop/package.lisp 2020-05-17T04:40:08Z solrize: interesting, i hadn't heard of sicl or cleavir before. i didn't realize much new CL stuff was going on 2020-05-17T04:40:39Z solrize: i'd like to try clojure but hate the JVM world so i figured maybe a java-less port would happen sooner or later 2020-05-17T04:40:56Z solrize: https://news.ycombinator.com/item?id=8284835 2020-05-17T04:44:59Z no-defun-allowed: Why not ABCL? 2020-05-17T04:45:05Z no-defun-allowed: Oh, I read it the wrong way around. 2020-05-17T04:45:14Z phantomics: ABCL is really slow 2020-05-17T04:45:28Z phantomics: I've found some interesting limitations to it as well 2020-05-17T04:45:45Z phantomics: For instance, it cannot create and use hash tables at compile time (i.e. during macroexpansion) 2020-05-17T04:51:08Z Bourne joined #lisp 2020-05-17T04:52:29Z orivej joined #lisp 2020-05-17T04:53:52Z karlosz quit (Quit: karlosz) 2020-05-17T04:54:01Z beach: solrize: Check the ELS proceedings to get a better idea of what is going on in the Lisp world in general, and in the Common Lisp world in particular. 2020-05-17T04:54:37Z beach guesses that solrize does not habitually attend ELS. 2020-05-17T04:54:48Z karlosz joined #lisp 2020-05-17T04:55:33Z narimiran joined #lisp 2020-05-17T04:57:17Z beach: We have had 15 SICL-related papers published since 2014, 12 of which in ELS and 3 in ILC. 2020-05-17T04:59:28Z wxie quit (Ping timeout: 256 seconds) 2020-05-17T04:59:40Z beach: Actually, some of the papers by heisig are also SICL related, so 15 is a conservative estimate. 2020-05-17T05:00:30Z orivej quit (Ping timeout: 258 seconds) 2020-05-17T05:02:08Z orivej joined #lisp 2020-05-17T05:04:38Z Fare: phantomics, that's a weird limitation. Why can't ABCL use hash tables at compile-time? 2020-05-17T05:06:50Z no-defun-allowed: Do you mean that macros can't use hash tables, or that they can't expand to hash tables? 2020-05-17T05:07:27Z yankM joined #lisp 2020-05-17T05:13:28Z Fare notices that mkcl only ships a modified asdf 3.1.7, and can't upgrade from that to 3.3.4 2020-05-17T05:14:01Z lispmacs left #lisp 2020-05-17T05:14:13Z pjb quit (Ping timeout: 272 seconds) 2020-05-17T05:17:42Z wxie joined #lisp 2020-05-17T05:23:05Z p_l: beach: there was an ILC since 2013? 2020-05-17T05:23:16Z p_l tries to realign his internal time line 2020-05-17T05:23:18Z beach: 2014 I think was the last one. 2020-05-17T05:25:12Z p_l: Just managed to check it, I was previously somehow sent to 2012 when I was looking for last one 2020-05-17T05:26:07Z beach: There was definitely one in 2014, because I attended it. :) 2020-05-17T05:26:49Z p_l: Yep, seen the program now ;-) 2020-05-17T05:27:11Z jprajzne joined #lisp 2020-05-17T05:27:35Z p_l: The last one I remember well was in Japan, somehow I recalled the "Lisp on the Move" but for 2014 but not that it was ILC 2020-05-17T05:27:51Z p_l: (I've never been to any ILC) 2020-05-17T05:30:53Z beach: I was also at the one in San Francisco in 2002. I didn't have any papers to present, but moore33 (Tim Moore) presented McCLIM there. And that's when I invited him to come spend a year in Bordeaux. He is still living here. :) 2020-05-17T05:39:29Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-17T05:40:49Z orivej joined #lisp 2020-05-17T05:45:27Z srazzaque joined #lisp 2020-05-17T05:49:12Z mibr joined #lisp 2020-05-17T05:49:30Z orivej_ joined #lisp 2020-05-17T05:51:29Z orivej quit (Ping timeout: 258 seconds) 2020-05-17T05:58:06Z yankM quit (Ping timeout: 260 seconds) 2020-05-17T06:05:01Z Fare: 2014 was the last one, in Montreal. p_l would you organize the next one? 2020-05-17T06:05:12Z p_l: Fare: 2020-05-17T06:05:22Z p_l: Fare: I don't have that much time on my hands :( 2020-05-17T06:07:02Z p_l: and we first need to get rid of the pandemic, cause if I were organizing, I'd prefer an on-site one 2020-05-17T06:12:16Z jprajzne quit (Quit: jprajzne) 2020-05-17T06:12:34Z beach: Fare: I have a small(!) improvement to ASDF to suggest. I need for it to use first-class global environments, so that I can tell it in which environment to compile and load things. Could you do that for me, please? :) 2020-05-17T06:13:41Z heisig joined #lisp 2020-05-17T06:13:41Z beach: I guess that won't work anyway will it. The host system would have to have a compiler that takes first-class global environments as well. 2020-05-17T06:13:48Z beach: Oh, well! 2020-05-17T06:16:43Z FreeBirdLjj joined #lisp 2020-05-17T06:17:22Z jprajzne joined #lisp 2020-05-17T06:18:06Z holycow joined #lisp 2020-05-17T06:18:14Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-17T06:18:30Z holycow quit (Client Quit) 2020-05-17T06:18:34Z wxie quit (Ping timeout: 256 seconds) 2020-05-17T06:18:39Z orivej joined #lisp 2020-05-17T06:20:43Z solrize: i've never been to ELS but pictures i've seen of Lisp events tend to look like Forth Day. ;) 2020-05-17T06:22:42Z pjb joined #lisp 2020-05-17T06:23:47Z p_l: solrize: how so? 2020-05-17T06:27:02Z _whitelogger quit (Remote host closed the connection) 2020-05-17T06:27:51Z orivej_ joined #lisp 2020-05-17T06:28:01Z orivej quit (Read error: Connection reset by peer) 2020-05-17T06:28:28Z phoe: hello 2020-05-17T06:29:15Z _whitelogger joined #lisp 2020-05-17T06:29:22Z no-defun-allowed: morniiiiiiing phoe 2020-05-17T06:29:34Z astronavt quit (Quit: ...) 2020-05-17T06:30:10Z beach: Hello phoe. 2020-05-17T06:30:25Z solrize: p_l, forth day always looks like a gandalf convention :) 2020-05-17T06:31:29Z astronavt joined #lisp 2020-05-17T06:31:38Z Fare: beach, I'm not sure what API you're thinking of. 2020-05-17T06:32:04Z Fare: beach, (within-my-environment (asdf:load-system :foo)) ? 2020-05-17T06:32:37Z Fare: beach, of course it's even worse, because the reader has to know about the environment to properly intern the symbols in the sub-forms. 2020-05-17T06:32:43Z beach: That would be one possibility: (with-environment (env) (asdf:...)) 2020-05-17T06:32:53Z astronavt quit (Remote host closed the connection) 2020-05-17T06:33:33Z beach: Fare: Eclector is programmable, so it can be configured to do that. 2020-05-17T06:33:47Z phoe: I assume that WITH-ENVIRONMENT is going to take care of programming the reader 2020-05-17T06:33:58Z Fare: what would trigger the magic behavior, though? 2020-05-17T06:34:51Z Fare: how does the reader know it's for immediate evaluation, vs just a constant list '(with-environment ...) ? 2020-05-17T06:34:54Z astronavt joined #lisp 2020-05-17T06:35:27Z beach: It doesn't have to. Interning things is the same in both situations. 2020-05-17T06:35:42Z Fare: what changes? 2020-05-17T06:36:02Z dmc00 quit (Remote host closed the connection) 2020-05-17T06:36:07Z beach: The compilation environment and the run-time environment. 2020-05-17T06:36:09Z astronavt quit (Remote host closed the connection) 2020-05-17T06:36:14Z beach: ... as specified by the Common Lisp HyperSpec. 2020-05-17T06:36:30Z Fare: aha, some kind of generalized cross-compilation? 2020-05-17T06:36:50Z phoe: beach: isn't this ASDF's :around-compile? 2020-05-17T06:36:52Z beach: Er, no, not necessarily. It is already in the standard. 2020-05-17T06:36:53Z Fare: The Historical Documents! (Never give up, never surrender) 2020-05-17T06:37:21Z beach: phoe: Possibly. 2020-05-17T06:37:28Z phoe: :around-compile (lambda (thunk) (with-environment (env) (funcall thunk))) 2020-05-17T06:37:53Z phoe: this allows one to set up dynamic environment around the process of compiling an ASDF component 2020-05-17T06:37:57Z beach: I think I need to be able to redefine compile-file and load as well. 2020-05-17T06:38:25Z beach: Because the host versions of those typically do not take environments into account. 2020-05-17T06:38:37Z sdumi quit (Ping timeout: 264 seconds) 2020-05-17T06:38:52Z astronavt joined #lisp 2020-05-17T06:39:15Z astronavt quit (Remote host closed the connection) 2020-05-17T06:39:18Z beach: But I don't know whether ASDF calls COMPILE-FILE and LOAD directly. I guess if ASDF can be programmed to use a different compiler and loader I would be fine. 2020-05-17T06:39:30Z mathrick quit (Quit: Leaving) 2020-05-17T06:40:17Z Fare: beach, ASDF always calls them via the LOAD* and COMPILE-FILE* helpers in UIOP/LISP-BUILD. 2020-05-17T06:40:28Z beach: Oh! Wonderful! 2020-05-17T06:40:30Z Fare: But then again, there can be ASDF extensions that don't. 2020-05-17T06:40:31Z astronavt joined #lisp 2020-05-17T06:40:42Z beach: I'll check it out! 2020-05-17T06:41:02Z beach: Thanks! 2020-05-17T06:42:00Z beach: If that works out, I can use ASDF for my SICL bootstrapping process. 2020-05-17T06:42:03Z astronavt quit (Remote host closed the connection) 2020-05-17T06:42:05Z Fare: yay 2020-05-17T06:42:16Z jprajzne quit (Quit: jprajzne) 2020-05-17T06:42:46Z Fare: exception, kind of: load-uiop-debug-utility 2020-05-17T06:42:57Z jprajzne joined #lisp 2020-05-17T06:43:26Z Fare: (never called by ASDF itself, though used while debugging it) 2020-05-17T06:43:58Z beach: Hmm, and not generic. 2020-05-17T06:44:11Z Fare: not generic? 2020-05-17T06:44:28Z beach: COMPILE-FILE* is not a generic function. 2020-05-17T06:44:37Z Fare: should it be? Dispatching on what? 2020-05-17T06:44:49Z beach: A first-class global environment. :) 2020-05-17T06:45:34Z beach: Seriously, how would I go about using a different version of COMPILE-FILE and LOAD? 2020-05-17T06:46:01Z Fare: also, you are not authorized to change the signature of any function in UIOP, except in backwards-compatible ways (e.g. adding a keyword argument). But you can create a new function with a new name, and write a shim to preserve the old interface. 2020-05-17T06:46:25Z beach: Sure. 2020-05-17T06:46:47Z jprajzne quit (Client Quit) 2020-05-17T06:46:50Z beach: I'll just go look at the ASDF source code. 2020-05-17T06:46:51Z astronavt joined #lisp 2020-05-17T06:46:59Z orivej joined #lisp 2020-05-17T06:47:06Z Fare: same goes for any function in ASDF that may be called while performing an ASDF plan. 2020-05-17T06:47:09Z jprajzne joined #lisp 2020-05-17T06:47:47Z beach: All I need is for ASDF to call my own version of those two functions. 2020-05-17T06:48:14Z Fare: You can use the usual ADVICE mechanism and/or re-roll your own. 2020-05-17T06:48:27Z phoe: can't see a possibility to do that without rewriting chunks of UIOP 2020-05-17T06:48:44Z beach: OK. 2020-05-17T06:50:00Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-17T06:50:16Z Fare: One good thing about UIOP and ASDF: all functions are NOTINLINE, so intercepting them should always work. 2020-05-17T06:50:24Z beach: Fare: Actually what we are doing in several libraries now, like Eclector and Trucler, is that the protocol functions trampoline to a generic function, passing it the value of the library-defined *CLIENT* variable. Pre-defined methods of those generic functions do not specialize on the client parameter. 2020-05-17T06:50:53Z beach: That way, client code does (let ((library:*client* (make-a-client))) (library:...)) 2020-05-17T06:51:24Z beach: And clients can then create its own primary or auxiliary methods on the generic functions. 2020-05-17T06:51:38Z beach: I think ASDF would be a primary candidate for that technique. 2020-05-17T06:51:45Z phoe: that would work, except the lambda lists are immutable 2020-05-17T06:52:05Z beach: phoe: I am not expressing myself very well. 2020-05-17T06:52:16Z jprajzne quit (Quit: jprajzne) 2020-05-17T06:52:49Z beach: phoe: Assume you have a protocol function like COMPILE-FILE with the lambda list (FILE). 2020-05-17T06:52:50Z jprajzne joined #lisp 2020-05-17T06:53:18Z beach: phoe: It would trampoline like this: (defun compile-file (file) (generic-compile-file *client* file)) 2020-05-17T06:53:51Z beach: So client code can do (defmethod generic-compile-file ((client my-client-class) file) ...) 2020-05-17T06:54:16Z beach: There is no modification of any lambda list here. 2020-05-17T06:54:54Z beach: Clients who don't need to customize anything can just use the protocol functions. 2020-05-17T06:55:06Z beach: They provide a reasonable default behavior. 2020-05-17T06:55:41Z beach: Like (defmethod compile-file (client file) (cl:compile-file ...)) 2020-05-17T06:55:48Z beach: Sorry. 2020-05-17T06:55:53Z beach: Like (defmethod generic-compile-file (client file) (cl:compile-file ...)) 2020-05-17T06:56:20Z beach: phoe: Does that make sense? 2020-05-17T06:56:47Z jprajzne quit (Client Quit) 2020-05-17T06:56:49Z pjb quit (Ping timeout: 272 seconds) 2020-05-17T06:57:09Z jprajzne joined #lisp 2020-05-17T07:00:10Z Kundry_Wag joined #lisp 2020-05-17T07:01:47Z beach: phoe: Oh, and your condition-system library might use this mechanism too. 2020-05-17T07:05:02Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-17T07:06:10Z solrize: beach, here's my new functionally-inspired version of that bellied number problem https://kate.hackyon.org/~phr/bellied2.lisp 2020-05-17T07:06:10Z jonatack_ quit (Read error: Connection reset by peer) 2020-05-17T07:07:52Z mangul joined #lisp 2020-05-17T07:08:35Z beach: solrize: Looks fine to me. 2020-05-17T07:08:40Z solrize: thx 2020-05-17T07:09:14Z beach: One thing though, in Common Lisp, the convention is for END to mean a position one beyond the last element of stuff. 2020-05-17T07:09:23Z terpri quit (Remote host closed the connection) 2020-05-17T07:09:24Z beach: As in :start :end of the sequence functions. 2020-05-17T07:09:41Z beach: That way, the length of the interval is always (- end start). 2020-05-17T07:09:43Z solrize: yeah ok i'll change that 2020-05-17T07:09:53Z solrize: python uses that convention too 2020-05-17T07:10:20Z terpri joined #lisp 2020-05-17T07:10:20Z Bourne quit (Read error: Connection reset by peer) 2020-05-17T07:10:26Z beach: And two intervals s1,e1 and s2,e2 can be concatenated if and only if e1 = s2. 2020-05-17T07:10:28Z doesthiswork quit (Ping timeout: 272 seconds) 2020-05-17T07:10:56Z beach: And the LOOP keyword BELOW is there to help with such situations. 2020-05-17T07:11:14Z beach: So you don't have to do (loop ... to (1- end) ...) 2020-05-17T07:11:14Z shka_ joined #lisp 2020-05-17T07:11:57Z solrize: loop for i from start below end? 2020-05-17T07:12:06Z beach: Yeah. 2020-05-17T07:12:15Z phoe: beach: it looks fine 2020-05-17T07:12:29Z beach: phoe: Good. 2020-05-17T07:12:38Z rgherdt joined #lisp 2020-05-17T07:13:14Z solrize: fixed, and also fixed a parenthesis error thanks 2020-05-17T07:13:27Z beach: Sure. 2020-05-17T07:13:36Z orivej quit (Ping timeout: 256 seconds) 2020-05-17T07:14:14Z solrize: what are people doing in CL "for real" these days? 2020-05-17T07:15:01Z beach figures SICL is not "real". Oh, well. 2020-05-17T07:15:33Z solrize: well SICL is another CL implementation... i meant applications. something similar happens in forth, where everyone who gets interested in it writes a forth interpreter ;) 2020-05-17T07:15:35Z beach: solrize: Does McCLIM and its applications count? 2020-05-17T07:15:39Z solrize: what is that? 2020-05-17T07:16:07Z solrize: McCLIM - A powerful GUI toolkit for Common Lisp aha 2020-05-17T07:16:11Z solrize: it sounds cool 2020-05-17T07:16:18Z no-defun-allowed: beach: "Having asked about the possibility that there are real people out there who use LISP (as opposed to AI People who are known to be non-real) and having received no answers, I can only conclude that LISP is not being used and that it is not, therefore, a real language." ~ the closing announcement for a section of Lisp Pointers 2020-05-17T07:16:24Z beach: It is an implementation of the standard called Common Lisp Interface Manager. 2020-05-17T07:16:57Z beach: no-defun-allowed: Heh, nice! 2020-05-17T07:16:58Z solrize: no-defun-allowed, AI counted as an answer in the 1980s-90s but i think CL is not being used in AI very much any more. is that wrong? 2020-05-17T07:17:33Z no-defun-allowed: solrize: My university will (poorly) teach me Lisp in an AI context next year, so does that count? 2020-05-17T07:18:44Z solrize: i guess that counts ;). anything that isn't itself a CL implementation or CL dev tool counts 2020-05-17T07:19:08Z beach: solrize: In the past, I worked on an interactive editor for music scores. Version 1 shows that my ideas work, but it doesn't look great, and I made some incorrect design decisions. I don't have time to work on version 2, but jackdaniel is planning to work on the GUI for it, using McCLIM of course. 2020-05-17T07:19:31Z no-defun-allowed: I think RavenPack uses Lisp in an AI context as well for analysing "unstructured data" like news reports as well. 2020-05-17T07:19:42Z no-defun-allowed: (Buy one "as well", get one free...) 2020-05-17T07:19:43Z solrize: beach, nice! 2020-05-17T07:19:48Z solrize: https://kate.hackyon.org/~phr/bellied.fs <-- forth 2020-05-17T07:21:12Z solrize: no-defun-allowed, that is cool, it sounds like old school lisp doing natural language stuff 2020-05-17T07:21:33Z solrize: i think a lot of people use python and nltk for that now 2020-05-17T07:22:13Z beach: Most people use languages other than Common Lisp for most stuff. 2020-05-17T07:22:19Z solrize: true ;) 2020-05-17T07:22:34Z beach: And not necessarily for good reasons. 2020-05-17T07:22:38Z no-defun-allowed: Myself, I work on a kind of distributed object system that I think is the most distributed of them all (though I might be biased). 2020-05-17T07:22:45Z beach: So we can't really take inspiration from them. 2020-05-17T07:23:18Z no-defun-allowed: solrize: I was going to say "Oh, so Python and a C library", but nltk is actually written in Python. I have a hunch it would be quite slow and wouldn't scale to however much data that company processes. 2020-05-17T07:24:33Z solrize: that's possible, i dunno. i thought maybe they use nltk to extract statistics from the data, then dump it all into a GPU neural net or something. i haven't looked at it though. i should, since NL is an interest of mine 2020-05-17T07:25:56Z no-defun-allowed: (One nice thing is that code written for the average Common Lisp library has a shelf life of longer than a few months, which I can't say for any programs that use TensorFlow.) 2020-05-17T07:26:05Z solrize: haha true 2020-05-17T07:26:41Z solrize: you see they weren't satisfied with breaking the python language in the python 2 to python 3 downgrade, so now they're trying to break the standard library as well? 2020-05-17T07:26:53Z solrize: PEP 594 i think 2020-05-17T07:27:13Z jprajzne quit (Quit: jprajzne) 2020-05-17T07:27:38Z jprajzne joined #lisp 2020-05-17T07:29:26Z no-defun-allowed: I guess that's something that takes a while when some libraries are effectively part of the language, sure. 2020-05-17T07:29:37Z narimiran quit (Ping timeout: 258 seconds) 2020-05-17T07:30:09Z solrize: one thing i like about CL is that it resists doing stuff like that 2020-05-17T07:30:24Z solrize: i guess that means it is frozen though 2020-05-17T07:31:06Z beach: Not really, since you can program the compiler by writing macros. That's not possible in other languages. There you have to wait for a new standard. 2020-05-17T07:31:47Z jprajzne quit (Client Quit) 2020-05-17T07:31:59Z no-defun-allowed: All the stuff is there in CL that you would need to write performant libraries, and S-expressions don't "penalise" you for using your own operators. 2020-05-17T07:32:09Z solrize: it sounds hard to change CL to a lisp-1 by writing macros :) 2020-05-17T07:32:11Z jprajzne joined #lisp 2020-05-17T07:32:30Z solrize: or to replace strict evaluation with lazy :) 2020-05-17T07:32:33Z pjb joined #lisp 2020-05-17T07:32:44Z beach: Sure, and it would be hard to turn it into C as well. 2020-05-17T07:32:49Z solrize: yep : 2020-05-17T07:33:09Z no-defun-allowed: In this case, we are talking about the "corroded batteries" that come with Python has for some extinct formats, which are all modules of functions. 2020-05-17T07:33:09Z solrize: i used CL a little in the 1990s and stuff still works about like i remember 2020-05-17T07:33:24Z solrize: i was never a lisp wizard though 2020-05-17T07:33:29Z solrize: wisp lizard 2020-05-17T07:34:27Z Fare: beach: is that some sort of context-oriented programming? 2020-05-17T07:34:30Z frodef` quit (Ping timeout: 256 seconds) 2020-05-17T07:34:33Z Fare: or subject-oriented? 2020-05-17T07:35:35Z beach: Fare: Good question. I haven't thought about it philosophically; only pragmatically. 2020-05-17T07:35:40Z pve joined #lisp 2020-05-17T07:35:46Z orivej joined #lisp 2020-05-17T07:36:39Z no-defun-allowed: (Side note on corroded batteries: I wonder why the reaction to having :host and :version among other "extinct" parameters to MAKE-PATHNAME is "Why the hell do we have those in Common Lisp?", not "Why the hell don't I have those on my computer?" Having those in the filesystem sounds quite handy.) 2020-05-17T07:37:16Z jprajzne quit (Quit: jprajzne) 2020-05-17T07:38:02Z Fare: no-defun-allowed, don't get me started on pathnames. 2020-05-17T07:38:37Z no-defun-allowed: I suppose I shouldn't. 2020-05-17T07:39:44Z phoe: Fare: it sounds much more like plain old dependency injection™ 2020-05-17T07:40:06Z Fare: phoe, nah that would be just plain old special variables. 2020-05-17T07:40:07Z phoe: where the file compiler right now is the hardcoded cl:compile-file, but it might as well be foo:compile-file 2020-05-17T07:42:01Z sdumi joined #lisp 2020-05-17T07:42:06Z jonatack_ joined #lisp 2020-05-17T07:42:12Z jprajzne joined #lisp 2020-05-17T07:43:03Z jonatack_ quit (Client Quit) 2020-05-17T07:43:13Z jonatack joined #lisp 2020-05-17T07:46:24Z v88m quit (Ping timeout: 256 seconds) 2020-05-17T07:46:29Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-17T07:48:02Z beach: phoe: So, I assume that in your library you use special variables for things like adding handlers and restarts. What I would like to see is the use of this CLIENT mechanism so that I can change that, since I would prefer to use specific entry types in the dynamic environment, rather than special variables. 2020-05-17T07:48:36Z FreeBirdLjj joined #lisp 2020-05-17T07:49:18Z orivej quit (Ping timeout: 256 seconds) 2020-05-17T07:49:24Z ralt joined #lisp 2020-05-17T07:49:24Z phoe: beach: yes, I understand that 2020-05-17T07:50:01Z orivej joined #lisp 2020-05-17T07:50:07Z beach: phoe: For instance, HANDLER-BIND could call INVOKE-WITH-HANDLER with the CLIENT object and the default mechanism would be to use a special variable, but it could be customized then. 2020-05-17T07:52:15Z phoe: beach: sure, I can do that - tell me how to access and augment your dynamic environment object and we can do that 2020-05-17T07:52:46Z beach: NO, NO. The point is that you don't have to do anything other than using this mechanism. 2020-05-17T07:52:57Z phoe: beach: *oh* 2020-05-17T07:53:06Z phoe: you just become a client on it inside SICL 2020-05-17T07:53:10Z phoe: s/on/of/ 2020-05-17T07:53:11Z beach: Client code would stick a method on INVOKE-WITH-HANDLER, specialized to their client class. 2020-05-17T07:53:14Z phoe: I see 2020-05-17T07:53:57Z beach: But you need to publish and document the generic protocol, of course, so that clients can adapt it properly. 2020-05-17T07:54:10Z FreeBirdLjj quit (Ping timeout: 272 seconds) 2020-05-17T07:56:26Z beach: phoe: No rush of course. You should do the book first. 2020-05-17T07:56:42Z beach: But it would be interesting to see how your library could be generalized this way. 2020-05-17T07:56:50Z dale quit (Quit: My computer has gone to sleep) 2020-05-17T07:57:04Z phoe: beach: correct, I can imagine that. I'll do that when my book is no longer something I need to pay attention to. 2020-05-17T07:57:10Z beach: Then I could use it with no modification, and just customization instead. 2020-05-17T07:57:11Z phoe: (and oh gods I already long for that moment) 2020-05-17T07:57:19Z Kundry_Wag joined #lisp 2020-05-17T07:57:25Z beach: The wait is finite. Be brave! 2020-05-17T07:59:36Z sdumi quit (Ping timeout: 265 seconds) 2020-05-17T08:00:49Z Fare: phoe, at first I didn't see why your talk even mattered, and then I understood that it has something deep to say about designing language features for extensibility. 2020-05-17T08:01:03Z v88m joined #lisp 2020-05-17T08:01:17Z Fare: and I wondered -- what is (if any) the relationship between your condition-system-on-CL and SICL's condition system? 2020-05-17T08:02:01Z Kundry_Wag quit (Ping timeout: 264 seconds) 2020-05-17T08:02:16Z no-defun-allowed: I think phoe's portable-condition-system is going the SICL condition system, last I heard. 2020-05-17T08:02:17Z beach: Fare: SICL doesn't have one yet. I am planning to use phoe's. 2020-05-17T08:02:18Z phoe: Fare: the condition code I wrote is planned to be integrated as SICL's condition system someday 2020-05-17T08:02:28Z phoe: woah, three people's already a crowd 2020-05-17T08:02:39Z phoe: but, yes, basically, that 2020-05-17T08:03:15Z phoe: I think that throughout my voyage I found the major pain points where the standard CL condition system is *not* extensible or programmable 2020-05-17T08:03:52Z phoe: does it matter for end users? I guess no, not really, they usually don't need to dabble with such matters 2020-05-17T08:04:05Z phoe: but when they actually do need to... then, ouch 2020-05-17T08:04:21Z beach: Another reason for Common Lisp implementations to use yours. 2020-05-17T08:05:44Z phoe: likely they'll do that only if there's a pretty good use case for that that outweighs the costs of decoupling the old condition system, integrating mine, and paying the maintenance and performance costs 2020-05-17T08:05:51Z pjb quit (Ping timeout: 272 seconds) 2020-05-17T08:05:52Z phoe: and these are all non-trivial 2020-05-17T08:06:30Z Fare: some day, when I have time, I'd like to somehow port SICL to Gerbil. Maybe with a modular way to embrace or not embrace some CL features, if I figure out how to do that. 2020-05-17T08:06:43Z orivej_ joined #lisp 2020-05-17T08:06:58Z phoe: I think you have a lot more wiggle room when you design an implementation from scratch, which is the case for SICL, but this isn't the case for implementations that have grown organically over the time and have a lot of history of that organic growth - which is, like, all fully functional CL implementations nowadays. 2020-05-17T08:07:02Z beach: Fare: Sounds good to me. But I think you should wait until things are stable. 2020-05-17T08:07:20Z Fare: (e.g. integration with Gerbil's module system vs symbols and packages a la CL) 2020-05-17T08:07:56Z beach: phoe: Indeed. 2020-05-17T08:08:05Z Fare: (hopefully, both would be available at the same time) 2020-05-17T08:08:53Z beach: phoe: So if SICL ever becomes as high performance as existing implementations, that means that SICL will have a much lower maintenance cost for the same performance. 2020-05-17T08:09:04Z orivej quit (Ping timeout: 256 seconds) 2020-05-17T08:09:12Z Fare: (so with minimal amount of wrapping, you could access CL from Scheme, and Scheme from CL) 2020-05-17T08:09:40Z Fare: (obviously, more wrapping is needed when you deal with NIL vs #f '() nil) 2020-05-17T08:09:55Z phoe: beach: correct, we're still a while from that moment though 2020-05-17T08:10:13Z phoe: that's why I said, all fully functional CL implementations *nowadays* 2020-05-17T08:10:18Z Fare: #f '() nil (void) (values) ... Scheme is the Lisp that wanted to be ML. 2020-05-17T08:11:49Z phoe: Fare: this smells dangerously close to: 0 "" NaN null undefined false 2020-05-17T08:11:52Z yankM joined #lisp 2020-05-17T08:12:53Z emacsomancer quit (Read error: Connection reset by peer) 2020-05-17T08:12:59Z anticrisis quit (Quit: Leaving) 2020-05-17T08:13:45Z SAL9000: reminds me of perl's "0 but true" values 2020-05-17T08:14:22Z orivej joined #lisp 2020-05-17T08:14:28Z orivej_ quit (Ping timeout: 258 seconds) 2020-05-17T08:14:33Z SAL9000: e.g. if you call an external program via system() and use the return value -- the exit status -- as a boolean, 0 will be "true" because that's "success" 2020-05-17T08:18:52Z solrize: http://users.rcn.com/david-moon/PLOT/index.html hmm 2020-05-17T08:19:12Z phoe: Fare: but then again, the *original* idea for my talk was, to quote a famous non-existent researcher, "Science isn't about «why», it's about «why not»?" 2020-05-17T08:20:43Z phoe: so I just explored the idea and talked about what I found. I literally created a solution that is looking for problems - and it's good that SICL happened to be one such problem 2020-05-17T08:21:27Z phoe: plus, it was a very good exercise in pushing the condition system to its portable limits 2020-05-17T08:22:17Z emacsomancer joined #lisp 2020-05-17T08:25:13Z remix2000 joined #lisp 2020-05-17T08:25:33Z remix2000 left #lisp 2020-05-17T08:26:12Z phoe: so, summing all the reasons for the talk, we have 1) because-we-can-ism, 2) spreading knowledge about the functioning of the condition system, 3) possibility to integrate condition/exception systems of CL + other languages (possibly also CL) that have a common compilation target (possibly also CL), 4) SICL adopting the portable condition system, 5) checking how far we can push the CL standard in regard to the 2020-05-17T08:26:18Z phoe: condition system 2020-05-17T08:26:36Z amerlyq joined #lisp 2020-05-17T08:26:39Z phoe: all in all, I guess that's a decent collection of reasons 2020-05-17T08:26:50Z phoe: s/in regard/with regard/ 2020-05-17T08:27:24Z Fare: phoe: there's a Jeff Goldblum meme about (1). 2020-05-17T08:27:38Z phoe: Fare: what is it? 2020-05-17T08:28:28Z phoe: ;; also, I really expect (1) to be a meme by now, especially since in my case (1) came from a quote from the late Cave Johnson of Aperture Laboratories 2020-05-17T08:28:47Z SAL9000: "We do what we can, because we must!" 2020-05-17T08:29:24Z phoe: SAL9000: hold on for a second, that quote doesn't sound right 2020-05-17T08:29:31Z SAL9000: yeah, I just looked it up and realised it was wrong... 2020-05-17T08:30:52Z Fare: phoe: https://i.pinimg.com/originals/2a/4b/fd/2a4bfd684d406fda0319fc430520214c.gif 2020-05-17T08:31:14Z pjb joined #lisp 2020-05-17T08:32:08Z phoe: Fare: thankfully my research did not bring dinosaurs back from the dead 2020-05-17T08:32:31Z Fare: whoa, what do you think the Common Lisp Condition System is? 2020-05-17T08:32:41Z phoe: Fare: I think we can all bear the consequences of my research existing, contrary to the research of the Jurassic Park 2020-05-17T08:32:43Z SAL9000: phoe: "Science isn't about WHY. It's about WHY NOT. Why is so much of our science dangerous? Why not marry safe science if you love it so much. In fact, why not invent a special safety door that won't hit you on the butt on the way out, because you are fired." 2020-05-17T08:32:48Z phoe: Fare: ...touché 2020-05-17T08:33:32Z SAL9000: the CL condition system is more of a bird than a dinosaur... it's still alive and useful :-) 2020-05-17T08:33:44Z SAL9000: s/alive/around/ 2020-05-17T08:36:57Z wxie joined #lisp 2020-05-17T08:41:08Z liberliver joined #lisp 2020-05-17T08:43:43Z shka_: phoe: i would like a pet dinosaur so not sure about the thankfully part 2020-05-17T08:45:19Z mangul is now known as shangul 2020-05-17T08:46:28Z solrize: hey beach is this gauche? (defun iota (start end) 2020-05-17T08:46:29Z solrize: (LOOP FOR i FROM start BELOW end COLLECTING i)) 2020-05-17T08:46:32Z orivej quit (Ping timeout: 256 seconds) 2020-05-17T08:46:35Z solrize: i.e. upcasing the keywords 2020-05-17T08:46:39Z solrize: some forthers do that 2020-05-17T08:46:51Z beach: Yeah, that would be considered ugly. 2020-05-17T08:46:57Z solrize: thx 2020-05-17T08:47:01Z orivej joined #lisp 2020-05-17T08:47:15Z phoe: some people in Lisp upcase T and NIL 2020-05-17T08:47:17Z beach: People would look at the date of your code and expect 40 years ago at least. 2020-05-17T08:47:30Z solrize: yeah they also used to say LISP :) 2020-05-17T08:47:44Z phoe: I don't really understand the problem that it solves, but I don't mind it 2020-05-17T08:47:52Z no-defun-allowed: Sometimes people put : before LOOP keywords, as their editors will render those in a different colour. 2020-05-17T08:48:01Z solrize: what, th upcasing? it's like syntax highlighting 2020-05-17T08:48:09Z solrize: oh you can use : ? i'll try that 2020-05-17T08:48:42Z beach: Check out the first edition of Winston & Horn, 1981 for instance. 2020-05-17T08:48:43Z phoe: solrize: loop keywords don't care which package they are read from 2020-05-17T08:48:47Z no-defun-allowed: I don't do that myself, because I don't really have a problem with reading LOOP. 2020-05-17T08:49:04Z solrize: i don't see different coloring in slime after adding the colons, but they make the keywords stand out more, which is good 2020-05-17T08:49:12Z Shinmera: phoe: I upcase constants, T and NIL are just the most prevalent constants. 2020-05-17T08:49:18Z solrize: i had originally called the parameters of that function "from" and "to" but that looked really confusing 2020-05-17T08:49:34Z phoe: Shinmera: oh! I see 2020-05-17T08:49:41Z no-defun-allowed: (Putting : before a LOOP keyword causes it to read as a keyword, which is a different concept, and LOOP will accept LOOP keywords from any package.) 2020-05-17T08:50:22Z phoe: solrize: (let ((from 0) (to 10)) (loop for i from from to to collect i)) 2020-05-17T08:50:24Z beach: Wow, second edition from 1984 also uses upper case for code. 2020-05-17T08:50:35Z solrize: phoe yep 2020-05-17T08:50:51Z solrize: is collect the same as collecting? 2020-05-17T08:50:55Z beach: Yes. 2020-05-17T08:50:57Z solrize: k 2020-05-17T08:51:09Z beach: sum and summing too 2020-05-17T08:51:19Z solrize: thx 2020-05-17T08:51:33Z beach: ywlcm 2020-05-17T08:51:59Z phoe: it was a really weird experience to see beach post "ywlcm" 2020-05-17T08:52:00Z phoe: but, well 2020-05-17T08:52:16Z beach: phoe: I am being sarcastic. 2020-05-17T08:52:48Z beach: Sometimes I say: I recommend you do M-x define-global-abbrevthxOh, thank you very much 2020-05-17T08:53:20Z no-defun-allowed was once ywlcm-ed many moons ago 2020-05-17T08:53:29Z beach: By me? 2020-05-17T08:53:31Z beach: Heh! 2020-05-17T08:53:34Z no-defun-allowed: Yes. 2020-05-17T08:53:53Z beach: no-defun-allowed: But you are a quick and thorough learner. 2020-05-17T08:54:00Z no-defun-allowed: Apparently so. 2020-05-17T08:54:18Z toorevitimirp quit (Quit: Konversation terminated!) 2020-05-17T08:57:26Z no-defun-allowed: (From memory, I came in #lisp one day asking for someone to eye over cl-decentralise1, and explained it was an attempt at writing a distributed networking system, and then I went off about how it was written because I was annoyed everyone wrote programs with centralised semantics, then "glued" distribution atop it, then ending up with some technical debt and having to rewrite a great portion of the program. You said 2020-05-17T08:57:26Z no-defun-allowed: that was an interesting observation, I said "ty beach", and you said "ywlcm"...maybe.) 2020-05-17T08:58:42Z beach: Sounds right. 2020-05-17T08:59:51Z no-defun-allowed: Fun times. 2020-05-17T09:00:00Z beach: :) 2020-05-17T09:01:48Z no-defun-allowed: I used to rant a bit more; but then I had a conversation with another #lisp participant whom taught me a lot about distributed programming, so I like to think it wasn't very embarrassing. 2020-05-17T09:02:20Z mwgkgk quit (Quit: Connection closed for inactivity) 2020-05-17T09:02:34Z beach: Embarrassment is an integral part of the learning process. Think about learning a foreign language, for instance. 2020-05-17T09:03:03Z no-defun-allowed: Very true. 2020-05-17T09:03:14Z beach: People who do everything they can to avoid being embarrassed don't learn very much. Those are dangerous people. 2020-05-17T09:06:26Z sugarwren joined #lisp 2020-05-17T09:08:43Z shka_: no-defun-allowed: bit about the centralized being marketed as distributed hit me hard 2020-05-17T09:09:03Z shka_: i am personally forced to work on a project like this 2020-05-17T09:09:17Z shka_: and what a stinking heap of crap it is 2020-05-17T09:09:32Z jackdaniel gently nudges towards #lispcafe 2020-05-17T09:10:32Z jackdaniel: I've been told that I'm not very gentle with maintaining the channel on-topic, so I've added a word "gentle" to avoid this accusation! 2020-05-17T09:10:34Z shka_: right 2020-05-17T09:10:41Z shka_: sorry for that 2020-05-17T09:10:45Z jackdaniel: no worries 2020-05-17T09:10:58Z sdumi joined #lisp 2020-05-17T09:17:16Z no-defun-allowed: jackdaniel: Maybe you should write the book "A gentle introduction to the #lisp topic" 2020-05-17T09:21:32Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-17T09:22:42Z orivej joined #lisp 2020-05-17T09:22:58Z terpri quit (Remote host closed the connection) 2020-05-17T09:23:20Z terpri joined #lisp 2020-05-17T09:34:31Z pjb quit (Ping timeout: 272 seconds) 2020-05-17T09:34:47Z Bourne joined #lisp 2020-05-17T09:35:50Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-17T09:37:14Z Lord_of_Life joined #lisp 2020-05-17T09:38:14Z orivej quit (Ping timeout: 240 seconds) 2020-05-17T09:38:26Z srji_ quit (Quit: leaving) 2020-05-17T09:38:51Z orivej joined #lisp 2020-05-17T09:39:25Z srji joined #lisp 2020-05-17T09:42:15Z SGASAU quit (Remote host closed the connection) 2020-05-17T09:43:02Z SGASAU joined #lisp 2020-05-17T09:44:01Z FreeBirdLjj joined #lisp 2020-05-17T09:49:27Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-17T09:52:16Z jprajzne quit (Quit: jprajzne) 2020-05-17T10:01:58Z terpri quit (Remote host closed the connection) 2020-05-17T10:02:51Z shangul quit (Ping timeout: 265 seconds) 2020-05-17T10:07:04Z SGASAU quit (Remote host closed the connection) 2020-05-17T10:07:16Z pjb joined #lisp 2020-05-17T10:07:46Z SGASAU joined #lisp 2020-05-17T10:12:07Z FreeBirdLjj joined #lisp 2020-05-17T10:13:08Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-17T10:18:22Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-17T10:19:10Z ralt quit (Quit: Connection closed for inactivity) 2020-05-17T10:19:19Z dddddd joined #lisp 2020-05-17T10:19:33Z orivej joined #lisp 2020-05-17T10:21:04Z jonatack quit (Quit: jonatack) 2020-05-17T10:23:38Z wxie quit (Ping timeout: 272 seconds) 2020-05-17T10:24:25Z kpoeck joined #lisp 2020-05-17T10:31:18Z elflng quit (Ping timeout: 256 seconds) 2020-05-17T10:35:16Z karlosz quit (Quit: karlosz) 2020-05-17T10:41:01Z pjb quit (Ping timeout: 272 seconds) 2020-05-17T10:41:20Z jonatack joined #lisp 2020-05-17T10:44:23Z McParen joined #lisp 2020-05-17T10:46:53Z jprajzne joined #lisp 2020-05-17T10:50:14Z shifty quit (Ping timeout: 240 seconds) 2020-05-17T10:52:38Z orivej quit (Ping timeout: 265 seconds) 2020-05-17T10:52:42Z orivej_ joined #lisp 2020-05-17T10:52:52Z Bourne quit (Read error: Connection reset by peer) 2020-05-17T10:53:36Z quazimodo quit (Ping timeout: 265 seconds) 2020-05-17T10:53:55Z quazimodo joined #lisp 2020-05-17T10:57:16Z jprajzne quit (Quit: jprajzne) 2020-05-17T11:01:58Z toorevitimirp joined #lisp 2020-05-17T11:03:12Z ayuce joined #lisp 2020-05-17T11:03:53Z Kundry_Wag joined #lisp 2020-05-17T11:08:47Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-17T11:11:02Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-17T11:11:41Z pjb joined #lisp 2020-05-17T11:12:22Z orivej joined #lisp 2020-05-17T11:16:57Z random-nick joined #lisp 2020-05-17T11:19:28Z nmg quit (Ping timeout: 256 seconds) 2020-05-17T11:24:01Z ayuce quit (Read error: Connection reset by peer) 2020-05-17T11:24:15Z rogersm joined #lisp 2020-05-17T11:25:20Z ayuce joined #lisp 2020-05-17T11:25:22Z rogersm quit (Client Quit) 2020-05-17T11:28:14Z arpunk joined #lisp 2020-05-17T11:32:46Z ayuce quit (Remote host closed the connection) 2020-05-17T11:35:06Z frodef` joined #lisp 2020-05-17T11:36:05Z ayuce joined #lisp 2020-05-17T11:38:43Z heisig quit (Quit: Leaving) 2020-05-17T11:41:27Z v88m quit (Ping timeout: 265 seconds) 2020-05-17T11:42:40Z scymtym_ joined #lisp 2020-05-17T11:43:41Z ljavorsk joined #lisp 2020-05-17T11:43:52Z scymtym quit (Ping timeout: 246 seconds) 2020-05-17T11:44:50Z pjb quit (Ping timeout: 246 seconds) 2020-05-17T11:46:31Z scymtym_ quit (Remote host closed the connection) 2020-05-17T11:52:27Z v88m joined #lisp 2020-05-17T11:58:59Z scymtym joined #lisp 2020-05-17T12:00:50Z Bourne joined #lisp 2020-05-17T12:03:53Z terpri joined #lisp 2020-05-17T12:07:51Z vaporatorius joined #lisp 2020-05-17T12:07:52Z sz0 joined #lisp 2020-05-17T12:10:02Z ljavorsk quit (Ping timeout: 272 seconds) 2020-05-17T12:10:29Z heisig joined #lisp 2020-05-17T12:14:41Z troydm joined #lisp 2020-05-17T12:17:42Z pjb joined #lisp 2020-05-17T12:24:38Z ayuce quit (Remote host closed the connection) 2020-05-17T12:27:39Z ayuce joined #lisp 2020-05-17T12:46:24Z shangul joined #lisp 2020-05-17T12:49:38Z ebrasca joined #lisp 2020-05-17T12:51:14Z pjb quit (Ping timeout: 265 seconds) 2020-05-17T12:51:38Z Bike joined #lisp 2020-05-17T12:56:59Z keepzen joined #lisp 2020-05-17T13:01:00Z ebrasca quit (Remote host closed the connection) 2020-05-17T13:03:12Z ebrasca joined #lisp 2020-05-17T13:08:28Z bitmapper joined #lisp 2020-05-17T13:11:33Z ralt joined #lisp 2020-05-17T13:14:30Z lemoinem quit (Killed (beckett.freenode.net (Nickname regained by services))) 2020-05-17T13:14:31Z lemoinem joined #lisp 2020-05-17T13:20:09Z cosimone joined #lisp 2020-05-17T13:20:54Z orivej quit (Ping timeout: 240 seconds) 2020-05-17T13:21:31Z orivej joined #lisp 2020-05-17T13:21:53Z pjb joined #lisp 2020-05-17T13:25:45Z Josh_2 joined #lisp 2020-05-17T13:29:32Z EvW joined #lisp 2020-05-17T13:33:38Z gko_ joined #lisp 2020-05-17T13:35:19Z gko quit (Ping timeout: 258 seconds) 2020-05-17T13:40:40Z doesthiswork joined #lisp 2020-05-17T13:51:43Z orivej_ joined #lisp 2020-05-17T13:52:00Z orivej quit (Ping timeout: 272 seconds) 2020-05-17T13:53:03Z dmc00 joined #lisp 2020-05-17T13:55:06Z pjb quit (Ping timeout: 244 seconds) 2020-05-17T14:00:47Z orivej_ quit (Ping timeout: 260 seconds) 2020-05-17T14:00:53Z orivej joined #lisp 2020-05-17T14:02:14Z toorevitimirp quit (Remote host closed the connection) 2020-05-17T14:02:21Z RedMallet joined #lisp 2020-05-17T14:03:53Z toorevitimirp joined #lisp 2020-05-17T14:04:00Z phoe: Is there something like a visual S-expression editor? Something that will allow me to explore S-expressions by double-clicking them and edit slots of the browsed objects. 2020-05-17T14:04:30Z phoe: I'm thinking a Lisp inspector except with more visuals, possibly showing tree structure. 2020-05-17T14:05:00Z Bourne quit (Read error: Connection reset by peer) 2020-05-17T14:05:58Z jw4 quit (Read error: Connection reset by peer) 2020-05-17T14:07:52Z toorevitimirp quit (Remote host closed the connection) 2020-05-17T14:07:58Z jw4 joined #lisp 2020-05-17T14:08:04Z scymtym: McCLIM's rewritten Clouseau is kind-of like that. it can display certain pieces of information as graphs or trees and does so by default in a few cases. it is also possible to add custom ways of displaying objects. that said, clouseau is not suitable for editing source code 2020-05-17T14:09:13Z phoe: I don't really want to edit source code; I want more of a simple spreadsheet sort of thing. 2020-05-17T14:09:33Z phoe: Or rather, sigh. It's hard to convey visual ideas to text. 2020-05-17T14:09:42Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-17T14:09:47Z scymtym: for example, here is the list of superclasses as a graph: https://techfak.de/~jmoringe/new-inspector-5.png 2020-05-17T14:10:10Z phoe: An interactive plist editor where I can predefine some keys and create/retrieve/update/delete objects of such structure. 2020-05-17T14:10:19Z phoe: Or the same, except we have class instances instead of plists. 2020-05-17T14:11:17Z phoe: ...Also, should (ql:quickload :mcclim) result in "Invalid index 2974 for (SIMPLE-VECTOR 2974), should be a non-negative integer below 2974."? 2020-05-17T14:11:31Z orivej joined #lisp 2020-05-17T14:11:50Z phoe: https://plaster.tymoon.eu/view/1844#1844 2020-05-17T14:11:59Z scymtym: of course, we are particularly proud of that feature 2020-05-17T14:12:35Z scymtym: looks like a problem in ZPB-TTF::LOAD-POST-FORMAT-2, though 2020-05-17T14:12:41Z scymtym: can you share the font file? 2020-05-17T14:12:42Z Xach: nooo 2020-05-17T14:13:14Z phoe: /usr/share/fonts/truetype/noto/NotoSerif-Regular.ttf 2020-05-17T14:13:16Z phoe: let me upload it... 2020-05-17T14:13:49Z scymtym: the problem is likely the content, not the filename :) 2020-05-17T14:13:55Z phoe: yes, uploading it now 2020-05-17T14:14:35Z scymtym: take your time. i'm just being silly 2020-05-17T14:14:53Z phoe: https://github.com/McCLIM/McCLIM/issues/1006 2020-05-17T14:17:15Z scymtym: thanks 2020-05-17T14:17:29Z jackdaniel: Xach: it emerges from zpb-ttf package (open-font-loader -> load-post-info -> load-post-format-2 2020-05-17T14:17:41Z jackdaniel: ) 2020-05-17T14:18:41Z jackdaniel: ah, "nooo" says that you already know that 2020-05-17T14:19:48Z phoe: he thought I'd paste the contents of the font file into irc 2020-05-17T14:20:13Z orivej_ joined #lisp 2020-05-17T14:20:25Z orivej quit (Read error: Connection reset by peer) 2020-05-17T14:25:39Z narimiran joined #lisp 2020-05-17T14:29:29Z pjb joined #lisp 2020-05-17T14:33:21Z SGASAU quit (Remote host closed the connection) 2020-05-17T14:34:01Z SGASAU joined #lisp 2020-05-17T14:34:37Z SAL9000 quit (Quit: Host going down for maintenance.) 2020-05-17T14:37:30Z orivej_ quit (Ping timeout: 260 seconds) 2020-05-17T14:37:52Z orivej joined #lisp 2020-05-17T14:45:27Z pve: phoe: could you convert to org mode and edit that, and then convert back to s-exp? 2020-05-17T14:45:43Z Kundry_Wag joined #lisp 2020-05-17T14:45:49Z phoe: pve: what do you mean, convert a s-expression into org mode? 2020-05-17T14:46:13Z pve: into a text file that looks like an org file 2020-05-17T14:46:40Z pve: obviously it places some constraints on the s-exp.. 2020-05-17T14:47:32Z pve: and depends on how interactive you need it be 2020-05-17T14:48:26Z pve: might not be a good fit 2020-05-17T14:52:22Z whiteline quit (Ping timeout: 258 seconds) 2020-05-17T14:53:49Z gareppa joined #lisp 2020-05-17T14:54:49Z gareppa quit (Remote host closed the connection) 2020-05-17T14:54:55Z orivej quit (Ping timeout: 260 seconds) 2020-05-17T14:55:04Z orivej_ joined #lisp 2020-05-17T15:02:42Z pjb quit (Ping timeout: 265 seconds) 2020-05-17T15:03:00Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-17T15:03:10Z liberliver quit (Ping timeout: 260 seconds) 2020-05-17T15:03:13Z orivej joined #lisp 2020-05-17T15:06:37Z keepzen quit (Quit: Connection closed for inactivity) 2020-05-17T15:07:37Z luni joined #lisp 2020-05-17T15:09:18Z EvW quit (Ping timeout: 256 seconds) 2020-05-17T15:09:54Z shangul quit (Ping timeout: 272 seconds) 2020-05-17T15:10:53Z gravicappa joined #lisp 2020-05-17T15:16:19Z whiteline joined #lisp 2020-05-17T15:17:02Z scymtym: Xach: i think i know why zpb-ttf cannot load the font 2020-05-17T15:17:04Z astronavt quit (Quit: ...) 2020-05-17T15:18:09Z astronavt joined #lisp 2020-05-17T15:18:53Z astronavt quit (Remote host closed the connection) 2020-05-17T15:19:12Z astronavt joined #lisp 2020-05-17T15:19:21Z astronavt quit (Remote host closed the connection) 2020-05-17T15:19:35Z phoe: scymtym: what is it? 2020-05-17T15:19:53Z astronavt joined #lisp 2020-05-17T15:20:14Z shangul joined #lisp 2020-05-17T15:22:27Z scymtym: the font has "sparse" indexing and unreferenced extended glyph names in the "post" table. zpb-ttf assumes "dense" indexing and therefore makes and populates an incomplete vector of extended glyph names which leads to the out-of-bounds access when one of the larger indices is processed 2020-05-17T15:22:50Z scymtym: the fix is easy but i'm still looking for a non-messy way to do it 2020-05-17T15:24:44Z scymtym: in other words, zpb-ttf computes numberNewGlyphs in https://docs.microsoft.com/en-us/typography/opentype/spec/post#version-20 in a way that is probably invalid 2020-05-17T15:25:38Z astronavt quit (Quit: ...) 2020-05-17T15:25:59Z astronavt joined #lisp 2020-05-17T15:27:44Z sdumi quit (Ping timeout: 256 seconds) 2020-05-17T15:28:54Z _jrjsmrtn quit (Ping timeout: 240 seconds) 2020-05-17T15:29:47Z __jrjsmrtn__ joined #lisp 2020-05-17T15:31:33Z pjb joined #lisp 2020-05-17T15:31:56Z frgo_ quit 2020-05-17T15:32:47Z nalik891 joined #lisp 2020-05-17T15:33:21Z phoe: yay! I found a bug! 2020-05-17T15:33:34Z astronavt quit (Quit: ...) 2020-05-17T15:35:20Z nullniverse quit (Ping timeout: 244 seconds) 2020-05-17T15:35:31Z astronavt joined #lisp 2020-05-17T15:39:05Z sjl quit (Quit: WeeChat 2.2-dev) 2020-05-17T15:43:25Z luni quit (Quit: Leaving) 2020-05-17T15:46:15Z Kundry_Wag quit (Ping timeout: 260 seconds) 2020-05-17T15:49:16Z yankM quit (Ping timeout: 256 seconds) 2020-05-17T15:56:06Z APic: phoe: Congratulations 2020-05-17T15:56:26Z scymtym: https://github.com/xach/zpb-ttf/pull/8 2020-05-17T15:59:08Z Kundry_Wag joined #lisp 2020-05-17T16:00:08Z scymtym: phoe: can you try whether the above work for you? 2020-05-17T16:00:57Z ljavorsk joined #lisp 2020-05-17T16:02:18Z phoe: scymtym: OK, one second. 2020-05-17T16:03:40Z phantomics: phoe: I created a visual s-expression editor that works inside the browser, but there's still a lot of work to be done to get it useful 2020-05-17T16:04:06Z phoe: scymtym: this fixes the issue for me. 2020-05-17T16:04:08Z phoe: phantomics: I see 2020-05-17T16:04:34Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-17T16:04:56Z scymtym: phoe: great, so no more excuses for not trying clouseau 2020-05-17T16:05:01Z phantomics: see https://github.com/phantomics/seed 2020-05-17T16:05:05Z phoe: scymtym: how do I try it? 2020-05-17T16:05:17Z pjb quit (Ping timeout: 272 seconds) 2020-05-17T16:05:26Z phoe: phantomics: I'll try it tomorrow, thanks! 2020-05-17T16:06:45Z phantomics: Drop a message if you need help running it, I'm rebuilding part of the core and haven't paid much attention to the UX lately 2020-05-17T16:06:54Z phoe: phantomics: OK, thanks! 2020-05-17T16:07:08Z Bourne joined #lisp 2020-05-17T16:07:11Z holycow joined #lisp 2020-05-17T16:07:23Z scymtym: (ql:quickload :clouseau) (clouseau:inspect (find-class 'double)) is one way 2020-05-17T16:07:55Z scymtym: or (cluseau:inspect … :new-process t) to not block your REPL 2020-05-17T16:08:06Z scymtym: *clouseau 2020-05-17T16:08:24Z phoe: "There is no class named SB-ALIEN:DOUBLE." 2020-05-17T16:08:32Z phoe learns to read before pasting stuff into the REPL 2020-05-17T16:08:42Z scymtym: yeah, sorry, FLOAT or whatever 2020-05-17T16:08:57Z rumbler31 quit (Read error: Connection reset by peer) 2020-05-17T16:09:08Z scymtym: i was trying to give you an example in which the super and subclass graphs would look nice 2020-05-17T16:11:51Z phoe: yes, I got it 2020-05-17T16:12:33Z terpri quit (Remote host closed the connection) 2020-05-17T16:14:26Z abhixec quit (Quit: leaving) 2020-05-17T16:16:00Z phoe: scymtym: it's nice! (I broke it though by trying to use the "Back" command) 2020-05-17T16:22:00Z pjb joined #lisp 2020-05-17T16:24:07Z frgo joined #lisp 2020-05-17T16:24:39Z scymtym: phoe: yeah, there are some pending changes to fix the "history" thing 2020-05-17T16:26:02Z phoe: scymtym: thanks. 2020-05-17T16:28:15Z ark quit (Ping timeout: 265 seconds) 2020-05-17T16:29:53Z ark joined #lisp 2020-05-17T16:32:45Z yankM joined #lisp 2020-05-17T16:39:33Z SGASAU quit (Remote host closed the connection) 2020-05-17T16:40:17Z SGASAU joined #lisp 2020-05-17T16:40:45Z gareppa joined #lisp 2020-05-17T16:42:08Z gareppa quit (Client Quit) 2020-05-17T16:46:33Z gareppa joined #lisp 2020-05-17T16:50:58Z ljavorsk quit (Ping timeout: 260 seconds) 2020-05-17T16:54:02Z gareppa quit (Remote host closed the connection) 2020-05-17T16:58:12Z kpoeck quit (Remote host closed the connection) 2020-05-17T17:00:17Z FreeBirdLjj joined #lisp 2020-05-17T17:02:09Z sdumi joined #lisp 2020-05-17T17:04:54Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2020-05-17T17:05:14Z dddddd quit (Ping timeout: 240 seconds) 2020-05-17T17:09:11Z asarch joined #lisp 2020-05-17T17:10:55Z astronavt quit (Quit: ...) 2020-05-17T17:12:34Z orivej quit (Ping timeout: 256 seconds) 2020-05-17T17:12:53Z orivej joined #lisp 2020-05-17T17:17:53Z sirmacik joined #lisp 2020-05-17T17:18:08Z rogersm joined #lisp 2020-05-17T17:18:38Z rogersm quit (Client Quit) 2020-05-17T17:20:14Z Oladon joined #lisp 2020-05-17T17:22:12Z EvW joined #lisp 2020-05-17T17:26:48Z kpoeck joined #lisp 2020-05-17T17:30:13Z dmc00 quit (Ping timeout: 264 seconds) 2020-05-17T17:31:21Z elflng joined #lisp 2020-05-17T17:32:37Z gko_ quit (Remote host closed the connection) 2020-05-17T17:32:59Z gko joined #lisp 2020-05-17T17:34:45Z gravicappa quit (Read error: Connection reset by peer) 2020-05-17T17:37:05Z gravicappa joined #lisp 2020-05-17T17:37:12Z gravicappa quit (Read error: Connection reset by peer) 2020-05-17T17:37:30Z gko quit (Ping timeout: 256 seconds) 2020-05-17T17:40:16Z shangul quit (Ping timeout: 256 seconds) 2020-05-17T17:48:25Z paul0 joined #lisp 2020-05-17T17:54:19Z gravicappa joined #lisp 2020-05-17T17:54:28Z gravicappa quit (Read error: Connection reset by peer) 2020-05-17T17:54:43Z SGASAU` joined #lisp 2020-05-17T17:54:44Z SGASAU quit (Remote host closed the connection) 2020-05-17T17:55:46Z RedMallet quit (Quit: WeeChat 2.6) 2020-05-17T18:00:45Z heisig quit (Quit: Leaving) 2020-05-17T18:01:35Z rippa joined #lisp 2020-05-17T18:02:28Z bmansurov quit (Quit: 👋) 2020-05-17T18:02:37Z gravicappa joined #lisp 2020-05-17T18:03:09Z gravicappa quit (Read error: Connection reset by peer) 2020-05-17T18:04:32Z bmansurov joined #lisp 2020-05-17T18:04:56Z bmansurov is now known as Guest42923 2020-05-17T18:04:59Z gravicappa joined #lisp 2020-05-17T18:06:15Z duuqnd joined #lisp 2020-05-17T18:13:57Z nullheroes joined #lisp 2020-05-17T18:23:57Z Oladon quit (Quit: Leaving.) 2020-05-17T18:26:11Z luckless joined #lisp 2020-05-17T18:27:43Z Kundry_Wag joined #lisp 2020-05-17T18:28:45Z astronavt joined #lisp 2020-05-17T18:29:55Z constptr joined #lisp 2020-05-17T18:31:21Z constptr is now known as egemutu 2020-05-17T18:32:14Z Kundry_Wag quit (Ping timeout: 240 seconds) 2020-05-17T18:33:04Z astronavt quit (Client Quit) 2020-05-17T18:33:25Z astronavt joined #lisp 2020-05-17T18:33:45Z astronavt quit (Remote host closed the connection) 2020-05-17T18:34:18Z astronavt joined #lisp 2020-05-17T18:34:50Z egemutu is now known as varsbhat 2020-05-17T18:35:30Z astronavt quit (Remote host closed the connection) 2020-05-17T18:36:36Z asarch quit (Quit: Leaving) 2020-05-17T18:37:19Z SGASAU` quit (Remote host closed the connection) 2020-05-17T18:39:21Z montxero quit (Remote host closed the connection) 2020-05-17T18:39:58Z nalik891 quit (Quit: Leaving) 2020-05-17T18:40:26Z SGASAU joined #lisp 2020-05-17T18:43:09Z varsbhat quit 2020-05-17T18:44:18Z sugarwren quit (Ping timeout: 260 seconds) 2020-05-17T18:48:43Z PuercoPope joined #lisp 2020-05-17T18:49:01Z phoe: Fare: what is the way of extending ASDF with a new operation? Is it possible to have things like a forward-referenced operation in a DEFSYSTEM form? 2020-05-17T18:49:05Z karlosz joined #lisp 2020-05-17T18:49:34Z shifty joined #lisp 2020-05-17T18:51:56Z phoe: if I wanted to, say, :perform (ci-test-op (o c) (...)) in an ASD file, is it possible to have ASDF notice that the operation CI-TEST-OP is not defined yet, and therefore create a stand-in in form of a forward referenced class of some sort? 2020-05-17T18:52:34Z phoe: It obviously makes it impossible to invoke the CI-TEST-OP operation; but the benefit is that such ASDF forms will compile. 2020-05-17T18:56:51Z PuercoPope: phoe: instead of a new OP I think it would be better for the runners of test frameworks to support a mode where they terminate the process with the proper exit code instead. It is the same operation after all. 2020-05-17T18:57:40Z phoe: PuercoPope: yes, that's the alternative - we just discussed it elsewhere 2020-05-17T18:57:51Z phoe: I'm just checking how forwards-compatible ASDF is. 2020-05-17T18:58:25Z phoe: There's a lot said about ASDF backwards compatibility, but I haven't yet seen much about the other direction 2020-05-17T19:01:00Z vaporatorius quit (Remote host closed the connection) 2020-05-17T19:08:33Z orivej_ joined #lisp 2020-05-17T19:09:01Z orivej quit (Ping timeout: 265 seconds) 2020-05-17T19:14:05Z amerlyq quit (Quit: amerlyq) 2020-05-17T19:14:51Z McParen left #lisp 2020-05-17T19:14:57Z gravicappa quit (Ping timeout: 258 seconds) 2020-05-17T19:16:10Z mibr quit (Quit: mibr) 2020-05-17T19:19:03Z Kundry_Wag joined #lisp 2020-05-17T19:23:25Z Kundry_Wag quit (Ping timeout: 246 seconds) 2020-05-17T19:39:48Z dmc00 joined #lisp 2020-05-17T19:49:14Z Kundry_Wag joined #lisp 2020-05-17T19:52:06Z duuqnd quit (Remote host closed the connection) 2020-05-17T19:53:34Z Kevslinger joined #lisp 2020-05-17T19:56:26Z mathrick joined #lisp 2020-05-17T19:58:28Z Kundry_Wag quit (Remote host closed the connection) 2020-05-17T20:07:18Z mathrick quit (Remote host closed the connection) 2020-05-17T20:07:43Z mathrick joined #lisp 2020-05-17T20:08:33Z Kundry_Wag joined #lisp 2020-05-17T20:11:29Z Kundry_Wag quit (Remote host closed the connection) 2020-05-17T20:11:56Z Kundry_Wag joined #lisp 2020-05-17T20:15:53Z rgherdt left #lisp 2020-05-17T20:16:02Z sdumi quit (Read error: Connection reset by peer) 2020-05-17T20:16:59Z dddddd joined #lisp 2020-05-17T20:20:40Z Fare: phoe: you can refer to a class by symbol in :in-order-to specifications and component-depends-on methods, if that's what you mean. 2020-05-17T20:21:18Z Fare: so, yes, that's a modicum of forward-compatibility. 2020-05-17T20:22:48Z phoe: Fare: let's suppose that ASDF 3.6 defines a new standard operation, ASDF:CI-TEST-OP. How can I add information about this new operation to a DEFSYSTEM form that will also not break it for current versions of ASDF? 2020-05-17T20:23:22Z narimiran quit (Quit: leaving) 2020-05-17T20:24:00Z jackdaniel: #+asdf-3.6-nomore :in-order-to #+asdf-3.6.-nomore (ci-test-op …) 2020-05-17T20:24:25Z phoe: ...I was hoping to avoid reader conditionals 2020-05-17T20:25:52Z shifty quit (Ping timeout: 265 seconds) 2020-05-17T20:26:03Z jackdaniel: wasn't defsystem-depends-on meant to address concerns of such extensions? 2020-05-17T20:26:07Z shifty joined #lisp 2020-05-17T20:26:15Z choegusung joined #lisp 2020-05-17T20:26:19Z choegusung quit (Client Quit) 2020-05-17T20:26:28Z phoe: hmm 2020-05-17T20:27:00Z phoe: we could, in theory, define an ASDF system that defines CI-TEST-OP if it is not already defined, and use it in DEFSYSTEM-DEPENDS-ON 2020-05-17T20:27:03Z phoe thinks 2020-05-17T20:28:20Z jackdaniel: if asdf had its own reader (because it claims that asd files *are not* lisp source files), you could have used your-system:foobar from your yet-to-be-defined system 2020-05-17T20:28:30Z jackdaniel: but despite not being lisp source file, they strangely are 2020-05-17T20:29:42Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-17T20:29:59Z orivej joined #lisp 2020-05-17T20:31:34Z shifty quit (Ping timeout: 240 seconds) 2020-05-17T20:32:03Z Fare: phoe, the best way is to define a subclass of system that has the fields you need. 2020-05-17T20:32:12Z shifty joined #lisp 2020-05-17T20:32:54Z Fare: you don't need #+asdf3.6 in your :in-order-to as long as the present actions don't depend on future actions. 2020-05-17T20:33:28Z phoe: Fare: it's not an issue of missing fields, it's an issue of referencing operations before they are defined 2020-05-17T20:33:51Z Fare: asd files ARE lisp source files, to be read in a specific context different from the context used for regular lisp files. 2020-05-17T20:33:53Z phoe: the only field I need is :perform but :perform does not accept symbols that do not (yet) name concrete operation classes 2020-05-17T20:34:16Z Fare: phoe, that's what symbols as operation designators are for. 2020-05-17T20:35:00Z Fare: what about using :defsystem-depends-on to ensure the class exists before it's used? 2020-05-17T20:35:07Z phoe: Fare: I'll need to to exactly that 2020-05-17T20:35:09Z jackdaniel: I'd expect that if my system "foo" defsystem-depends-on bar, which defines operation bar:xyz, then I could use bar:xyz operation in foo 2020-05-17T20:35:12Z sdumi joined #lisp 2020-05-17T20:35:17Z phoe: I'll need to define that operation class and use :DEFSYSTEM-DEPENDS-ON 2020-05-17T20:36:17Z Fare: the only issue might be if you want the package for your operation class to be defined as part of this defsystem-depends-on. 2020-05-17T20:36:47Z jackdaniel: sure, why would you depend on that system otherwise? 2020-05-17T20:37:09Z jackdaniel: well, I can think of a few reasons 2020-05-17T20:37:10Z Fare: Then a small patch to ASDF might allow you to use strings as symbol designators in :perform specifications as well as in other places in defsystem. 2020-05-17T20:37:12Z jackdaniel: but this one is valid too 2020-05-17T20:39:11Z Fare: It's possible that for now you might have to (load-system "bar") as a prelude to the (defsystem ... :perform (bar:bar-op ...)) 2020-05-17T20:39:39Z Fare: because you can't specify :perform ("bar:bar-op" ...) or something. 2020-05-17T20:40:13Z Fare: I'm sure that a patch to ASDF to support the latter would be accepted... just a bit too late for your current project. 2020-05-17T20:40:41Z arpunk quit (Remote host closed the connection) 2020-05-17T20:40:58Z Fare: but ASDF certainly teaches patience... I've had a branch waiting for approval for 5 years. 2020-05-17T20:41:41Z renzhi joined #lisp 2020-05-17T20:41:58Z efm quit (Ping timeout: 258 seconds) 2020-05-17T20:42:13Z phoe: whose approval 2020-05-17T20:43:21Z phoe: or rather 2020-05-17T20:43:29Z phoe: okay, forget that I asked 2020-05-17T20:43:34Z phoe goes to sleep for tonight 2020-05-17T20:43:48Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-17T20:44:31Z antepod joined #lisp 2020-05-17T20:44:37Z antepod quit (Client Quit) 2020-05-17T20:45:07Z orivej joined #lisp 2020-05-17T20:47:44Z Codaraxis joined #lisp 2020-05-17T20:52:54Z shifty quit (Ping timeout: 240 seconds) 2020-05-17T20:53:01Z shifty joined #lisp 2020-05-17T20:58:03Z Jeanne-Kamikaze joined #lisp 2020-05-17T20:58:57Z karlosz quit (Quit: karlosz) 2020-05-17T20:59:21Z karlosz joined #lisp 2020-05-17T20:59:25Z karlosz quit (Remote host closed the connection) 2020-05-17T20:59:53Z karlosz joined #lisp 2020-05-17T21:03:39Z karayan quit (Remote host closed the connection) 2020-05-17T21:03:50Z karayan joined #lisp 2020-05-17T21:04:20Z orivej_ joined #lisp 2020-05-17T21:04:34Z orivej quit (Ping timeout: 272 seconds) 2020-05-17T21:11:40Z Lycurgus joined #lisp 2020-05-17T21:12:23Z Kundry_Wag quit (Remote host closed the connection) 2020-05-17T21:12:58Z Kundry_Wag joined #lisp 2020-05-17T21:13:37Z fourier joined #lisp 2020-05-17T21:14:39Z anticrisis joined #lisp 2020-05-17T21:14:59Z ralt: so, unit tests 2020-05-17T21:15:14Z ralt: what's the framework to use those days? 5am? prove? 2020-05-17T21:15:49Z ralt: I don't care much, just need to pick one, so would rather go with the most popular one 2020-05-17T21:16:16Z aeth: prove is broken for me now, in some private side thing where I had been using it 5+ years ago 2020-05-17T21:16:23Z aeth: I think it now requires colors in SLIME or something? 2020-05-17T21:16:24Z Josh_2: I used lisp-unit last 2020-05-17T21:16:30Z Josh_2: https://github.com/OdonataResearchLLC/lisp-unit 2020-05-17T21:16:43Z aeth: the main thing prove offers over 5am iirc, having used both, is that prove will time its tests and show you how long it takes 2020-05-17T21:16:56Z aeth: so if time to complete is a key part of your test, it's useful 2020-05-17T21:17:39Z aeth: 5am just has a bunch of ...s, although maybe it's configurable 2020-05-17T21:17:49Z kpoeck: Take shinmeraware: https://github.com/Shinmera/parachute 2020-05-17T21:17:52Z Kundry_Wag quit (Ping timeout: 272 seconds) 2020-05-17T21:19:45Z aeth: kpoeck: that settles it, Shinmera has to be a pseudonym for a team of people :-p 2020-05-17T21:21:26Z Shinmera: aeth: Parachute has a drop-in for prove 2020-05-17T21:21:32Z Shinmera: hopefully that hasn't bitrotted yet 2020-05-17T21:22:21Z pve quit (Quit: leaving) 2020-05-17T21:23:58Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-17T21:27:15Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-17T21:28:42Z aeth: Shinmera: thanks, I'll have to try it 2020-05-17T21:33:49Z ebrasca quit (Remote host closed the connection) 2020-05-17T21:33:59Z Lord_of_Life_ joined #lisp 2020-05-17T21:34:58Z Lord_of_Life quit (Ping timeout: 272 seconds) 2020-05-17T21:35:19Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-17T21:38:08Z shifty quit (Ping timeout: 272 seconds) 2020-05-17T21:38:50Z shifty joined #lisp 2020-05-17T21:43:57Z Lycurgus quit (Remote host closed the connection) 2020-05-17T21:44:12Z refpga joined #lisp 2020-05-17T21:45:08Z random-nick quit (Ping timeout: 265 seconds) 2020-05-17T21:47:45Z jackdaniel: ralt: 5am is the most popular one 2020-05-17T21:48:00Z ralt: thanks 2020-05-17T21:48:01Z jackdaniel: some other frameworks are more fancy 2020-05-17T21:49:51Z scymtym: 5am has a neat random testing framework 2020-05-17T21:59:14Z jw4 quit (Ping timeout: 240 seconds) 2020-05-17T22:00:01Z jw4 joined #lisp 2020-05-17T22:01:27Z Fare: is there a quickcheck / hypothesis for CL ? 2020-05-17T22:04:57Z gigetoo quit (Ping timeout: 260 seconds) 2020-05-17T22:07:19Z ralt: Fare: google suggests yes, although I've never used it https://github.com/mcandre/cl-quickcheck 2020-05-17T22:10:14Z renzhi quit (Ping timeout: 256 seconds) 2020-05-17T22:11:03Z frgo quit (Remote host closed the connection) 2020-05-17T22:11:37Z frgo joined #lisp 2020-05-17T22:19:07Z mathrick quit (Remote host closed the connection) 2020-05-17T22:19:31Z mathrick joined #lisp 2020-05-17T22:21:18Z GiseleBund joined #lisp 2020-05-17T22:21:53Z Fare quit (Ping timeout: 260 seconds) 2020-05-17T22:22:27Z EvW quit (Ping timeout: 260 seconds) 2020-05-17T22:24:07Z GiseleBund quit (Client Quit) 2020-05-17T22:25:17Z akoana joined #lisp 2020-05-17T22:26:20Z frodef`` joined #lisp 2020-05-17T22:27:10Z frodef` quit (Ping timeout: 246 seconds) 2020-05-17T22:29:56Z teej joined #lisp 2020-05-17T22:29:58Z shifty quit (Ping timeout: 246 seconds) 2020-05-17T22:31:01Z shifty joined #lisp 2020-05-17T22:31:48Z ralt: is it possible to call the :REPORT of a condition manually? 2020-05-17T22:32:28Z Bike: no, but you can get the same effect by princ-ing the condition. 2020-05-17T22:32:36Z mathrick quit (Read error: Connection reset by peer) 2020-05-17T22:32:46Z mathrick joined #lisp 2020-05-17T22:32:56Z ralt: thanks 2020-05-17T22:36:09Z EvW joined #lisp 2020-05-17T22:37:30Z whiteline quit (Remote host closed the connection) 2020-05-17T22:37:42Z shifty quit (Ping timeout: 260 seconds) 2020-05-17T22:38:21Z shifty joined #lisp 2020-05-17T22:39:40Z whiteline joined #lisp 2020-05-17T22:40:03Z whiteline quit (Remote host closed the connection) 2020-05-17T22:40:29Z whiteline joined #lisp 2020-05-17T22:40:48Z shka_ quit (Ping timeout: 258 seconds) 2020-05-17T22:43:20Z arpunk joined #lisp 2020-05-17T22:43:57Z whiteline quit (Read error: Connection reset by peer) 2020-05-17T22:44:15Z whiteline joined #lisp 2020-05-17T22:45:43Z fourier quit (Ping timeout: 244 seconds) 2020-05-17T22:51:21Z cosimone quit (Quit: Quit.) 2020-05-17T22:54:14Z karlosz quit (Read error: Connection reset by peer) 2020-05-17T22:54:16Z karlosz_ joined #lisp 2020-05-17T22:54:34Z karlosz_ is now known as karlosz 2020-05-17T22:55:21Z Fare joined #lisp 2020-05-17T23:04:23Z Aurora_v_kosmose quit (Ping timeout: 240 seconds) 2020-05-17T23:05:51Z shifty quit (Ping timeout: 265 seconds) 2020-05-17T23:06:38Z shifty joined #lisp 2020-05-17T23:07:00Z Aurora_v_kosmose joined #lisp 2020-05-17T23:08:18Z astronavt joined #lisp 2020-05-17T23:11:12Z frodef`` quit (Ping timeout: 256 seconds) 2020-05-17T23:23:00Z kpoeck quit (Remote host closed the connection) 2020-05-17T23:26:52Z wxie1 joined #lisp 2020-05-17T23:27:08Z karlosz quit (Remote host closed the connection) 2020-05-17T23:30:38Z scymtym_ joined #lisp 2020-05-17T23:31:57Z scymtym quit (Ping timeout: 265 seconds) 2020-05-17T23:44:42Z ebrasca joined #lisp 2020-05-17T23:48:47Z karayan quit (Ping timeout: 240 seconds) 2020-05-17T23:49:31Z karlosz joined #lisp 2020-05-17T23:52:34Z shifty quit (Ping timeout: 240 seconds) 2020-05-17T23:58:24Z Kundry_Wag joined #lisp 2020-05-18T00:00:08Z ayuce quit (Read error: Connection reset by peer) 2020-05-18T00:09:00Z wxie1 quit (Ping timeout: 256 seconds) 2020-05-18T00:09:25Z karlosz quit (Quit: karlosz) 2020-05-18T00:09:53Z karlosz joined #lisp 2020-05-18T00:10:45Z Kundry_Wag quit (Remote host closed the connection) 2020-05-18T00:11:11Z Kundry_Wag joined #lisp 2020-05-18T00:32:29Z Lycurgus joined #lisp 2020-05-18T00:34:56Z gko joined #lisp 2020-05-18T00:51:49Z gko quit (Ping timeout: 264 seconds) 2020-05-18T00:57:59Z EvW quit (Ping timeout: 244 seconds) 2020-05-18T01:08:20Z Lycurgus quit (Quit: Exeunt) 2020-05-18T01:11:37Z buffergn0me joined #lisp 2020-05-18T01:14:40Z karayan joined #lisp 2020-05-18T01:20:01Z bitmapper quit (Ping timeout: 264 seconds) 2020-05-18T01:24:23Z cg505 quit (Quit: ZNC 1.7.2+deb3 - https://znc.in) 2020-05-18T01:26:43Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-18T01:39:35Z Kundry_Wag joined #lisp 2020-05-18T01:40:52Z pjb quit (Ping timeout: 244 seconds) 2020-05-18T01:44:02Z Kundry_Wag quit (Ping timeout: 258 seconds) 2020-05-18T01:49:00Z oxum joined #lisp 2020-05-18T01:49:03Z GuerrillaMonkey joined #lisp 2020-05-18T01:49:08Z oxum quit (Read error: Connection reset by peer) 2020-05-18T01:51:26Z gigetoo joined #lisp 2020-05-18T01:51:38Z Jeanne-Kamikaze quit (Ping timeout: 265 seconds) 2020-05-18T01:55:48Z cg505 joined #lisp 2020-05-18T02:04:09Z Bike quit (Quit: Lost terminal) 2020-05-18T02:09:31Z renzhi joined #lisp 2020-05-18T02:10:40Z pjb joined #lisp 2020-05-18T02:11:20Z ralt quit (Quit: Connection closed for inactivity) 2020-05-18T02:13:23Z srazzaque quit (Ping timeout: 265 seconds) 2020-05-18T02:14:36Z Kundry_Wag joined #lisp 2020-05-18T02:24:35Z Bourne quit (Read error: Connection reset by peer) 2020-05-18T02:36:30Z karlosz quit (Quit: karlosz) 2020-05-18T02:39:10Z quazimodo quit (Ping timeout: 246 seconds) 2020-05-18T02:41:11Z quazimodo joined #lisp 2020-05-18T02:41:55Z karlosz joined #lisp 2020-05-18T02:44:19Z pjb quit (Ping timeout: 272 seconds) 2020-05-18T02:53:02Z asarch joined #lisp 2020-05-18T02:53:13Z hdasch quit (Read error: Connection reset by peer) 2020-05-18T02:55:57Z hdasch joined #lisp 2020-05-18T02:56:23Z madage quit (Ping timeout: 240 seconds) 2020-05-18T02:59:30Z ebrasca quit (Remote host closed the connection) 2020-05-18T02:59:42Z mono joined #lisp 2020-05-18T03:00:19Z madage joined #lisp 2020-05-18T03:02:34Z SGASAU quit (Remote host closed the connection) 2020-05-18T03:02:41Z monok quit (Ping timeout: 265 seconds) 2020-05-18T03:03:14Z SGASAU joined #lisp 2020-05-18T03:05:46Z shifty joined #lisp 2020-05-18T03:08:42Z karayan quit (Ping timeout: 244 seconds) 2020-05-18T03:11:22Z shifty quit (Ping timeout: 246 seconds) 2020-05-18T03:13:26Z pjb joined #lisp 2020-05-18T03:17:50Z Bourne joined #lisp 2020-05-18T03:23:11Z karlosz quit (Read error: Connection reset by peer) 2020-05-18T03:23:22Z karlosz joined #lisp 2020-05-18T03:23:50Z asarch_ joined #lisp 2020-05-18T03:26:07Z asarch quit (Ping timeout: 272 seconds) 2020-05-18T03:28:37Z GuerrillaMonkey quit (Quit: Leaving) 2020-05-18T03:28:49Z karayan joined #lisp 2020-05-18T03:30:34Z renzhi quit (Ping timeout: 240 seconds) 2020-05-18T03:30:41Z yankM quit (Quit: Leaving.) 2020-05-18T03:35:59Z Kundry_Wag quit (Remote host closed the connection) 2020-05-18T03:40:30Z Lycurgus joined #lisp 2020-05-18T03:41:54Z beach: Good morning everyone! 2020-05-18T03:47:01Z pjb quit (Ping timeout: 272 seconds) 2020-05-18T03:59:22Z shifty joined #lisp 2020-05-18T04:01:10Z dddddd quit (Ping timeout: 265 seconds) 2020-05-18T04:01:32Z Lycurgus quit (Quit: Exeunt) 2020-05-18T04:14:46Z narimiran joined #lisp 2020-05-18T04:15:17Z pjb joined #lisp 2020-05-18T04:19:43Z amerlyq joined #lisp 2020-05-18T04:27:19Z gravicappa joined #lisp 2020-05-18T04:27:34Z Kundry_Wag joined #lisp 2020-05-18T04:32:09Z Oladon joined #lisp 2020-05-18T04:32:34Z Kundry_Wag quit (Ping timeout: 240 seconds) 2020-05-18T04:36:27Z shifty quit (Ping timeout: 265 seconds) 2020-05-18T04:37:15Z shifty joined #lisp 2020-05-18T04:43:48Z duuqnd joined #lisp 2020-05-18T04:44:40Z fitzsim quit (Remote host closed the connection) 2020-05-18T04:47:21Z asarch_ is now known as asarch 2020-05-18T04:53:33Z solrize: hey all 2020-05-18T04:55:18Z beach: Hello solrize. 2020-05-18T04:56:45Z doesthiswork quit (Ping timeout: 265 seconds) 2020-05-18T04:57:35Z duuqnd quit (Read error: Connection reset by peer) 2020-05-18T04:57:51Z duuqnd joined #lisp 2020-05-18T04:58:17Z Kundry_Wag joined #lisp 2020-05-18T04:59:38Z PuercoPope quit (Remote host closed the connection) 2020-05-18T05:02:34Z Kundry_Wag quit (Ping timeout: 240 seconds) 2020-05-18T05:02:40Z shka_ joined #lisp 2020-05-18T05:08:59Z duuqnd quit (Remote host closed the connection) 2020-05-18T05:09:23Z duuqnd joined #lisp 2020-05-18T05:11:02Z sdumi quit (Ping timeout: 256 seconds) 2020-05-18T05:11:24Z sdumi joined #lisp 2020-05-18T05:14:03Z Kundry_Wag joined #lisp 2020-05-18T05:14:46Z sdumi quit (Read error: Connection reset by peer) 2020-05-18T05:14:53Z sdumi joined #lisp 2020-05-18T05:18:24Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-18T05:20:20Z frodef`` joined #lisp 2020-05-18T05:27:30Z holycow quit (Quit: Lost terminal) 2020-05-18T05:31:04Z shifty quit (Ping timeout: 265 seconds) 2020-05-18T05:31:42Z shifty joined #lisp 2020-05-18T05:31:49Z Oladon quit (Quit: Leaving.) 2020-05-18T05:37:21Z shifty quit (Ping timeout: 265 seconds) 2020-05-18T05:40:08Z Bourne quit (Read error: Connection reset by peer) 2020-05-18T05:43:50Z Fare quit (Quit: Leaving) 2020-05-18T05:45:12Z thonkpod quit (Ping timeout: 260 seconds) 2020-05-18T05:45:58Z thonkpod joined #lisp 2020-05-18T05:51:07Z HDurer quit (Remote host closed the connection) 2020-05-18T06:01:20Z HDurer joined #lisp 2020-05-18T06:02:23Z gxt quit (Ping timeout: 240 seconds) 2020-05-18T06:03:28Z asarch quit (Quit: Leaving) 2020-05-18T06:04:12Z Cymew joined #lisp 2020-05-18T06:04:46Z v88m quit (Ping timeout: 260 seconds) 2020-05-18T06:05:54Z Bourne joined #lisp 2020-05-18T06:27:35Z varjag joined #lisp 2020-05-18T06:28:13Z Kundry_Wag joined #lisp 2020-05-18T06:32:10Z jprajzne joined #lisp 2020-05-18T06:33:13Z refpga quit (Read error: Connection reset by peer) 2020-05-18T06:33:13Z Kundry_Wag quit (Ping timeout: 264 seconds) 2020-05-18T06:34:13Z refpga joined #lisp 2020-05-18T06:42:47Z random-nick joined #lisp 2020-05-18T06:46:10Z orivej joined #lisp 2020-05-18T06:51:42Z buffergn0me quit (Ping timeout: 260 seconds) 2020-05-18T06:56:45Z orivej quit (Read error: Connection reset by peer) 2020-05-18T06:56:45Z refpga quit (Read error: Connection reset by peer) 2020-05-18T06:57:50Z orivej joined #lisp 2020-05-18T06:57:59Z refpga joined #lisp 2020-05-18T07:04:34Z akoana quit (Quit: leaving) 2020-05-18T07:05:10Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-18T07:05:19Z ralt joined #lisp 2020-05-18T07:06:30Z orivej joined #lisp 2020-05-18T07:14:55Z hiroaki_ quit (Ping timeout: 260 seconds) 2020-05-18T07:17:36Z rogersm joined #lisp 2020-05-18T07:21:56Z duuqnd quit (Ping timeout: 256 seconds) 2020-05-18T07:22:52Z pve joined #lisp 2020-05-18T07:23:54Z duuqnd joined #lisp 2020-05-18T07:34:38Z libertyprime joined #lisp 2020-05-18T07:36:41Z orivej_ joined #lisp 2020-05-18T07:36:44Z orivej quit (Ping timeout: 265 seconds) 2020-05-18T07:38:53Z shifty joined #lisp 2020-05-18T07:54:31Z orivej_ quit (Read error: Connection reset by peer) 2020-05-18T07:55:34Z orivej joined #lisp 2020-05-18T08:00:02Z liberliver joined #lisp 2020-05-18T08:10:04Z ljavorsk joined #lisp 2020-05-18T08:13:37Z Inline joined #lisp 2020-05-18T08:14:49Z orivej quit (Ping timeout: 246 seconds) 2020-05-18T08:15:12Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-18T08:15:15Z orivej joined #lisp 2020-05-18T08:17:29Z Inline quit (Client Quit) 2020-05-18T08:19:34Z X-Scale` joined #lisp 2020-05-18T08:20:06Z X-Scale quit (Ping timeout: 260 seconds) 2020-05-18T08:20:11Z X-Scale` is now known as X-Scale 2020-05-18T08:22:26Z jurov_ joined #lisp 2020-05-18T08:23:00Z heisig joined #lisp 2020-05-18T08:23:02Z jurov quit (Ping timeout: 260 seconds) 2020-05-18T08:26:38Z Inoperable quit (Remote host closed the connection) 2020-05-18T08:29:05Z Kundry_Wag joined #lisp 2020-05-18T08:33:49Z Kundry_Wag quit (Ping timeout: 258 seconds) 2020-05-18T08:34:14Z orivej quit (Ping timeout: 240 seconds) 2020-05-18T08:34:35Z shka_ quit (Ping timeout: 258 seconds) 2020-05-18T08:37:03Z Cymew quit (Ping timeout: 260 seconds) 2020-05-18T08:39:03Z Cymew joined #lisp 2020-05-18T08:40:41Z ayuce joined #lisp 2020-05-18T08:43:49Z orivej joined #lisp 2020-05-18T08:50:39Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-18T08:51:58Z orivej joined #lisp 2020-05-18T08:56:55Z solene joined #lisp 2020-05-18T08:59:30Z orivej quit (Ping timeout: 258 seconds) 2020-05-18T08:59:31Z solene: hello, I face an issue and I can't find a solution so here I am :) I reduced the whole thing to a few lines of code to try to figure out what's happening. when I read a file containing characters like ↓ , when I save that string into a file, sbcl adds 0x0 characters for each one found, and ecl adds 0x20 characters. I made an example easy to run here https://pastebin.com/pL0HiyGW 2020-05-18T09:00:54Z p_l: aeth: Having met Shinmera, he is just that productive of a person :< 2020-05-18T09:01:01Z no-defun-allowed: Could you try specifying :element-type :utf-8 in SAVE-FILE? 2020-05-18T09:01:26Z solene: sure no-defun-allowed , I didn't try it, only found :external-format :utf-8 but didn't help. 2020-05-18T09:01:38Z phoe: no-defun-allowed: wait a second 2020-05-18T09:01:41Z phoe: :element-type :utf-8? 2020-05-18T09:01:49Z phoe: :utf-8 is not an element type 2020-05-18T09:01:55Z no-defun-allowed: Pardon me, :external-format. 2020-05-18T09:02:22Z solene: no-defun-allowed, already tried without success 2020-05-18T09:02:33Z no-defun-allowed fixes her brain's implementation of complete-symbol 2020-05-18T09:05:09Z solene: I have this bug since years, I didn't notice it with ecl because spaces in an xml file wasn't an issue (but I'm not happy they are there) but when I switched to sbcl, adding 0x0 characters did break everything of course so I spotted that behavior. 2020-05-18T09:05:15Z phoe: I can reproduce that 2020-05-18T09:05:21Z Inline joined #lisp 2020-05-18T09:05:28Z no-defun-allowed: solene: I think that FILE-LENGTH is counting the number of bytes, not characters, in the file. 2020-05-18T09:06:10Z phoe: no-defun-allowed: the dumped file has an extra padding of 0x00 or 0x20. 2020-05-18T09:06:18Z no-defun-allowed: But then READ-SEQUENCE reads in characters, leaving a gap at the end of the string. 2020-05-18T09:06:34Z phoe: oh right! 2020-05-18T09:06:46Z rogersm quit (Ping timeout: 240 seconds) 2020-05-18T09:06:46Z no-defun-allowed: phoe: Compare the results of (make-string 20) on SBCL and ECL. SBCL fills it with (code-char 0), and ECL fills with spaces. 2020-05-18T09:06:51Z phoe: correct 2020-05-18T09:07:54Z twelvemonkeys quit (Ping timeout: 256 seconds) 2020-05-18T09:08:27Z phoe: (coerce (load-file "test.txt") 'list) ;=> (#\DOWNWARDS_ARROW #\RIGHTWARDS_ARROW #\Newline #\Nul #\Nul #\Nul #\Nul) 2020-05-18T09:08:28Z solene: this make sense. How to read the correct number of characters? 2020-05-18T09:08:32Z shifty quit (Ping timeout: 256 seconds) 2020-05-18T09:08:34Z no-defun-allowed: In this case, I would have expected FILE-LENGTH to count characters, but I think that would require decoding the file. 2020-05-18T09:08:42Z phoe: solene: alexandria:read-file-into-string 2020-05-18T09:09:36Z solene: I'd prefer to avoid external libraries, I use this in a 200 lines lisp program. But if this is the only way 2020-05-18T09:10:12Z phoe: solene: copy it over then 2020-05-18T09:10:12Z phoe: https://gitlab.common-lisp.net/alexandria/alexandria/-/blob/master/alexandria-1/io.lisp#L53-71 2020-05-18T09:14:42Z cods quit (Ping timeout: 256 seconds) 2020-05-18T09:15:50Z twelvemonkeys joined #lisp 2020-05-18T09:18:49Z solene: phoe, I switched to using alexandria from quicklisp. Less work and I guess I'll be able to live with this :) thank you very much phoe and no-defun-allowed 2020-05-18T09:21:08Z cods joined #lisp 2020-05-18T09:21:08Z cods quit (Changing host) 2020-05-18T09:21:08Z cods joined #lisp 2020-05-18T09:21:14Z phoe: solene: <3 2020-05-18T09:22:18Z jprajzne quit (Quit: jprajzne) 2020-05-18T09:22:44Z jprajzne joined #lisp 2020-05-18T09:26:48Z jprajzne quit (Client Quit) 2020-05-18T09:26:51Z karlosz quit (Quit: karlosz) 2020-05-18T09:27:11Z jprajzne joined #lisp 2020-05-18T09:28:27Z Kundry_Wag joined #lisp 2020-05-18T09:30:03Z frodef``` joined #lisp 2020-05-18T09:31:22Z frodef`` quit (Ping timeout: 256 seconds) 2020-05-18T09:33:04Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-18T09:33:17Z refpga quit (Ping timeout: 260 seconds) 2020-05-18T09:34:43Z Lord_of_Life_ joined #lisp 2020-05-18T09:35:07Z anticrisis quit (Quit: Leaving) 2020-05-18T09:36:20Z Lord_of_Life quit (Ping timeout: 272 seconds) 2020-05-18T09:36:21Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-18T09:40:08Z orivej joined #lisp 2020-05-18T09:44:21Z dddddd joined #lisp 2020-05-18T09:46:59Z cosimone joined #lisp 2020-05-18T09:51:25Z refpga joined #lisp 2020-05-18T09:51:56Z phoe: Only partially Lisp-related question: is it possible to get something equivalent to (lambda () (go :foo)) or (lambda () (return-from :bar 42)) in some of the currently-popular programming languages? We assume that these lambdas were established in suitable lexical environments within proper TAGBODY/BLOCK forms. 2020-05-18T09:52:40Z phoe: I'm thinking about this since I'm currently chewing on one comment related to my book that touches this topic. 2020-05-18T09:52:53Z no-defun-allowed: I usually use exceptions to imitate the latter. 2020-05-18T09:54:00Z libertyprime quit (Ping timeout: 265 seconds) 2020-05-18T09:55:27Z phoe: I see, so instead of invoking a function that came from the provided lexical environment, one can emulate TAGBODY/BLOCK using an try-catch form, and transfer control via throwing that exception. 2020-05-18T09:55:43Z phoe: OK - thanks. (I need to wake up.) 2020-05-18T09:57:02Z _death: http://www.pipeline.com/~hbaker1/MetaCircular.html 2020-05-18T09:57:28Z yankM joined #lisp 2020-05-18T10:04:32Z phoe: _death: I actually started re-reading that article moments before you posted it now; it was posted recently 2020-05-18T10:04:53Z libertyprime joined #lisp 2020-05-18T10:05:17Z _death: another good resource is the book Lisp in Small Pieces, which has a chapter about throw/catch 2020-05-18T10:05:25Z duuqnd_ joined #lisp 2020-05-18T10:06:35Z duuqnd quit (Read error: Connection reset by peer) 2020-05-18T10:08:38Z _death: in metacircular, the catch macro in catch/throw emulated by tagbody/go is missing a parenthesis :x 2020-05-18T10:10:11Z libertyprime quit (Remote host closed the connection) 2020-05-18T10:10:59Z duuqnd_ is now known as duuqnd 2020-05-18T10:11:35Z frgo quit (Read error: Connection reset by peer) 2020-05-18T10:11:43Z frgo_ joined #lisp 2020-05-18T10:14:20Z sdumi quit (Ping timeout: 272 seconds) 2020-05-18T10:15:43Z jackdaniel: I've read that anything in parenthesis should be ignored 2020-05-18T10:16:37Z hiroaki_ joined #lisp 2020-05-18T10:17:43Z _death: since it was a closing paren, how are you still functioning? 2020-05-18T10:18:40Z jackdaniel lies on the ground and does not function :( 2020-05-18T10:20:07Z phoe evaluates #'jackdaniel 2020-05-18T10:24:53Z duuqnd quit (Read error: Connection reset by peer) 2020-05-18T10:28:21Z toorevitimirp joined #lisp 2020-05-18T10:36:13Z sdumi joined #lisp 2020-05-18T10:36:18Z jackdaniel: (values) 2020-05-18T10:37:48Z phoe: but hey, at least you function now 2020-05-18T10:37:54Z phoe: you could have signaled an error 2020-05-18T10:39:39Z dmiles quit (Read error: Connection reset by peer) 2020-05-18T10:40:28Z jackdaniel: do you have any return value to (p)rove that? 2020-05-18T10:41:24Z adlai: ; note: type assertion too complex to check: 2020-05-18T10:41:58Z adlai: ; (VALUES &OPTIONAL . #1=(NIL . #1#)) 2020-05-18T10:42:40Z phoe: jackdaniel: damn 2020-05-18T10:42:54Z no-defun-allowed: (disassemble #'jackdaniel) 2020-05-18T10:43:03Z phoe: you got me; I should have called you from within MULTIPLE-VALUE-CALL 2020-05-18T10:43:08Z phoe: no-defun-allowed: hey that's rude 2020-05-18T10:43:19Z flip214: or with a HANDLER-CASE and :NO-ERROR ;) 2020-05-18T10:43:43Z dmiles joined #lisp 2020-05-18T10:49:44Z bowfin joined #lisp 2020-05-18T10:51:34Z bowfin left #lisp 2020-05-18T10:56:32Z Bike joined #lisp 2020-05-18T10:57:41Z Inline quit (Ping timeout: 272 seconds) 2020-05-18T11:00:51Z flip214: but the basic question might whether jackdaniel ever terminates at all? 2020-05-18T11:08:06Z scymtym_ quit (Ping timeout: 256 seconds) 2020-05-18T11:08:50Z jackdaniel: speaking of terms, any volunteers for proofreading and testing the terminal access tutorial? 2020-05-18T11:08:55Z jackdaniel: (from cl of course) 2020-05-18T11:09:06Z ck_: sure, as long as it isn't urgent 2020-05-18T11:09:21Z ayuce quit (Remote host closed the connection) 2020-05-18T11:09:46Z ayuce joined #lisp 2020-05-18T11:11:38Z kopiyka quit (Remote host closed the connection) 2020-05-18T11:12:09Z jackdaniel: thank you, I'll let you know when I upload the draft (probably this evening) 2020-05-18T11:12:10Z kopiyka joined #lisp 2020-05-18T11:12:59Z phoe: jackdaniel: please ping me with it, I'll gladly review and test it 2020-05-18T11:14:20Z jackdaniel: thanks, will do 2020-05-18T11:22:15Z scymtym joined #lisp 2020-05-18T11:22:21Z milanj joined #lisp 2020-05-18T11:24:01Z SAL9000 joined #lisp 2020-05-18T11:24:05Z holycow joined #lisp 2020-05-18T11:24:34Z pjb quit (Ping timeout: 265 seconds) 2020-05-18T11:24:38Z milanj quit (Read error: Connection reset by peer) 2020-05-18T11:24:50Z milanj joined #lisp 2020-05-18T11:25:32Z ayuce quit (Remote host closed the connection) 2020-05-18T11:32:58Z orivej quit (Ping timeout: 256 seconds) 2020-05-18T11:33:18Z orivej joined #lisp 2020-05-18T11:33:42Z ayuce joined #lisp 2020-05-18T11:39:13Z pjb joined #lisp 2020-05-18T11:39:59Z holycow quit (Quit: Lost terminal) 2020-05-18T11:47:22Z Inline joined #lisp 2020-05-18T11:52:44Z jdz: jackdaniel: What terminal access tutorial? 2020-05-18T11:53:50Z jdz: jackdaniel: If it's about moving cursor around and switching terminal to non-canonical mode count me in. 2020-05-18T11:55:41Z jdz: Besides the one ECL issue I already reported I'm having another one with receiving SIGWINCH. 2020-05-18T12:00:38Z Kundry_Wag joined #lisp 2020-05-18T12:05:56Z Xach: sigwinch is my favorite signal 2020-05-18T12:06:13Z Xach: i use "kill -WINCH $$" about once per month to resync bash 2020-05-18T12:06:21Z Xach: looking forward to lisping with it 2020-05-18T12:07:17Z jello_pudding quit (Ping timeout: 260 seconds) 2020-05-18T12:11:09Z rogersm joined #lisp 2020-05-18T12:20:00Z adlai tried reading all of `man 1 kill`, it is worse than eating a whole page of lsd 2020-05-18T12:20:46Z adlai: in case you are unfamiliar with the latter metaphor, it does not fit within a metabolic segment, and is thus slang for "way too much" 2020-05-18T12:22:50Z ebrasca joined #lisp 2020-05-18T12:23:48Z phoe: I kind of disbelieve that I have an urge to ask "what is a metabolic segment" in context of discussing LSD on #lisp 2020-05-18T12:24:03Z phoe: but, yeah, that is what discussing POSIX does to people 2020-05-18T12:26:14Z orivej quit (Ping timeout: 256 seconds) 2020-05-18T12:26:28Z orivej joined #lisp 2020-05-18T12:27:43Z jello_pudding joined #lisp 2020-05-18T12:32:45Z jackdaniel: jdz: please report it of course. and yes, it is about moving cursor and switching terminal to non-canonical mode 2020-05-18T12:33:57Z ayuce quit (Remote host closed the connection) 2020-05-18T12:34:51Z ayuce joined #lisp 2020-05-18T12:40:41Z orivej quit (Ping timeout: 258 seconds) 2020-05-18T12:47:11Z pmden joined #lisp 2020-05-18T12:48:57Z bitmapper joined #lisp 2020-05-18T12:50:25Z zooey quit (Remote host closed the connection) 2020-05-18T12:52:39Z cosimone_ joined #lisp 2020-05-18T12:52:59Z cosimone quit (Read error: Connection reset by peer) 2020-05-18T12:55:22Z Lord_of_Life quit (Read error: Connection reset by peer) 2020-05-18T12:55:55Z Lord_of_Life joined #lisp 2020-05-18T12:58:44Z pjb quit (Ping timeout: 244 seconds) 2020-05-18T12:58:45Z phoe: Xach: https://www.reddit.com/r/lisp/comments/gm0a9q/quicklisp_download_stats/ 2020-05-18T13:04:12Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-18T13:05:23Z Kundry_Wag joined #lisp 2020-05-18T13:05:35Z LdBeth: Good morning everyone 2020-05-18T13:05:49Z beach: Hello LdBeth. 2020-05-18T13:10:48Z Kundry_Wag quit (Remote host closed the connection) 2020-05-18T13:11:14Z Kundry_Wag joined #lisp 2020-05-18T13:11:14Z Kundry_Wag quit (Client Quit) 2020-05-18T13:14:26Z rogersm quit (Ping timeout: 240 seconds) 2020-05-18T13:16:41Z amerlyq quit (Quit: amerlyq) 2020-05-18T13:17:36Z Inoperable joined #lisp 2020-05-18T13:17:46Z heisig quit (Quit: Leaving) 2020-05-18T13:18:32Z rogersm joined #lisp 2020-05-18T13:19:57Z frodef``` quit (Remote host closed the connection) 2020-05-18T13:21:12Z gko joined #lisp 2020-05-18T13:22:46Z rogersm quit (Ping timeout: 240 seconds) 2020-05-18T13:22:49Z frodef``` joined #lisp 2020-05-18T13:23:00Z frodef``` quit (Remote host closed the connection) 2020-05-18T13:23:43Z Aurora_v_kosmose quit (Ping timeout: 240 seconds) 2020-05-18T13:25:38Z EvW joined #lisp 2020-05-18T13:26:33Z Aurora_v_kosmose joined #lisp 2020-05-18T13:31:41Z yankM quit (Remote host closed the connection) 2020-05-18T13:33:13Z theseb joined #lisp 2020-05-18T13:33:29Z pjb joined #lisp 2020-05-18T13:35:50Z pmden quit (Quit: Textual IRC Client: www.textualapp.com) 2020-05-18T13:36:21Z theseb quit (Client Quit) 2020-05-18T13:37:05Z theseb joined #lisp 2020-05-18T13:39:07Z cosimone_ quit (Remote host closed the connection) 2020-05-18T13:39:33Z cosimone_ joined #lisp 2020-05-18T13:46:43Z patlv joined #lisp 2020-05-18T13:47:29Z Inline quit (Remote host closed the connection) 2020-05-18T13:48:53Z Inline joined #lisp 2020-05-18T13:56:37Z refpga quit (Ping timeout: 264 seconds) 2020-05-18T13:57:24Z refpga joined #lisp 2020-05-18T13:57:35Z Xach: phoe: thanks 2020-05-18T13:58:17Z montxero joined #lisp 2020-05-18T14:06:02Z jw4 quit (Read error: Connection reset by peer) 2020-05-18T14:06:48Z phoe: Xach: no problem; let me know if I can help with this in any way 2020-05-18T14:08:19Z jw4 joined #lisp 2020-05-18T14:10:06Z ahungry joined #lisp 2020-05-18T14:10:07Z gko quit (Remote host closed the connection) 2020-05-18T14:10:22Z theseb: Is it necessary to sometimes explicitly use eval in your code? I've been racking my brain on little projects and it seems sometimes you *must* use an eval in your code? 2020-05-18T14:11:04Z Bike: it's pretty rare that using eval is a good idea. 2020-05-18T14:11:18Z Bike: but it's necessary if you do in fact want to evaluate code at runtime. 2020-05-18T14:11:37Z Bike: overestimating how often eval is a good idea is common, though. 2020-05-18T14:12:00Z theseb: Bike: i'm writing a for loop ...i can do it as a macro or function...in both cases i can't see how to get everything w/o eval 2020-05-18T14:12:15Z Bike: you can write a for macro without eval. 2020-05-18T14:12:29Z gko joined #lisp 2020-05-18T14:12:33Z Josh_2: in the one case where I could have used eval, instead I just compiled the source code and called the function 2020-05-18T14:12:34Z Bike: assuming you mean something like C for, that executes some code in a loop until a condition is met. 2020-05-18T14:12:52Z theseb: Bike: i create macro that allows....(for i (3 5 6) ....) that executes ..... for i = 3, 5, 6 2020-05-18T14:13:09Z Bike: you don't need eval for that. 2020-05-18T14:13:20Z theseb: Bike: problem is sometimes I need to do (for i foo ...) where foo evaluates to a list 2020-05-18T14:13:34Z beach: theseb: You can't have it both ways. 2020-05-18T14:13:40Z Bike: You don't need eval for that either, and you should decide whether your macro evaluates the list or not. 2020-05-18T14:13:57Z Bike: Having both be valid syntax is probably not going to work. 2020-05-18T14:14:09Z beach: theseb: The system can't guess whether you want it evaluated or not. 2020-05-18T14:14:26Z Bike: e.g., if you have (for x (get-list y z) ...), is that supposed to be a list of three elements GET-LIST, X, Z, or is it supposed to call the GET-LIST function? 2020-05-18T14:14:27Z dlowe: I mean, you could decide to only evaluate when it's a symbol 2020-05-18T14:14:33Z theseb: Bike: one solution is to pass in everything unevaluated.... (for 'i '(3 5 6) '...) 2020-05-18T14:14:56Z theseb: Bike: but if i do that using a regular function...I need eval to actually eval the .... !!! AHHHH!! 2020-05-18T14:15:06Z phoe: theseb: what is (for i (gethash x y) ...) supposed to iterate over 2020-05-18T14:15:10Z Bike: (defmacro for (var list &body body) `(loop for ,var in ',list do (progn ,@body))) 2020-05-18T14:15:14Z phoe: will it iterate over the symbols GETHASH, X, and Y 2020-05-18T14:15:29Z Bike: or the evaluated version, (defmacro for (var list &body body) `(loop for ,var in ,list do (progn ,@body))) 2020-05-18T14:15:30Z phoe: or will it iterate over the value found in hash table Y for key X 2020-05-18T14:15:49Z cosimone_ is now known as cosimone 2020-05-18T14:16:16Z phoe: once you solve that problem, please just quote your lists and use (for i '(3 5 6) ...) 2020-05-18T14:16:29Z Bike: yeah that's probably the way to go. 2020-05-18T14:16:42Z phoe: since that one allows lists to be provided at run-time, not at compile-time 2020-05-18T14:16:49Z phoe: not just at compile-time* 2020-05-18T14:17:22Z theseb: phoe: my 1st version iterates over list elements 2020-05-18T14:17:37Z Bike: that is not what phoe asked about 2020-05-18T14:17:49Z Bike: the question is whether (gethash x y) is evaluated, or treated as a list of three symbols 2020-05-18T14:17:55Z theseb: ah 2020-05-18T14:18:15Z Bike: this is part of the semantics of your macro, and unrelated to using eval or not to implement it 2020-05-18T14:18:33Z Bike: but just to emphasize, either way, you definitely don't need to use the eval function. 2020-05-18T14:18:39Z montxero quit (Remote host closed the connection) 2020-05-18T14:18:42Z theseb: Bike: i'm thinking i'll need to eval (gethash x y) 2020-05-18T14:18:54Z theseb: Bike: err..let me me more clear 2020-05-18T14:19:05Z Bike: FOR is a macro. It can just expand into code that involves evaluating the form. You don't need to call eval yourself. 2020-05-18T14:19:06Z phoe: theseb: (let ((y (make-hash-table)) (x :some-key)) (setf (gethash x y) '(1 2 3 4 5)) (for i (gethash x y) (print i))) 2020-05-18T14:19:19Z phoe: what is it going to produce 2020-05-18T14:19:35Z quazimodo quit (Ping timeout: 260 seconds) 2020-05-18T14:19:41Z theseb: Bike: i'll need to define for as a regular function so that it evaluates the arguments...hence...i would do (for 'i (gethash x y) '...) 2020-05-18T14:19:53Z Bike: Why on earth would you do that 2020-05-18T14:19:53Z phoe: theseb: wait why 2020-05-18T14:20:02Z theseb: if i wanted the (gethash x y) evaluated first 2020-05-18T14:20:05Z Bike: no? 2020-05-18T14:20:16Z Bike: I already wrote out a macro definition for you, I assure you this is possible. 2020-05-18T14:20:41Z jmercouris: rest assured theseb 2020-05-18T14:20:45Z jmercouris: I believe in Bike 2020-05-18T14:20:47Z Bike: You need the form evaluated at run time, not at macroexpansion time, which is what you'd get with eval. 2020-05-18T14:20:57Z Bike: So you just have the macro expand into whatever code. 2020-05-18T14:21:12Z Bike: Like with my early definition, you'd get (loop for i in (gethash x y) do (progn ...)) 2020-05-18T14:21:15Z Bike: earlier* 2020-05-18T14:21:29Z Bike: as in, (for i (gethash x y) ...) expands to that. 2020-05-18T14:22:05Z Bike: If you don't want to use LOOP, you could define it in terms of tagbody, though it might be too long for me to write as one line in chat. 2020-05-18T14:22:07Z theseb: Bike: (defmacro for (var list &body body) `(loop for ,var in ,list do (progn ,@body))) 2020-05-18T14:22:15Z Bike: yeah. 2020-05-18T14:22:25Z phoe: see, no eval in there 2020-05-18T14:22:39Z phoe: also, you *never* need eval unless you really, really need it. most of the use cases can be achieved via closures or macroexpansions 2020-05-18T14:23:12Z phoe: eval usually comes into play when you need to be able to get commands from the programmer, which means that you have a REPL of some sort. 2020-05-18T14:23:30Z Bike: it's also important to understand that eval doesn't know about the lexical environment it's called in, so in this case you actually cannot use eval to achieve this, given that X and Y are lexical variables. 2020-05-18T14:23:38Z Josh_2: even then you can just have a ruleset instead of actually using eval 2020-05-18T14:23:40Z phoe: otherwise, for purely programmatic means of processing code, you do not really ever need it. 2020-05-18T14:24:40Z theseb: Bike: right 2020-05-18T14:26:22Z theseb: Bike: i'm trying to figure out how your code avoided my problem...seems magical 2020-05-18T14:26:30Z |Pirx| joined #lisp 2020-05-18T14:26:47Z phoe: theseb: by cleanly separating macroexpansion time from evaluation time 2020-05-18T14:27:02Z beach: theseb: Call macroexpand-1 on some examples and see what it does. 2020-05-18T14:28:22Z theseb: phoe: is there some general principle here that the magic is in using multiple levels of macros? 2020-05-18T14:28:43Z theseb: perhaps that is a design pattern i should remember 2020-05-18T14:28:53Z phoe: theseb: what do you mean, multiple levels of macros 2020-05-18T14:28:56Z phoe: this is just one level 2020-05-18T14:29:06Z theseb: Bike's for macro called the loop macro 2020-05-18T14:29:19Z Bike: it expands into a use of the loop macro. 2020-05-18T14:29:27Z theseb: just wondering if that was the trick...regardless...i'll test it and think more today 2020-05-18T14:29:39Z Bike: and no, like i said, you can do this using tagbody, which is a special operator rather than a macro. 2020-05-18T14:29:47Z phoe: theseb: give me a moment 2020-05-18T14:30:07Z TMA: theseb: the magic is that the macro you write can produce any code you could have written instead. that code might or might not contain references to other macros (or even to the same macro) 2020-05-18T14:30:09Z Bike: You just need to think about what the code expanded into does, and what it evaluates. 2020-05-18T14:30:14Z rogersm joined #lisp 2020-05-18T14:30:44Z Bike: yeah, try writing out how you'd do (for ...) if there is no for macro, and then have the for macro expand into that kind of code. 2020-05-18T14:30:59Z theseb: ok 2020-05-18T14:31:23Z theseb: Bike: does your brain ever hurt trying to keep in your head which args should be quoted or not? 2020-05-18T14:31:41Z theseb: that seems to be a common hang up for me 2020-05-18T14:31:42Z Bike: it's honestly not as complicated as you think when you're starting out. 2020-05-18T14:31:51Z theseb: ok 2020-05-18T14:32:20Z Bike: and practice makes perfect and such. 2020-05-18T14:32:30Z theseb: yup...just like everything else 2020-05-18T14:33:06Z phoe: (defmacro for (variable value &rest body) `(block nil (let (,variable (list ,value)) (tagbody :check (when (null list) (go :exit)) :iterate (setf ,variable (pop list)) ,@body (go :check) :exit)))) 2020-05-18T14:33:10Z phoe: look ma, no macros 2020-05-18T14:33:16Z phoe: (for i '(1 2 3 4 5) (print i)) is going to work as expected 2020-05-18T14:33:31Z theseb: nice 2020-05-18T14:34:10Z phoe: I'm writing a book chapter about tagbody right now so I had this handy 2020-05-18T14:34:21Z TMA: phoe: except for when, setf and pop 2020-05-18T14:34:54Z phoe: TMA: (defmacro for (variable value &rest body) `(block nil (let (,variable (list ,value)) (tagbody :check (if (null list) (go :exit)) :iterate (setq ,variable (first list)) (setq list (cdr list)) ,@body (go :check) :exit)))) 2020-05-18T14:35:07Z phoe: is it better now 2020-05-18T14:35:27Z TMA: now you are true to your word 2020-05-18T14:35:45Z jmercouris: Isn't IF a macro though? 2020-05-18T14:36:17Z TMA: jmercouris: IIRC, cond is the macro in common lisp and if is the special operator 2020-05-18T14:36:33Z refpga quit (Read error: Connection reset by peer) 2020-05-18T14:36:33Z jmercouris: oh 2020-05-18T14:37:10Z refpga joined #lisp 2020-05-18T14:37:14Z fluxwave quit (Ping timeout: 240 seconds) 2020-05-18T14:37:52Z Bike: correct. 2020-05-18T14:37:54Z phoe: jmercouris: not in ANSI CL 2020-05-18T14:38:03Z phoe: it could be the other way around, but someone's gotta choose 2020-05-18T14:38:31Z Bike: really an implementation could do it the other way but details 2020-05-18T14:39:00Z Bike: the point isn't the macros, anyway, it's that you can see that the macroexpansion does not evaluate the VARIABLE form, but does evaluate the VALUE form, based on their positions in the LET 2020-05-18T14:39:54Z phoe: or, in other words, the macroexpansion doesn't really evaluate anything, but it may choose what to quote and what not to quote 2020-05-18T14:40:09Z phoe: so that in the resulting macroexpansion there's stuff like 'I which, after normal evaluation, produces the symbol I 2020-05-18T14:40:38Z phoe: and there might also be stuff like (GETHASH X Y) which, after normal evaluation, produces the value associated with key X in hashtable Y 2020-05-18T14:40:47Z phoe: (where X and Y are normally evaluated to produce values, too) 2020-05-18T14:40:53Z shka_ joined #lisp 2020-05-18T14:41:47Z TMA: all the cleverness is in a complex interaction of very few simple rules 2020-05-18T14:46:32Z EvW quit (Ping timeout: 260 seconds) 2020-05-18T14:49:07Z phoe: the worst thing about EVAL is that it works 2020-05-18T14:49:34Z phoe: therefore people who write code that abuses EVAL have little feedback from the system to fix it so it does not use EVAL 2020-05-18T14:49:45Z phoe: that feedback needs to come from other people 2020-05-18T14:50:08Z phoe: and that, in turn, is non-trivial unless you actually reach out to other lispers or get a good code review which implies reaching out to other lispers 2020-05-18T14:50:14Z dlowe: I sped up some code by 600x by removing EVAL use 2020-05-18T14:50:39Z dlowe: brought the batch job from >24 hours down to a few seconds. 2020-05-18T14:51:27Z dlowe: All I had to do was to COMPILE the code and FUNCALL it instead of EVALing it 2020-05-18T14:52:18Z rippa joined #lisp 2020-05-18T14:52:27Z phoe: I gotta make a lisp meme sometimes that follows the greentext >learns about quote >notices that quote is the operator that allows stuff to be passed to eval >uses eval everywhere >"damn lisp is so slow" 2020-05-18T14:52:34Z phoe: s/sometimes/sometime/ 2020-05-18T14:53:23Z jdz: It also might help to write macros without backquote templates while learning. 2020-05-18T14:54:25Z adlai left #lisp 2020-05-18T14:58:18Z theseb: Bike: just curious about your (defmacro for (var list &body body) `(loop for ,var in ,list do (progn ,@body)))....did it *have* to be a macro....could you get away with something like (defun for (var list body) (loop for var in list do (progn ???))) and later do (for 'i '(3 4 5) '(print i)) somehow? 2020-05-18T14:58:44Z Bike: No, because functions don't know about the lexical environment they are called from. 2020-05-18T14:58:52Z renzhi joined #lisp 2020-05-18T14:58:56Z theseb: that was fast 2020-05-18T14:59:30Z dlowe: also, when functions are called, they always evaluate their arguments 2020-05-18T14:59:42Z Bike: I mean I guess you could do something stupid like (loop for x in list do (eval `(let ((,var ',x)) ,body))) 2020-05-18T14:59:54Z Bike: But I don't understand why you'd even want this to be a function. 2020-05-18T14:59:55Z theseb: dlowe: yes...hence the quote args in (for 'i '(3 4 5) '(print i)) 2020-05-18T15:00:10Z Aurora_v_kosmose quit (Remote host closed the connection) 2020-05-18T15:00:26Z theseb: Bike: i wanted to see if an eval was necessary ;)...and you seemed to suggest it was ;) 2020-05-18T15:00:47Z Bike: Yes, if you want code to be evaluated at runtime you need to use EVAL (or COMPILE or something), like i said before 2020-05-18T15:01:01Z Bike: In this case you are defining that the FOR function must actually evaluate code, so that's natural 2020-05-18T15:01:02Z theseb: i agree that would be lame.. 2020-05-18T15:01:03Z dlowe: you could do (for (lambda (i) (print i)) '(3 4 5)) but then you've invented mapc 2020-05-18T15:01:22Z Bike: You have to consider specifically what the function is supposed to do 2020-05-18T15:01:23Z theseb: just trying to wrap my brain around quote, eval, etc. and when needed 2020-05-18T15:02:50Z theseb: Bike: i'm not sure how you know the answers so fast...it takes me a while to reason thru all this 2020-05-18T15:03:07Z jmercouris: Lots and lots of practice 2020-05-18T15:03:11Z Bike: you're not the first person to come in here asking these questions 2020-05-18T15:03:16Z Bike: and when i started out i made the same mistakes 2020-05-18T15:03:27Z Aurora_v_kosmose joined #lisp 2020-05-18T15:03:46Z tankman joined #lisp 2020-05-18T15:04:36Z phoe: theseb: there is a concept of "times" in Lisp that helped me grok these really well 2020-05-18T15:04:50Z phoe: read time, macroexpansion time, compilation time, execution time 2020-05-18T15:04:58Z EvW joined #lisp 2020-05-18T15:05:01Z jmercouris: "phases" if you wall 2020-05-18T15:05:07Z jmercouris: in the lifecycle of processing a bit of text 2020-05-18T15:05:21Z jmercouris: s/wall/will 2020-05-18T15:05:27Z phoe: yes, they're phases; AFAIK the specification uses "time" in this context 2020-05-18T15:05:47Z phoe: one comes after the other, with the exception of macroexpansion time which is usually a part of compilation time 2020-05-18T15:06:22Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-18T15:06:40Z phoe: execution time, or evaluation time, comes at the very last 2020-05-18T15:07:00Z phoe: and there's plenty to do in earlier times, since each of them has its own separate macro system 2020-05-18T15:07:11Z phoe: which are reader macros, macros, and compiler macros 2020-05-18T15:08:26Z toorevitimirp quit (Remote host closed the connection) 2020-05-18T15:13:57Z doesthiswork joined #lisp 2020-05-18T15:16:59Z bitmapper quit (Read error: Connection reset by peer) 2020-05-18T15:17:05Z bitmappe_ joined #lisp 2020-05-18T15:17:39Z bitmappe_ is now known as bitmapper 2020-05-18T15:21:47Z bars0 joined #lisp 2020-05-18T15:22:42Z gko quit (Ping timeout: 256 seconds) 2020-05-18T15:24:16Z paul0 quit (Remote host closed the connection) 2020-05-18T15:24:40Z paul0 joined #lisp 2020-05-18T15:25:42Z shangul joined #lisp 2020-05-18T15:26:54Z bars0 quit (Quit: leaving) 2020-05-18T15:27:02Z efm joined #lisp 2020-05-18T15:27:42Z bars0 joined #lisp 2020-05-18T15:28:13Z orivej joined #lisp 2020-05-18T15:32:14Z selwyn: are there any other times? 2020-05-18T15:32:32Z Shinmera: load-time 2020-05-18T15:32:57Z Shinmera: though that's part of the execution time as understood by eval-when 2020-05-18T15:33:24Z Shinmera: err, nevermind that, I'm a dummy 2020-05-18T15:34:17Z Inoperable quit (Quit: All your buffer are belong to us!) 2020-05-18T15:35:46Z Inoperable joined #lisp 2020-05-18T15:41:11Z Cymew quit (Quit: Konversation terminated!) 2020-05-18T15:41:35Z devon joined #lisp 2020-05-18T15:45:04Z orivej quit (Ping timeout: 258 seconds) 2020-05-18T15:45:23Z orivej joined #lisp 2020-05-18T15:46:06Z shifty joined #lisp 2020-05-18T15:54:32Z nikita` joined #lisp 2020-05-18T15:57:53Z pjb quit (Ping timeout: 272 seconds) 2020-05-18T16:01:54Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-18T16:03:03Z orivej joined #lisp 2020-05-18T16:03:11Z EvW quit (Ping timeout: 244 seconds) 2020-05-18T16:03:22Z ayuce quit (Remote host closed the connection) 2020-05-18T16:03:44Z bars0 quit (Quit: leaving) 2020-05-18T16:04:07Z bars0 joined #lisp 2020-05-18T16:04:41Z bars0 quit (Client Quit) 2020-05-18T16:05:05Z bars0 joined #lisp 2020-05-18T16:10:13Z ayuce joined #lisp 2020-05-18T16:13:19Z quazimodo joined #lisp 2020-05-18T16:19:49Z keepzen joined #lisp 2020-05-18T16:19:55Z shifty quit (Ping timeout: 246 seconds) 2020-05-18T16:20:16Z shifty joined #lisp 2020-05-18T16:22:17Z jprajzne quit (Quit: jprajzne) 2020-05-18T16:22:46Z jprajzne joined #lisp 2020-05-18T16:25:11Z bitmapper quit 2020-05-18T16:25:52Z sdumi quit (Ping timeout: 246 seconds) 2020-05-18T16:26:23Z sdumi joined #lisp 2020-05-18T16:26:47Z jprajzne quit (Client Quit) 2020-05-18T16:27:09Z jprajzne joined #lisp 2020-05-18T16:30:37Z tankman quit (Quit: Leaving) 2020-05-18T16:30:47Z pjb joined #lisp 2020-05-18T16:30:49Z renzhi quit (Ping timeout: 265 seconds) 2020-05-18T16:30:49Z quazimodo quit (Ping timeout: 264 seconds) 2020-05-18T16:31:39Z quazimodo joined #lisp 2020-05-18T16:32:00Z theseb quit (Quit: Leaving) 2020-05-18T16:32:44Z theseb joined #lisp 2020-05-18T16:32:46Z jmercouris: is it incorrect to say filename = (format nil "~a.~a" (pathname-name path-x) (pathname-type path-x)) ? 2020-05-18T16:32:50Z jmercouris: better way to do that? 2020-05-18T16:32:59Z SomeB joined #lisp 2020-05-18T16:33:06Z jmercouris: given some path, how to get file name? #P"/opt/local/lib/libz.dylib" trying to get "libz.dylib" as as tring, so I am doing the above 2020-05-18T16:33:22Z jmercouris: s/as tring/a string 2020-05-18T16:33:45Z jdz: jmercouris: FILE-NAMESTRING? 2020-05-18T16:33:47Z shka_: hmm 2020-05-18T16:34:11Z shka_: jmercouris: http://www.lispworks.com/documentation/lw50/CLHS/Body/f_merge_.htm 2020-05-18T16:34:18Z shka_: and file-namestring as jdz said 2020-05-18T16:35:04Z jmercouris: ah, yes, FILE-NAMESTRING 2020-05-18T16:35:10Z jmercouris: I was searching for "path" 2020-05-18T16:35:15Z jmercouris: in the CLHS so I didn't see that 2020-05-18T16:37:17Z jprajzne quit (Quit: jprajzne) 2020-05-18T16:37:27Z jmercouris: thank you jdz 2020-05-18T16:37:45Z jprajzne joined #lisp 2020-05-18T16:37:54Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-18T16:38:06Z jdz: You're welcome! 2020-05-18T16:39:42Z _death: the standard namestring functions are basically useless.. you want a native-namestring 2020-05-18T16:39:51Z orivej joined #lisp 2020-05-18T16:41:47Z jprajzne quit (Client Quit) 2020-05-18T16:42:10Z jprajzne joined #lisp 2020-05-18T16:45:42Z dale_ joined #lisp 2020-05-18T16:45:49Z notzmv quit (Ping timeout: 246 seconds) 2020-05-18T16:45:50Z dale_ is now known as dale 2020-05-18T16:49:40Z stoneglass joined #lisp 2020-05-18T16:52:52Z IAmRasputin joined #lisp 2020-05-18T16:53:18Z shifty quit (Ping timeout: 258 seconds) 2020-05-18T16:54:00Z shifty joined #lisp 2020-05-18T16:58:49Z scymtym_ joined #lisp 2020-05-18T17:00:34Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-18T17:01:30Z rgherdt joined #lisp 2020-05-18T17:01:54Z orivej joined #lisp 2020-05-18T17:03:02Z scymtym quit (Ping timeout: 260 seconds) 2020-05-18T17:03:38Z scymtym_ quit (Ping timeout: 244 seconds) 2020-05-18T17:06:50Z mibr joined #lisp 2020-05-18T17:07:38Z Inline quit (Ping timeout: 256 seconds) 2020-05-18T17:13:48Z IAmRasputin quit (Quit: WeeChat 2.8) 2020-05-18T17:16:44Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-18T17:17:19Z refpga quit (Remote host closed the connection) 2020-05-18T17:17:39Z refpga joined #lisp 2020-05-18T17:18:04Z orivej joined #lisp 2020-05-18T17:19:45Z phoe: from uiop, yes 2020-05-18T17:21:11Z EvW1 joined #lisp 2020-05-18T17:22:16Z jprajzne quit (Quit: jprajzne) 2020-05-18T17:22:40Z jprajzne joined #lisp 2020-05-18T17:25:57Z yankM joined #lisp 2020-05-18T17:26:14Z orivej quit (Ping timeout: 256 seconds) 2020-05-18T17:26:14Z orivej_ joined #lisp 2020-05-18T17:26:47Z jprajzne quit (Client Quit) 2020-05-18T17:26:54Z shifty quit (Ping timeout: 272 seconds) 2020-05-18T17:27:11Z jprajzne joined #lisp 2020-05-18T17:27:12Z shifty joined #lisp 2020-05-18T17:37:09Z yottabyte: I'm using https://www.cliki.net/html-encode but none of the functions listed seem to encode the space character to %20. is this perhaps the wrong library to use? 2020-05-18T17:37:14Z SGASAU quit (Remote host closed the connection) 2020-05-18T17:38:53Z orivej joined #lisp 2020-05-18T17:39:31Z ck_: yottabyte: take a look at do-urlencode, it's in quicklisp 2020-05-18T17:41:19Z SGASAU joined #lisp 2020-05-18T17:41:30Z orivej_ quit (Ping timeout: 260 seconds) 2020-05-18T17:41:48Z yottabyte: works, thank you boo 2020-05-18T17:43:18Z Bike: when a funcallable instance is updated for a different class, does the copy of the instance passed to update-instance-for-different-class still have the funcallable instance function? 2020-05-18T17:43:34Z orivej quit (Ping timeout: 246 seconds) 2020-05-18T17:43:43Z phoe: Bike: I think the MOP says *nothing* about updating funcallable instances 2020-05-18T17:43:55Z phoe: at least that was the situation last time we checked 2020-05-18T17:44:04Z orivej joined #lisp 2020-05-18T17:44:06Z Bike: i don't think it does, no 2020-05-18T17:44:15Z Bike: i mean, it says you can't change-class a generic function, but that doesn't cover everything 2020-05-18T17:45:12Z phoe: I don't think that u-i-f-d-c messes with the funcallable-instance-function in any way 2020-05-18T17:45:43Z phoe: but then again, an implementation might as well state that changing the fin's class, for whatever reason, invalidates the previous function 2020-05-18T17:45:47Z Bike: well, no, but the user method is passed a copy of the instance, and hypothetically they could call it 2020-05-18T17:46:02Z phoe: oh - a copy! 2020-05-18T17:46:10Z Bike: a copy. 2020-05-18T17:46:17Z phoe: yes. that's a question of how a copy is implemented... 2020-05-18T17:47:05Z LdBeth: It’s probably a shallow copy 2020-05-18T17:47:11Z Bike: it is a shallow copy. 2020-05-18T17:47:13Z phoe: no no, that's obvious 2020-05-18T17:47:23Z phoe: the question is whether the fin's funcallable instance function is copied as well 2020-05-18T17:47:32Z phoe: and I don't think that is specified *anywhere* 2020-05-18T17:47:41Z Bike: probably not, no. 2020-05-18T17:50:10Z Bike: on sbcl the instance function is not copied. 2020-05-18T17:50:47Z Bike: i suppose i can do the same, then 2020-05-18T17:51:39Z Bike: most likely nobody particularly gives a damn 2020-05-18T17:52:49Z phoe: I could bet a few bucks that that some implementors might not even be aware that this might be a question 2020-05-18T17:52:56Z phoe: it's an edge case 2020-05-18T17:53:13Z Bike: i guess you could just set the instance function to be the instance. that works, right? setting the instance function to be an instance? 2020-05-18T17:54:25Z phoe: which instance? the original you mean, or the copy? 2020-05-18T17:54:53Z Bike: (set-funcallable-instance-function copy original) 2020-05-18T17:55:09Z phoe: hmmm. 2020-05-18T17:55:32Z phoe: I assume that if the function then modifies the original's slots, that's somehow accounted for by the programmer 2020-05-18T17:55:33Z Bike: bonus question: how does (set-funcallable-instance-function x x) shake out 2020-05-18T17:55:40Z phoe: Bike: I don't think it does 2020-05-18T17:55:50Z phoe: because this means that when you funcall the instance, you then funcall the instance, which means that you funcall the instance 2020-05-18T17:55:52Z gaqwas joined #lisp 2020-05-18T17:56:02Z phoe: and this doesn't really end well in my mind 2020-05-18T17:56:15Z abel joined #lisp 2020-05-18T17:56:45Z MichaelRaskin: Does it even end (if TCO is enabled)? 2020-05-18T17:56:57Z phoe: depends on the implementation 2020-05-18T17:57:01Z phoe: ...I guess 2020-05-18T17:57:51Z lucasb joined #lisp 2020-05-18T17:57:51Z phoe: if the fin is implemented in a way where there's some sort of trampoline that jumps to the actual cl:function object, then it may jump to itself and we have an infinite loop 2020-05-18T17:58:17Z LdBeth: Can we have function class subclass generic-function? 2020-05-18T17:58:26Z phoe: LdBeth: it's the other way around 2020-05-18T17:58:31Z phoe: generic-function is a subclass of function 2020-05-18T17:58:50Z phoe: (subtypep 'generic-function 'function) ;=> try it! 2020-05-18T17:58:53Z Bike: you could have function be a subclass (identical to) funcallable-standard-object, tho 2020-05-18T17:58:59Z Bike: subclass of* 2020-05-18T17:59:06Z Bike: i think that's how it is in sicl 2020-05-18T17:59:44Z Inline joined #lisp 2020-05-18T17:59:49Z phoe: Bike: f-s-o is a subclass of function 2020-05-18T17:59:56Z phoe: but function is a direct subclass of T 2020-05-18T17:59:57Z phoe: that's on SBCL 2020-05-18T18:00:10Z LdBeth: That’s what I think how to overload functions like compile-file 2020-05-18T18:00:30Z Bike: phoe: i don't think there's any rule that f-s-o is a /strict/ subclass? 2020-05-18T18:02:05Z phoe: mop funcallable-standard-object 2020-05-18T18:02:06Z specbot: http://metamodular.com/CLOS-MOP/class-funcallable-standard-object.html 2020-05-18T18:02:13Z phoe: Direct superclasses: function, standard-object 2020-05-18T18:02:19Z phoe: so, directness is in there 2020-05-18T18:02:44Z Bike: oh, weak 2020-05-18T18:07:56Z shifty quit (Ping timeout: 256 seconds) 2020-05-18T18:08:15Z shangul quit (Ping timeout: 260 seconds) 2020-05-18T18:19:07Z orivej quit (Read error: Connection reset by peer) 2020-05-18T18:19:43Z orivej joined #lisp 2020-05-18T18:21:08Z karlosz joined #lisp 2020-05-18T18:21:09Z karlosz quit (Remote host closed the connection) 2020-05-18T18:21:21Z karlosz joined #lisp 2020-05-18T18:21:21Z refpga quit (Read error: Connection reset by peer) 2020-05-18T18:22:42Z refpga joined #lisp 2020-05-18T18:29:27Z keepzen quit (Quit: Connection closed for inactivity) 2020-05-18T18:32:29Z milanj quit (Quit: This computer has gone to sleep) 2020-05-18T18:36:03Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-18T18:37:24Z orivej joined #lisp 2020-05-18T18:40:26Z notzmv joined #lisp 2020-05-18T18:41:11Z Jesin quit (Quit: Leaving) 2020-05-18T18:44:46Z Jesin joined #lisp 2020-05-18T18:49:46Z rogersm quit (Quit: Leaving...) 2020-05-18T18:52:17Z jprajzne quit (Quit: jprajzne) 2020-05-18T18:52:45Z jprajzne joined #lisp 2020-05-18T18:53:52Z zooey joined #lisp 2020-05-18T18:55:24Z ebrasca quit (Remote host closed the connection) 2020-05-18T18:56:47Z jprajzne quit (Client Quit) 2020-05-18T18:57:10Z jprajzne joined #lisp 2020-05-18T18:58:05Z rixard_ quit (Remote host closed the connection) 2020-05-18T18:58:19Z rixard joined #lisp 2020-05-18T18:59:00Z yottabyte: how do I specify query parameters in drakma? I tried to specify the :parameters but I have a GET request and it's trying to put that in the request body (which doesn't exist for GET requests) 2020-05-18T19:05:27Z rogersm joined #lisp 2020-05-18T19:06:02Z xantoz quit (Quit: WeeChat 2.8) 2020-05-18T19:06:29Z Josh_2: :parameters is supposed to be an alist I believe 2020-05-18T19:06:53Z Josh_2: oh right 2020-05-18T19:06:57Z Josh_2: well I don't know am afraid 2020-05-18T19:07:56Z anticrisis joined #lisp 2020-05-18T19:08:09Z xantoz joined #lisp 2020-05-18T19:11:28Z pjb quit (Ping timeout: 265 seconds) 2020-05-18T19:12:10Z yottabyte: I've been trying to add the query parameters explicitly on the end of the uri string, but encoding them is being problematic. for example (do-urlencode:urlencode "=") => %30 2020-05-18T19:12:20Z yottabyte: this is not what javascript does though. = remain = 2020-05-18T19:15:32Z buffergn0me joined #lisp 2020-05-18T19:17:54Z FreeBirdLjj joined #lisp 2020-05-18T19:17:57Z orivej quit (Read error: Connection reset by peer) 2020-05-18T19:18:33Z orivej joined #lisp 2020-05-18T19:18:45Z rogersm quit 2020-05-18T19:22:27Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-18T19:31:14Z orivej quit (Ping timeout: 256 seconds) 2020-05-18T19:32:14Z orivej joined #lisp 2020-05-18T19:33:32Z efm quit (Ping timeout: 258 seconds) 2020-05-18T19:35:55Z fourier joined #lisp 2020-05-18T19:42:36Z pjb joined #lisp 2020-05-18T19:45:02Z Bourne quit (Ping timeout: 258 seconds) 2020-05-18T19:50:37Z rpg joined #lisp 2020-05-18T19:50:45Z rpg: Fare: ping? 2020-05-18T19:51:29Z efm joined #lisp 2020-05-18T19:57:32Z orivej quit (Ping timeout: 256 seconds) 2020-05-18T19:58:06Z orivej joined #lisp 2020-05-18T19:59:36Z lemoinem quit (Killed (orwell.freenode.net (Nickname regained by services))) 2020-05-18T19:59:38Z lemoinem joined #lisp 2020-05-18T20:10:37Z madage quit (Remote host closed the connection) 2020-05-18T20:10:56Z madage joined #lisp 2020-05-18T20:16:36Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-18T20:17:46Z orivej joined #lisp 2020-05-18T20:25:14Z shka_ quit (Ping timeout: 265 seconds) 2020-05-18T20:26:13Z Bourne joined #lisp 2020-05-18T20:26:53Z SGASAU quit (Remote host closed the connection) 2020-05-18T20:27:36Z SGASAU joined #lisp 2020-05-18T20:27:47Z fourier quit (Ping timeout: 260 seconds) 2020-05-18T20:28:02Z lavaflow quit (Ping timeout: 272 seconds) 2020-05-18T20:33:04Z narimiran quit (Ping timeout: 256 seconds) 2020-05-18T20:37:18Z lavaflow joined #lisp 2020-05-18T20:37:30Z zmt01 joined #lisp 2020-05-18T20:37:32Z theseb: Can someone see https://pastebin.com/tNMse6f5 ??? Trying to understand why function f emits output but not function g 2020-05-18T20:37:41Z SGASAU quit (Remote host closed the connection) 2020-05-18T20:38:21Z theseb: Only difference is extra parameter c 2020-05-18T20:38:29Z Shinmera: no? 2020-05-18T20:38:42Z holycow joined #lisp 2020-05-18T20:38:50Z theseb: Shinmera: its a free country 2020-05-18T20:38:52Z orivej quit (Ping timeout: 260 seconds) 2020-05-18T20:38:56Z orivej_ joined #lisp 2020-05-18T20:38:58Z theseb: at least for now 2020-05-18T20:39:10Z Shinmera: wtf are you talking about 2020-05-18T20:39:24Z theseb: Shinmera: regarding lisp or freedom? 2020-05-18T20:40:45Z phoe: theseb: function G does not have any code for emitting output. 2020-05-18T20:40:53Z scymtym joined #lisp 2020-05-18T20:41:09Z zmt00 quit (Ping timeout: 244 seconds) 2020-05-18T20:41:26Z Bike: "No, it is not the case that the only difference is the extra parameter" 2020-05-18T20:41:32Z phoe: you tell LOOP that it should "do c". So it does - evaluating the variable C returns the two-element list (PRINT Z), and that's all. 2020-05-18T20:41:38Z phoe: Also, what Bike said up there. 2020-05-18T20:41:47Z theseb: phoe: yes but because g is a regular function...(g 'z '(5 6 7 8) '(print z)) sets i=z l=(5 6 7 8) and c = (print z) 2020-05-18T20:41:56Z phoe: theseb: yes. 2020-05-18T20:41:57Z Bike: you seem very confused about how evaluation works. 2020-05-18T20:42:00Z theseb: phoe: yes? 2020-05-18T20:42:05Z phoe: theseb: yes. 2020-05-18T20:42:05Z theseb: phoe: ok i'm not crazy 2020-05-18T20:42:15Z Bike: you think that if you have a variable bound to the list (PRINT 'Z), every time you read that variable it will call print? 2020-05-18T20:42:19Z phoe: it's a difference between (loop ... do (print i)) and (loop ... do '(print i)) 2020-05-18T20:42:19Z Bike: that is not how the language works. 2020-05-18T20:42:35Z phoe: one of these is a function call, the other is literal data. 2020-05-18T20:42:46Z jackdaniel: lisp is very slow, especially with loops. I've started one and it still runs 2020-05-18T20:42:48Z jackdaniel: (loop) 2020-05-18T20:42:48Z Bike: don't we have a noob channel? 2020-05-18T20:42:53Z phoe: we do! #clschool 2020-05-18T20:44:32Z theseb: Bike: but l got replace with (5 6 7 8)....why didn't c also get replaced with its value? 2020-05-18T20:44:36Z theseb: replaced* 2020-05-18T20:44:48Z Bike: it is replaced with its value, which is a list starting with the symbol PRINT 2020-05-18T20:44:53Z phoe: theseb: it got replaced with its value 2020-05-18T20:44:56Z Bike: it does not evaluate that value, because why would it? 2020-05-18T20:45:18Z Bike: as p hoe said, this is like writing (loop for i in l do '(print z)) 2020-05-18T20:45:24Z phoe: L is now bound to a four-element list and C is now bound to a two-element list 2020-05-18T20:45:28Z Bike: try putting that in your repl, with some list l. observe that nothing is printed 2020-05-18T20:45:33Z theseb: Bike: wait..who put the ' in front of (print z)? 2020-05-18T20:45:37Z phoe: me 2020-05-18T20:45:39Z Bike: you did 2020-05-18T20:45:46Z Bike: (g 'z '(5 6 7 8) '(print z)) 2020-05-18T20:45:54Z Bike: it's like, what, the twentieth character? 2020-05-18T20:45:54Z phoe: oh! yes, right 2020-05-18T20:46:07Z phoe: I just moved that quote from the function call over to the loop body 2020-05-18T20:46:12Z theseb: Bike: yes but BEFORE g "sees" that stuff it gets evaluated 2020-05-18T20:46:23Z phoe: yes, and it produces a two-element list 2020-05-18T20:46:24Z Bike: yes, '(print z) is evaluated to a list of two elements. 2020-05-18T20:46:30Z phoe: and this list becomes bound to the variable C 2020-05-18T20:46:38Z theseb: Bike: so far we all agree 2020-05-18T20:46:40Z phoe: and then you tell your loop to (... do c) 2020-05-18T20:46:42Z Bike: We really don't. 2020-05-18T20:46:43Z phoe: so C is evaluated 2020-05-18T20:46:48Z phoe: and produces a list of two elements 2020-05-18T20:46:58Z theseb: yes (print z) 2020-05-18T20:47:00Z phoe: yes 2020-05-18T20:47:04Z Bike: But that list is not executed. 2020-05-18T20:47:07Z Bike: Because again, why would it be. 2020-05-18T20:47:09Z phoe: and so the iteration continues 2020-05-18T20:47:18Z phoe: each time C is evaluated to produce a list of two elements 2020-05-18T20:47:24Z phoe: and then the iteration finishes, and the function G quits 2020-05-18T20:47:30Z phoe: why would anything be printed here 2020-05-18T20:48:07Z theseb: Bike: CL does a "search and replace" before executing the loop....so it invokes (for z in (5 6 7 8) do (print z)) 2020-05-18T20:48:13Z phoe: NO 2020-05-18T20:48:16Z theseb: no? 2020-05-18T20:48:16Z phoe: it does not. 2020-05-18T20:48:22Z theseb: ok...that's my confusion 2020-05-18T20:48:27Z phoe: there is NO search and replace in Common Lisp's evaluation model 2020-05-18T20:48:31Z Bike: You are seriously misunderstanding the language semantics, like I said. 2020-05-18T20:48:32Z akoana joined #lisp 2020-05-18T20:48:49Z phoe: otherwise, (let ((x (print 42))) (list x x x x x)) would print 42 five times. 2020-05-18T20:48:55Z Bike: You could conceive of it as doing a search and replace. In that case it would replace C with '(print z). 2020-05-18T20:48:57Z phoe: and, no, it only prints it once. 2020-05-18T20:49:07Z Bike: So you'd get (loop for i in '(5 6 7 8) do '(print z)). 2020-05-18T20:49:12Z Bike: like i said earlier. 2020-05-18T20:49:48Z theseb: phoe: "search and replace" may be a newb way to describe it....it is like in math.....f(x) = x + 1....to get f(4) in your head to do a "search and replace" to get 4 + 1..then you "execute" that 2020-05-18T20:50:04Z theseb: 5 2020-05-18T20:50:12Z theseb: everyone's happy 2020-05-18T20:50:13Z Bike: it's not completely unreasonable. But in this case you are doing the substitution incorrectly. 2020-05-18T20:50:19Z phoe: ^ 2020-05-18T20:50:35Z phoe: you perform an additional evaluation 2020-05-18T20:50:44Z phoe: and so (loop for i in '(5 6 7 8) do '(print z)) becomes (loop for i in '(5 6 7 8) do (print z)) 2020-05-18T20:50:48Z phoe: that's not how it works 2020-05-18T20:50:52Z Bike: Substitution semantics also don't work when side effects exist, so you should try to avoid that model. 2020-05-18T20:50:59Z phoe: ^ 2020-05-18T20:51:04Z phoe: that is the very very important point 2020-05-18T20:51:05Z Bike: Actually it would be (loop for i in (5 6 7 8) do (print z)), so you'd get an illegal function call 2020-05-18T20:51:33Z phoe: oh, right! if you apply that to the second variable, why do you not apply it to the first one too 2020-05-18T20:51:35Z devon quit (Ping timeout: 260 seconds) 2020-05-18T20:52:32Z Bike: the trick is that, when the substitution is valid, it IS evaluation. It's not evaluate and then substitute, it's just substitute. 2020-05-18T20:56:33Z theseb: Bike: "It's not evaluate and then substitute, it's just substitute." <--- but i thought regular functions has to evaluate their args before anything happens..at least i think that's what SICP taught me about scheme 2020-05-18T20:56:47Z Bike: Yes. That is why the substitution model is invalid. 2020-05-18T20:57:20Z theseb: Bike: are you saying i'm wrong to think the args get pre-evaluated? 2020-05-18T20:57:30Z Bike: No, you're wrong to think they are post-evaluated. 2020-05-18T20:57:42Z Bike: You seem to think that an argument is evaluated, and then the result of that evaluation is again evaluated. 2020-05-18T20:57:46Z Bike: That is not how it works. 2020-05-18T20:58:12Z Bike: In your model, first '(print z) evaluates to (print z), and then (print z) is evaluated to print. That's not correct. 2020-05-18T20:58:24Z Bike: evaluated to print -> i mean, it calls the print function. 2020-05-18T20:59:00Z theseb: Bike: yes..the loop invocation calls the print function no? 2020-05-18T20:59:28Z Bike: Have you just ignored what we've been telling you for the last twenty minutes? No, it does not. Why would it? Why on earth would everything be evaluated twice? 2020-05-18T21:00:13Z orivej_ quit (Ping timeout: 264 seconds) 2020-05-18T21:00:19Z theseb: Bike: i thought the loop was like a machine that evaluates what you feed it 2020-05-18T21:00:28Z theseb: and we feed it (print z) 2020-05-18T21:00:29Z phoe: no 2020-05-18T21:00:32Z Bike: Vague and nonsensical. 2020-05-18T21:00:36Z phoe: it doesn't evaluate anything 2020-05-18T21:00:50Z orivej joined #lisp 2020-05-18T21:00:58Z Bike: Please use the school channel or something. You are misunderstanding very basic aspects of the language. 2020-05-18T21:01:10Z theseb: ok....must think some more 2020-05-18T21:01:19Z phoe: it only expands itself into some code that then, upon being evaluated, performs actual iteration 2020-05-18T21:01:26Z phoe: to simplify your example, (let ((i 'z) (l '(5 6 7 8)) (c '(print z))) (loop for i in l do c)) 2020-05-18T21:02:04Z phoe: let us forget that this doesn't compile for a moment 2020-05-18T21:02:19Z theseb: ok 2020-05-18T21:02:30Z theseb: that example doesn't work by the way...which i'm sure you knew already 2020-05-18T21:02:36Z theseb: i just tested it ;) 2020-05-18T21:02:43Z phoe: that's your example from line 7 2020-05-18T21:02:54Z phoe: I just replaced the function call with variable bindings 2020-05-18T21:03:01Z theseb: right 2020-05-18T21:03:21Z Bike: if you've read some of SICP, you should write a basic scheme interpreter yourself and see how things are evaluated and how macroexpansion and function calls work. 2020-05-18T21:03:22Z phoe: anyway, (let ((i 'z) (l '(5 6 7 8)) (c '(print z))) (loop for i in l do (progn c))) 2020-05-18T21:03:25Z phoe: that'll work 2020-05-18T21:03:29Z Bike: it's like a page or two of code. 2020-05-18T21:03:50Z phoe: what is the value of L? 2020-05-18T21:03:56Z theseb: (5 6 7 8) 2020-05-18T21:04:07Z phoe: what is the value of C? 2020-05-18T21:04:14Z theseb: (print z) 2020-05-18T21:04:24Z phoe: what is the type of both of these values? 2020-05-18T21:04:28Z theseb: lists 2020-05-18T21:04:29Z Bike left #lisp 2020-05-18T21:05:05Z phoe: good 2020-05-18T21:05:17Z phoe: inside your LOOP code, you evaluate C 2020-05-18T21:05:19Z theseb: phoe: your last example doesn't work either 2020-05-18T21:05:23Z theseb: the one with progn 2020-05-18T21:05:30Z phoe: it works for me 2020-05-18T21:05:36Z phoe: it produces no output and NIL, as it should 2020-05-18T21:05:46Z theseb: oh yes 2020-05-18T21:05:49Z rixard: theseb: are you running a CL or Scheme interpreter? 2020-05-18T21:05:51Z theseb: i meant no output 2020-05-18T21:05:51Z phoe: and a compile-time warning 2020-05-18T21:05:56Z theseb: running at https://www.tutorialspoint.com/execute_lisp_online.php 2020-05-18T21:06:03Z phoe: theseb: no, it works 2020-05-18T21:06:13Z phoe: where do you think that output is supposed to be produced? 2020-05-18T21:06:35Z theseb: phoe: https://www.tutorialspoint.com/execute_lisp_online.php should print it like all the other output? 2020-05-18T21:06:42Z theseb: phoe: on left? 2020-05-18T21:07:08Z theseb: if i do (print "hello") it shows up on left 2020-05-18T21:07:14Z phoe: yes 2020-05-18T21:07:23Z bitmapper joined #lisp 2020-05-18T21:07:25Z theseb: but the print in your progn does not 2020-05-18T21:07:25Z phoe: and if you do '(print "hello") then it doesn't. 2020-05-18T21:07:30Z theseb: right 2020-05-18T21:07:34Z bitmapper quit (Client Quit) 2020-05-18T21:07:35Z phoe: there's no PRINT in my PROGN 2020-05-18T21:07:47Z theseb: phoe: but c = (print z) 2020-05-18T21:07:52Z phoe: yes 2020-05-18T21:07:53Z phoe: all I do in my progn is evaluating a variable 2020-05-18T21:07:58Z phoe: what is the value of C? 2020-05-18T21:08:03Z theseb: (print z) 2020-05-18T21:08:07Z phoe: perfect, it's a list 2020-05-18T21:08:11Z phoe: so evaluation's done 2020-05-18T21:08:14Z phoe: next please 2020-05-18T21:08:27Z bitmapper joined #lisp 2020-05-18T21:08:27Z theseb: but evaluation will have the side effect of printing right? 2020-05-18T21:08:31Z phoe: no 2020-05-18T21:08:34Z theseb: NO? 2020-05-18T21:08:51Z phoe: why would evaluating a variable perform printing 2020-05-18T21:08:57Z phoe: we evaluate the symbol C 2020-05-18T21:09:10Z theseb: yes 2020-05-18T21:09:19Z phoe: and that produces some value 2020-05-18T21:09:23Z phoe: and that's all 2020-05-18T21:09:29Z phoe: where is printing supposed to fit in here 2020-05-18T21:10:08Z theseb: phoe: i thought the loop invocation would then eval things again 2020-05-18T21:10:15Z Josh_2: oof 2020-05-18T21:10:16Z phoe: why would it 2020-05-18T21:10:20Z phoe: no, it doesn't 2020-05-18T21:10:29Z phoe: please consider (let ((i 'z) (l '(5 6 7 8)) (c '(1 2 3 4))) (loop for i in l do (progn c))) 2020-05-18T21:10:36Z phoe: in which the value of C is now (1 2 3 4) 2020-05-18T21:10:56Z theseb: ok 2020-05-18T21:10:59Z phoe: and it is perfectly allowed to be (1 2 3 4) 2020-05-18T21:11:02Z theseb: yes 2020-05-18T21:11:14Z theseb: well get (progn (1 2 3 4)) 2020-05-18T21:11:19Z phoe: yes 2020-05-18T21:11:25Z phoe: and that's an error 2020-05-18T21:11:29Z theseb: right 2020-05-18T21:11:45Z phoe: so your mental model of replacing stuff is broken 2020-05-18T21:11:59Z phoe: where did you lose your quote 2020-05-18T21:12:13Z phoe: if C is '(1 2 3 4) then why did you replace C with (1 2 3 4) without the quote 2020-05-18T21:12:33Z theseb: phoe: because you said C = (1 2 3 4) 2020-05-18T21:12:57Z phoe: that's the value of C 2020-05-18T21:13:00Z theseb: yes 2020-05-18T21:13:20Z phoe: if we want to insert literal values into code, we must quote them 2020-05-18T21:13:32Z phoe: that's why the variable binding is also (let ((c '(1 2 3 4))) ...) 2020-05-18T21:14:21Z phoe: I said that the *VALUE* of C is the list (1 2 3 4) because it is a result of eVALUEating '(1 2 3 4) 2020-05-18T21:14:31Z theseb: yes 2020-05-18T21:14:58Z theseb: phoe: here's a simpler example (defun add (x y) (+ x y)) 2020-05-18T21:14:58Z theseb: (print (add 10 3)) 2020-05-18T21:15:11Z theseb: phoe: x and y get replace with 10 and 3... 2020-05-18T21:15:18Z Inline: welp, let has already an implicit progn..... 2020-05-18T21:15:23Z phoe: you are using self-evaluating objects. 2020-05-18T21:15:30Z phoe: 10 evaluates to 10, 3 evaluates to 3. 2020-05-18T21:15:45Z theseb: yea...bad example 2020-05-18T21:15:51Z phoe: the resulting values 10 and 3 get added, giving 13, and that is then printed. 2020-05-18T21:16:10Z Inline: (let ((c '(1 2 3 4))) c) => (1 2 3 4) 2020-05-18T21:16:18Z Inline: so it got evaled 2020-05-18T21:16:27Z phoe: Inline: yes, but we were considering an example with LOOP earlier which does not have an implicit progn 2020-05-18T21:16:39Z Inline: ah ok 2020-05-18T21:17:16Z theseb: phoe: so your point is function arguments get evaluated and then that DATA is used without being evaluated a second time? 2020-05-18T21:17:21Z Inline: so an extra progn in a let does not mean evaluating twice too..... 2020-05-18T21:17:24Z phoe: theseb: YES 2020-05-18T21:17:28Z Inline: just noting..... 2020-05-18T21:17:36Z phoe: nowhere in the Lisp model data gets evaluated twice 2020-05-18T21:17:44Z Inline: the implicit just shadows the explicit 2020-05-18T21:17:49Z phoe: after their initial evaluation, values are just passed as-is. 2020-05-18T21:18:25Z rixard quit (Remote host closed the connection) 2020-05-18T21:18:26Z phoe: you can force Lisp values to get evaluated again by using EVAL, but that's explicitly asking the compiler to perform evaluation again. 2020-05-18T21:18:36Z Inline: right 2020-05-18T21:18:55Z rixard joined #lisp 2020-05-18T21:18:59Z theseb: phoe: i thought when you had NESTED functions...a calls b calls c .... 2020-05-18T21:19:12Z theseb: phoe: that every new level that gets the DATA but evaluate it again 2020-05-18T21:19:18Z phoe: that would massively suck 2020-05-18T21:19:37Z theseb: phoe: but we both agree that EVERY regular function call must eval its arguments first 2020-05-18T21:19:43Z theseb: phoe: that is what was confusing me 2020-05-18T21:19:50Z phoe: theseb: correct 2020-05-18T21:20:04Z phoe: let's consider (+ 1 (+ 2 (+ 3 4))) 2020-05-18T21:20:07Z karayan quit (Remote host closed the connection) 2020-05-18T21:20:18Z theseb: phoe: so if a calls b calls c .... then every time you pass the data to a new function it has to get evaluated again 2020-05-18T21:20:22Z phoe: no 2020-05-18T21:20:25Z phoe: why would it 2020-05-18T21:20:35Z phoe: in order to call the outermost + function, its arguments must be evaluated 2020-05-18T21:20:42Z phoe: 1 evals to 1 2020-05-18T21:20:46Z theseb: phoe: because the rules of function invocation say..."eval the data first and then do something with that" 2020-05-18T21:21:04Z theseb: ^^^^ 2020-05-18T21:21:17Z phoe: yes 2020-05-18T21:21:21Z theseb: and we have 3 invocations of the same data 2020-05-18T21:21:28Z theseb: functions a b and c 2020-05-18T21:21:38Z theseb: so EACH invocation needs do follow that rule ^^^ 2020-05-18T21:22:10Z theseb: (defun a (my-data) (b my-data)) 2020-05-18T21:22:13Z phoe: (defun a (x) (+ x 1)) (defun b (x) (+ x 2)) (defun c (x) (+ x 3)) 2020-05-18T21:22:20Z phoe: (a (b (c 4))) 2020-05-18T21:22:41Z phoe: in order to evaluate (a (b (c 4))) we must evaluate its argument, which is (b (c 4)) 2020-05-18T21:22:50Z theseb: yes 2020-05-18T21:22:51Z phoe: in order to evaluate (b (c 4)) we must evaluate its argument, which is (c 4) 2020-05-18T21:22:59Z phoe: in order to evaluate (c 4) we must evaluate its argument, which is 4 2020-05-18T21:22:59Z theseb: yes 2020-05-18T21:23:06Z theseb: yes 2020-05-18T21:23:18Z phoe: 4 evaluates to 4 2020-05-18T21:23:25Z phoe: so we add 4 to 3 and get 7 2020-05-18T21:23:40Z phoe: that 7 gets then added to 2 and we get 9 2020-05-18T21:23:48Z phoe: that 9 gets then added to 1 and we get 10 2020-05-18T21:23:50Z phoe: that's all 2020-05-18T21:24:27Z White_Flame: (a (b (c 4)) => (a (b 7)) => (a 9) => 10 2020-05-18T21:24:40Z phoe: note that 7 *DOES NOT* get evaluated anywhere 2020-05-18T21:24:41Z White_Flame: this is no diffferent than any other major language 2020-05-18T21:24:53Z phoe: neither is 9 2020-05-18T21:24:54Z karayan joined #lisp 2020-05-18T21:24:57Z phoe: and neither is 10 2020-05-18T21:25:19Z theseb: i see it 2020-05-18T21:25:45Z phoe: evaluation === producing a value 2020-05-18T21:25:53Z phoe: once you have a value, you have it, you can operate on it 2020-05-18T21:26:02Z phoe: you don't need to evaluate again because you already have a value 2020-05-18T21:26:17Z theseb: yes 2020-05-18T21:26:30Z phoe: so, yes, EACH function invocation needs to follow the rule of function invocation that says "eval the data first and then do something with it" 2020-05-18T21:26:38Z phoe: so I just followed it on a simple addition example 2020-05-18T21:26:50Z phoe: literally did what you quoted 2020-05-18T21:27:00Z orivej quit (Ping timeout: 258 seconds) 2020-05-18T21:27:15Z orivej joined #lisp 2020-05-18T21:27:41Z theseb: yes 2020-05-18T21:28:04Z phoe: so what's the problem 2020-05-18T21:28:19Z Inline: there's no multiple evaluation there 2020-05-18T21:28:38Z arpunk quit (Remote host closed the connection) 2020-05-18T21:30:01Z White_Flame: theseb: looking back at your original question, you're really wanting either a macro (which does composite together sexprs as literal source code at compile-time) or an inline EVAL (when the code isn't available at compile-time). Neither of these are likely what you really intend for the problem though, they are mappings of your solution to get them to work 2020-05-18T21:30:15Z theseb: phoe: should this work?...i wrote a for macro that works like this (for i (3 4 5) ....) 2020-05-18T21:30:34Z phoe: theseb: we've already discussed this, like, one or two days ago. 2020-05-18T21:30:42Z theseb: phoe: can i wrap with a regular function...call it for-wrapper...and then do (for-wrapper 'i '(3 4 5) ...)? 2020-05-18T21:30:43Z mathrick quit (Remote host closed the connection) 2020-05-18T21:31:14Z mathrick joined #lisp 2020-05-18T21:31:22Z gravicappa quit (Ping timeout: 256 seconds) 2020-05-18T21:31:35Z theseb: phoe: i got everything you said...but a similar wrapper like ^^^ doesn't work in my lisp implementation and my brain is fried so not sure if it is a bug or my misunderstanding 2020-05-18T21:31:41Z ahungry quit (Read error: Connection reset by peer) 2020-05-18T21:31:45Z White_Flame: if you want to pass in functionality, the easiest way is to give it a function object, likely a LAMBDA form 2020-05-18T21:31:53Z White_Flame: if you want to pass in data like a list, then it's a simple quote 2020-05-18T21:31:57Z buffergn0me quit (Ping timeout: 260 seconds) 2020-05-18T21:32:01Z aeth: White_Flame: while (a (b (c 4))) is no different than any other major language, a hypothetical (a (b 4) (c 4)) can often differ between languages because some are left to right, some are right to left, some are unspecified, and a few are probably some weird order. 2020-05-18T21:32:07Z aeth: iirc, CL is specified to be left-to-right 2020-05-18T21:32:23Z White_Flame: right, and most popular languages are left-to-right, eager evaluation 2020-05-18T21:32:40Z Inline: yes but you have a reader first 2020-05-18T21:32:58Z aeth: White_Flame: quite a few popular languages are unspecified order, iirc including C. Almost every language is eager. But this is getting off-topic. 2020-05-18T21:33:04Z phoe: theseb: look at the body of your FOR-WRAPPER and do the evaluation steps yourself. 2020-05-18T21:33:04Z Inline: it chews the full chunk 2020-05-18T21:33:19Z phoe: figure out what gets evaluated to what inside your function. 2020-05-18T21:33:24Z White_Flame: right,the topic is theseb's understanding as it intersects with Lisp. I don't think that esoteric evaluation semantics are involved 2020-05-18T21:33:41Z phoe: White_Flame: let's assume left-to-right, that's what CL does anyway. 2020-05-18T21:33:44Z White_Flame: (except for any that crop of from misunderstanding CL) 2020-05-18T21:34:07Z White_Flame: *crop up 2020-05-18T21:34:18Z aeth: White_Flame: right, the only important thing is that CL is eager and LTR 2020-05-18T21:34:25Z cracauer quit (Ping timeout: 264 seconds) 2020-05-18T21:34:34Z Lord_of_Life_ joined #lisp 2020-05-18T21:34:53Z mathrick quit (Remote host closed the connection) 2020-05-18T21:34:55Z aeth: (well, there might be a few other necessary points to mention, like CL does *not* copy the function arguments when you call a function.) 2020-05-18T21:35:14Z mathrick joined #lisp 2020-05-18T21:35:49Z hdasch quit (Ping timeout: 258 seconds) 2020-05-18T21:36:20Z hdasch joined #lisp 2020-05-18T21:36:21Z theseb: phoe: because for-wrapper is a regular function...the input is first evaluated....giving i = i, l = (3 4 5) 2020-05-18T21:36:33Z phoe: yep 2020-05-18T21:36:37Z phoe: you get lists 2020-05-18T21:36:44Z phoe: you get data, not code/actions 2020-05-18T21:36:57Z theseb: ok wait let me specify for-wrapper 2020-05-18T21:37:01Z phoe: and that's not very impressive when you want to perform some side effects, such as printing stuffs 2020-05-18T21:37:14Z theseb: (defun for-wrapper (i l c) (for i l c)) 2020-05-18T21:37:22Z Lord_of_Life quit (Ping timeout: 258 seconds) 2020-05-18T21:37:25Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-18T21:37:27Z theseb: (for i (3 4 5) ...) works 2020-05-18T21:37:57Z phoe: if FOR is a macro, then its macro function receives its arguments unevaluated 2020-05-18T21:37:58Z theseb: (for-wrapper 'i '(3 4 5) ...)....step 1...do eval...so i = i and l = (3 4 5) and c = ... 2020-05-18T21:38:16Z theseb: do the substitution..so you get (for i (3 4 5) ...) which should work 2020-05-18T21:38:20Z phoe: what does (for i l c) expand into? 2020-05-18T21:38:22Z theseb: because i said (for i (3 4 5) ...) works 2020-05-18T21:38:33Z theseb: phoe: it expands into 2020-05-18T21:38:40Z theseb: phoe: (for i (3 4 5) ...) 2020-05-18T21:38:58Z phoe: wait, how can FOR expand into FOR 2020-05-18T21:39:17Z theseb: (for-wrapper 'i 'l '....) 2020-05-18T21:39:20Z phoe: no 2020-05-18T21:39:21Z phoe: I asked 2020-05-18T21:39:24Z phoe: what does (for i l c) expand into? 2020-05-18T21:39:42Z phoe: I didn't ask anything about for-wrapper 2020-05-18T21:39:47Z theseb: according to my lisp implementation the for macros literally gets i l and c 2020-05-18T21:39:54Z theseb: macro* 2020-05-18T21:40:01Z phoe: correct, that's what a macro should get 2020-05-18T21:40:06Z theseb: NOT (for i (3 4 5) ...) 2020-05-18T21:40:08Z phoe: I mean, as its arguments 2020-05-18T21:40:12Z phoe: yes! 2020-05-18T21:40:21Z phoe: macro functions get their arguments unevaluated. 2020-05-18T21:40:30Z phoe: that's one of the main differences between function calls and macro calls. 2020-05-18T21:40:36Z theseb: phoe: yes 2020-05-18T21:41:05Z theseb: phoe: but for-wrapper i thought did the "search and replace" on the i l and c in (for i l c) 2020-05-18T21:41:31Z phoe: nope, for-wrapper itself is a function. all it has is three variables that are its function arguments. 2020-05-18T21:41:44Z phoe: and you get data passed to it, which are symbols and lists. 2020-05-18T21:42:32Z phoe: once the macro is expanded, then it's expanded; the function is left with whatever expansion the macro produced, but it *still* gets its arguments as data. 2020-05-18T21:42:40Z theseb: phoe: so if my for was a regular function the i l and c would get replaced 2020-05-18T21:42:42Z theseb: ? 2020-05-18T21:42:43Z Inline: how do you read defmethod forms when they are referencing globals in their respective file ? 2020-05-18T21:42:45Z theseb: yes of course 2020-05-18T21:42:51Z theseb: sigh 2020-05-18T21:43:00Z mathrick quit (Remote host closed the connection) 2020-05-18T21:43:03Z phoe: theseb: replaced, how? 2020-05-18T21:43:16Z phoe: Inline: globals, do you mean variables, defvar and such? 2020-05-18T21:43:27Z White_Flame: "replaced" isn't a standard term. When slicing into such specific details, it's best to use "bound", "evaluated", "referenced", etc 2020-05-18T21:43:39Z Inline: yes *blah* and co +blah+ 2020-05-18T21:43:41Z theseb: (defun for-wrapper (i l c) (some-func i l c)) 2020-05-18T21:44:07Z theseb: (for-wrapper 'i '(3 4 5) '(print z)) 2020-05-18T21:44:08Z phoe: theseb: then SOME-FUNC will be called with the same set of values that FOR-WRAPPER was called with 2020-05-18T21:44:15Z Inline: since i'm trying to read them into different files, at some point the repl barfs 2020-05-18T21:44:22Z phoe: Inline: uh, normally? I don't get any errors that way 2020-05-18T21:44:23Z theseb: the subsitution gives (some-func i (3 4 5) (print z)) 2020-05-18T21:44:36Z phoe: theseb: again, where did you lose your quotes 2020-05-18T21:44:43Z White_Flame: theseb: and it would be called _at compile time_, and the results of the SOME-FUNC call would be returned as the new source code to compile & execute at runtime! 2020-05-18T21:44:57Z Inline: phoe 2020-05-18T21:45:00Z Inline: err wait 2020-05-18T21:45:14Z phoe: Inline: can your post your code online? Also, what's the concrete error that you get? 2020-05-18T21:45:57Z White_Flame: theseb: it is extremely likely that you want the intended LOOP exeucted at runtime, with runtime arguments, not at compile-time 2020-05-18T21:46:29Z theseb: phoe: i think if you can just explain why it becomes (some-func 'i '(3 4 5) '(print z)) i'll be good 2020-05-18T21:46:51Z theseb: phoe: if you don't mind....you've helped a lot already 2020-05-18T21:46:53Z phoe: theseb: (for-wrapper 'i '(3 4 5) '(print z)) 2020-05-18T21:46:55Z White_Flame: it doesn't. "become" means the return value from the defmacro body 2020-05-18T21:46:58Z phoe: the variable I is bound to the symbol I 2020-05-18T21:47:04Z White_Flame: the macro is a source->source transformatino 2020-05-18T21:47:10Z phoe: the variable L is bound to the list (3 4 5) 2020-05-18T21:47:17Z phoe: the variable C is bound to the list (PRINT Z) 2020-05-18T21:47:24Z phoe: and SOME-FUNC is called with these three values 2020-05-18T21:47:31Z phoe: that's all 2020-05-18T21:47:42Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2020-05-18T21:47:44Z phoe: there is no second evaluation step here 2020-05-18T21:48:14Z theseb: Wow 2020-05-18T21:48:19Z White_Flame: theseb: the "it" in "it becomes" is being missed here 2020-05-18T21:48:21Z phoe: you still have a mental substitution model that implies that after each substitution you need to evaluate again 2020-05-18T21:48:23Z nightfly quit (Read error: Connection reset by peer) 2020-05-18T21:48:28Z theseb: that took a lot to reach that 2020-05-18T21:48:33Z phoe: no, you don't, please throw that model in the nearest garbage collector. 2020-05-18T21:48:43Z phoe: evaluation happens once, and that's enough. 2020-05-18T21:49:22Z theseb: phoe: how can i repay you....this was really valuable 2020-05-18T21:49:24Z phoe: also your model seemed to enjoy sticking literal values into code without quoting them first. 2020-05-18T21:49:24Z theseb: and took a lot of time 2020-05-18T21:50:12Z phoe: theseb: sooner or later, a person will come at #lisp or #clschool asking novice Lisp questions 2020-05-18T21:50:34Z theseb: phoe: so to fix my mental model i need to add quotes 2020-05-18T21:50:37Z phoe: you will repay me well enough by answering them to the best of your ability and fixing up your knowledge in places where you are unable to answer their questions 2020-05-18T21:51:00Z theseb: ok 2020-05-18T21:51:01Z phoe: ;; also, my patreon is over there, but you likely didn't mean that sort of payment 2020-05-18T21:51:20Z phoe: theseb: yes, quotes should work well in that case when you're substituting function arguments. 2020-05-18T21:51:20Z Inline: phoe: https://controlc.com/39cc6c4d 2020-05-18T21:51:20Z theseb: no really../pm your patreon 2020-05-18T21:51:37Z phoe: also note that it'll break whenever you have side effects, such as printing. 2020-05-18T21:51:45Z pve quit (Quit: leaving) 2020-05-18T21:51:48Z phoe: as I said earlier, (let ((x (print 42))) (list x x x x x)) prints once 2020-05-18T21:52:05Z phoe: but (list (print 42) (print 42) (print 42) (print 42) (print 42)) prints five times 2020-05-18T21:52:26Z White_Flame: and if you're running the loop at compile-time, (defun foo () (for ..)) will run the loop once, no matter how many times you call FOO 2020-05-18T21:53:02Z theseb: phoe: that one is interesting because i don't know what the "value" of (print 42) is 2020-05-18T21:53:06Z theseb: so not sure what x is = to 2020-05-18T21:53:11Z phoe: PRINT returns the value it printed 2020-05-18T21:53:17Z theseb: ah 2020-05-18T21:53:18Z phoe: so (print 42) both prints 42 and returns 42 2020-05-18T21:53:20Z theseb: so x = 42 2020-05-18T21:53:26Z phoe: yep 2020-05-18T21:53:34Z phoe: the two returned lists will be #'equal to each other 2020-05-18T21:53:47Z phoe: but your repl will have more printed output in the other case 2020-05-18T21:54:41Z phoe: ;; it's shamefully convenient for print-style debugging; when you have some function call whose value you want to inspect, just wrap (foo) and get a (print (foo)) 2020-05-18T21:54:50Z phoe: and run your code again 2020-05-18T21:55:10Z phoe: that will work as long as you don't play with multiple values, but that can also be worked around 2020-05-18T21:56:42Z aeth: (defun multiple-value-print (&rest values) (format t "~{~A~^ ~}" values) (values-list values)) 2020-05-18T21:56:45Z aeth: (multiple-value-call #'multiple-value-print (values 1 2 3 4)) 2020-05-18T21:57:05Z phoe: annnnnd that's one possible workaround 2020-05-18T21:59:01Z buffergn0me joined #lisp 2020-05-18T21:59:35Z orivej quit (Ping timeout: 258 seconds) 2020-05-18T22:00:32Z holycow: you guys are the best 2020-05-18T22:00:47Z aeth: Technically speaking, you'd probably want to make multiple-value-print a macro that can deal with values and call the function %multiple-value-print or something. 2020-05-18T22:01:13Z aeth: But that's just turning my second line into a macro. 2020-05-18T22:01:39Z phoe: that's trading a special operator (multiple-value-call) for a macro 2020-05-18T22:02:11Z aeth: It's more consistent in the naming, since then you pretend that multiple-value-print is like m-v-c or m-v-b etc. 2020-05-18T22:02:47Z aeth: Another alternative is to use a different name for the function 2020-05-18T22:02:52Z phoe: I'm waiting for multiple-value-break 2020-05-18T22:03:02Z phoe: so I can, like, enter the debugger with multiple values instead of just one 2020-05-18T22:03:34Z aeth: phoe: Well, a multiple-value-break could wrap every argument in (progn ... (break)) 2020-05-18T22:03:52Z phoe: aeth: multiple-value-update-instance-for-redefined-class 2020-05-18T22:04:00Z phoe: that'll be a hit 2020-05-18T22:04:05Z White_Flame: this is what I use, which prints out "EXPR = values": https://pastebin.com/aA19tPLs (cleaned up a bit) 2020-05-18T22:04:17Z phoe: okay, time to sleep 2020-05-18T22:04:21Z phoe: good night 2020-05-18T22:04:45Z White_Flame: having a bunch of plain values printed makes output that's easy to get lost in 2020-05-18T22:04:56Z White_Flame: so the expr that evaluated to it helps a lot 2020-05-18T22:07:53Z arpunk joined #lisp 2020-05-18T22:10:08Z frgo_ quit (Remote host closed the connection) 2020-05-18T22:10:45Z frgo joined #lisp 2020-05-18T22:11:23Z sauvin quit (Ping timeout: 260 seconds) 2020-05-18T22:14:02Z Inline quit (Ping timeout: 246 seconds) 2020-05-18T22:15:15Z sauvin joined #lisp 2020-05-18T22:23:17Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-18T22:30:54Z gaqwas quit (Ping timeout: 272 seconds) 2020-05-18T22:47:24Z ayuce quit (Remote host closed the connection) 2020-05-18T22:53:08Z random-nick quit (Ping timeout: 265 seconds) 2020-05-18T22:58:21Z |Pirx| quit (Remote host closed the connection) 2020-05-18T23:01:55Z libertyprime joined #lisp 2020-05-18T23:04:42Z cosimone quit (Ping timeout: 260 seconds) 2020-05-18T23:05:45Z slyrus__ joined #lisp 2020-05-18T23:08:24Z mono quit (Quit: Leaving) 2020-05-18T23:08:36Z slyrus_ quit (Ping timeout: 265 seconds) 2020-05-18T23:08:47Z rgherdt quit (Ping timeout: 265 seconds) 2020-05-18T23:09:18Z pierpa joined #lisp 2020-05-18T23:14:47Z mathrick joined #lisp 2020-05-18T23:26:56Z Oladon joined #lisp 2020-05-18T23:32:50Z SAL9000 quit (Quit: rebooting...) 2020-05-18T23:33:21Z shifty joined #lisp 2020-05-18T23:35:13Z stoneglass quit (Quit: stoneglass) 2020-05-18T23:36:12Z jprajzne quit (Quit: jprajzne) 2020-05-18T23:42:21Z SAL9000 joined #lisp 2020-05-18T23:43:09Z Lycurgus joined #lisp 2020-05-18T23:45:22Z ADL joined #lisp 2020-05-18T23:45:25Z ADL: https://youtu.be/q7VMx0pjM7M 2020-05-18T23:48:17Z White_Flame: spam 2020-05-18T23:49:07Z White_Flame: likely to get a bunch of clicks for youtube metrics 2020-05-18T23:50:27Z jasom: is there a reason #lisp isn't +r? 2020-05-18T23:50:51Z White_Flame: +r is really annoying, and only enabled when there's a real spam problem 2020-05-18T23:51:10Z White_Flame: leaves a lot of people out in the dust who want to pop in and ask something 2020-05-18T23:53:03Z shifty quit (Ping timeout: 258 seconds) 2020-05-18T23:54:55Z pierpa: it's been enabled because there was a real spam problem 2020-05-19T00:03:39Z wxie joined #lisp 2020-05-19T00:12:38Z theseb quit (Quit: Leaving) 2020-05-19T00:14:06Z Ven`` joined #lisp 2020-05-19T00:17:19Z fluxwave joined #lisp 2020-05-19T00:17:56Z CommanderViral quit (Quit: ZNC 1.7.1+deb1+bionic1 - https://znc.in) 2020-05-19T00:18:13Z aeth: jasom: +r is the one that stops unidentified names from joining right? That's subject to race conditions, especially with the traditional /msg nickserv login, but it's happened to me two or three times with the SSL login which transmits the password before I log in, not right after. 2020-05-19T00:18:15Z CommanderViral joined #lisp 2020-05-19T00:18:41Z aeth: jasom: What that means is that when you disconnect, there's always a small chance that you won't notice and will be effectively auto-kicked from half of the channels you're in 2020-05-19T00:19:08Z jasom: aeth: huh, that's never happened to me with weechat; perhaps it waits before joining channels? 2020-05-19T00:22:30Z aeth: jasom: yeah, I wouldn't be surprised if your client waits like 1 second or something 2020-05-19T00:22:36Z aeth: That would make this situation very unlikely. 2020-05-19T00:23:08Z jasom: I do use SASL authentication 2020-05-19T00:23:24Z ADL: https://youtu.be/I_wRqCywGVE 2020-05-19T00:23:28Z Bourne quit (Read error: Connection reset by peer) 2020-05-19T00:23:40Z stentroad joined #lisp 2020-05-19T00:24:54Z aeth: jasom: yes, but SASL authentication has a race condition on Freenode where you can still fail to appear authenticated, making +r a terrible idea because you can come back to IRC 8 hours later to find that you're not in half of your channels anymore, at least in theory. 2020-05-19T00:25:59Z jasom: aeth: I was pointing out that my client might fail with nicserv authentication, or maybe it's just really slow is all :) 2020-05-19T00:26:23Z aeth: Yeah, my point was, even with SASL over NickServ, it can still happen. 2020-05-19T00:26:28Z aeth: s/over/instead of/ 2020-05-19T00:33:22Z Lord_of_Life_ joined #lisp 2020-05-19T00:34:04Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-19T00:34:44Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-19T00:37:34Z zaquest quit (Quit: Leaving) 2020-05-19T00:38:16Z stentroad quit (Quit: qicr for android: faster and better) 2020-05-19T00:38:28Z stentroad_ joined #lisp 2020-05-19T00:38:28Z stentroad_ quit (Client Quit) 2020-05-19T00:41:12Z Lycurgus quit (Ping timeout: 256 seconds) 2020-05-19T00:41:18Z cosimone joined #lisp 2020-05-19T00:44:22Z stentroad2 joined #lisp 2020-05-19T00:46:11Z stentroad2 left #lisp 2020-05-19T00:53:53Z zaquest joined #lisp 2020-05-19T00:54:39Z Oladon quit (Quit: Leaving.) 2020-05-19T01:01:53Z jfrancis quit 2020-05-19T01:03:33Z lucasb quit (Quit: Connection closed for inactivity) 2020-05-19T01:04:34Z bitmapper quit (Ping timeout: 246 seconds) 2020-05-19T01:08:48Z Necktwi joined #lisp 2020-05-19T01:11:53Z Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-19T01:14:12Z EvW1 quit (Ping timeout: 260 seconds) 2020-05-19T01:17:22Z Sammi joined #lisp 2020-05-19T01:20:38Z yankM quit (Ping timeout: 272 seconds) 2020-05-19T01:20:40Z Sammi is now known as chibi_robocop 2020-05-19T01:29:39Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-19T01:33:04Z buffergn0me quit (Ping timeout: 244 seconds) 2020-05-19T01:33:27Z pjb quit (Ping timeout: 260 seconds) 2020-05-19T01:34:32Z cosimone quit (Quit: Quit.) 2020-05-19T01:35:43Z stentroad_ joined #lisp 2020-05-19T01:37:43Z stentroad_ quit (Client Quit) 2020-05-19T01:38:13Z ADL: https://youtu.be/UDPK9VuY19E 2020-05-19T01:38:14Z ADL: https://youtu.be/UDPK9VuY19E 2020-05-19T01:39:18Z White_Flame: any ops want to ban? 2020-05-19T01:41:22Z Lycurgus joined #lisp 2020-05-19T01:43:25Z Kaisyu7 joined #lisp 2020-05-19T01:44:10Z ADL quit (Quit: Leaving) 2020-05-19T02:02:17Z chibi_robocop quit (Quit: Konversation terminated!) 2020-05-19T02:02:20Z pjb joined #lisp 2020-05-19T02:04:57Z emacsomancer: is there a cl internal equivalent of POSIX `command -v __` ? 2020-05-19T02:08:52Z hsaziz joined #lisp 2020-05-19T02:10:23Z no-defun-allowed: What is that supposed to do? 2020-05-19T02:11:30Z no-defun-allowed: It finds the directory programs are stored in? 2020-05-19T02:17:15Z Oladon joined #lisp 2020-05-19T02:19:03Z wxie quit (Ping timeout: 244 seconds) 2020-05-19T02:21:21Z axion: emacsomancer: There isn't a truly portable method. uiop has uiop:argv0, but it assumes you dumped an image with uiop (*image-dumped-p* is non-nil). You could use (uiop:raw-command-line-arguments), or on SBCL: sb-ext:*posix-argv*. 2020-05-19T02:25:08Z emacsomancer: no-defun-allowed: yes, like which 2020-05-19T02:25:26Z emacsomancer: axion: thanks. i'll look into sb-ext:*posix-argv* 2020-05-19T02:25:56Z akoana left #lisp 2020-05-19T02:28:30Z shifty joined #lisp 2020-05-19T02:32:01Z pierpa quit (Remote host closed the connection) 2020-05-19T02:36:17Z pjb quit (Ping timeout: 272 seconds) 2020-05-19T02:38:12Z aindilis quit (Ping timeout: 260 seconds) 2020-05-19T02:50:35Z rumbler3_ joined #lisp 2020-05-19T03:01:00Z beach: Good morning everyone! 2020-05-19T03:02:24Z dxtr quit (Remote host closed the connection) 2020-05-19T03:04:22Z sauvin is now known as Daddy 2020-05-19T03:04:32Z Daddy is now known as Daddums 2020-05-19T03:04:42Z Daddums is now known as Sauvin 2020-05-19T03:05:12Z pjb joined #lisp 2020-05-19T03:09:49Z Jesin quit (Read error: Connection reset by peer) 2020-05-19T03:10:23Z Jesin joined #lisp 2020-05-19T03:10:50Z Jesin quit (Client Quit) 2020-05-19T03:11:15Z Jesin joined #lisp 2020-05-19T03:14:34Z efm quit (Read error: Connection reset by peer) 2020-05-19T03:17:54Z efm joined #lisp 2020-05-19T03:25:06Z ralt quit (Quit: Connection closed for inactivity) 2020-05-19T03:25:28Z Oladon quit (Quit: Leaving.) 2020-05-19T03:26:25Z FreeBirdLjj joined #lisp 2020-05-19T03:29:18Z _jrjsmrtn joined #lisp 2020-05-19T03:30:52Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2020-05-19T03:30:54Z __jrjsmrtn__ quit (Ping timeout: 260 seconds) 2020-05-19T03:38:59Z pjb quit (Ping timeout: 272 seconds) 2020-05-19T03:40:36Z shifty quit (Ping timeout: 272 seconds) 2020-05-19T03:47:06Z buffergn0me joined #lisp 2020-05-19T03:49:25Z dddddd quit (Ping timeout: 264 seconds) 2020-05-19T04:06:21Z pjb joined #lisp 2020-05-19T04:14:32Z yankM joined #lisp 2020-05-19T04:14:37Z karlosz quit (Quit: karlosz) 2020-05-19T04:18:39Z Oladon joined #lisp 2020-05-19T04:19:14Z sdumi quit (Ping timeout: 272 seconds) 2020-05-19T04:20:39Z sdumi joined #lisp 2020-05-19T04:26:38Z patlv quit (Quit: patlv) 2020-05-19T04:27:42Z karlosz joined #lisp 2020-05-19T04:33:35Z narimiran joined #lisp 2020-05-19T04:36:02Z lavaflow quit (Ping timeout: 256 seconds) 2020-05-19T04:39:03Z madage quit (Ping timeout: 240 seconds) 2020-05-19T04:39:47Z pjb quit (Ping timeout: 272 seconds) 2020-05-19T04:40:38Z lavaflow joined #lisp 2020-05-19T04:43:22Z madage joined #lisp 2020-05-19T04:44:10Z shifty joined #lisp 2020-05-19T04:50:36Z malm quit (Quit: Bye bye) 2020-05-19T04:51:30Z jw4 quit (Quit: tot siens) 2020-05-19T04:53:43Z jw4 joined #lisp 2020-05-19T04:58:08Z yankM quit (Quit: Leaving.) 2020-05-19T04:58:38Z ech joined #lisp 2020-05-19T05:00:38Z Bourne joined #lisp 2020-05-19T05:00:44Z ech quit (Client Quit) 2020-05-19T05:02:37Z sdumi quit (Ping timeout: 264 seconds) 2020-05-19T05:04:24Z Lycurgus quit (Quit: Exeunt) 2020-05-19T05:05:23Z madage quit (Ping timeout: 240 seconds) 2020-05-19T05:10:41Z madage joined #lisp 2020-05-19T05:11:33Z gravicappa joined #lisp 2020-05-19T05:12:19Z jw4 quit (Quit: tot siens) 2020-05-19T05:14:07Z jw4 joined #lisp 2020-05-19T05:14:16Z nullman quit (Remote host closed the connection) 2020-05-19T05:14:33Z nullman joined #lisp 2020-05-19T05:16:11Z pjb joined #lisp 2020-05-19T05:16:27Z ech joined #lisp 2020-05-19T05:18:23Z Oladon quit (Quit: Leaving.) 2020-05-19T05:20:47Z aeth quit (Read error: Connection reset by peer) 2020-05-19T05:21:02Z aeth joined #lisp 2020-05-19T05:21:15Z quazimodo quit (Ping timeout: 265 seconds) 2020-05-19T05:24:03Z benjamin-l joined #lisp 2020-05-19T05:25:38Z wxie joined #lisp 2020-05-19T05:28:22Z dale quit (Quit: My computer has gone to sleep) 2020-05-19T05:33:39Z quazimodo joined #lisp 2020-05-19T05:40:46Z malm joined #lisp 2020-05-19T05:45:02Z _whitelogger quit (Remote host closed the connection) 2020-05-19T05:47:15Z _whitelogger joined #lisp 2020-05-19T05:49:28Z pjb quit (Ping timeout: 265 seconds) 2020-05-19T05:53:07Z sdumi joined #lisp 2020-05-19T05:53:40Z Jesin quit (Ping timeout: 246 seconds) 2020-05-19T05:54:22Z flip214: emacsomancer: how about /proc/self/exe ? 2020-05-19T05:57:38Z emacsomancer: flip214: that's not really cl internal though, unless I'm misunderstanding 2020-05-19T05:57:46Z emacsomancer: I just ended up writing this: http://dpaste.com/3XBRQ1C 2020-05-19T05:59:21Z phoe: morning 2020-05-19T05:59:32Z beach: Hello phoe. 2020-05-19T06:01:16Z no-defun-allowed: Good morning phoe. 2020-05-19T06:02:20Z sdumi quit (Ping timeout: 265 seconds) 2020-05-19T06:04:29Z sdumi joined #lisp 2020-05-19T06:06:05Z borodust quit (Quit: Leavin') 2020-05-19T06:06:54Z jason_m quit (Ping timeout: 272 seconds) 2020-05-19T06:07:32Z orivej joined #lisp 2020-05-19T06:07:51Z borodust joined #lisp 2020-05-19T06:08:15Z borodust is now known as Guest47421 2020-05-19T06:10:19Z beach` joined #lisp 2020-05-19T06:14:47Z beach quit (Ping timeout: 272 seconds) 2020-05-19T06:15:07Z varjag joined #lisp 2020-05-19T06:16:03Z jprajzne joined #lisp 2020-05-19T06:16:44Z pjb joined #lisp 2020-05-19T06:17:23Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-19T06:18:39Z flip214: emacsomancer: oh, you need to find _other_ programs, not the CL process' executable 2020-05-19T06:18:42Z orivej joined #lisp 2020-05-19T06:20:49Z emacsomancer: flip214: yeah, in retrospect, I realise my original question was not as clear as I had thought 2020-05-19T06:22:37Z hsaziz quit (Quit: hsaziz) 2020-05-19T06:22:48Z shka_ joined #lisp 2020-05-19T06:25:33Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-19T06:26:53Z orivej joined #lisp 2020-05-19T06:27:37Z karlosz quit (Quit: karlosz) 2020-05-19T06:28:00Z libertyprime quit (Ping timeout: 256 seconds) 2020-05-19T06:28:02Z karlosz joined #lisp 2020-05-19T06:32:37Z fanta1 joined #lisp 2020-05-19T06:32:51Z pve joined #lisp 2020-05-19T06:33:53Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-19T06:35:03Z orivej joined #lisp 2020-05-19T06:35:16Z beach` is now known as beach 2020-05-19T06:39:55Z Bourne quit (Read error: Connection reset by peer) 2020-05-19T06:45:09Z fluxwave quit (Quit: leaving) 2020-05-19T06:49:28Z random-nick joined #lisp 2020-05-19T06:49:53Z pjb quit (Ping timeout: 265 seconds) 2020-05-19T06:52:02Z orivej quit (Ping timeout: 256 seconds) 2020-05-19T06:52:13Z orivej joined #lisp 2020-05-19T07:00:14Z orivej quit (Ping timeout: 240 seconds) 2020-05-19T07:00:52Z orivej joined #lisp 2020-05-19T07:05:40Z karlosz quit (Quit: karlosz) 2020-05-19T07:05:51Z karlosz joined #lisp 2020-05-19T07:11:42Z phoe: minion: memo for Bike: when we talked some time ago you mentioned that a large part of the condition system depends upon parsing types at runtime; is it really parsing, or just typechecking? or is typechecking meant to involve parsing due to how type specifiers work? 2020-05-19T07:11:42Z minion: Remembered. I'll tell Bike when he/she/it next speaks. 2020-05-19T07:12:46Z orivej quit (Ping timeout: 256 seconds) 2020-05-19T07:13:03Z orivej joined #lisp 2020-05-19T07:13:12Z Bourne joined #lisp 2020-05-19T07:15:43Z refpga quit (Read error: Connection reset by peer) 2020-05-19T07:17:18Z rgherdt joined #lisp 2020-05-19T07:21:48Z pjb joined #lisp 2020-05-19T07:21:53Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-19T07:23:03Z doesthiswork quit (Ping timeout: 265 seconds) 2020-05-19T07:23:12Z orivej joined #lisp 2020-05-19T07:26:01Z felideon quit (Ping timeout: 252 seconds) 2020-05-19T07:26:19Z felideon joined #lisp 2020-05-19T07:27:46Z phoe quit (Ping timeout: 240 seconds) 2020-05-19T07:28:51Z phoe joined #lisp 2020-05-19T07:28:52Z Bourne quit (Read error: Connection reset by peer) 2020-05-19T07:33:07Z benjamin-l quit (Ping timeout: 240 seconds) 2020-05-19T07:33:39Z benjamin-l joined #lisp 2020-05-19T07:39:03Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-19T07:40:53Z orivej joined #lisp 2020-05-19T07:41:18Z Bourne joined #lisp 2020-05-19T07:47:54Z Bourne quit (Ping timeout: 240 seconds) 2020-05-19T07:52:46Z Jesin joined #lisp 2020-05-19T07:54:08Z wxie quit (Ping timeout: 256 seconds) 2020-05-19T07:54:19Z libertyprime joined #lisp 2020-05-19T07:54:43Z ralt joined #lisp 2020-05-19T07:54:53Z pjb quit (Ping timeout: 244 seconds) 2020-05-19T07:56:24Z shka_ quit (Ping timeout: 256 seconds) 2020-05-19T07:57:30Z shka_ joined #lisp 2020-05-19T08:00:16Z orivej quit (Ping timeout: 265 seconds) 2020-05-19T08:00:50Z orivej joined #lisp 2020-05-19T08:03:36Z Cymew joined #lisp 2020-05-19T08:06:50Z ljavorsk joined #lisp 2020-05-19T08:10:36Z karlosz quit (Quit: karlosz) 2020-05-19T08:10:54Z karlosz joined #lisp 2020-05-19T08:12:13Z orivej_ joined #lisp 2020-05-19T08:12:18Z orivej quit (Ping timeout: 272 seconds) 2020-05-19T08:15:38Z karlosz quit (Client Quit) 2020-05-19T08:15:55Z karlosz joined #lisp 2020-05-19T08:18:08Z X-Scale` joined #lisp 2020-05-19T08:18:30Z kbtr_ quit (Ping timeout: 256 seconds) 2020-05-19T08:19:35Z solene quit (Quit: Gateway shutdown) 2020-05-19T08:19:52Z X-Scale quit (Ping timeout: 256 seconds) 2020-05-19T08:19:52Z X-Scale` is now known as X-Scale 2020-05-19T08:20:32Z kbtr joined #lisp 2020-05-19T08:20:39Z karlosz quit (Client Quit) 2020-05-19T08:20:55Z karlosz joined #lisp 2020-05-19T08:21:49Z libertyprime quit (Ping timeout: 264 seconds) 2020-05-19T08:25:12Z amerlyq joined #lisp 2020-05-19T08:25:35Z LdBeth: I think it is because you can use `(simple-array `(,m ,n)) to construct type specifier at runtime 2020-05-19T08:25:40Z karlosz quit (Client Quit) 2020-05-19T08:25:56Z karlosz joined #lisp 2020-05-19T08:26:22Z phoe: correct, I'm thinking about conditions in particular though 2020-05-19T08:26:43Z pjb joined #lisp 2020-05-19T08:27:47Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-19T08:28:53Z orivej joined #lisp 2020-05-19T08:29:33Z jackdaniel: you cant compute all types at compile time 2020-05-19T08:29:46Z jackdaniel: ie different ranges for numbers 2020-05-19T08:30:09Z phoe: correct, I'm thinking about conditions in particular though 2020-05-19T08:30:41Z karlosz quit (Client Quit) 2020-05-19T08:30:56Z karlosz joined #lisp 2020-05-19T08:32:32Z jackdaniel: it is the same for conditions, when you type (error foo bar qux) you need to construct condition from arguments, then you need to see if constructed condition matches any handler (which are dynamic) 2020-05-19T08:32:36Z ebrasca joined #lisp 2020-05-19T08:34:01Z phoe: I fail to see how this is type *parsing* rather than type matching though; an implementation is allowed to preparse handler types and create predicate closures from them, which means that turning the list (or foo-condition bar-condition ...) into code happens at compile-time, not at execution-time 2020-05-19T08:35:42Z karlosz quit (Client Quit) 2020-05-19T08:35:57Z karlosz joined #lisp 2020-05-19T08:36:18Z phoe: therefore a sufficiently smart compiler™ is *not* required to parse condition types at runtime, it is only required to do runtime type checking 2020-05-19T08:36:59Z Bourne joined #lisp 2020-05-19T08:37:26Z benjamin-l quit (Ping timeout: 240 seconds) 2020-05-19T08:37:51Z phoe: I'm kinda nitpicky about words here, but these are words that I want to be 100% sure about since they get printed soon - hence my question 2020-05-19T08:38:53Z gaqwas joined #lisp 2020-05-19T08:40:43Z karlosz quit (Client Quit) 2020-05-19T08:40:50Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-19T08:41:00Z karlosz joined #lisp 2020-05-19T08:42:03Z orivej joined #lisp 2020-05-19T08:42:57Z EvW joined #lisp 2020-05-19T08:44:27Z kiboneu quit (Remote host closed the connection) 2020-05-19T08:45:44Z karlosz quit (Client Quit) 2020-05-19T08:46:01Z karlosz joined #lisp 2020-05-19T08:46:02Z buffergn0me quit (Ping timeout: 244 seconds) 2020-05-19T08:50:45Z karlosz quit (Client Quit) 2020-05-19T08:51:02Z karlosz joined #lisp 2020-05-19T08:51:14Z anticrisis quit (Quit: Leaving) 2020-05-19T08:51:59Z orivej quit (Ping timeout: 265 seconds) 2020-05-19T08:52:42Z orivej joined #lisp 2020-05-19T08:54:10Z jackdaniel: sufficiently smart compiler is a moot, but I suppose it's bike who knows best what he meant 2020-05-19T08:55:46Z karlosz quit (Client Quit) 2020-05-19T08:56:01Z karlosz joined #lisp 2020-05-19T08:58:14Z MichaelRaskin: Well, the relevant type specifiers for handler-bind and handler-case are constants known at compile time, preparing in advance to match them without re-parsing is not that unrealistic. 2020-05-19T08:58:55Z MichaelRaskin: But these are large parts by usage, maybe there is a large part by implementation size that does need re-parsing. 2020-05-19T08:59:26Z pjb quit (Ping timeout: 246 seconds) 2020-05-19T09:00:47Z karlosz quit (Client Quit) 2020-05-19T09:01:02Z karlosz joined #lisp 2020-05-19T09:01:17Z no-defun-allowed: Can I dispatch on condition types with DEFMETHOD? 2020-05-19T09:01:36Z Shinmera: they're not classes, so no in theory 2020-05-19T09:01:44Z no-defun-allowed: ): 2020-05-19T09:01:59Z ljavorsk quit (Ping timeout: 258 seconds) 2020-05-19T09:02:55Z Shinmera: in practise though you can in most cases. 2020-05-19T09:03:06Z no-defun-allowed: Right. 2020-05-19T09:03:15Z Shinmera: (exceptions include initialize-instance) 2020-05-19T09:03:24Z phoe: for most pratcical cases you can do that, since all implementations implement condition types as condition classes 2020-05-19T09:04:09Z phoe: you can work around the fact that make-condition on SBCL does not follow the MOP initialization protocol by using make-instance instead of make-condition. 2020-05-19T09:04:28Z Shinmera: won't work if the user makes them though 2020-05-19T09:04:33Z phoe: yes, that's a big issue 2020-05-19T09:04:43Z phoe: it doesn't compose with SIGNAL, ERROR, and user code. 2020-05-19T09:04:55Z phoe: (unless user code also uses make-instance, but there's no way to enforce that) 2020-05-19T09:05:23Z phoe: so, either complain at SBCL to fix that at https://bugs.launchpad.net/sbcl/+bug/1761735 or don't do initialize-instance on condition classes 2020-05-19T09:05:48Z karlosz quit (Client Quit) 2020-05-19T09:06:03Z karlosz joined #lisp 2020-05-19T09:06:10Z orivej quit (Ping timeout: 246 seconds) 2020-05-19T09:06:12Z X-Scale quit (Ping timeout: 258 seconds) 2020-05-19T09:06:16Z ljavorsk joined #lisp 2020-05-19T09:06:52Z orivej joined #lisp 2020-05-19T09:07:10Z X-Scale` joined #lisp 2020-05-19T09:08:19Z X-Scale` is now known as X-Scale 2020-05-19T09:09:11Z phoe: ;; by not composing with SIGNAL I mean (signal 'foo-condition ...) where internally MAKE-CONDITION is used instead of MAKE-INSTANCE 2020-05-19T09:10:04Z toorevitimirp joined #lisp 2020-05-19T09:10:49Z karlosz quit (Client Quit) 2020-05-19T09:11:03Z no-defun-allowed: Hm, I don't really mind how they're initialized; I want to generalise an event loop-kinda thing I have, and was thinking I could have a predicate for if a condition should stop the loop. If that's the case, I'll just rearrange the protocol to make it not a problem. 2020-05-19T09:11:06Z karlosz joined #lisp 2020-05-19T09:11:20Z phoe: predicate, you mean, you want to specialize on a condition type? 2020-05-19T09:11:35Z phoe: (defmethod frob-p ((object my-condition)) t) will work just fine 2020-05-19T09:12:10Z no-defun-allowed: Yeah, the word is "specialize", but they aren't classes? 2020-05-19T09:12:36Z phoe: condition types are classes for all practical purposes and no currently alive implementation challenges this assumption 2020-05-19T09:13:09Z phoe: people who are standard purists will tell me that I am wrong because the standard does not mandate that, but *ALL* currently alive conforming implementations have condition types as classes. 2020-05-19T09:13:40Z phoe: so, in practice, you can always specialize on those, and things will work. 2020-05-19T09:13:51Z no-defun-allowed: Alright, thanks. I think I might be able to avoid that with a solution I think is better in some other ways, though. 2020-05-19T09:14:43Z phoe: you can use typep instead of class dispatch in order to be on the safe side, but that likely means either more code for you or static TYPECASE-style dispatch. 2020-05-19T09:15:50Z karlosz quit (Client Quit) 2020-05-19T09:16:07Z karlosz joined #lisp 2020-05-19T09:16:37Z rogersm joined #lisp 2020-05-19T09:18:15Z phoe: I wholeheartedly wish that the Hypothetical Future Revision eliminates this mista^Wdistinction and mandates that conditions be standard-objects and follow all the CLOS and MOP protocols; it has so far brought a lot of annoyance to lispers who try to work with conditions the same way they work with CLOS 2020-05-19T09:19:24Z phoe: s/it/that distinction/ 2020-05-19T09:20:51Z karlosz quit (Client Quit) 2020-05-19T09:21:06Z karlosz joined #lisp 2020-05-19T09:21:15Z splittist: lispers do have a tendency to want to accommodate entirely hypothetical lisp compilers while at the same time happily writing code that will work on a single flavour of OS 2020-05-19T09:21:30Z phoe: and only on SBCL 2020-05-19T09:21:42Z splittist: (: 2020-05-19T09:22:08Z toorevitimirp quit (Remote host closed the connection) 2020-05-19T09:22:33Z toorevitimirp joined #lisp 2020-05-19T09:26:45Z p_l: splittist: I think it's because /somehow/ compiler diversity is more visible and felt 2020-05-19T09:27:12Z p_l: splittist: how many OSes people use these days that won't accept unix-style *relative* path, for example? 2020-05-19T09:27:25Z phoe: also because CL has no standard library, using the modern definition of a standard library 2020-05-19T09:28:02Z phoe: since there's no COMMON-LISP.SOCKET in existence then some people go for SB-BSD-SOCKETS instead 2020-05-19T09:28:17Z phoe: not all code uses portability libraries 2020-05-19T09:28:45Z p_l: phoe: arguably the standard library is kind of like a spectrum, and how rich the standard library is impacts how code ends up written IMO 2020-05-19T09:29:15Z phoe: p_l: yes, that's my point - the fact that the CL standard library is poor causes a lot of interesting ways in which code tries to use sockets 2020-05-19T09:29:45Z phoe: that's less of an issue in the JVM environment, for example 2020-05-19T09:30:40Z no-defun-allowed will just use a second return value and have the client code handle conditions. That's something like hash table iterators. 2020-05-19T09:30:47Z p_l: phoe: it's poor compared to, let's say, Java, but it's rich compared to many other languages, which results in very weird middle position 2020-05-19T09:34:42Z Ven`` joined #lisp 2020-05-19T09:35:03Z pjb joined #lisp 2020-05-19T09:36:38Z MichaelRaskin: splittist: for _some_ issues entirely hypothetical compiler might be the next release of the one you use (like lexical environment representation). But if conditions are already classes everywhere, yeah, sounds unlikely anyone would ever want to deviate 2020-05-19T09:37:35Z jurov_ is now known as jurov 2020-05-19T09:42:13Z SAL9000 quit (Remote host closed the connection) 2020-05-19T09:43:26Z p_l: phoe: I'd like to see some standardization happen in that area though, but we probably would need the same interface accepted by every implementation 2020-05-19T09:44:07Z jackdaniel: I recommend reading cl-implementers mailing list, where venders could *not* agree on the interface and package for QUIT function 2020-05-19T09:44:13Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-19T09:44:24Z phoe: there's only one thing worse than herding cats, and that is herding lispers 2020-05-19T09:44:53Z phoe: jackdaniel: where is that mailing list at? I can't find it at clnet's mailman 2020-05-19T09:45:20Z p_l: jackdaniel: I find it easier to figure complaints about QUIT than about sockets 2020-05-19T09:45:32Z p_l: it's surprisingly possibly complex function :V 2020-05-19T09:45:40Z orivej joined #lisp 2020-05-19T09:45:48Z phoe: we've discussed about socket design here anyway, I believe it was you who brought up the way the Dial function is done in golang 2020-05-19T09:46:08Z phoe: I think one could browse the channel logs to get that 2020-05-19T09:48:13Z jackdaniel: phoe: there https://mailman.common-lisp.net/pipermail/implementation-hackers/ 2020-05-19T09:48:27Z jackdaniel: there is also CDR of course 2020-05-19T09:49:32Z karlosz quit (Quit: karlosz) 2020-05-19T09:50:00Z karlosz joined #lisp 2020-05-19T09:50:08Z karlosz quit (Remote host closed the connection) 2020-05-19T09:50:36Z phoe: last activity: 2012, not counting a single mail from 2017 2020-05-19T09:50:37Z karlosz joined #lisp 2020-05-19T09:50:41Z phoe: well 2020-05-19T09:50:44Z karlosz quit (Remote host closed the connection) 2020-05-19T09:50:47Z jackdaniel: that shows how succesful it was 2020-05-19T09:51:04Z jackdaniel: I'm subscribed to the mailing list and I'm sure that at least some cl implementers are still subscribed to it 2020-05-19T09:51:12Z karlosz joined #lisp 2020-05-19T09:51:17Z karlosz quit (Remote host closed the connection) 2020-05-19T09:51:26Z jackdaniel: the problem is that there is no clear way to decide something (and, to enforce such decision) 2020-05-19T09:51:41Z phoe: yes, the problem of herding lispers 2020-05-19T09:51:46Z jackdaniel: all there is, is a proposal and people chipping in with their disagreements 2020-05-19T09:51:49Z jackdaniel: i.e no voting etc 2020-05-19T09:51:52Z karlosz joined #lisp 2020-05-19T09:51:53Z karlosz quit (Remote host closed the connection) 2020-05-19T09:52:02Z jackdaniel: no, it is not a problem of herding lispers but rather a problem of consensus 2020-05-19T09:52:11Z benjamin-l joined #lisp 2020-05-19T09:52:15Z benjamin-l: is there a standard way to prompt for new values in interactive restarts? 2020-05-19T09:52:18Z jackdaniel: you would not be able to make C implementers agree on some feature either 2020-05-19T09:52:25Z karlosz joined #lisp 2020-05-19T09:52:29Z karlosz quit (Remote host closed the connection) 2020-05-19T09:52:49Z phoe: benjamin-l: nope, each restart function does it on its own; you can perhaps achieve some programmability by programming your own Gray stream and binding it to *query-io* 2020-05-19T09:52:59Z karlosz joined #lisp 2020-05-19T09:53:05Z karlosz quit (Remote host closed the connection) 2020-05-19T09:53:20Z phoe: jackdaniel: X3J13 achieved that by voting on issues, but X3J13 happened because there was money on the table 2020-05-19T09:53:33Z karlosz joined #lisp 2020-05-19T09:53:36Z SAL9000 joined #lisp 2020-05-19T09:53:39Z karlosz quit (Remote host closed the connection) 2020-05-19T09:54:11Z karlosz joined #lisp 2020-05-19T09:54:15Z karlosz quit (Remote host closed the connection) 2020-05-19T09:54:28Z phoe: and while I think it's possible to achieve the same with 100% volunteer effort, the existing ossification of our ecosystem acts very well against that effort 2020-05-19T09:54:28Z Shinmera: more importantly it happened because the parties wanted to come together and make a common language. 2020-05-19T09:54:32Z phoe: ^ 2020-05-19T09:54:32Z jackdaniel: having stakeholders in a room and voting is the way to go, money is only means to make them sit in the room 2020-05-19T09:54:45Z karlosz joined #lisp 2020-05-19T09:54:51Z karlosz quit (Remote host closed the connection) 2020-05-19T09:54:58Z phoe: Shinmera: that's a pretty damn important point 2020-05-19T09:55:14Z phoe: plus, with all the portability libraries there's no incentive to sit down and make a common language 2020-05-19T09:55:22Z Shinmera: most implementors and most users are happy enough with the current situation. 2020-05-19T09:55:29Z phoe: why care if there's UIOP:QUIT 2020-05-19T09:55:50Z jackdaniel diplomaticly doesn't speak about his opinion on uiop 2020-05-19T09:55:54Z orivej quit (Ping timeout: 260 seconds) 2020-05-19T09:56:03Z jackdaniel: diplomatically* 2020-05-19T09:56:20Z orivej joined #lisp 2020-05-19T09:56:34Z phoe: jackdaniel: I am already aware of your opinion, yes ;) 2020-05-19T09:57:26Z MichaelRaskin: So we need to make a portability library universally hated by implementors to create an incentive for consensus? 2020-05-19T09:57:38Z phoe: MichaelRaskin: we've succeeded though 2020-05-19T09:57:40Z phoe: look at ASDF 2020-05-19T09:58:09Z MichaelRaskin: Well, apparently not enough 2020-05-19T09:58:48Z phoe: nimion: memo for rpg: can you do something about this situation? 2020-05-19T09:58:53Z Bourne quit (Read error: Connection reset by peer) 2020-05-19T09:58:57Z lcn joined #lisp 2020-05-19T09:59:05Z phoe: ;; yes, the misspelling is intentional, please don't fix it 2020-05-19T10:00:48Z _death: it happened because DARPA had an interest in a Common Lisp, but I think today long-term survivability of codebases is no longer a goal for many organizations.. indeed its negation now seems to be the goal 2020-05-19T10:01:52Z phoe: nowadays you have Lisp codebases that survive because they depend on portability libraries or implementation-provided packages 2020-05-19T10:02:07Z phoe: no matter what you do, you are going to break those by implementing a hypothetical COMMON-LISP.SOCKETS package 2020-05-19T10:02:15Z libertyprime joined #lisp 2020-05-19T10:02:25Z phoe: even if the breakage is as small as to be fixed by s/usocket/common-lisp.sockets/g 2020-05-19T10:02:54Z phoe: ...unless usocket is then going to switch to common-lisp.sockets instead, which is the saddest scenario I can possibly think of 2020-05-19T10:03:03Z phoe: and the worst thing is that it is realistic 2020-05-19T10:05:15Z phoe: once I finish this book, I'll dig the UltraSpec out of its grave so we have a modern language specification that follows the original text 1:1 2020-05-19T10:06:08Z phoe: so then it can be forked and have its implementor-oriented content turned into actually user-useful language docs for Common Lisp. 2020-05-19T10:06:22Z _death: to me it seems a bit crazy to embed asdf and uiop in implementations.. without a spec every bit of accidental design becomes enshrined.. without discussion every eccentricism of the authors becomes everyone's burden 2020-05-19T10:06:29Z phoe: ^ 2020-05-19T10:06:51Z phoe: but, hey, modern Common Lisp development isn't driven by implementations 2020-05-19T10:06:58Z phoe: it isn't driven by libraries either 2020-05-19T10:07:13Z phoe: it's kind of driven by ASDF that connects *everything* together 2020-05-19T10:07:26Z phoe: so, on one hand, it makes sense to deploy it with implementations 2020-05-19T10:07:47Z _death: therefore, in my opinion code should only use asdf/uiop at the edges, and use it minimally 2020-05-19T10:08:05Z phoe: _death: which code? 2020-05-19T10:08:07Z Bike joined #lisp 2020-05-19T10:08:09Z _death: all code 2020-05-19T10:08:29Z pjb quit (Ping timeout: 272 seconds) 2020-05-19T10:08:42Z _death: phoe: it does not make sense to deploy the asdf code base in implementation 2020-05-19T10:08:47Z _death: *implementations 2020-05-19T10:08:48Z phoe: on one way, we are talking about code that is defined in ASDF:DEFSYSTEM forms, compiled by it, loaded by it, and having its test suites hooked up to it 2020-05-19T10:08:57Z phoe: and likely also uses some UIOP utility functions 'cause they are there 2020-05-19T10:09:03Z frgo quit (Remote host closed the connection) 2020-05-19T10:09:18Z _death: phoe: it's like having a single FORMAT codebase shared by all implementations 2020-05-19T10:09:39Z _death: but without the spec :) 2020-05-19T10:09:40Z frgo joined #lisp 2020-05-19T10:09:53Z phoe: _death: the first part sounded a bit like SICL 2020-05-19T10:09:55Z _death: it reminds me of this naggum post https://adeht.org/usenet-gems/sysdef-spec.txt 2020-05-19T10:10:02Z phoe: but it is the second part that hurt 2020-05-19T10:10:13Z _death: phoe: SICL is its own implementation of a spec 2020-05-19T10:10:26Z phoe: yes 2020-05-19T10:11:31Z phoe: if I understand this post correctly, then, in a way, Common Lisp has become a single-implementation language 2020-05-19T10:11:41Z phoe: it's just the Lisp impls and libraries that are plugins of it 2020-05-19T10:12:20Z _death: Common Lisp is a language described in a specification.. it has many implementations 2020-05-19T10:12:30Z phoe: _death: that's not the point I wanted to make 2020-05-19T10:13:04Z _death: in the same way, a defsystem facility could have a specification, and each CL implementation could have its own implementation of that spec 2020-05-19T10:13:43Z phoe: one way of twisting this whole point of view is stating that ASDF is a language unto its own, it's just the Lisp implementations that are compiler plugins for it 2020-05-19T10:13:55Z _death: but the situation today makes this possible world unlikely 2020-05-19T10:14:17Z Bike: just gotta wait until annoyance at with-upgradability hits critical mass 2020-05-19T10:14:17Z minion: Bike, memo from phoe: when we talked some time ago you mentioned that a large part of the condition system depends upon parsing types at runtime; is it really parsing, or just typechecking? or is typechecking meant to involve parsing due to how type specifiers work? 2020-05-19T10:15:14Z _death: Bike: one result is that uiop:with-upgradability is here to stay, even if the internal asdf/uiop code is cleansed of it 2020-05-19T10:15:14Z phoe: Bike: sadly, luis has recently pushed a commit that relieves the annoyance somewhat, and has therefore set us back with the annoyance levels by several months at least 2020-05-19T10:15:19Z Bike: *break-on-signals* pretty much means parsing a type specifier for every call to SIGNAL 2020-05-19T10:15:25Z Ven`` quit (Read error: Connection reset by peer) 2020-05-19T10:15:38Z Bike: though you can special case it with simple values like NIL i guess 2020-05-19T10:15:52Z phoe: Bike: oh! that's a good case, yes, for when it's non-NIL 2020-05-19T10:16:03Z phoe: otherwise it's just a (unless *break-on-signals* ...) which is cheap 2020-05-19T10:16:41Z Bike: lately i've realized you can pre convert the actual handler specification types to predicates, though. sbcl does 2020-05-19T10:16:48Z Bike: it gets kind of weird with redefining types, but what doesn't 2020-05-19T10:16:54Z luis: phoe: so sorry. I'm all for getting rid of ASDF upgrading altogether. I don't understand why it's necessary. Seems to be a massive complication. 2020-05-19T10:17:28Z phoe: luis: I forgot to mark my post with /s, apologies for that 2020-05-19T10:17:34Z matijja quit (Ping timeout: 256 seconds) 2020-05-19T10:17:38Z luis: phoe: likewise! 2020-05-19T10:18:09Z phoe: :D 2020-05-19T10:18:17Z luis: phoe: I mean, I understood you were being sarcastic, but indeed we should get rid of asdf/upgrade. What's it for anyway? 2020-05-19T10:18:41Z phoe: there are two cases for upgrading ASDF that I am aware of 2020-05-19T10:19:00Z phoe: 1) allowing long-running images to seamlessly load new versions of ASDF 2020-05-19T10:19:02Z toorevitimirp quit (Ping timeout: 258 seconds) 2020-05-19T10:19:13Z luis shrugs 2020-05-19T10:19:14Z phoe: nowadays, who has long-running images though?... 2020-05-19T10:19:31Z _death: any server? 2020-05-19T10:19:35Z Bike: well i don't think that's unreasonable 2020-05-19T10:19:47Z toorevitimirp joined #lisp 2020-05-19T10:19:55Z Bike: asdf attempting to load a newer version of itself any time you perform an operation, or however that works... less sold on that 2020-05-19T10:19:55Z phoe: _death: with reproducibility being the new default, people usually prefer to scrap their images and start them anew, *especially* during upgrades 2020-05-19T10:20:09Z hsaziz joined #lisp 2020-05-19T10:20:26Z _death: phoe: this is a good rule for a certain scale of server 2020-05-19T10:20:29Z hsaziz quit (Client Quit) 2020-05-19T10:21:01Z _death: what is good for google is not necessarily good for M&P 2020-05-19T10:21:16Z phoe: still, I agree - hot code loading is an important thing for these use cases 2020-05-19T10:21:20Z phoe: the other case is 2020-05-19T10:21:42Z phoe: 2) solving the problem that ASDF created itself by bundling itself by default with each and every single Lisp image 2020-05-19T10:21:56Z matijja joined #lisp 2020-05-19T10:22:06Z phoe: so it first loads ASDF 2.26, even implicitly, and then it needs to upgrade itself to ASDF 3.3.4 2020-05-19T10:22:08Z _death: asdf did not create this problem :).. the implementors did 2020-05-19T10:22:17Z phoe: _death: correct, together with implementors 2020-05-19T10:22:37Z jeosol: phoe: how long is "long-running images"? 2020-05-19T10:22:52Z phoe: jeosol: weeks, months, years I guess 2020-05-19T10:22:57Z _death: but how often do you really need to upgrade asdf 2020-05-19T10:23:04Z phoe: long enough to get new stable ASDF versions 2020-05-19T10:23:14Z phoe: no new ASDF version = no problem 2020-05-19T10:23:40Z _death: it seems to me that upgrading asdf becomes important only if it keeps creeping features 2020-05-19T10:23:43Z jeosol: I thought you were referring to run time for a session 2020-05-19T10:24:00Z Bourne joined #lisp 2020-05-19T10:24:01Z phoe: jeosol: a session? what do you mean? 2020-05-19T10:24:16Z phoe: I refer to the time between when the Lisp process is started and when it is killed 2020-05-19T10:24:22Z jeosol: pardon my terminology, emacs+slime+sbcl 2020-05-19T10:24:29Z jeosol: Oh I see. 2020-05-19T10:24:31Z phoe: that's a development scenario though 2020-05-19T10:24:43Z phoe: in production, you usually deploy a Lisp image and optionally leave a swank server running on it 2020-05-19T10:24:53Z jeosol: My run time for cases can be up to weeks. I have had a case that ran for 6 weeks. 2020-05-19T10:25:09Z phoe: and then you conect it via a networked slime session; disconnecting that session does not kill the running Lisp image 2020-05-19T10:25:10Z jeosol: And it's only because I don't have powerful computing machines. 2020-05-19T10:25:17Z phoe: also, that too 2020-05-19T10:25:28Z jeosol: I am not running some kind of production for website or anything. It's just one time run, etc. 2020-05-19T10:25:33Z karlosz joined #lisp 2020-05-19T10:25:56Z _death: there should be a lisp-implementation-uptime function :) 2020-05-19T10:26:05Z jeosol: The image I linked a few weeks back, I'd like to run, but can't manage the computation. Hence my trying to profile my code other day to figure out inefficient parts 2020-05-19T10:26:14Z _death: (well, better named..) 2020-05-19T10:26:17Z phoe: _death: get-internal-run-time? 2020-05-19T10:26:24Z luis: phoe: doesn't ASDF 3.x or whatever pride itself in being available with every major lisp implementation? Why does it need to be upgraded? 2020-05-19T10:26:29Z dddddd joined #lisp 2020-05-19T10:26:38Z phoe: luis: 3.x isn't a single version of ASDF 2020-05-19T10:26:45Z phoe: what about 3.3.3.3 to 3.3.3.4 2020-05-19T10:26:48Z phoe: or 3.3.3.4 to 3.3.4 2020-05-19T10:27:29Z _death: phoe: on sbcl at least ;) 2020-05-19T10:28:32Z _death: so my lisp image on a personal server is 112 days old 2020-05-19T10:28:47Z luis: phoe: rebuild? delete-package :asdf? I dunno, this seems like a lousy trade-off. But, then again, I've never upgraded ASDF, I don't think. (Maybe I did and didn't notice because it's so seamless.) 2020-05-19T10:28:59Z luis: _death: how many times did you upgrade ASDF over that period? 2020-05-19T10:29:05Z _death: luis: :) 2020-05-19T10:29:40Z phoe: luis: the issue is that you want to preserve the identity of old systems and such, so (asdf:find-system :alexandria) stays the same before and after the upgrade 2020-05-19T10:29:56Z phoe: you can't easily do that if you perform a table flip and send the old ASDF package into the garbage collector 2020-05-19T10:30:01Z _death: luis: I guess developers of asdf tend to upgrade their asdf a lot 2020-05-19T10:30:28Z phoe: naturally, as expected of them 2020-05-19T10:31:05Z phoe: I mean, that's what I'd do if I was developing a system of that scale 2020-05-19T10:31:44Z _death: personally I don't mind the feature.. just its implementation' 2020-05-19T10:33:54Z luis: phoe: do I? I don't think I'd mind loading a fresh Lisp image and nuking the old ASDF. 2020-05-19T10:34:19Z phoe: luis: neither would I 2020-05-19T10:34:47Z luis: Anyway, the upgrade mechanism and tests involved seem like a HUGE barrier to ASDF hacking. 2020-05-19T10:35:20Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-19T10:35:24Z phoe: that's the big point, restarting Lisp images is cheap and one usually does not want state that is only stored in a single Lisp image that can get nuked by a power outage, a kernel crash, or a software bug in Lisp code. 2020-05-19T10:35:53Z phoe: again, there's the point that _death mentioned about the size of an organization and such 2020-05-19T10:36:29Z orivej joined #lisp 2020-05-19T10:36:40Z phoe: but I think that even the smallest players can work with the idea of "code as if your Lisp image could die at any moment, because it will do that for sure and it will do that sooner rather than later" 2020-05-19T10:37:59Z lcn quit (Ping timeout: 245 seconds) 2020-05-19T10:39:07Z phoe: which, to me, means that the version of ASDF that I load at some point of a Lisp image can stay constant throughout the whole lifetime of that image 2020-05-19T10:39:32Z _death: in a specification this desideratum could be stated in a single sentence and there would be no need to get into the details of its implementation 2020-05-19T10:39:59Z phoe: yep 2020-05-19T10:41:31Z jdz: Another question is whether people load updated code in the long-running Lisp image using ASDF. 2020-05-19T10:41:48Z _death: I do 2020-05-19T10:41:49Z jdz: If ASDF supports code updating, but the code itself does not, then what's the point? 2020-05-19T10:42:07Z phoe: (alexandria:with-upgradability ...) 2020-05-19T10:42:08Z _death: that's why it's long-running.. otherwise I would have to restart every week or two 2020-05-19T10:42:57Z jdz: _death: So your code has support instance versioning and stuff, right? 2020-05-19T10:43:35Z jdz: *has support for 2020-05-19T10:44:18Z ebrasca: I like to never need to turn off my os (Mezzano) just for some update. 2020-05-19T10:44:40Z pjb joined #lisp 2020-05-19T10:45:05Z _death: jdz: not explicitly.. the default CLOS redefinition rules usually work well enough.. I don't remember if I needed to define methods relevant to redefinition, but it's possible.. and this system is just not that large 2020-05-19T10:45:47Z phoe: Mezzano is another case that I thought of - an OS-wide Lisp image 2020-05-19T10:46:46Z jdz: _death: Also thanks for the flashback to 2000 link. 2020-05-19T10:47:11Z phoe: but then you need to go into the complexity that is required of an actual operating system - package versioning, rollbacks, dependencies, all that stuff that Windows Update and unix package managers have to deal with 2020-05-19T10:47:28Z phoe: and suddenly it *does* become complex out of necessity 2020-05-19T10:48:10Z shka_ quit (Ping timeout: 256 seconds) 2020-05-19T10:48:34Z jdz: And suddenly microkernels and Erlang (OTP really) start making sense. 2020-05-19T10:48:53Z phoe: and first-class global environments 2020-05-19T10:50:03Z monokrom joined #lisp 2020-05-19T10:50:05Z phoe: ...how did this discussion (d)evolve from runtime requirements of the condition system into mentioning Windows Update 2020-05-19T10:50:38Z jdz: phoe: Just scroll up! 2020-05-19T10:50:47Z aeth: because how will Windows Update handle shipping ASDF in the future? 2020-05-19T10:50:49Z sdumi quit (Read error: Connection reset by peer) 2020-05-19T10:50:54Z phoe: jdz: yes 2020-05-19T10:50:58Z phoe: aeth: no 2020-05-19T10:52:21Z sdumi joined #lisp 2020-05-19T10:52:31Z _death: other long running images could be systems like those described in the gbbopen use cases btw 2020-05-19T10:53:16Z orivej quit (Ping timeout: 246 seconds) 2020-05-19T10:53:39Z orivej joined #lisp 2020-05-19T10:54:54Z ebrasca: _death: What is this gbbopen ? 2020-05-19T10:55:11Z _death: http://gbbopen.org/ 2020-05-19T10:56:47Z _death: such systems are often known as "real-time systems".. they may have watchdog processes to make sure things keep on running (sanely) 2020-05-19T11:00:00Z _death: much of the state there is ephemeral, but for any given point in time it may be critical 2020-05-19T11:00:54Z EvW quit (Ping timeout: 256 seconds) 2020-05-19T11:01:36Z hsaziz joined #lisp 2020-05-19T11:01:39Z hsaziz quit (Client Quit) 2020-05-19T11:02:05Z phoe: yes, for such systems, you need to have upgrade protocols in place 2020-05-19T11:02:07Z loke: ebrasca: I've looked at it a few times and I still don't understand what it does. 2020-05-19T11:02:21Z _death: I remember reading about running images of several years old somewhere 2020-05-19T11:03:36Z _death: loke: I talked about it here before.. did you read the papers I referred to? 2020-05-19T11:04:00Z phoe: anyway, complaining is complaining; I'll work on getting my book mostly done and then think what to do with this state of matters 2020-05-19T11:11:14Z loke: _death: No. When was this? 2020-05-19T11:11:22Z scymtym_ joined #lisp 2020-05-19T11:11:54Z shifty quit (Ping timeout: 256 seconds) 2020-05-19T11:12:11Z _death: not long ago.. anyway here's my reddit comment https://www.reddit.com/r/Common_Lisp/comments/g0muke/gbbopen_highperformance_blackboardsystem_framework/fnawmns/?context=3 2020-05-19T11:12:54Z scymtym quit (Ping timeout: 260 seconds) 2020-05-19T11:13:02Z shifty joined #lisp 2020-05-19T11:14:16Z _death: I recently also did minimal work to get some of Copycat (an old AI system by Douglas Hofstadter) to run on sbcl.. it also used a blackboard architecture 2020-05-19T11:16:34Z benjamin-l: how should I approach debugging a memory fault with FFI stuff? 2020-05-19T11:17:03Z benjamin-l: I get the "unhandled memory fault at ..." condition, but I'm not sure how to get something gdb-like to figure out what's actually happening 2020-05-19T11:18:09Z pjb quit (Ping timeout: 272 seconds) 2020-05-19T11:18:13Z orivej quit (Ping timeout: 264 seconds) 2020-05-19T11:18:20Z orivej_ joined #lisp 2020-05-19T11:18:41Z phoe: benjamin-l: what's the stacktrace? 2020-05-19T11:18:57Z Shinmera: standard debugging techniques. thank hard, reduce the test case. 2020-05-19T11:19:00Z Shinmera: *think 2020-05-19T11:19:00Z benjamin-l: my code, and then "bogus stack frame" 2020-05-19T11:19:30Z phoe: benjamin-l: is your code online somewhere? 2020-05-19T11:19:54Z benjamin-l: no, I could put it online if you want to look at it 2020-05-19T11:20:10Z phoe: sure; if possible try to minimize the test case 2020-05-19T11:20:59Z benjamin-l: I'm using a relatively uncommon C library (dav1d), so dealing with that might be annoying if it's not in your distro's package manager yet 2020-05-19T11:21:16Z libertyprime quit (Remote host closed the connection) 2020-05-19T11:21:18Z phoe: welp 2020-05-19T11:21:53Z phoe: if its sources available online, then I guess we'll manage 2020-05-19T11:21:56Z benjamin-l: and yeah, this is currently about as minimal as I can get it, but it's still several hundred lines of code 2020-05-19T11:21:58Z selwyn: sometimes the address can give a clue, particularly if it's a special address like 0xFFFFFFFF or 0x0, or a very low address like 0x3 2020-05-19T11:22:02Z benjamin-l: mostly because of all the FFI struct definitions 2020-05-19T11:22:19Z Jesin quit (Ping timeout: 246 seconds) 2020-05-19T11:24:16Z scymtym_ quit (Remote host closed the connection) 2020-05-19T11:24:22Z benjamin-l: https://forge.typ3.tech/benjamin/pac-engine 2020-05-19T11:24:26Z benjamin-l: here's the current code 2020-05-19T11:24:53Z benjamin-l: the part that matters is decode-av1-frame, at the end of dav1d.lisp 2020-05-19T11:25:02Z benjamin-l: uhh... you'll need a file to test with 2020-05-19T11:26:03Z benjamin-l: https://files.typ3.tech/color0000.ivf 2020-05-19T11:26:08Z benjamin-l: here's the image file I've been using 2020-05-19T11:26:34Z benjamin-l: (read-ivf-image "color0000.ivf") triggers the fault 2020-05-19T11:30:40Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-19T11:33:24Z milanj joined #lisp 2020-05-19T11:35:50Z AnnCandy joined #lisp 2020-05-19T11:36:43Z orivej joined #lisp 2020-05-19T11:38:06Z AnnCandy quit (Client Quit) 2020-05-19T11:38:31Z phoe: what is the address that was dereferenced? 2020-05-19T11:39:07Z phoe: https://forge.typ3.tech/benjamin/pac-engine/tree/dav1d.lisp#n225 2020-05-19T11:39:16Z phoe: why do you first close the context and then operate on stuff 2020-05-19T11:39:28Z phoe: this doesn't seem right, and I don't know the C codebase at all 2020-05-19T11:39:46Z phoe: oh wait, this is some custom unwind-protect variant... 2020-05-19T11:39:49Z benjamin-l: I have a macro unwind-protect* that's effectively just backwards unwind-protect 2020-05-19T11:39:55Z benjamin-l: sorry about that 2020-05-19T11:40:27Z benjamin-l: the address I'm getting is 0x3e8000003f8 2020-05-19T11:41:05Z benjamin-l: is attaching gdb to sbcl a thing you can do reasonably? 2020-05-19T11:41:35Z benjamin-l: from the dav1d-send-data call 2020-05-19T11:41:39Z phoe: I think so, yes; just expect to get a bunch of SIGSEGV along the way because that is what its garbage collector uses 2020-05-19T11:41:47Z phoe: you can continue normally from those though 2020-05-19T11:41:53Z benjamin-l: oh, weird 2020-05-19T11:42:21Z phoe: also, I'd compile all of that code with high debug and single-step through it 2020-05-19T11:42:34Z benjamin-l: I think there's a good chance the issue here is just that I don't understand the C library correctly 2020-05-19T11:42:52Z phoe: either that, or do printf-style debugging to isolate the actual point where the fault happens 2020-05-19T11:45:14Z flip214: 3f8 and 3e8 are the ISA I/O ports of the serial ports 1 and 3... but I guess there's no relation to them here. OTOH, these look like two times 0x400 in 32bit minus one and minus three 64bit words. 2020-05-19T11:46:27Z benjamin-l: okay, I'm pretty sure the fault happens on the dav1d-send-data call 2020-05-19T11:46:54Z benjamin-l: I'm gonna go check through the C docs and examples very carefully to see if I've missed something 2020-05-19T11:47:17Z stentroad67 joined #lisp 2020-05-19T11:47:24Z stentroad67 quit (Remote host closed the connection) 2020-05-19T11:50:10Z pjb joined #lisp 2020-05-19T11:50:45Z emys joined #lisp 2020-05-19T11:57:22Z fanta1 quit (Quit: fanta1) 2020-05-19T12:02:03Z stentroad joined #lisp 2020-05-19T12:04:42Z EvW1 joined #lisp 2020-05-19T12:05:41Z holycow quit (Quit: Lost terminal) 2020-05-19T12:11:23Z froggey: that looks like a pair of single-floats that got mangled together. 0x3f800000 is 1.0 iirc, 0x3e800000 might be 0.5 2020-05-19T12:12:01Z phoe: froggey: or it could be 0x000003e8000003f8 2020-05-19T12:12:13Z phoe: because that is what 0x3e8000003f8 is 2020-05-19T12:12:25Z phoe: if we assume a 64-bit word, that is 2020-05-19T12:14:38Z froggey: they may have been 0x3f800000 0x3e800000 in memory, and the address that the value was originally read from was offset enough (due to type tags, for example) to combine them 2020-05-19T12:15:27Z phoe: okay, I see 2020-05-19T12:15:56Z phoe: still, weird that it would snap a byte in half and shift 0x80 into a 0x8 2020-05-19T12:16:58Z jackdaniel: windows updates, pointer arithmetic/guesswork, fun day isn't it? ,) 2020-05-19T12:17:17Z phoe: the only thing missing is McCLIM on linux terminal 2020-05-19T12:17:43Z froggey: ah, hmm. shifting by half a byte seems unlikely. I misread the zeros 2020-05-19T12:19:46Z jackdaniel: phoe: if you say, that lisp-related discussion is missing, then you are right 2020-05-19T12:20:48Z phoe: yes 2020-05-19T12:21:02Z phoe: ...but then, come on, we've had a lot of ASDF-related discussion today 2020-05-19T12:21:13Z phoe: and that *was* lisp-related 2020-05-19T12:21:30Z jackdaniel does not negate that 2020-05-19T12:23:01Z pjb quit (Ping timeout: 252 seconds) 2020-05-19T12:28:10Z karlosz quit (Quit: karlosz) 2020-05-19T12:32:13Z Lord_of_Life_ joined #lisp 2020-05-19T12:34:46Z Lord_of_Life quit (Ping timeout: 246 seconds) 2020-05-19T12:35:04Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-19T12:37:34Z renzhi joined #lisp 2020-05-19T12:38:21Z holycow joined #lisp 2020-05-19T12:42:05Z bitmapper joined #lisp 2020-05-19T12:42:09Z EvW1 quit (Ping timeout: 244 seconds) 2020-05-19T12:44:04Z cosimone joined #lisp 2020-05-19T12:50:10Z benjamin1 joined #lisp 2020-05-19T12:51:25Z Cymew: Coming a bit late to the party, I can interject that the major reason (as far as I understand) ASDF has that unwieldly updating code, is that the difference between v2 and v3 was huge, and needed some special care on implementations were v2 was bundled. 2020-05-19T12:51:55Z Cymew: If you know better, please correct me. 2020-05-19T12:52:07Z Cymew: But, then maybe it can be let go at some time. 2020-05-19T12:54:09Z pjb joined #lisp 2020-05-19T12:56:23Z benjamin1 quit (Ping timeout: 246 seconds) 2020-05-19T13:00:02Z _whitelogger quit (Remote host closed the connection) 2020-05-19T13:00:27Z bebop joined #lisp 2020-05-19T13:02:16Z _whitelogger joined #lisp 2020-05-19T13:02:34Z jeosol: Has anyone had code that was supposedly working correctly, then you found some bugs, corrected it, and now the supposedly corrected code is not working as expected. hmmm. I need to get some sleep. 2020-05-19T13:03:09Z phoe: jeosol: yes, it's called programming 2020-05-19T13:03:23Z phoe: 99 little bugs in the code; fix one up, pass it around, 127 little bugs in the code 2020-05-19T13:03:38Z _death: that's why we picked up the term "snafu" 2020-05-19T13:04:02Z luis: jeosol: I sometimes do the "oh, btw, let me just refactor this little bit" and then that refactoring introduces 1 or 2 hard-to-debug bugs. Such a rookie mistake. :) 2020-05-19T13:04:29Z benjamin1 joined #lisp 2020-05-19T13:05:41Z jeosol: phoe: lack of slot naming discipline caused these issues. Code was supposedly working many months ago, I decided to start using better variable names,inadvertently introduced a name for to replace a slot, but never updated it the rest of the files (5 other files). 2020-05-19T13:05:57Z jeosol: luis: exactly, it was refactoring and naming variables that messed me up. 2020-05-19T13:06:19Z jeosol: I just found I had two slots with different accessors (old and new), the old one being used in the many other files to represent the same idea. 2020-05-19T13:07:01Z emys quit (Ping timeout: 252 seconds) 2020-05-19T13:07:27Z jeosol: prematuring refactoring .... 2020-05-19T13:07:35Z jeosol: *premature 2020-05-19T13:08:47Z orivej quit (Ping timeout: 260 seconds) 2020-05-19T13:08:53Z jeosol: Been up all night. It's now diminishing returns. I'll report when I fix the error later. 2020-05-19T13:08:54Z orivej_ joined #lisp 2020-05-19T13:08:59Z jeosol: Have a nice day guys 2020-05-19T13:11:38Z jeosol: _death: yes, definitely snafu. 2020-05-19T13:11:49Z samlamamma joined #lisp 2020-05-19T13:12:53Z benjamin1 quit (Ping timeout: 252 seconds) 2020-05-19T13:12:55Z samlamamma: Has the ELS2020 videos been deleted from Twitch? I can only find 30 second clips now. 2020-05-19T13:13:31Z phoe: https://www.twitch.tv/elsconf/videos 2020-05-19T13:13:53Z phoe: gasp 2020-05-19T13:14:01Z jackdaniel: I confirm, I can see only 30s videos there 2020-05-19T13:14:19Z Josh_2: Same 2020-05-19T13:14:20Z phoe: Shinmera: I think that it's time to revive the idea of submitting the talk videos to YouTube 2020-05-19T13:14:44Z Josh_2: ^ might be worth just making an ELS2020 YouTube channel and uploading them 2020-05-19T13:14:45Z emys joined #lisp 2020-05-19T13:15:07Z jackdaniel: unpopular opinion: please seed them as torrents so people are not forced to buy into googlegarden 2020-05-19T13:15:15Z Josh_2: could do that as well 2020-05-19T13:15:23Z Shinmera: they have been uploaded, just haven't had the time to enter the metadata 2020-05-19T13:15:30Z Shinmera: nor time to splice the chat into the full recordings 2020-05-19T13:15:40Z phoe: jackdaniel: or peertube 2020-05-19T13:15:49Z Josh_2: or LBRY 2020-05-19T13:16:22Z jackdaniel: ora ora ora (; 2020-05-19T13:17:32Z samlamamma: Shinmera:Are they private or unlisted? 2020-05-19T13:17:41Z samlamamma: (aka: can I have a link?) 2020-05-19T13:17:53Z doesthiswork joined #lisp 2020-05-19T13:18:45Z Shinmera: they are 'draft' 2020-05-19T13:18:49Z Shinmera: so no 2020-05-19T13:19:55Z fanta1 joined #lisp 2020-05-19T13:20:25Z Jesin joined #lisp 2020-05-19T13:22:50Z shangul joined #lisp 2020-05-19T13:26:50Z pjb quit (Ping timeout: 246 seconds) 2020-05-19T13:29:54Z emys quit (Ping timeout: 265 seconds) 2020-05-19T13:33:41Z emys joined #lisp 2020-05-19T13:33:50Z scymtym joined #lisp 2020-05-19T13:37:59Z ljavorsk quit (Ping timeout: 258 seconds) 2020-05-19T13:38:44Z frgo_ joined #lisp 2020-05-19T13:41:27Z frgo quit (Ping timeout: 260 seconds) 2020-05-19T13:42:18Z shangul quit (Ping timeout: 256 seconds) 2020-05-19T13:42:58Z emys quit (Ping timeout: 256 seconds) 2020-05-19T13:43:56Z shangul joined #lisp 2020-05-19T13:49:51Z emys joined #lisp 2020-05-19T13:52:58Z rogersm quit (Quit: Leaving...) 2020-05-19T13:56:46Z shifty quit (Ping timeout: 258 seconds) 2020-05-19T13:57:11Z shifty joined #lisp 2020-05-19T13:58:05Z theseb joined #lisp 2020-05-19T14:01:50Z rgherdt quit (Quit: Leaving) 2020-05-19T14:01:51Z pjb joined #lisp 2020-05-19T14:06:08Z jw4 quit (Read error: Connection reset by peer) 2020-05-19T14:07:55Z jw4 joined #lisp 2020-05-19T14:10:37Z emys quit (Ping timeout: 260 seconds) 2020-05-19T14:18:04Z emys joined #lisp 2020-05-19T14:19:55Z t3hyoshi left #lisp 2020-05-19T14:22:07Z fanta1 quit (Quit: fanta1) 2020-05-19T14:27:03Z emys quit (Ping timeout: 258 seconds) 2020-05-19T14:28:35Z bitmapper: Bike: is clasp normally this slow at compiling? 2020-05-19T14:28:43Z Bike: pretty much 2020-05-19T14:29:01Z bitmapper: sounds fun 2020-05-19T14:29:05Z bitmapper: what's causing that? 2020-05-19T14:29:14Z bitmapper: (if it's known) 2020-05-19T14:29:15Z Bike: we work to improve it, but llvm is not built for speed 2020-05-19T14:29:30Z Bike: we also cons a lot on the lisp level. there's no particular bottleneck 2020-05-19T14:29:51Z bitmapper: yeah i get that, i was just wondering if llvm was where the issue was 2020-05-19T14:32:17Z samlamamma: Bike:Will we see a new official release of Clasp soon :)? 2020-05-19T14:32:36Z aindilis joined #lisp 2020-05-19T14:32:43Z Bike: that's up to drmeister. he's been buried in capitalism for a few weeks but he's coming out of it now. 2020-05-19T14:33:37Z emys joined #lisp 2020-05-19T14:34:47Z pjb quit (Ping timeout: 244 seconds) 2020-05-19T14:34:57Z ahungry joined #lisp 2020-05-19T14:42:08Z emys quit (Ping timeout: 256 seconds) 2020-05-19T14:46:47Z rozenglass quit (Quit: WeeChat 2.3) 2020-05-19T14:49:33Z marcoxa joined #lisp 2020-05-19T14:49:33Z emys joined #lisp 2020-05-19T14:52:05Z cosimone quit (Remote host closed the connection) 2020-05-19T14:52:31Z cosimone joined #lisp 2020-05-19T14:53:05Z theseb: Bike: Thanks a million for all your help yesterday on evaluation model. .. i spent more hours on it and completely understand now...i also paypal'ed phoe funds for some extra help he gave ;) 2020-05-19T14:53:25Z cg505 quit (Quit: ZNC 1.7.2+deb3 - https://znc.in) 2020-05-19T14:53:41Z cg505 joined #lisp 2020-05-19T14:54:29Z phoe: yay, I am making bread on Lisp now 2020-05-19T14:55:07Z rippa joined #lisp 2020-05-19T14:55:08Z flip214: phoe: *baking 2020-05-19T14:55:20Z phoe: flip214: (bake-instance 'bread) 2020-05-19T14:55:22Z mason joined #lisp 2020-05-19T14:59:19Z gko joined #lisp 2020-05-19T14:59:52Z edgar-rft always thought the Common Lisp reader is using CAPITALISM by default 2020-05-19T15:02:11Z phoe: a capitalisp reader, performs upcapitalizing by default 2020-05-19T15:03:38Z pjb joined #lisp 2020-05-19T15:03:40Z emys quit (Ping timeout: 265 seconds) 2020-05-19T15:10:30Z emys joined #lisp 2020-05-19T15:11:31Z sdumi quit (Ping timeout: 260 seconds) 2020-05-19T15:12:35Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-19T15:15:15Z rgherdt joined #lisp 2020-05-19T15:19:25Z emys quit (Ping timeout: 264 seconds) 2020-05-19T15:24:38Z _paul0 joined #lisp 2020-05-19T15:26:38Z emys joined #lisp 2020-05-19T15:27:41Z paul0 quit (Ping timeout: 272 seconds) 2020-05-19T15:28:27Z jperoutek joined #lisp 2020-05-19T15:30:05Z shka_ joined #lisp 2020-05-19T15:30:49Z emys quit (Ping timeout: 246 seconds) 2020-05-19T15:35:23Z edgar-rft quit (Quit: Leaving) 2020-05-19T15:41:20Z rogersm joined #lisp 2020-05-19T15:43:52Z Jesin quit (Ping timeout: 272 seconds) 2020-05-19T15:45:28Z ebrasca quit (Remote host closed the connection) 2020-05-19T15:48:08Z benjamin-l: update on the FFI memory faults from earlier: after literally hours of poking at this with gdb and scrutinizing the dav1d source code, I realized that I got one of the argument types wrong for one of the C functions 2020-05-19T15:48:23Z benjamin-l: I was passing &context, when I should have just been passing context 2020-05-19T15:48:38Z benjamin-l: boy do I feel stupid now 2020-05-19T15:49:31Z benjamin-l: thanks for the help/advice earlier though 2020-05-19T15:49:41Z benjamin-l: this would have been a much longer process without that 2020-05-19T15:52:58Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-19T15:54:18Z phoe: <3 2020-05-19T15:54:23Z phoe: glad that we were of help 2020-05-19T15:54:37Z stentroad quit (Remote host closed the connection) 2020-05-19T15:54:38Z orivej joined #lisp 2020-05-19T15:57:56Z samlamamma: benjamin-l:Reminds me of when I was trying to figure out why my C program was segfaulting and I had forgot to write a return statement in one of the functions 2020-05-19T15:58:59Z EvW joined #lisp 2020-05-19T16:05:17Z phoe: thankfully lisp has no problem with returns, since they're implicit 2020-05-19T16:05:25Z gaqwas quit (Read error: Connection reset by peer) 2020-05-19T16:05:43Z phoe: and therefore, in the worst case, your function will return a meaningless value 2020-05-19T16:06:17Z Bike: your c compiler didn't warn you that control reached the end of a non void function? 2020-05-19T16:06:36Z Bike: or i guess it could just be that it continued into the rest of the function nonsensically, which is also possible in lisp 2020-05-19T16:07:14Z samlamamma: Bike:No, but I hadn't used any -W options! 2020-05-19T16:07:31Z Bike: oh. i kind of compulsively -Wall 2020-05-19T16:08:13Z samlamamma: Yeah, I was writing a small compiler which emitted C code. I typically never write any C. 2020-05-19T16:08:26Z samlamamma: So I'm not used to what you're supposed to do, etc. 2020-05-19T16:08:42Z Bike: mm. 2020-05-19T16:10:03Z liberliver quit (Ping timeout: 256 seconds) 2020-05-19T16:10:19Z pjb: -Wall -Werror 2020-05-19T16:10:57Z gaqwas joined #lisp 2020-05-19T16:12:33Z jasom: So; I would like to test some code with a different value of *features*. In the interest of not reinventing the wheel, any suggestions? 2020-05-19T16:13:23Z pjb: (let ((*feature* …)) (load (compile-file "foo.lisp"))) 2020-05-19T16:14:00Z pjb: perhaps too: (let ((*feature* …)) (load (compile-file "foo.lisp")) (funcall (intern "MAIN" "MY-PACKAGE"))) 2020-05-19T16:14:28Z pjb: your you can just mutate *feature* and go ahead happily. 2020-05-19T16:15:02Z jasom: I was going to do something like that, though I was going to do asdf:load-system with whatever flag forces a reload 2020-05-19T16:15:08Z phoe: :force t 2020-05-19T16:15:11Z jasom: right 2020-05-19T16:15:22Z phoe: in general, (let ((*features* (frob (copy-list *features*)))) ...), where FROB is free to mutate the list 2020-05-19T16:15:34Z phoe: ... could contain an ASDF call, I guess 2020-05-19T16:16:26Z jasom: (let ((*features* (cons :pretend-something *features*))) (asdf:load-system "system-name" :force t) (run-tests)) 2020-05-19T16:16:55Z pjb: jasom: to be super precise, it would be better to fork a new image. Because even with forcing reloading, there can be side effects left from previous loads. 2020-05-19T16:17:15Z notzmv quit (Remote host closed the connection) 2020-05-19T16:17:20Z jasom: pjb: well I'm the author of the system, so I don't have to worry about that. 2020-05-19T16:17:43Z jasom: or rather I control that 2020-05-19T16:18:14Z jasom: And fork is surprisingly poorly supported on most lisps 2020-05-19T16:18:14Z pjb: jasom: I use files named generate-.lisp that contains a script setting up the *features*, erasing ~/.cache/common-lisp/ and quickloading the stuff before saving executable image, that I call from makefiles, with various targets, for different sets of features. 2020-05-19T16:18:58Z stentroad joined #lisp 2020-05-19T16:18:59Z jasom: pjb: right, I was considering doing something like that 2020-05-19T16:19:02Z pjb: for example https://github.com/informatimago/hw 2020-05-19T16:19:29Z jasom: I won't look *too* closely at that since the library I'm writing is MIT licensed, but I get the general idea. 2020-05-19T16:20:11Z sdumi joined #lisp 2020-05-19T16:21:22Z notzmv joined #lisp 2020-05-19T16:28:52Z samlamamma quit (Ping timeout: 260 seconds) 2020-05-19T16:29:18Z dale_ joined #lisp 2020-05-19T16:29:43Z dale_ is now known as dale 2020-05-19T16:42:17Z monokrom quit (Remote host closed the connection) 2020-05-19T16:49:30Z holycow quit (Quit: Lost terminal) 2020-05-19T16:49:46Z theseb: Suppose functions A and B are defined in terms of each other. When you invoke A you invoke B which invokes A, ..and so on 2020-05-19T16:50:04Z theseb: Perhaps this is a documented snag people have seen before? 2020-05-19T16:50:16Z theseb: i can't be 1st one that's seen this 2020-05-19T16:50:18Z Bike: uh, what snag 2020-05-19T16:50:20Z orivej_ joined #lisp 2020-05-19T16:50:26Z Bike: you just described a perfectly normal situation 2020-05-19T16:50:57Z theseb: Bike: i get a "recursion depth exceeded" error when i try to invoke A...because of issues described above 2020-05-19T16:51:04Z theseb: Bike: A calls B which calls A ...etc 2020-05-19T16:51:09Z orivej quit (Read error: Connection reset by peer) 2020-05-19T16:51:10Z Bike: well if it never stops, sure 2020-05-19T16:51:15Z Bike: the recursion needs a base case 2020-05-19T16:51:30Z Bike: that's true with just self recursion as well 2020-05-19T16:51:42Z _death: hmmm, I think there was this book for wizards showing such a case of mutual recursion... 2020-05-19T16:52:02Z theseb: Bike: oh sure I've code up a recursive factorial tons of times...this seems different 2020-05-19T16:52:26Z theseb: Bike: for one, there are TWO functions 2020-05-19T16:52:33Z gko quit (Ping timeout: 256 seconds) 2020-05-19T16:52:53Z theseb: death: mutual recursion ...sounds like the right name 2020-05-19T16:53:31Z theseb: death: https://en.wikipedia.org/wiki/Mutual_recursion 2020-05-19T16:53:33Z _death: the next Scheme standard should (sublis '((eval . yin) (apply . yang)) scheme) 2020-05-19T16:53:54Z phoe: that's called mutual recursion 2020-05-19T16:53:57Z phoe: yep 2020-05-19T16:54:33Z cosimone quit (Remote host closed the connection) 2020-05-19T16:55:00Z cosimone joined #lisp 2020-05-19T16:58:49Z _death: bad wikipedia page is bad 2020-05-19T17:00:32Z pjb: theseb: (defun .evenp (n) (if (zerop n) t (not (.oddp (- n 1))))) (defun .oddp (n) (if (zerop n) nil (not (.evenp (- n 1))))) (.evenp 10) #| --> t |# (.evenp 11) #| --> t |# 2020-05-19T17:00:42Z pjb: theseb: note the tests! 2020-05-19T17:01:12Z pjb: theseb: also, note that those functions don't work on negative or non integer numbers. 2020-05-19T17:01:47Z theseb: i'm studying 2020-05-19T17:02:45Z _Posterdati_ joined #lisp 2020-05-19T17:03:48Z Posterdati quit (Ping timeout: 256 seconds) 2020-05-19T17:04:24Z theseb: pjb: your example keeps calling .evenp and .oddp with different arguments that eventually trend towards 0 to finish the loop 2020-05-19T17:04:26Z rogersm quit (Ping timeout: 240 seconds) 2020-05-19T17:07:40Z lavaflow quit (Quit: WeeChat 2.8) 2020-05-19T17:07:44Z milanj quit (Quit: This computer has gone to sleep) 2020-05-19T17:08:23Z refpga joined #lisp 2020-05-19T17:08:31Z lavaflow joined #lisp 2020-05-19T17:10:12Z rogersm joined #lisp 2020-05-19T17:13:33Z Bike: it's not really different. and as death alluded to, sicp pretty much covers this 2020-05-19T17:14:07Z jeosol quit (Remote host closed the connection) 2020-05-19T17:15:06Z Bike: like, what did you expect? it would somehow bottom out even though there's no base case, because now there are two functions? 2020-05-19T17:17:28Z rogersm quit (Quit: Leaving...) 2020-05-19T17:17:29Z orivej joined #lisp 2020-05-19T17:17:32Z orivej_ quit (Read error: Connection reset by peer) 2020-05-19T17:18:02Z pjb: theseb: that's the secret of recursive functions: never call them with the same arguments. 2020-05-19T17:18:16Z pjb: theseb: and eventually, don't call them at all. 2020-05-19T17:21:30Z marcoxa quit (Quit: dinner time!) 2020-05-19T17:22:05Z yottabyte: how do I insert spaces into a uri for drakma? for example "curl --location --request GET 'https://postman-echo.com/get?foo1=hi%20hi'" reads the query paramter foo1 as "hi hi" but if you run the same request through drakma, it'll read "hi%20hi" 2020-05-19T17:22:14Z yottabyte: parameter* 2020-05-19T17:23:26Z _death: pjb: you can call them with the same arguments, if you memoize ;) 2020-05-19T17:23:27Z theseb: Bike: for extremely complex mutual recursion..i think the generic advice I was looking for, as was said, is just to carefully analyze all pathways and add checks/escape hatches for each infinite loop case as they are observed.. 2020-05-19T17:23:58Z theseb: Anything thing better than that would probably violate the Halting Theorem or some such 2020-05-19T17:24:55Z bebop quit (Ping timeout: 258 seconds) 2020-05-19T17:26:40Z sdumi quit (Ping timeout: 246 seconds) 2020-05-19T17:27:22Z sdumi joined #lisp 2020-05-19T17:27:58Z Josh_2: The little schemer is a good book on recursion 2020-05-19T17:31:25Z zooey quit (Remote host closed the connection) 2020-05-19T17:31:47Z zooey joined #lisp 2020-05-19T17:32:10Z Guest47421 is now known as borodust 2020-05-19T17:32:26Z borodust quit (Changing host) 2020-05-19T17:32:26Z borodust joined #lisp 2020-05-19T17:34:52Z drmeister: Is this a valid logical pathname? #P"amber:dat;leap;cmd;oldff;leaprc.ff14SB.redq" 2020-05-19T17:35:20Z drmeister: The name of the file should be "leaprc.ff14SB" - I get that the period could cause problems. It is causing problems in clasp. 2020-05-19T17:36:01Z phoe: AFAIK a single period doesn't cause problems 2020-05-19T17:36:12Z phoe: but multiple periods do, and you have multiple of these here 2020-05-19T17:36:56Z gxt joined #lisp 2020-05-19T17:38:06Z cracauer joined #lisp 2020-05-19T17:40:33Z Jesin joined #lisp 2020-05-19T17:46:48Z jperoutek quit (Remote host closed the connection) 2020-05-19T17:47:00Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-19T17:48:04Z renzhi quit (Ping timeout: 256 seconds) 2020-05-19T17:48:09Z zulu-inuoe joined #lisp 2020-05-19T17:48:10Z orivej joined #lisp 2020-05-19T17:48:34Z shangul quit (Ping timeout: 240 seconds) 2020-05-19T17:52:32Z FishByte quit (Read error: Connection reset by peer) 2020-05-19T17:52:56Z FishByte joined #lisp 2020-05-19T17:56:04Z narimiran quit (Quit: leaving) 2020-05-19T17:57:51Z orivej_ joined #lisp 2020-05-19T17:58:54Z orivej quit (Ping timeout: 260 seconds) 2020-05-19T17:59:31Z narimiran joined #lisp 2020-05-19T18:05:54Z frgo_ quit 2020-05-19T18:06:30Z drmeister: Thank you. 2020-05-19T18:07:19Z phoe: but this works on SBCL, hm 2020-05-19T18:07:40Z phoe: ...that is because it gets interpreted as a physical pathname 2020-05-19T18:07:42Z phoe: sigh 2020-05-19T18:13:45Z gaqwas quit (Read error: Connection reset by peer) 2020-05-19T18:13:56Z gaqwas joined #lisp 2020-05-19T18:14:20Z gaqwas quit (Changing host) 2020-05-19T18:14:20Z gaqwas joined #lisp 2020-05-19T18:17:49Z orivej_ quit (Ping timeout: 258 seconds) 2020-05-19T18:18:01Z orivej joined #lisp 2020-05-19T18:21:48Z bitmapper quit (Remote host closed the connection) 2020-05-19T18:23:14Z Sauvin quit (Read error: Connection reset by peer) 2020-05-19T18:31:02Z bitmapper joined #lisp 2020-05-19T18:32:23Z _Posterdati_ quit (Ping timeout: 258 seconds) 2020-05-19T18:36:01Z ayuce joined #lisp 2020-05-19T18:36:06Z cosimone quit (Quit: Terminated!) 2020-05-19T18:37:10Z jw4 quit (Ping timeout: 260 seconds) 2020-05-19T18:37:47Z EvW quit (Ping timeout: 260 seconds) 2020-05-19T18:38:09Z jw4 joined #lisp 2020-05-19T18:40:44Z EvW joined #lisp 2020-05-19T18:45:30Z _Posterdati_ joined #lisp 2020-05-19T18:53:09Z cantstanya quit (Remote host closed the connection) 2020-05-19T18:56:05Z jw4 quit (Ping timeout: 256 seconds) 2020-05-19T18:56:30Z jw4 joined #lisp 2020-05-19T18:57:30Z rogersm joined #lisp 2020-05-19T19:01:40Z rogersm quit (Client Quit) 2020-05-19T19:05:10Z emacsomancer: what's the right way to do timers (in sbcl)? 2020-05-19T19:05:25Z Josh_2: take the time now, and then the time when done 2020-05-19T19:05:31Z Josh_2: and take one from the other 2020-05-19T19:05:42Z emacsomancer: timers in the sense of executing a function periodically 2020-05-19T19:06:09Z emacsomancer: when I try to schedule a timer that executes a fairly trivial function, everything becomes very slow, even with a long interval 2020-05-19T19:06:15Z emacsomancer: I'm sure I'm doing something wrong 2020-05-19T19:06:26Z Josh_2: Oh right, well perhaps you could have a background thread (or async) and a list of functions to be executed and at what time interval 2020-05-19T19:06:27Z Josh_2: idk 2020-05-19T19:06:38Z Josh_2: I think that's how I'd do it 2020-05-19T19:07:02Z emacsomancer: what's the right place to look for examples of background threads/async? 2020-05-19T19:08:35Z Josh_2: bordeaux-threads for actual threads and there are quite a lot of async libraries like cl-async etc 2020-05-19T19:08:51Z edgar-rft joined #lisp 2020-05-19T19:08:51Z emacsomancer: thanks 2020-05-19T19:09:48Z _death: there is a library called portable-threads (split from gbbopen) that has support for scheduled and periodic functions 2020-05-19T19:11:26Z phoe: _death: are there any big issues that prevent these from being merged into BT instead? 2020-05-19T19:11:36Z _Posterdati_ quit (Ping timeout: 272 seconds) 2020-05-19T19:11:55Z Josh_2: nice, this library has most of the atomics as well 2020-05-19T19:12:40Z shifty quit (Ping timeout: 256 seconds) 2020-05-19T19:13:36Z frgo joined #lisp 2020-05-19T19:15:32Z _death: phoe: portable threads is more featureful, but I think the scheduled functions module shouldn't be hard to port.. one issue with this library is that it uses the same system name as the one in gbbopen :/ 2020-05-19T19:16:11Z phoe: does this mean package name conflicts? 2020-05-19T19:16:24Z emacsomancer: ah, I'll look at portable-threads then too 2020-05-19T19:16:28Z _death: you don't even get there because you can't load both systems ;) 2020-05-19T19:16:36Z phoe: _death: amazing 2020-05-19T19:16:51Z _death: we've solved the packages issue! 2020-05-19T19:19:30Z _death: I wonder if Xach had an issue with it when gbbopen was in quicklisp 2020-05-19T19:21:16Z ssake quit (Remote host closed the connection) 2020-05-19T19:24:09Z _Posterdati_ joined #lisp 2020-05-19T19:25:58Z pwoineg joined #lisp 2020-05-19T19:26:33Z _Posterdati_ quit (Client Quit) 2020-05-19T19:27:02Z Posterdati joined #lisp 2020-05-19T19:27:12Z paul0 joined #lisp 2020-05-19T19:30:15Z _paul0 quit (Ping timeout: 272 seconds) 2020-05-19T19:30:26Z _death: Josh_2: it seems the atomics implementation needs a little love though.. 2020-05-19T19:31:28Z pwoineg: Hi. I was thinking of implementing the Gemini protocol (simple Internet protocol similar to Gopher) in CL. Looking through the specification at https://gemini.circumlunar.space/docs/spec-spec.txt I see that TLS v1.2 or higher is required. Does anyone have any ideas of the best way to use TLS in CL? I found e.g. https://github.com/shrdlu68/cl-tls but it is experimental according to the author. Other than that I was thinking FFI could be 2020-05-19T19:31:28Z pwoineg: a possible approach. 2020-05-19T19:33:33Z _death: pwoineg: there's cl+ssl but if you're into it putting effort into cl-tls could have a lot of impact in my opinion 2020-05-19T19:33:35Z phoe: pwoineg: cl+ssl uses OpenSSL 2020-05-19T19:33:41Z phoe: but what _death said 2020-05-19T19:33:52Z phoe: also, once you have a repo for that, please ping me - I've been thinking of a similar thing myself 2020-05-19T19:34:01Z arpunk: pwoineg: You can use cl+ssl. There is a gemini server in CL that does this: https://git.carcosa.net/jmcbray/germinal/src/branch/master/server.lisp 2020-05-19T19:34:01Z phoe: since I'm interested in gemini 2020-05-19T19:34:11Z Inline joined #lisp 2020-05-19T19:34:58Z phoe: arpunk: nice!!! 2020-05-19T19:36:37Z pwoineg: Ooh, thanks for the resources, didn't know of cl+ssl, will try to use that. Also I imagined this more as a "weekend project" so further implementing the TLS standard for cl-tls might be a bit ambitious for me at this point in time _death 2020-05-19T19:37:23Z arpunk: phoe: There is also a phlog generator in CL but I haven't tested it yet: git://bitreich.org/cl-yag 2020-05-19T19:37:44Z phoe: arpunk: I don't know what a phlog is 2020-05-19T19:38:17Z arpunk: gopher blogs, but cl-yag also supports gemini content generation 2020-05-19T19:38:20Z arpunk: iirc 2020-05-19T19:41:05Z pwoineg: arpunk: Do you know of any Gemini clients written in CL by any chance? 2020-05-19T19:41:43Z gxt quit (Ping timeout: 240 seconds) 2020-05-19T19:44:16Z amerlyq quit (Quit: amerlyq) 2020-05-19T19:46:04Z Josh_2: _death: the atomic operations in that library are not atomic at all... they are all using a lock 2020-05-19T19:46:10Z Josh_2: Is this what you meant? 2020-05-19T19:46:51Z wsinatra joined #lisp 2020-05-19T19:49:12Z Josh_2: Although it does say "defined here unless imported from the CL implementation" 2020-05-19T19:49:30Z Josh_2: I don't think It's a good idea to label an operation as "atomic" when it is using a lock... 2020-05-19T19:50:20Z _death: Josh_2: yes, specialized implementation for sbcl & friends needs to be added 2020-05-19T19:52:26Z Inline: Josh_2: what do you mean ? 2020-05-19T19:53:48Z Bike: they're atomic enough not to be interrupted, which is probably the point. lock freedom is another level 2020-05-19T19:54:20Z jackdaniel: freeeeelock -- William Wallace 2020-05-19T19:54:38Z arpunk: pwoineg: No, but it would be nice to have! 2020-05-19T19:55:01Z pwoineg: arpunk: If I ever get around to it I will make sure to share :) 2020-05-19T19:55:17Z Josh_2: Because you can end up locking up your program (excuse the pun) because you have inadvertently used what you thought was a lockless threadsafe operation but in fact is using a lock 2020-05-19T19:55:49Z _death: Josh_2: how? 2020-05-19T19:56:24Z pjb quit (Ping timeout: 256 seconds) 2020-05-19T19:56:28Z pwoineg: jackdaniel: Do you think ECL could be embedded into the Godot game engine (written in C++)? 2020-05-19T19:56:42Z phoe: pwoineg: I recall someone's been working on that 2020-05-19T19:56:44Z ralt: _death: signals 2020-05-19T19:56:47Z phoe searches the logs 2020-05-19T19:56:53Z Bike: usting "atomic" to not include lock freedom is not uncommon, i'm sayin 2020-05-19T19:57:18Z _death: ralt: explain 2020-05-19T19:57:24Z jackdaniel: pwoineg: sure, it is as possible as using any shared library written in C from a C++ application 2020-05-19T19:57:37Z ralt: but yeah, atomic means you can't end up in a half-half situation, which is unrelated to using locks or not, albeit it's confusing because of the atomic operations that have the same name 2020-05-19T19:58:00Z jackdaniel: n.b I've stumbled upon this today: https://twitter.com/aerique/status/1262456059643473920 , ecl embedded in quake2 2020-05-19T19:58:07Z ralt: _death: if a signal handler is taking a lock, then gets preempted to run the same signal handler again, you're in a bad place 2020-05-19T19:58:23Z ech: arpunk: thanks for the information 2020-05-19T19:58:37Z pwoineg: jackdaniel: Saw that one on Reddit, pretty cool! 2020-05-19T19:58:54Z Josh_2: Well in the SBCL manual they have "Following atomic operations are particularly useful for implementing lockless algorithms." so I apologize for assuming atomic operations meant thread-safe lockfree 2020-05-19T19:58:58Z phoe: pwoineg: https://github.com/borodust/bodge-godot - you could ask borodust about the current state of these 2020-05-19T19:59:27Z Bike: Josh_2: yeah, in sbcl they say "without interrupts" and such for just uninterruptable 2020-05-19T20:00:25Z pwoineg: phoe: Thanks for the link! 2020-05-19T20:00:48Z Bike: but like in databases they talk about "atomic transactions" which i imagine are often lock based 2020-05-19T20:01:59Z Bike: C++ provides an 'atomics' interface that looks the same whether or not the machine can do the operations lock-free 2020-05-19T20:02:41Z _death: ralt: you're right, but it's a best effort thing 2020-05-19T20:02:55Z Josh_2: Hmm, well my definition of an "atomic operation" has now changed Bike 2020-05-19T20:02:59Z p_l: Bike: any good database is going to minimize amount of locking 2020-05-19T20:03:01Z Josh_2: Thanks 2020-05-19T20:03:13Z p_l: so usually you have variations of log replay 2020-05-19T20:03:33Z Bike: i don't do databases, but i saw flock(2) mentioned on wikipedia and was like ok sure good example 2020-05-19T20:04:55Z _death: ralt: but sbcl's mutex locking does have without-interrupts 2020-05-19T20:08:46Z scymtym: _death: that only protects the system from getting messed up by interrupts, not the user code under the lock. for example, you can interrupt (sb-thread:with-mutex ((sb-thread:make-mutex)) (sleep 1000)) just fine 2020-05-19T20:09:09Z Inline: whoa 2020-05-19T20:09:42Z Inline: the german wiki about atomic operations regards it as a bunch of operations which are regarded as a logical unit 2020-05-19T20:09:56Z Inline: the english wiki does not do that 2020-05-19T20:10:00Z _death: scymtym: yes, but if the body is a single incf form with a simple place, do you have an issue? 2020-05-19T20:10:32Z Inline: https://wiki.osdev.org/Atomic_operation 2020-05-19T20:10:55Z scymtym: _death: how can INCF of a simple place ever be an issue? 2020-05-19T20:11:10Z Bike: floating point exception? 2020-05-19T20:11:28Z Bike: or something weird with bignums, maybe 2020-05-19T20:11:28Z _death: scymtym: that's what I mean.. we're talking about the implementation of atomic-incf using a lock 2020-05-19T20:11:31Z scymtym: i mean w.r.t interruption. maybe i'm missing something 2020-05-19T20:11:50Z Inline: doesn't suffice to use an atomic instruction if interrupts can still be invoked, btw any other state changing operation takes places on one of the other cores or is already on it's was on the bus 2020-05-19T20:12:08Z Inline: s/was/way/ 2020-05-19T20:12:32Z scymtym: ok, missed that 2020-05-19T20:13:07Z Inline: so atomicity is atomics instruction + no_interrupts + no bus operations + no other thread on some other core doing something on the shared data 2020-05-19T20:13:19Z Inline: hewww 2020-05-19T20:13:40Z Inline: so locking was not even included in that list 2020-05-19T20:14:13Z Inline: and there's a distiction between normal process locks and hw lock on the data bus 2020-05-19T20:15:08Z Inline: so true atomics requires hw lock on the data bus too 2020-05-19T20:15:49Z shka_ quit (Ping timeout: 264 seconds) 2020-05-19T20:16:08Z jdz: pwoineg: I already saw one Gemini implementation in CL. 2020-05-19T20:16:15Z Inline: so it doesn't suffice that some instruction itself is atomic on the hw side 2020-05-19T20:16:31Z jdz: pwoineg: https://github.com/jfmcbrayer/germinal 2020-05-19T20:17:07Z _death: the x86 instruction for atomic increment is usually LOCK INC [x] (or cmpxchg ;) 2020-05-19T20:17:20Z borodust: pwoineg phoe: this godot wrapper is highly experimental: at the time, i was just wondering how much time it would take to wrap a godot header with claw and what problems there might be. Conclusion is that there are none and will take smth like 15 minutes, but i never properly battle-tested these bindings, so you can disregard this library. 2020-05-19T20:17:30Z Inline: unless normal process locking would also guarantee hw lock, but i suppose that would also force stuff for busy waiting ? 2020-05-19T20:17:47Z ralt: so, hm, I'm struggling with UNIX-OPTS 2020-05-19T20:17:55Z ralt: I want to have an option that can have a value or not 2020-05-19T20:17:57Z pwoineg: jdz: Thanks. This is the same server that was linked by arpunk earlier. I meant a "browser" when I said Gemini client I guess. 2020-05-19T20:17:57Z Bike: a while back i tried sketching out an atomics extension for lisp, but it needs work 2020-05-19T20:18:10Z ralt: like `--d` and `--d foo` are both valid 2020-05-19T20:18:25Z Josh_2: Bike: Shinmera has made a portable atomics library 2020-05-19T20:18:28Z jdz: pwoineg: OK, ignore me then, was just catching up on scrollback. 2020-05-19T20:18:43Z Bike: Josh_2: that is a portability library, not an extension 2020-05-19T20:18:57Z Josh_2: SBCL has lockless queues which is neat 2020-05-19T20:19:05Z Bike: i mean it has a table showing what's supported where 2020-05-19T20:19:30Z pwoineg: borodust: Thanks for the heads up. I was mostly curious about the possibility of using ECL in Godot in the future, just something I was thinking about the recent days 2020-05-19T20:19:37Z pwoineg: jdz: np! 2020-05-19T20:20:57Z borodust: pwoineg: it would be awesome indeed to have a such integration! 2020-05-19T20:22:05Z Inline: a bunch or sequence of hw wise atomic operations could be seen as atomic logical unit too ofc 2020-05-19T20:22:07Z Inline: hmmm 2020-05-19T20:22:42Z Inline: with all the rest still holding wrt multi core stuff .... 2020-05-19T20:23:01Z borodust: pwoineg: (rn i'm integrating Filament into CL though by introducing C++ autogenerate ffi though xD) 2020-05-19T20:23:29Z Inline: but i suppose that distinction is not very helpful 2020-05-19T20:23:47Z Inline: cause i can group many stuff and call it a logical unit.... 2020-05-19T20:24:18Z pwoineg: borodust: madlad xD 2020-05-19T20:24:56Z borodust: pwoineg: everyone got to have some bit of insanity within ;p 2020-05-19T20:27:18Z pwoineg: Indeed. Will have more time for such this summer :D 2020-05-19T20:27:56Z karlosz joined #lisp 2020-05-19T20:31:30Z _death: surprised there isn't a cl-docopt 2020-05-19T20:32:20Z efm quit (Ping timeout: 265 seconds) 2020-05-19T20:32:39Z karlosz quit (Client Quit) 2020-05-19T20:32:55Z karlosz joined #lisp 2020-05-19T20:33:07Z pjb joined #lisp 2020-05-19T20:33:08Z narimiran quit (Ping timeout: 256 seconds) 2020-05-19T20:33:26Z _death: well, there is a cl-docopt-hack apparently 2020-05-19T20:34:28Z pwoineg quit (Quit: ERC (IRC client for Emacs 27.0.90)) 2020-05-19T20:36:23Z Jesin quit (Quit: Leaving) 2020-05-19T20:37:40Z karlosz quit (Client Quit) 2020-05-19T20:37:43Z vaporatorius joined #lisp 2020-05-19T20:37:43Z vaporatorius quit (Changing host) 2020-05-19T20:37:43Z vaporatorius joined #lisp 2020-05-19T20:37:57Z karlosz joined #lisp 2020-05-19T20:40:06Z afidegnum joined #lisp 2020-05-19T20:40:11Z afidegnum quit (Quit: leaving) 2020-05-19T20:42:41Z karlosz quit (Client Quit) 2020-05-19T20:43:09Z karlosz joined #lisp 2020-05-19T20:47:41Z holycow joined #lisp 2020-05-19T20:47:42Z karlosz quit (Client Quit) 2020-05-19T20:47:58Z karlosz joined #lisp 2020-05-19T20:48:17Z orivej quit (Ping timeout: 265 seconds) 2020-05-19T20:49:10Z orivej joined #lisp 2020-05-19T20:51:35Z ark quit (Quit: ZNC 1.7.4 - https://znc.in) 2020-05-19T20:51:53Z afidegnum joined #lisp 2020-05-19T20:52:03Z afidegnum: is there a way to execute lisp application in vim ? 2020-05-19T20:52:25Z afidegnum: as well as interracting with vim buffer? 2020-05-19T20:52:31Z ark joined #lisp 2020-05-19T20:52:32Z Inline: afaik there's a vim extension to use lisp 2020-05-19T20:52:33Z phoe: slimv or vlime 2020-05-19T20:52:37Z Inline: ah yes 2020-05-19T20:52:43Z karlosz quit (Client Quit) 2020-05-19T20:52:55Z Inline: i suppose i knew the first one slimv at some time i tried to use it 2020-05-19T20:53:00Z karlosz joined #lisp 2020-05-19T20:54:51Z afidegnum: ok, let me look into it 2020-05-19T20:57:44Z karlosz quit (Client Quit) 2020-05-19T20:58:02Z karlosz joined #lisp 2020-05-19T21:00:24Z karayan quit (Remote host closed the connection) 2020-05-19T21:01:15Z karayan joined #lisp 2020-05-19T21:02:45Z karlosz quit (Client Quit) 2020-05-19T21:03:01Z karlosz joined #lisp 2020-05-19T21:04:02Z pjb quit (Remote host closed the connection) 2020-05-19T21:04:59Z pjb joined #lisp 2020-05-19T21:05:01Z davsebamse joined #lisp 2020-05-19T21:07:26Z davsebam1e quit (Ping timeout: 260 seconds) 2020-05-19T21:07:46Z karlosz quit (Client Quit) 2020-05-19T21:07:58Z devrtz quit (Ping timeout: 244 seconds) 2020-05-19T21:08:03Z karlosz joined #lisp 2020-05-19T21:09:38Z devon joined #lisp 2020-05-19T21:10:22Z anticrisis joined #lisp 2020-05-19T21:10:23Z pjb: It is not a valid logical pathname. But you could write: #P"AMBER:DAT;LEAP;CMD;OLDFF;LEAPRC-FF14SB.REDQ" and have a logical-pathname-translation that would translate this logical pathname to a physical pathnaem such as #P"/nfs/amber/dat/leap/cwd/oldff/leaprc.ff14sb.redq". 2020-05-19T21:10:44Z karlosz quit (Read error: Connection reset by peer) 2020-05-19T21:11:03Z karlosz joined #lisp 2020-05-19T21:11:52Z Jesin joined #lisp 2020-05-19T21:11:57Z freixo joined #lisp 2020-05-19T21:13:23Z ahungry quit (Remote host closed the connection) 2020-05-19T21:13:42Z drmeister: pjb: I can set up a logical-pathname-translation that changes the name of a pathname? I didn't know that was possible. 2020-05-19T21:13:59Z pjb: yes. 2020-05-19T21:15:45Z karlosz quit (Client Quit) 2020-05-19T21:16:03Z karlosz joined #lisp 2020-05-19T21:17:15Z pjb: drmeister: https://termbin.com/d0v8 2020-05-19T21:17:42Z pjb: drmeister: the source and destination can be entirely uncorelated. 2020-05-19T21:17:56Z terpri joined #lisp 2020-05-19T21:18:13Z p_l: anyone tried to implement a constant-time GC for CL? 2020-05-19T21:18:45Z drmeister: pjb: Thanks - I'd forgotten all about that. 2020-05-19T21:19:46Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-19T21:20:46Z karlosz quit (Client Quit) 2020-05-19T21:21:03Z karlosz joined #lisp 2020-05-19T21:22:18Z karlosz quit (Client Quit) 2020-05-19T21:22:36Z karlosz joined #lisp 2020-05-19T21:23:33Z karlosz quit (Client Quit) 2020-05-19T21:23:39Z refpga quit (Read error: Connection reset by peer) 2020-05-19T21:23:50Z karlosz joined #lisp 2020-05-19T21:25:01Z davsebamse quit (Ping timeout: 265 seconds) 2020-05-19T21:27:52Z orivej_ joined #lisp 2020-05-19T21:28:24Z orivej quit (Ping timeout: 272 seconds) 2020-05-19T21:28:34Z karlosz quit (Client Quit) 2020-05-19T21:28:51Z karlosz joined #lisp 2020-05-19T21:32:09Z davsebamse joined #lisp 2020-05-19T21:32:16Z mathrick quit (Ping timeout: 265 seconds) 2020-05-19T21:33:35Z karlosz quit (Client Quit) 2020-05-19T21:33:36Z Shinmera: p_l: clasp supports mps, which if I remember correctly can do that kind of thing. 2020-05-19T21:33:55Z karlosz joined #lisp 2020-05-19T21:34:05Z p_l: Shinmera: oh, interesting, when I looked at MPS long in the past it didn't seem to include that 2020-05-19T21:34:36Z Shinmera: I thought it had the option to promise hard upper bounds for a collection cycle, which would be what you're looking for, no? 2020-05-19T21:35:03Z p_l: Shinmera: well, all I need is that I can run *predictable* timings 2020-05-19T21:35:40Z p_l: whether that means the collection is time-sliced or whatever is irrelevant so long as I can ensure that part of the code will run with guaranteed wall-clock time 2020-05-19T21:37:54Z Shinmera: Whatever the case I would appreciate more/better GCs for SBCL :) 2020-05-19T21:38:36Z karlosz quit (Client Quit) 2020-05-19T21:38:40Z p_l: me too :) 2020-05-19T21:38:53Z karlosz joined #lisp 2020-05-19T21:39:15Z p_l: just not the time for starting from scratch, and also some of the algorithms I'd like to employ have pretty wild requirements (like extra pointer for every object) 2020-05-19T21:39:38Z Shinmera: p_l: beach might be interested in a discussion with you 2020-05-19T21:40:02Z White_Flame: how many implementations have the GC itself implemented in lisp? 2020-05-19T21:41:47Z p_l: White_Flame: not many, I think 2020-05-19T21:41:56Z gravicappa quit (Ping timeout: 265 seconds) 2020-05-19T21:42:15Z White_Flame: it probably would have overlap with SICL goals, if not already part of it I guess 2020-05-19T21:42:33Z White_Flame: but, I think GC experimentation would be more explorable if that were an option 2020-05-19T21:42:35Z jackdaniel: mezzano probably has a gc implemented in lisp 2020-05-19T21:42:39Z Shinmera: beach already has a pretty good plan for a gc. 2020-05-19T21:43:42Z karlosz quit (Client Quit) 2020-05-19T21:44:03Z karlosz joined #lisp 2020-05-19T21:45:01Z karlosz quit (Client Quit) 2020-05-19T21:45:19Z karlosz joined #lisp 2020-05-19T21:45:41Z selwyn: re clasp mps: iirc the realtime gc configuration for mps (which is i think another name for what you are talking about) was made under licence by ravenbrook for a customer so actually using it may be tricky 2020-05-19T21:48:43Z karlosz quit (Client Quit) 2020-05-19T21:49:02Z karlosz joined #lisp 2020-05-19T21:53:44Z karlosz quit (Client Quit) 2020-05-19T21:54:01Z karlosz joined #lisp 2020-05-19T21:54:44Z bhartrihari joined #lisp 2020-05-19T21:55:28Z tessier quit (Ping timeout: 246 seconds) 2020-05-19T21:56:06Z devrtz joined #lisp 2020-05-19T21:56:41Z cosimone joined #lisp 2020-05-19T21:57:14Z tessier joined #lisp 2020-05-19T21:57:15Z tessier quit (Changing host) 2020-05-19T21:57:15Z tessier joined #lisp 2020-05-19T21:58:45Z karlosz quit (Client Quit) 2020-05-19T21:59:02Z karlosz joined #lisp 2020-05-19T22:03:46Z karlosz quit (Client Quit) 2020-05-19T22:04:05Z karlosz joined #lisp 2020-05-19T22:05:01Z cracauer: nnnnnnnnn......ion for mps (which is i n 2020-05-19T22:05:01Z cracauer: think another name for what you are talkingion for mps (which is i 2020-05-19T22:05:24Z cracauer: oops. Catwalk 2020-05-19T22:07:20Z refpga joined #lisp 2020-05-19T22:07:33Z rgherdt quit (Ping timeout: 265 seconds) 2020-05-19T22:07:41Z selwyn: that cat has been listening to someone smart :) 2020-05-19T22:07:54Z refpga quit (Remote host closed the connection) 2020-05-19T22:08:20Z refpga joined #lisp 2020-05-19T22:08:47Z karlosz quit (Client Quit) 2020-05-19T22:09:06Z karlosz joined #lisp 2020-05-19T22:10:13Z phoe: worse, that cat has been doing garbage collection 2020-05-19T22:10:40Z phoe: that might result in e.g. automatically managed litter boxes, a big net profit for many cat owners 2020-05-19T22:13:48Z karlosz quit (Client Quit) 2020-05-19T22:14:05Z karlosz joined #lisp 2020-05-19T22:18:56Z pve quit (Quit: leaving) 2020-05-19T22:19:04Z _death: automatic meowmory management, now available in CatLisp with conses and CATs and CDTs (content of address/decrement temporaries) 2020-05-19T22:21:04Z dnm left #lisp 2020-05-19T22:21:32Z dnm joined #lisp 2020-05-19T22:21:37Z aeth: catlisp would be a great name for a lisp 2020-05-19T22:21:39Z aeth: don't waste the name 2020-05-19T22:21:52Z _death: includes the lost sbcl kitten of death 2020-05-19T22:26:27Z toorevitimirp quit (Remote host closed the connection) 2020-05-19T22:27:26Z p_l: hmm, the algorithm used in latest Oracle JVM could be used well enough on SBCL, as it doesn't require adding extra pointers, just using high 4 bits as tags, iirc 2020-05-19T22:28:32Z p_l: hmm... probably not *high* 4 bits, not even 43-47, but I will have to check one day 2020-05-19T22:33:52Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-19T22:35:14Z theBlackDragon quit (Ping timeout: 240 seconds) 2020-05-19T22:35:16Z solrize: p_l what you want is called a real-time gc and they exist, try a web search 2020-05-19T22:35:57Z p_l: solrize: I know. I was essentially asking if anyone had *started* (i.e. written any code) to implement one for one of lisp implementations 2020-05-19T22:39:33Z solrize: allergo claims to have one 2020-05-19T22:39:58Z solrize: lispworks, rather 2020-05-19T22:39:59Z p_l: Lispworks claims to have done one for some client too 2020-05-19T22:40:18Z p_l: but I'd prefer to see at least something akin to IBM Metronome in open source 2020-05-19T22:40:52Z solrize: hm web search doesn't immediately find anything 2020-05-19T22:41:12Z theseb: Does CL always catch 1. wrong numbers of args and 2. wrong argument types? 2020-05-19T22:41:32Z theseb: or do we ever see undefined behavior? 2020-05-19T22:41:49Z White_Flame: if you turn the safety declarations down/off it might not check them 2020-05-19T22:42:11Z White_Flame: but in default use, it should always check 2020-05-19T22:42:15Z theseb: White_Flame: but you don't specify types so how does CL know what the argument types should be? 2020-05-19T22:42:44Z White_Flame: the primitive operations check the types 2020-05-19T22:42:54Z p_l: theseb: if you declare (optimize (speed 3) (safety 0)) you might have *weeeeeeeeeird* effect 2020-05-19T22:42:55Z White_Flame: to see if they're compatible with the operation 2020-05-19T22:43:03Z White_Flame: as a runtime check 2020-05-19T22:43:22Z p_l got SBCL to overwrite bits of compiled function by mistake using that 2020-05-19T22:43:30Z White_Flame: CL compilers can elide those checks if they can reasonably prove, and/or trust the programmer's declarations, that the types will always be compatible 2020-05-19T22:43:43Z solrize: p_l i suspect it hasn't been done much because most people don't find it important. erlang's soft realtime gc is good enough for most interactive applications, and if something is truly realtime you can write it in C or something 2020-05-19T22:44:03Z solrize: i mean you'd run the small realtime bits in a separate task or even on a separate cpu 2020-05-19T22:44:11Z solrize: or these days with an fpga 2020-05-19T22:44:26Z solrize: while having the main complicated application in lisp with occasional tolerable gc delays 2020-05-19T22:44:43Z p_l: solrize: well, I can technically keep the network code in separate partition, but I'd prefer to not have to write it in C if you catch my drift 2020-05-19T22:45:18Z solrize: why does the network code have hard deadlines? networks are designed to tolerate delays 2020-05-19T22:46:13Z theseb: White_Flame: but in general, beyond the core, if you use the wrong types we can't always predict what will happen? 2020-05-19T22:46:17Z aeth: Depending on what you're doing, you can mostly avoid the GC in SBCL if you use large, preallocated arrays of some numeric type 2020-05-19T22:46:28Z p_l: solrize: because nowhere is it actually said that networks are designed to tolerate delays 2020-05-19T22:46:29Z White_Flame: theseb: if you use the wrong types, the system will throw errors 2020-05-19T22:46:36Z White_Flame: *signal errors 2020-05-19T22:46:38Z p_l: solrize: there are, in fact, networks with strict timing requirements 2020-05-19T22:46:40Z White_Flame: (throw them at hte user) 2020-05-19T22:46:49Z theseb: ah ok 2020-05-19T22:46:53Z p_l: solrize: where if you miss three frames somewhere an audible alarm starts blaring 2020-05-19T22:47:04Z solrize: p_l what network are you talking about? 2020-05-19T22:47:25Z White_Flame: theseb: the system should not corrupt itself unless you fiddle with the safety declarations and do something wrong 2020-05-19T22:47:28Z solrize: networks are usually asynchronous 2020-05-19T22:47:31Z p_l: solrize: profinet protocol (which runs on top of ethernet in various forms) 2020-05-19T22:47:39Z p_l: solrize: *usually* != *always* 2020-05-19T22:47:53Z White_Flame: theseb: also, dynamic-extent (basically stack allocation) can screw you over if you hold on to references after a function exits 2020-05-19T22:47:58Z p_l: solrize: also, in fact, major realtime GC implementations for Lisp happened for network hw 2020-05-19T22:48:01Z solrize: ethernet itself tolerates delays, that's why it has collision detection with exponential backoff 2020-05-19T22:48:27Z p_l: solrize: *nobody* uses collision detection ethernet unless they really, really have to 2020-05-19T22:48:45Z p_l: I haven't seen physical collision detection ethernet since 2008 2020-05-19T22:49:01Z p_l: and that involved an unauthorized device that was few years out of date 2020-05-19T22:49:06Z solrize: haha 2020-05-19T22:49:37Z p_l: solrize: in fact, gigabit ethernet no longer supports collision detection at all 2020-05-19T22:49:46Z solrize: what major realtime gc's for lisp are there? weren't we just saying there aren't any? 2020-05-19T22:49:55Z solrize: oh that's interesting about gbe 2020-05-19T22:49:55Z p_l: solrize: *were* 2020-05-19T22:50:02Z p_l: both were commercial 2020-05-19T22:50:08Z p_l: AFAIK one of them was the lispworks one 2020-05-19T22:50:11Z solrize: what major realtime gc's for lisp were there? 2020-05-19T22:50:14Z p_l: the other one was part of Symbolics Minima 2020-05-19T22:50:16Z solrize: lispworks hmm 2020-05-19T22:50:35Z p_l: at least with Lispworks you can turn up with a big fat wad of money and get it 2020-05-19T22:50:43Z p_l: it's just that I have non-functional requirement of open source 2020-05-19T22:51:06Z solrize: was chang's phd thesis about a lisp implementation? i don't remember. it was about parallel gc and i vaguely remember something about lis p in it 2020-05-19T22:51:07Z p_l: Minima is deader than pretty much everything, cause I don't think even US DoD has any of those left 2020-05-19T22:51:28Z solrize: realtime gc's have high enough performance cost that you are better off avoiding it if you can 2020-05-19T22:51:52Z p_l: (and it's publicly known that at least few years ago US DoD had still a bunch of Symbolics Lisp Machines in production use) 2020-05-19T22:52:20Z solrize: minima = small maxima? 2020-05-19T22:52:26Z solrize: maxima is still around in some form 2020-05-19T22:52:34Z p_l: solrize: funnily enough, realtime GCs are now getting steam in Java land because with large enough heap and low enough consing rate, they make GCs much better 2020-05-19T22:52:50Z no-defun-allowed: Minima is small Genera from memory. 2020-05-19T22:52:53Z p_l: solrize: Minima was alternative OS for some Symbolics Lisp Machines (instead of Genera) 2020-05-19T22:52:56Z solrize: oh neat 2020-05-19T22:53:13Z solrize: i think some people are running old cadr systems under emulation 2020-05-19T22:53:34Z p_l: CADR is easy to emulate, so getting it running is pretty fast thing 2020-05-19T22:53:44Z p_l: there is even FPGA reimplementation 2020-05-19T22:53:46Z solrize: yeah but what about getting the software together 2020-05-19T22:54:18Z p_l: solrize: CADR software is open source and available in working form, though not the last version - there's ongoing work to recover code from newer versions 2020-05-19T22:54:46Z akoana joined #lisp 2020-05-19T22:54:47Z solrize: i've never used a lisp machine beyond playing a little. i'd like to give an emulator a try 2020-05-19T22:54:58Z p_l: this involves quite a bit of software archeology, as you need to have compatible microcode and OS 2020-05-19T22:55:21Z p_l: solrize: https://tumbleweed.nu/lm-3/ 2020-05-19T22:55:24Z p_l: for CADR 2020-05-19T22:55:24Z solrize: i mean is there a usable older version of cadr? like if you want a pdp-10 there are a few different emulators you can download and run easily 2020-05-19T22:55:26Z solrize: ah thanks 2020-05-19T22:56:04Z solrize: nice, how much work is it to get that running? and does it busy loop the host cpu or anything like that? 2020-05-19T22:56:57Z solrize: brb 2020-05-19T22:57:15Z p_l: unfortunately it's going to pretty much busy loop, I tried to fix that but it's really, really non-trivial. Getting it working to the point where you can do everything you could on basic CADR (read: just console, no serial ports, no networks, no random special hw) is very quick 2020-05-19T22:57:24Z p_l: network support can take a moment depending on OS 2020-05-19T22:57:48Z p_l: connecting to inter-chaos-net is a matter of human-to-human coordination 2020-05-19T22:58:17Z terpri quit (Remote host closed the connection) 2020-05-19T22:58:40Z aeth: solrize: Plenty of things could benefit from a RTGC more than a traditional GC. e.g. games. 2020-05-19T22:59:22Z terpri joined #lisp 2020-05-19T23:00:15Z p_l: hell, any interactive program 2020-05-19T23:00:52Z p_l: in terms of classic performance metrics of a GC it might not be superfast, but it's going to have better results than manual management when it comes to latency 2020-05-19T23:04:19Z cosimone quit (Ping timeout: 252 seconds) 2020-05-19T23:05:54Z bhartrihari left #lisp 2020-05-19T23:06:12Z bhartrihari joined #lisp 2020-05-19T23:06:19Z solrize: no one will care if a video game misses a frame update once in a great while 2020-05-19T23:06:40Z solrize: the hard realtime stuff in a game will be on a gpu 2020-05-19T23:07:03Z aindilis quit (Ping timeout: 256 seconds) 2020-05-19T23:07:29Z p_l: solrize: hahaha 2020-05-19T23:07:30Z p_l: nope 2020-05-19T23:07:50Z p_l: solrize: the hard realtime stuff is input handling and preparing the frame 2020-05-19T23:08:10Z p_l: especially without G-Sync/Freesync 2020-05-19T23:09:23Z solrize: the gpu does that 2020-05-19T23:09:30Z arduo joined #lisp 2020-05-19T23:09:52Z p_l: solrize: no 2020-05-19T23:09:59Z p_l: the GPU does just the rendering 2020-05-19T23:10:11Z p_l: preparing the frame = preparing GPUs *input* 2020-05-19T23:10:18Z wxie joined #lisp 2020-05-19T23:10:18Z solrize: https://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced-fp/docs/sweeny.pdf this is good 2020-05-19T23:10:56Z cosimone joined #lisp 2020-05-19T23:12:16Z random-nick quit (Ping timeout: 272 seconds) 2020-05-19T23:13:19Z solrize: i think i'm remembering the part starting around slide 50 2020-05-19T23:13:20Z jprajzne quit (Quit: jprajzne) 2020-05-19T23:21:29Z gko joined #lisp 2020-05-19T23:24:14Z afidegnum quit (Ping timeout: 240 seconds) 2020-05-19T23:26:14Z afidegnum joined #lisp 2020-05-19T23:26:29Z freixo quit (Ping timeout: 272 seconds) 2020-05-19T23:27:24Z p_l: this reminds me of recent joke, that Unreal Engine 5 demo is there to troll web developers 2020-05-19T23:29:10Z freixo joined #lisp 2020-05-19T23:29:17Z Oladon joined #lisp 2020-05-19T23:29:58Z Bourne quit (Ping timeout: 246 seconds) 2020-05-19T23:30:17Z theseb quit (Quit: Leaving) 2020-05-19T23:37:00Z shifty joined #lisp 2020-05-19T23:38:45Z bhartrihari left #lisp 2020-05-19T23:38:48Z bhartrihari joined #lisp 2020-05-19T23:42:57Z Inline quit (Ping timeout: 272 seconds) 2020-05-19T23:42:58Z shifty quit (Ping timeout: 256 seconds) 2020-05-19T23:45:36Z aeth: To be fair, you're not going to actually be able to use UE5 to make games look like that on the PS5. Demos always overpromise. 2020-05-19T23:45:52Z aeth: now, the Lisp engines, they underpromise with their demos! :-p 2020-05-19T23:51:32Z arduo quit (Ping timeout: 272 seconds) 2020-05-19T23:56:53Z pjb quit (Ping timeout: 272 seconds) 2020-05-19T23:57:49Z freixo quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2020-05-19T23:59:30Z EvW quit (Ping timeout: 244 seconds) 2020-05-20T00:01:28Z shangul joined #lisp 2020-05-20T00:02:53Z shifty joined #lisp 2020-05-20T00:10:19Z shangul quit (Ping timeout: 265 seconds) 2020-05-20T00:16:04Z aindilis joined #lisp 2020-05-20T00:17:16Z theBlackDragon joined #lisp 2020-05-20T00:24:15Z cantstanya joined #lisp 2020-05-20T00:25:46Z scymtym quit (Ping timeout: 260 seconds) 2020-05-20T00:27:31Z chewzerita joined #lisp 2020-05-20T00:28:09Z scymtym joined #lisp 2020-05-20T00:30:26Z pjb joined #lisp 2020-05-20T00:30:58Z Oladon quit (Quit: Leaving.) 2020-05-20T00:33:17Z Lord_of_Life_ joined #lisp 2020-05-20T00:33:48Z ayuce quit (Read error: Connection reset by peer) 2020-05-20T00:35:47Z Lord_of_Life quit (Ping timeout: 258 seconds) 2020-05-20T00:36:06Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-20T00:37:10Z gko quit (Ping timeout: 246 seconds) 2020-05-20T00:41:22Z chewzerita quit (Ping timeout: 246 seconds) 2020-05-20T00:46:30Z Achylles joined #lisp 2020-05-20T00:53:52Z wxie quit (Read error: Connection reset by peer) 2020-05-20T00:54:10Z Achylles quit (Quit: Leaving) 2020-05-20T00:54:14Z orivej_ quit (Ping timeout: 240 seconds) 2020-05-20T00:54:17Z wxie joined #lisp 2020-05-20T01:01:02Z wxie quit (Ping timeout: 260 seconds) 2020-05-20T01:01:40Z dddddd quit (Ping timeout: 246 seconds) 2020-05-20T01:04:13Z efm_ joined #lisp 2020-05-20T01:05:22Z benjamin1 joined #lisp 2020-05-20T01:09:32Z wxie joined #lisp 2020-05-20T01:22:07Z wsinatra joined #lisp 2020-05-20T01:22:45Z marusich joined #lisp 2020-05-20T01:23:47Z benjamin1 quit (Ping timeout: 260 seconds) 2020-05-20T01:28:20Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-20T01:34:26Z bitmapper quit (Ping timeout: 256 seconds) 2020-05-20T01:51:09Z efm_ quit (Quit: Konversation terminated!) 2020-05-20T01:54:21Z Bike quit (Quit: leaving) 2020-05-20T01:58:10Z wxie quit (Ping timeout: 256 seconds) 2020-05-20T01:59:08Z wxie joined #lisp 2020-05-20T02:13:14Z zaquest quit (Quit: Leaving) 2020-05-20T02:14:08Z zooey quit (Remote host closed the connection) 2020-05-20T02:14:30Z zooey joined #lisp 2020-05-20T02:18:21Z Bourne joined #lisp 2020-05-20T02:22:51Z benjamin1 joined #lisp 2020-05-20T02:30:20Z sz0 quit (Quit: Connection closed for inactivity) 2020-05-20T02:39:51Z gigetoo quit (Ping timeout: 260 seconds) 2020-05-20T02:39:54Z refpga quit (Ping timeout: 240 seconds) 2020-05-20T02:59:13Z bhartrihari left #lisp 2020-05-20T03:00:30Z gaqwas quit (Ping timeout: 256 seconds) 2020-05-20T03:01:43Z gaqwas joined #lisp 2020-05-20T03:01:44Z gigetoo joined #lisp 2020-05-20T03:04:38Z SGASAU joined #lisp 2020-05-20T03:04:59Z benjamin1 quit (Ping timeout: 272 seconds) 2020-05-20T03:05:13Z dmiles quit (Read error: Connection reset by peer) 2020-05-20T03:05:37Z pjb quit (Ping timeout: 272 seconds) 2020-05-20T03:06:00Z refpga joined #lisp 2020-05-20T03:06:35Z benjamin1 joined #lisp 2020-05-20T03:07:47Z _paul0 joined #lisp 2020-05-20T03:08:22Z paul0 quit (Ping timeout: 265 seconds) 2020-05-20T03:09:13Z dmiles joined #lisp 2020-05-20T03:10:12Z beach: Good morning everyone! 2020-05-20T03:11:37Z zaquest joined #lisp 2020-05-20T03:11:52Z Oladon joined #lisp 2020-05-20T03:12:13Z benjamin1 quit (Ping timeout: 244 seconds) 2020-05-20T03:14:00Z Balooga_ joined #lisp 2020-05-20T03:15:45Z Balooga_ quit (Client Quit) 2020-05-20T03:34:57Z anticrisis quit (Read error: Connection reset by peer) 2020-05-20T03:35:10Z mathrick joined #lisp 2020-05-20T03:36:12Z wxie quit (Ping timeout: 260 seconds) 2020-05-20T03:40:48Z shifty quit (Ping timeout: 256 seconds) 2020-05-20T03:41:03Z pjb joined #lisp 2020-05-20T03:43:55Z jfrancis joined #lisp 2020-05-20T03:47:08Z notzmv quit (Ping timeout: 272 seconds) 2020-05-20T03:48:14Z notzmv joined #lisp 2020-05-20T03:48:25Z notzmv is now known as Guest43056 2020-05-20T03:49:03Z ahungry joined #lisp 2020-05-20T03:50:01Z White_Flame: hey, beach. I read your sliding-gc paper a bit ago. I'm curious about how sizing the nursery to the total CPU cache size made sense in terms of threading & multicore 2020-05-20T03:51:26Z White_Flame: do the nursery compactions occur & run in each mutator thread when they need it while everything else runs concurrently, or is this still a single-threaded stop-the-world GC that can assume all the cache resources? 2020-05-20T03:51:30Z moon-child: I'm trying to write my own version of 'and'. Here's my first crack at it http://sprunge.us/G3Kc7r?cl 2020-05-20T03:52:40Z White_Flame: you can't APPLY a special form, only functions 2020-05-20T03:53:26Z moon-child: doesn't work, of course. But is there something I can do to 'parm' to see its contents other than (list ,@parm) 2020-05-20T03:56:58Z White_Flame: it's a list 2020-05-20T03:57:10Z White_Flame: so you can ,@(mapcar .... parm) 2020-05-20T03:57:16Z White_Flame: and make a form per parm 2020-05-20T03:57:29Z Guest43056 quit (Ping timeout: 265 seconds) 2020-05-20T03:58:10Z moon-child: I figured out a better way http://sprunge.us/0hZxsC?cl 2020-05-20T03:58:11Z White_Flame: when looping over PARM, you could print the current parameter (at compile time) to show you what exactly it can see 2020-05-20T03:59:27Z White_Flame: sure, that could work. Macroexpand it to see if it makes some extra terminator clauses in there, although the compiler would hopefully optimize things out 2020-05-20T03:59:53Z notzmv- joined #lisp 2020-05-20T03:59:58Z White_Flame: eg, at the terminator you might end up with an (IF T T NIL) 2020-05-20T04:01:07Z notzmv- is now known as notzmv 2020-05-20T04:01:54Z moon-child: ah - yep, you're right 2020-05-20T04:02:08Z no-defun-allowed: moon-child: Why the underscore in my_and, and the blank lines between the cases? 2020-05-20T04:03:17Z moon-child: 1. no good reason. I haven't written lisp in a while, so I forgot how good kebabs were. 2. clarity 2020-05-20T04:03:40Z no-defun-allowed: In Common Lisp, AND is specified to return the last form if the others are true, so it is unnecessary to wrap the last form in a (if t nil). 2020-05-20T04:04:46Z no-defun-allowed: Something beach told me, is that it's nicer to put the "base case" of a recursive function or macro at the start, so the body would be (if (null parm) t ) 2020-05-20T04:04:47Z beach: White_Flame: Each application thread runs a nursery collection as it needs it. 2020-05-20T04:06:31Z no-defun-allowed: (And, well, you will probably end up with a COND for the three cases: no forms, one form, and more than one form.) 2020-05-20T04:07:11Z beach: White_Flame: I make sure there are no pointers from the global heap to the nurseries, so each mutator thread can run its GC independently of the others. 2020-05-20T04:11:13Z moon-child: no-defun-allowed: right. (Actually, the reason I'm going through this exercise is I'm building my own lisp and my 'and' definition had some trouble. So, don't have cond yet) 2020-05-20T04:11:36Z no-defun-allowed: I would define COND before AND. 2020-05-20T04:12:07Z _paul0 quit (Ping timeout: 272 seconds) 2020-05-20T04:12:07Z beach: moon-child: Also, page 13 of the LUV slides by Norvig and Pitman tells us not to use a default value as if it were a Boolean. Here, PARM is not a Boolean, but a list. So, that's another reason to follow the advice of no-defun-allowed, i.e. (if (null parm) ...) 2020-05-20T04:12:11Z White_Flame: beach: I'm just saying re the cache sizes, that for instance the L1+L2 sizes are a lot smaller than the total cache size of the CPU 2020-05-20T04:12:38Z White_Flame: so if the total CPU cache size is 4MB, and each thread has a 4MB nursery, they don't all get the cache effect 2020-05-20T04:12:41Z beach: White_Flame: I didn't take the cache size into consideration, but maybe I should. 2020-05-20T04:12:47Z no-defun-allowed expects an eight minute instrumental while compiling moon-child's Lisp implementation 2020-05-20T04:12:56Z moon-child: beach: haven't seen those slides. What's wrong with using a default value as a boolean? 2020-05-20T04:13:09Z beach: White_Flame: The size is based on how long a GC would take and it has to be short enough to handle applications such as sound processing. 2020-05-20T04:13:22Z moon-child: no-defun-allowed: you need and for variadic =, which came up earlier 2020-05-20T04:13:24Z paul0 joined #lisp 2020-05-20T04:13:24Z no-defun-allowed: Good point. 2020-05-20T04:13:54Z beach: moon-child: Elementary maintainability. You need to inform the person reading your code as soon as possible whether it is a Boolean or a list or something else with a default value. 2020-05-20T04:14:06Z White_Flame: beach: right, and if how long it takes relies on it being fully in cache, then if there are other threads running, then it won't be fully in cache 2020-05-20T04:14:39Z pjb quit (Ping timeout: 272 seconds) 2020-05-20T04:14:41Z White_Flame: (as multiple threads of discussion thrash beach cache ;) ) 2020-05-20T04:14:47Z no-defun-allowed: COND can be implemented with only IF (and the expansion creating stuff like LIST, but "only IF"), no? 2020-05-20T04:14:48Z moon-child: beach: if you see the macro takes the param as &rest, you know right away it's a list 2020-05-20T04:15:22Z beach: moon-child: You expose your code for others to read, so I assume you want remarks on it. If you don't, I'll be quiet. 2020-05-20T04:17:14Z beach: White_Flame: Yeah, I should consider those issues at some point. 2020-05-20T04:20:31Z Bourne quit (Read error: Connection reset by peer) 2020-05-20T04:21:36Z luckless quit (Remote host closed the connection) 2020-05-20T04:21:52Z luckless joined #lisp 2020-05-20T04:21:56Z beach: White_Flame: I don't know enough about multi-core architectures, so I don't know which cache is specific to a core and which one is not. 2020-05-20T04:22:38Z White_Flame: L1 & L2 tend to be per-core, while L3 is a shared pool 2020-05-20T04:22:58Z White_Flame: for instance, the big threadrippers have 256MB of L3, but 512KB of per-core L2 2020-05-20T04:23:07Z beach: So then, ideally, the nursery should not be larger than L1+L2. 2020-05-20T04:23:23Z White_Flame: and each core's resources is split between 2 threads 2020-05-20T04:23:34Z beach: Hmm, yes, I see. 2020-05-20T04:23:37Z beach: Complicated. 2020-05-20T04:23:57Z White_Flame: however, including L3 in the pool, you can just divide that by the thread count and get some other estimate, too 2020-05-20T04:24:12Z beach: I understand. 2020-05-20T04:26:46Z sdumi quit (Ping timeout: 246 seconds) 2020-05-20T04:27:30Z sdumi joined #lisp 2020-05-20T04:27:32Z beach: White_Flame: I think what is going to have the most impact on performance is the parallel and concurrent global collector. 2020-05-20T04:27:47Z beach: I can assign all the idle cores to it. :) 2020-05-20T04:27:54Z White_Flame: yep. (if there are any ;) ) 2020-05-20T04:28:29Z beach: Otherwise, I'll have to assign some of them anyway. 2020-05-20T04:29:15Z White_Flame: relative timings of caches from a few years back: https://stackoverflow.com/a/4087331 2020-05-20T04:30:11Z beach: Very interesting. Thanks. 2020-05-20T04:30:26Z White_Flame: assuming pipeline depths in the 20s or so, anything outside L2 is more expensive than a branch prediction miss 2020-05-20T04:31:45Z beach: It is getting very hard to write software for optimal performance. 2020-05-20T04:32:40Z White_Flame: yeah, fiddle & measure 2020-05-20T04:32:40Z vaporatorius quit (Read error: Connection reset by peer) 2020-05-20T04:33:06Z White_Flame: but then again that would only reflect optimizations on your specific cpu/memory/motherboard/etc 2020-05-20T04:33:22Z beach: ... which makes it even harder, yes. 2020-05-20T04:33:26Z White_Flame: this is why I consider JITs to be better than AOT 2020-05-20T04:33:48Z beach: Time for some physical exercise. I'll be back in 30 minutes or so. 2020-05-20T04:38:33Z Oladon quit (Quit: Leaving.) 2020-05-20T04:43:59Z benjamin1 joined #lisp 2020-05-20T04:47:18Z gravicappa joined #lisp 2020-05-20T04:48:19Z benjamin1 quit (Ping timeout: 244 seconds) 2020-05-20T04:49:24Z pjb joined #lisp 2020-05-20T04:51:06Z devon quit (Ping timeout: 272 seconds) 2020-05-20T04:54:42Z unl0ckd quit (Ping timeout: 260 seconds) 2020-05-20T04:54:42Z katco quit (Ping timeout: 260 seconds) 2020-05-20T04:55:18Z Gnuxie[m] quit (Ping timeout: 260 seconds) 2020-05-20T04:56:04Z unl0ckd joined #lisp 2020-05-20T04:56:25Z katco joined #lisp 2020-05-20T04:56:59Z rabuf quit (Remote host closed the connection) 2020-05-20T04:57:09Z Gnuxie[m] joined #lisp 2020-05-20T04:58:32Z Lycurgus joined #lisp 2020-05-20T04:58:56Z narimiran joined #lisp 2020-05-20T05:01:03Z rabuf joined #lisp 2020-05-20T05:03:36Z Lycurgus quit (Remote host closed the connection) 2020-05-20T05:04:02Z sdumi quit (Ping timeout: 256 seconds) 2020-05-20T05:04:50Z beach: White_Flame: Maybe so, but JIT sounds very hard. It seems so easy to get it wrong and, as a consequence, to generate very bad code indeed. 2020-05-20T05:04:52Z terpri quit (Remote host closed the connection) 2020-05-20T05:05:46Z karlosz quit (Quit: karlosz) 2020-05-20T05:06:00Z karlosz joined #lisp 2020-05-20T05:08:22Z Jesin quit (Read error: Connection reset by peer) 2020-05-20T05:10:04Z Jesin joined #lisp 2020-05-20T05:11:17Z shka_ joined #lisp 2020-05-20T05:11:18Z shifty joined #lisp 2020-05-20T05:12:13Z slyrus_ joined #lisp 2020-05-20T05:13:51Z mathrick quit (Remote host closed the connection) 2020-05-20T05:15:10Z slyrus__ quit (Ping timeout: 272 seconds) 2020-05-20T05:15:24Z shifty quit (Remote host closed the connection) 2020-05-20T05:15:45Z shifty joined #lisp 2020-05-20T05:30:02Z _whitelogger quit (Remote host closed the connection) 2020-05-20T05:32:16Z _whitelogger joined #lisp 2020-05-20T05:34:14Z wxie joined #lisp 2020-05-20T05:36:12Z [mark] joined #lisp 2020-05-20T05:38:56Z benjamin1 joined #lisp 2020-05-20T05:43:50Z mathrick joined #lisp 2020-05-20T05:44:13Z akoana left #lisp 2020-05-20T05:47:02Z rgherdt joined #lisp 2020-05-20T05:49:11Z sdumi joined #lisp 2020-05-20T05:52:14Z ahungry quit (Remote host closed the connection) 2020-05-20T05:53:04Z sauvin joined #lisp 2020-05-20T05:53:45Z [mark] quit (Quit: Konversation terminated!) 2020-05-20T05:57:41Z SGASAU quit (Remote host closed the connection) 2020-05-20T05:58:57Z SGASAU joined #lisp 2020-05-20T06:00:04Z [mark] joined #lisp 2020-05-20T06:03:18Z doesthiswork quit (Ping timeout: 272 seconds) 2020-05-20T06:08:33Z SGASAU quit (Remote host closed the connection) 2020-05-20T06:09:31Z SGASAU joined #lisp 2020-05-20T06:09:55Z orivej joined #lisp 2020-05-20T06:09:57Z wxie quit (Ping timeout: 260 seconds) 2020-05-20T06:14:07Z emys joined #lisp 2020-05-20T06:15:36Z SGASAU quit (Remote host closed the connection) 2020-05-20T06:16:55Z SGASAU joined #lisp 2020-05-20T06:25:38Z bebop joined #lisp 2020-05-20T06:26:02Z orivej quit (Ping timeout: 260 seconds) 2020-05-20T06:26:06Z orivej_ joined #lisp 2020-05-20T06:31:26Z Balooga left #lisp 2020-05-20T06:32:00Z terpri joined #lisp 2020-05-20T06:34:32Z bhartrihari joined #lisp 2020-05-20T06:36:01Z SGASAU quit (Remote host closed the connection) 2020-05-20T06:36:42Z SGASAU joined #lisp 2020-05-20T06:38:48Z SGASAU quit (Remote host closed the connection) 2020-05-20T06:39:33Z SGASAU joined #lisp 2020-05-20T06:40:30Z vaporatorius joined #lisp 2020-05-20T06:40:30Z vaporatorius quit (Changing host) 2020-05-20T06:40:30Z vaporatorius joined #lisp 2020-05-20T06:45:43Z Necktwi quit (Ping timeout: 246 seconds) 2020-05-20T06:47:01Z refpga quit (Read error: Connection reset by peer) 2020-05-20T06:47:13Z random-nick joined #lisp 2020-05-20T06:47:17Z benjamin1 quit (Ping timeout: 272 seconds) 2020-05-20T06:47:49Z bhartrihari left #lisp 2020-05-20T06:50:09Z SGASAU quit (Remote host closed the connection) 2020-05-20T06:50:48Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-20T06:51:15Z orivej joined #lisp 2020-05-20T06:52:11Z bhartrihari joined #lisp 2020-05-20T06:52:49Z SGASAU joined #lisp 2020-05-20T06:55:47Z frgo_ joined #lisp 2020-05-20T06:58:02Z frgo quit (Ping timeout: 260 seconds) 2020-05-20T06:58:41Z benjamin1 joined #lisp 2020-05-20T07:00:51Z pve joined #lisp 2020-05-20T07:04:12Z Balooga joined #lisp 2020-05-20T07:04:48Z Balooga left #lisp 2020-05-20T07:05:23Z jprajzne joined #lisp 2020-05-20T07:05:26Z varjag joined #lisp 2020-05-20T07:07:05Z amerlyq joined #lisp 2020-05-20T07:11:36Z mebious404 joined #lisp 2020-05-20T07:14:42Z agam joined #lisp 2020-05-20T07:15:55Z gaqwas quit (Changing host) 2020-05-20T07:15:55Z gaqwas joined #lisp 2020-05-20T07:16:33Z liberliver joined #lisp 2020-05-20T07:24:21Z agam quit (Ping timeout: 265 seconds) 2020-05-20T07:29:15Z gaqwas quit (Remote host closed the connection) 2020-05-20T07:30:11Z bhartrihari left #lisp 2020-05-20T07:30:14Z bhartrihari joined #lisp 2020-05-20T07:32:21Z InvertAlwaysInve joined #lisp 2020-05-20T07:37:47Z InvertAlwaysInve quit (Quit: Leaving) 2020-05-20T07:41:26Z SGASAU quit (Remote host closed the connection) 2020-05-20T07:42:24Z dale quit (Quit: My computer has gone to sleep) 2020-05-20T07:42:41Z SGASAU joined #lisp 2020-05-20T07:46:54Z Oddity quit (Ping timeout: 256 seconds) 2020-05-20T07:48:20Z karlosz quit (Quit: karlosz) 2020-05-20T07:48:47Z emys quit (Ping timeout: 260 seconds) 2020-05-20T07:50:10Z karlosz joined #lisp 2020-05-20T07:51:55Z gaqwas joined #lisp 2020-05-20T07:52:46Z emys joined #lisp 2020-05-20T07:53:17Z agam joined #lisp 2020-05-20T07:56:44Z rgherdt quit (Ping timeout: 265 seconds) 2020-05-20T07:59:29Z pjb quit (Ping timeout: 272 seconds) 2020-05-20T08:00:50Z rgherdt joined #lisp 2020-05-20T08:02:26Z random-nick quit (Read error: Connection reset by peer) 2020-05-20T08:06:09Z ljavorsk joined #lisp 2020-05-20T08:06:14Z random-nick joined #lisp 2020-05-20T08:06:31Z Necktwi joined #lisp 2020-05-20T08:10:16Z emys quit (Ping timeout: 265 seconds) 2020-05-20T08:10:32Z rgherdt quit (Ping timeout: 256 seconds) 2020-05-20T08:13:26Z Oddity joined #lisp 2020-05-20T08:14:00Z rgherdt joined #lisp 2020-05-20T08:14:49Z emys joined #lisp 2020-05-20T08:15:13Z agam quit (Ping timeout: 264 seconds) 2020-05-20T08:17:54Z orivej quit (Ping timeout: 256 seconds) 2020-05-20T08:17:56Z orivej_ joined #lisp 2020-05-20T08:21:54Z heisig joined #lisp 2020-05-20T08:26:07Z benjamin1 quit (Ping timeout: 260 seconds) 2020-05-20T08:27:54Z datajerk quit (Ping timeout: 240 seconds) 2020-05-20T08:31:21Z marcoxa joined #lisp 2020-05-20T08:32:36Z pjb joined #lisp 2020-05-20T08:34:33Z datajerk joined #lisp 2020-05-20T08:40:14Z emys quit (Ping timeout: 265 seconds) 2020-05-20T08:44:41Z agam joined #lisp 2020-05-20T08:45:18Z rogersm joined #lisp 2020-05-20T08:47:58Z pkrJones_ joined #lisp 2020-05-20T08:49:39Z agam quit (Ping timeout: 256 seconds) 2020-05-20T08:50:18Z mebious404 quit (Quit: Leaving) 2020-05-20T08:55:24Z rogersm quit (Quit: Leaving...) 2020-05-20T08:55:27Z wxie joined #lisp 2020-05-20T08:59:35Z bhartrihari left #lisp 2020-05-20T09:00:48Z bhartrihari joined #lisp 2020-05-20T09:02:09Z shangul joined #lisp 2020-05-20T09:05:08Z X-Scale` joined #lisp 2020-05-20T09:05:43Z X-Scale quit (Ping timeout: 246 seconds) 2020-05-20T09:05:58Z X-Scale` is now known as X-Scale 2020-05-20T09:06:58Z wxie quit (Ping timeout: 272 seconds) 2020-05-20T09:19:07Z fanta1 joined #lisp 2020-05-20T09:28:35Z solrize: http://akrl.sdf.org/gccemacs.html not CL but wowwwww 2020-05-20T09:28:55Z solrize: makes me want even more to mess with purescript 2020-05-20T09:30:58Z no-defun-allowed wonders how PureScript relates to Emacs Lisp and/or Common Lisp. 2020-05-20T09:32:58Z solrize: that gccemacs page mentions that gccemacs lisp supports TCO, so it can be a reasonable backend to purescript 2020-05-20T09:33:16Z solrize: although maybe it doesn't even need TCO for that 2020-05-20T09:34:03Z phoe: oooh! it's the ELS presentation guy 2020-05-20T09:34:09Z no-defun-allowed: So do SBCL, Clozure, CLISP, and approximately every Scheme compiler, but those implement sensible programming languages already. 2020-05-20T09:34:33Z solrize: clisp doesn't implement TCO unless you explicitly run the compiler 2020-05-20T09:34:54Z shka_ quit (Ping timeout: 256 seconds) 2020-05-20T09:35:04Z solrize: every (not approximately every) scheme does it because the scheme definition requires it 2020-05-20T09:35:20Z no-defun-allowed: Loading a system with ASDF will COMPILE-FILE files (I think?) so that isn't a problem. 2020-05-20T09:35:22Z solrize: but, i don't know whether javascript does it, and JS is the main backend for PS 2020-05-20T09:35:47Z solrize: hmm i haven't been using asdf 2020-05-20T09:35:55Z solrize: i'll look into it 2020-05-20T09:43:57Z luis: solrize: "explicitly running the compiler" makes it sound like that's uncommon or difficult. It's neither! 2020-05-20T09:44:30Z solrize: it's more cruft 2020-05-20T09:44:39Z phoe: lispers: haha #'compile go # NIL NIL 2020-05-20T09:44:45Z phoe hides 2020-05-20T09:45:02Z solrize: bah 2020-05-20T09:45:34Z solrize: if it was reliable and automatic they could just write it into the language spec and get rid of LOOP 2020-05-20T09:45:58Z sdumi quit (Ping timeout: 265 seconds) 2020-05-20T09:47:01Z orivej_ quit (Ping timeout: 264 seconds) 2020-05-20T09:47:06Z orivej joined #lisp 2020-05-20T09:47:16Z no-defun-allowed: Yeah, nah. 2020-05-20T09:48:56Z no-defun-allowed: Extended LOOP is much easier to write than the equivalent in DO, simple LOOP or recursion, when applicable. 2020-05-20T09:49:44Z karlosz quit (Quit: karlosz) 2020-05-20T09:49:53Z pmden joined #lisp 2020-05-20T09:50:41Z gxt joined #lisp 2020-05-20T09:53:02Z solrize: shrug i've never felt i wanted it but who knows 2020-05-20T09:54:28Z beach: LOOP you mean? 2020-05-20T09:54:39Z beach: If so: Wow! 2020-05-20T09:55:36Z beach: And we should certainly not get rid of it, since it does much more than just iterate. 2020-05-20T09:57:31Z beach: But I guess if you have never used it, you wouldn't know. 2020-05-20T09:58:13Z splittist: And elegantly constructed DO is a wonderful thing. But sometimes LOOP is the clearest way to present your thinking to yourself, the compiler and future readers of the code. 2020-05-20T09:59:15Z luis: splittist: I hate DO for some reason. :-) 2020-05-20T09:59:16Z solrize: i've seen some pretty horrid examples though one can write horrid examples of anything 2020-05-20T09:59:39Z solrize: there's a famous rant about LOOP by i think it may have been weinreb 2020-05-20T10:00:03Z luis: solrize: using a Lisp compiler to compile Lisp code is cruft? I'm confused. 2020-05-20T10:00:25Z splittist: luis: I do find I can fit the details of DO or LOOP in my brain, but not both at the same time. 2020-05-20T10:00:26Z solrize: having compiled code implement TCO while interpreted code doesn't is cruft 2020-05-20T10:00:45Z no-defun-allowed: solrize: Please show us on the REPL where (loop for x in list when (plusp x) minimize x) hurt you. 2020-05-20T10:01:04Z phoe: it's up to the implementations to implement TCO, the standard says nothing about that 2020-05-20T10:01:07Z solrize: what does that even do? 2020-05-20T10:01:25Z solrize: phoe, right, if the standard said TCO was required then much cruft could go away 2020-05-20T10:01:26Z benjamin1 joined #lisp 2020-05-20T10:01:29Z phoe: solrize: ...are you seriously complaining about LOOP without understanding LOOP 2020-05-20T10:01:36Z no-defun-allowed: That would return the smallest positive number in LIST. 2020-05-20T10:02:03Z no-defun-allowed: Yeah, no, LOOP and imperative algorithms wouldn't magically disappear if you had tail call elimination. 2020-05-20T10:02:14Z solrize: (apply #'min (filter #'plusp x)) ? 2020-05-20T10:02:26Z solrize: or rather reduce 2020-05-20T10:02:57Z no-defun-allowed: That conses up an additional list in the middle. 2020-05-20T10:02:58Z luis: solrize: it's nice that Lisp compilers let you turn the O in TCO off, since it's a speed/space vs debug trade-off. 2020-05-20T10:03:16Z solrize: no-defun-allowed, that's why optimizing compilers were invented ;) 2020-05-20T10:03:16Z phoe: if you want to prove something, then yes, iteration is fully equivalent to filtering+application+reduction 2020-05-20T10:03:52Z no-defun-allowed: You would either want deforestation in the compiler, or something like SERIES which...does deforestation. Well, you would want deforestation then. 2020-05-20T10:03:53Z phoe: and Lisp is a multi-paradigm language, which is why we actually have both in the standard 2020-05-20T10:04:26Z luis: loop's great. reduce's great. It's all good. Except DO. DO is evil. :) 2020-05-20T10:04:32Z solrize: lisp is imperative; if it were multi-paradigm then TCO would be in the standard ;) 2020-05-20T10:05:01Z toorevitimirp joined #lisp 2020-05-20T10:05:04Z solrize: being able to turn it off for debugging makes some sense i guess 2020-05-20T10:05:23Z solrize: i will have to check how purescript deals with it 2020-05-20T10:06:01Z no-defun-allowed uploaded an image: notfunny-abelson.png (125KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/EMXtDgCElECkflrVPDiUFOaB > 2020-05-20T10:06:03Z solrize: i mean whether it does CPS conversion in the PS compiler 2020-05-20T10:06:28Z solrize: haha 2020-05-20T10:06:38Z no-defun-allowed: Perhaps you should go to #c++, #python, and some other channels and ask how they claim to be multi-paradigm without tail calls. 2020-05-20T10:07:10Z solrize: do they claim that? maybe they are counting OO as a paradigm ;) 2020-05-20T10:07:26Z no-defun-allowed: And Common Lisp does not? 2020-05-20T10:07:33Z solrize: "more paradigms than you can shake a stick at" 2020-05-20T10:07:48Z solrize: i forgot about OO i'm used to thinking of it as a 1990s thing that didn't work out 2020-05-20T10:07:49Z beach: I find it strange for someone to have opinions about whether a feature that that someone does know should be included or not in the language. 2020-05-20T10:07:56Z SGASAU quit (Remote host closed the connection) 2020-05-20T10:08:04Z no-defun-allowed: Have you even read the Wikipedia page on Common Lisp? 2020-05-20T10:08:17Z solrize: yeah some time back 2020-05-20T10:08:35Z no-defun-allowed: "Common Lisp is a general-purpose, multi-paradigm programming language. It supports a combination of procedural, functional, and object-oriented programming paradigms." 2020-05-20T10:09:28Z SGASAU joined #lisp 2020-05-20T10:09:47Z Ethan_ joined #lisp 2020-05-20T10:09:57Z phoe: are we now debating multi-paradigmness of Lisp and whether lack TCO is enough to call a language "imperative" 2020-05-20T10:10:00Z phoe: seriously 2020-05-20T10:10:29Z Ethan_ quit (Read error: Connection reset by peer) 2020-05-20T10:10:36Z no-defun-allowed: Yes, we are. I think this is a veeeery fun and productive use of my time. 2020-05-20T10:10:52Z Ethan_ joined #lisp 2020-05-20T10:10:54Z solrize: hehe.... well i've gotten snagged by it in clisp a few times 2020-05-20T10:10:57Z phoe gently opens the door to #lispcafe 2020-05-20T10:11:03Z luis: I got late into a meeting because of this discussion. Gah. :D 2020-05-20T10:11:20Z solrize: luis oops 2020-05-20T10:11:42Z solrize: wow i didn't know about lispcafe 2020-05-20T10:11:54Z beach: phoe: Apparently, yes. And we are apparently treating CLOS as similar to the feature of other object-oriented languages. 2020-05-20T10:11:54Z solrize: brb 2020-05-20T10:12:01Z SGASAU quit (Remote host closed the connection) 2020-05-20T10:12:23Z phoe: solrize: now you do! 2020-05-20T10:12:48Z SGASAU joined #lisp 2020-05-20T10:14:02Z FishByte quit (Ping timeout: 260 seconds) 2020-05-20T10:19:45Z solrize: CLOS also seemed pretty horrible though i confess i liked flavors 2020-05-20T10:19:57Z beach: solrize: Please stop it. 2020-05-20T10:20:12Z solrize: i wrote a half-assed implementation of flavors in emacs lisp once 2020-05-20T10:20:16Z beach: solrize: Please don't have opinions about features you know nothing about. 2020-05-20T10:20:53Z solrize: i read the docs and looked at code examples and that was enough for me... i'm sure you could do the same about C++ or whatever 2020-05-20T10:21:50Z sdumi joined #lisp 2020-05-20T10:21:58Z phoe very gently nudges solrize towards #lispcafe 2020-05-20T10:22:05Z solrize: ok ok 2020-05-20T10:22:06Z beach: It sounds like you would be better off using a different language, since LOOP and CLOS are two of the main features of Common Lisp. 2020-05-20T10:22:41Z beach: I mean, Common Lisp doesn't even require tail-call optimization. Sheesh! 2020-05-20T10:23:11Z SGASAU` joined #lisp 2020-05-20T10:23:16Z phoe: paradoxically, pointless complaining about Lisp is off-topic on #lisp since it achieves nothing 2020-05-20T10:23:23Z phoe: #lispcafe is open for that 2020-05-20T10:23:40Z phoe: but #lisp is for actually getting some work done in Common Lisp, and complaining is the anti-thesis of getting work done 2020-05-20T10:24:18Z solrize: CL was CL before CLOS was a thing 2020-05-20T10:24:20Z phoe: unless, I guess, it's constructive in some way - but at that point it's not complaining anymore 2020-05-20T10:24:36Z solrize: CLtL1 doesn't say anything about clos 2020-05-20T10:24:47Z phoe: solrize: you are 100% correct and 0% relevant 2020-05-20T10:24:56Z phoe: this channel is about ANSI Common Lisp, a dialect which contains CLOS as an integral part of it 2020-05-20T10:25:10Z no-defun-allowed: And? CLOS is well integrated into CL (except for the condition system. We don't talk about the condition system). 2020-05-20T10:25:14Z solrize: hehe 2020-05-20T10:25:20Z phoe: > hehe 2020-05-20T10:25:34Z solrize: is clos in cltl2? 2020-05-20T10:25:43Z phoe: let me warn you once 2020-05-20T10:25:47Z phoe (warn 'solrize) 2020-05-20T10:25:53Z no-defun-allowed: It's okay phoe, the condition system can't bully you, the condition system isn't real. 2020-05-20T10:26:07Z sdumi quit (Ping timeout: 258 seconds) 2020-05-20T10:26:11Z jmarciano joined #lisp 2020-05-20T10:26:36Z solrize: i remember reading sonya keene's book about clos 2020-05-20T10:26:50Z SGASAU quit (Ping timeout: 260 seconds) 2020-05-20T10:32:25Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-20T10:33:01Z splittist: Soooo. What's everyone's favourite idiom for: given a list of item names, return the first item of that name to be found in a key-value store? 2020-05-20T10:33:45Z orivej joined #lisp 2020-05-20T10:33:59Z Josh_2: a hash table? 2020-05-20T10:34:02Z phoe: first item of what name 2020-05-20T10:34:10Z Josh_2: or a alist/plist 2020-05-20T10:34:15Z phoe: we have '(foo bar baz), which name do you mean 2020-05-20T10:34:26Z phoe: the first name, or for each name we want to return a value 2020-05-20T10:34:32Z phoe: because the latter is #'mapcar 2020-05-20T10:37:00Z Josh_2: (assoc ':a '((:a "a")(:b "b"))) -> (:A "a") 2020-05-20T10:37:03Z Josh_2: alists are sweet 2020-05-20T10:41:43Z ayuce joined #lisp 2020-05-20T10:44:42Z benjamin1 quit (Ping timeout: 260 seconds) 2020-05-20T10:45:23Z Snow-Man quit (Ping timeout: 246 seconds) 2020-05-20T10:45:54Z agam joined #lisp 2020-05-20T10:47:35Z sdumi joined #lisp 2020-05-20T10:48:02Z bhartrihari left #lisp 2020-05-20T10:48:24Z bhartrihari joined #lisp 2020-05-20T10:50:15Z ayuce quit (Remote host closed the connection) 2020-05-20T10:50:22Z FreeBirdLjj joined #lisp 2020-05-20T10:50:24Z splittist: I have a list "foo" "bar" "baz". These are potential keys to a hash-table (not really, but it makes no difference). I want to return the value that corresponds to the first key in the list that is found in the table, or nil (nil not being a valid value). 2020-05-20T10:50:45Z phoe: so if there is no value for "foo" then you want to look for "bar" 2020-05-20T10:50:54Z phoe: and if "bar" has a value then you return it and do not look "baz" up 2020-05-20T10:50:57Z phoe: correct? 2020-05-20T10:52:05Z splittist: phoe: Yes. 2020-05-20T10:52:35Z no-defun-allowed: (loop for key in keys for present = (present-p key) when present return (retrieve-value-for key)) 2020-05-20T10:52:49Z cosimone quit (Quit: Quit.) 2020-05-20T10:52:49Z agam quit (Ping timeout: 246 seconds) 2020-05-20T10:53:12Z phoe: no-defun-allowed: eww 2020-05-20T10:53:15Z solrize: gnite all 2020-05-20T10:53:15Z splittist: no-defun-allowed: and if present-p and retrieve-value-for are the same function? 2020-05-20T10:53:25Z phoe: oh, wait, it's present-p 2020-05-20T10:53:38Z splittist tries to remember how "IT" works in LOOP 2020-05-20T10:53:40Z phoe: you can get (values value presentp) from gethash 2020-05-20T10:54:15Z no-defun-allowed: phoe: Did I forget to shower or something? 2020-05-20T10:54:25Z phoe: no no, I misread 2020-05-20T10:54:26Z phoe: (loop for key in keys for (value presentp) = (gethash hash-table values) when presentp return value finally (return :nope)) 2020-05-20T10:55:05Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2020-05-20T10:55:28Z no-defun-allowed: What, you can do FOR (values ...) = form? 2020-05-20T10:55:35Z cosimone joined #lisp 2020-05-20T10:55:37Z phoe: uhhh I forgot 2020-05-20T10:55:45Z phoe: (loop for key in keys for (value presentp) = (multiple-value-list (gethash hash-table values)) when presentp return value finally (return :nope)) 2020-05-20T10:55:48Z phoe: there! 2020-05-20T10:56:57Z orivej_ joined #lisp 2020-05-20T10:57:03Z splittist: (loop for key in keys when (gethash key dict) return it finally (return nil)) ? 2020-05-20T10:57:12Z phoe: splittist: ewwww 2020-05-20T10:57:20Z phoe: (that is the eww that I originally wanted to make) 2020-05-20T10:57:28Z phoe: what if the value is NIL 2020-05-20T10:57:38Z phoe: like, (setf (gethash x y) nil) 2020-05-20T10:57:45Z phoe: then gethash will return (values NIL T) 2020-05-20T10:57:50Z jdz: splittist: You don't really need the finally part. 2020-05-20T10:57:54Z phoe: ^ 2020-05-20T10:58:02Z splittist: "(nil not being a valid value)" 2020-05-20T10:58:09Z splittist: jdz: ah! 2020-05-20T10:58:11Z phoe: oh! in that case, it's fine 2020-05-20T10:59:25Z orivej quit (Ping timeout: 256 seconds) 2020-05-20T11:00:07Z scymtym quit (Ping timeout: 260 seconds) 2020-05-20T11:00:30Z jdz: splittist: If instead of GETHASH you have your own dictionary lookup function (as you have hinted), then maybe this is more clear (assuming the point of the exercise is not to get it working with LOOP in particular): (some #'predicate keys) 2020-05-20T11:02:18Z jdz: And #'predicate should have been #'lookup. 2020-05-20T11:03:00Z jdz: This does not look so nice if you also want to pass the container you're looking at. 2020-05-20T11:03:23Z jdz: (some (lambda (key) (lookup key container)) keys) 2020-05-20T11:06:12Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-20T11:06:35Z orivej joined #lisp 2020-05-20T11:09:06Z sdumi quit (Ping timeout: 265 seconds) 2020-05-20T11:10:40Z notzmv quit (Remote host closed the connection) 2020-05-20T11:12:58Z splittist: jdz: interesting. Thanks. 2020-05-20T11:14:17Z ljavorsk quit (Remote host closed the connection) 2020-05-20T11:14:33Z scymtym joined #lisp 2020-05-20T11:16:50Z ljavorsk joined #lisp 2020-05-20T11:23:12Z gaqwas quit (Remote host closed the connection) 2020-05-20T11:23:14Z orivej quit (Ping timeout: 258 seconds) 2020-05-20T11:23:23Z gxt quit (Ping timeout: 240 seconds) 2020-05-20T11:23:23Z gaqwas joined #lisp 2020-05-20T11:23:45Z orivej joined #lisp 2020-05-20T11:28:59Z ayuce joined #lisp 2020-05-20T11:30:14Z milanj joined #lisp 2020-05-20T11:33:24Z orivej quit (Ping timeout: 256 seconds) 2020-05-20T11:33:25Z shangul quit (Ping timeout: 246 seconds) 2020-05-20T11:34:07Z Bike joined #lisp 2020-05-20T11:34:26Z orivej joined #lisp 2020-05-20T11:35:41Z gxt joined #lisp 2020-05-20T11:36:50Z pjb quit (Ping timeout: 265 seconds) 2020-05-20T11:42:27Z orivej quit (Ping timeout: 265 seconds) 2020-05-20T11:42:37Z orivej_ joined #lisp 2020-05-20T11:45:47Z benjamin-l quit (Quit: WeeChat 2.8) 2020-05-20T11:51:16Z pjb joined #lisp 2020-05-20T11:52:25Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-20T11:53:43Z gxt quit (Ping timeout: 240 seconds) 2020-05-20T11:54:15Z orivej joined #lisp 2020-05-20T11:58:28Z sz0 joined #lisp 2020-05-20T12:03:10Z heisig quit (Quit: Leaving) 2020-05-20T12:08:37Z pfdietz joined #lisp 2020-05-20T12:10:00Z orivej quit (Read error: Connection reset by peer) 2020-05-20T12:10:25Z orivej joined #lisp 2020-05-20T12:19:35Z orivej quit (Ping timeout: 258 seconds) 2020-05-20T12:20:05Z orivej joined #lisp 2020-05-20T12:30:19Z igemnace joined #lisp 2020-05-20T12:35:15Z Lord_of_Life_ joined #lisp 2020-05-20T12:36:36Z Lord_of_Life quit (Ping timeout: 272 seconds) 2020-05-20T12:36:37Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-20T12:37:14Z ngqrl joined #lisp 2020-05-20T12:42:45Z EvW joined #lisp 2020-05-20T12:46:03Z wsinatra joined #lisp 2020-05-20T12:46:26Z orivej quit (Ping timeout: 256 seconds) 2020-05-20T12:46:28Z whiteline quit (Remote host closed the connection) 2020-05-20T12:46:44Z simplegauss quit (Ping timeout: 272 seconds) 2020-05-20T12:46:49Z orivej joined #lisp 2020-05-20T12:46:57Z whiteline joined #lisp 2020-05-20T12:47:02Z shangul joined #lisp 2020-05-20T12:49:06Z agam joined #lisp 2020-05-20T12:49:22Z gaqwas quit (Changing host) 2020-05-20T12:49:22Z gaqwas joined #lisp 2020-05-20T12:49:39Z bhartrihari left #lisp 2020-05-20T12:49:42Z sdumi joined #lisp 2020-05-20T12:50:03Z simplegauss joined #lisp 2020-05-20T12:50:06Z bhartrihari joined #lisp 2020-05-20T12:53:11Z pkrJones_ quit (Quit: Leaving) 2020-05-20T12:54:36Z agam quit (Ping timeout: 256 seconds) 2020-05-20T12:56:12Z EvW quit (Ping timeout: 260 seconds) 2020-05-20T13:01:07Z bhartrihari left #lisp 2020-05-20T13:01:09Z bhartrihari joined #lisp 2020-05-20T13:04:58Z ralt: how do I do a CHECK-TYPE on a list? (check-type foo (list string)) is what I'd want 2020-05-20T13:05:55Z phoe: ralt: (assert (every #'stringp list)) 2020-05-20T13:06:17Z EvW joined #lisp 2020-05-20T13:06:29Z phoe: otherwise (loop for cons on list do (check-type (car cons) string)) 2020-05-20T13:06:42Z phoe: the latter will make the STORE-VALUE restart meaningful 2020-05-20T13:09:35Z bhartrihari left #lisp 2020-05-20T13:09:59Z bhartrihari joined #lisp 2020-05-20T13:15:30Z pfdietz: There are no type combinators that iterate over lists (or other sequences). A richer type system including such things, with integration into SUBTYPEP and the compiler, would be an interesting extension to CL. 2020-05-20T13:16:11Z beach: Jim Newtons dissertation contains such a type. 2020-05-20T13:16:39Z beach: RTE I think it is called. For Regular Type Expression. 2020-05-20T13:17:09Z beach: You can give a regular-expression-like s-expression that matches the types of elements of a list. 2020-05-20T13:20:35Z phoe: beach: I think it's for a list of specified length though 2020-05-20T13:20:45Z beach: What makes you think that? 2020-05-20T13:20:57Z phoe: since type expansions in Lisp must terminate and `list` is `(or cons null)` 2020-05-20T13:21:08Z beach: They use SATISFIES. 2020-05-20T13:21:11Z phoe: oh! 2020-05-20T13:21:15Z phoe: yes, that solves the problem directly 2020-05-20T13:21:52Z phoe: (defun list-of-strings-p (list) (every #'stringp list)) (deftype list-of-strings () '(satisfies list-of-strings-p)) 2020-05-20T13:21:56Z phoe: err 2020-05-20T13:22:03Z phoe: (defun list-of-strings-p (list) (every #'stringp list)) (deftype list-of-strings () '(and list (satisfies list-of-strings-p))) 2020-05-20T13:22:19Z Bike: you're relying on AND types working left to right 2020-05-20T13:22:54Z phoe: wait, don't they 2020-05-20T13:23:02Z Bike: why would they? types are sets. 2020-05-20T13:23:11Z phoe: (defun list-of-strings-p (list) (and (listp list (every #'stringp list))) (deftype list-of-strings () '(satisfies list-of-strings-p)) 2020-05-20T13:23:21Z phoe: plus minus some parens 2020-05-20T13:25:17Z dzho joined #lisp 2020-05-20T13:28:56Z shifty quit (Ping timeout: 256 seconds) 2020-05-20T13:29:14Z lottaquestions quit (Quit: Konversation terminated!) 2020-05-20T13:30:33Z mibr quit (Remote host closed the connection) 2020-05-20T13:30:57Z EvW quit (Ping timeout: 260 seconds) 2020-05-20T13:30:58Z whiteline quit (Remote host closed the connection) 2020-05-20T13:32:54Z doesthiswork joined #lisp 2020-05-20T13:33:15Z milanj quit (Quit: This computer has gone to sleep) 2020-05-20T13:36:34Z rogersm joined #lisp 2020-05-20T13:41:31Z wsinatra quit (Ping timeout: 244 seconds) 2020-05-20T13:42:11Z pmden quit (Quit: My MacBook Air has gone to sleep. ZZZzzz…) 2020-05-20T13:42:23Z jmercouris: why WOUDLN'T they? 2020-05-20T13:42:36Z jmercouris: would there be a performance benefit of not working left to right? 2020-05-20T13:42:44Z phoe: because '(and a b c) is equivalent to '(and b c a) 2020-05-20T13:42:50Z jmercouris: I know they are equivalent 2020-05-20T13:42:57Z jmercouris: but normally they work left to right 2020-05-20T13:43:02Z phoe: no 2020-05-20T13:43:04Z phoe: there's no "normally" here 2020-05-20T13:43:05Z jmercouris: so called "short circuiting" 2020-05-20T13:43:08Z phoe: the implementation may freely reorder these while performing 2020-05-20T13:43:19Z jmercouris: well, another thing I've read that is false... 2020-05-20T13:43:19Z phoe: ...performing type optimizations 2020-05-20T13:43:23Z wsinatra joined #lisp 2020-05-20T13:43:30Z phoe: this is not the macro AND 2020-05-20T13:43:39Z Bike: yes, i'm talking specifically about types. 2020-05-20T13:43:39Z phoe: this is the intersection operator from set theory 2020-05-20T13:43:48Z phoe: the type specifier AND 2020-05-20T13:43:54Z jmercouris: ah, OK 2020-05-20T13:43:58Z Bike: as a stupid example, if you do (and (satisfies foo) nil), this can be reduced to nil, and you can avoid calling FOO at all. 2020-05-20T13:45:14Z toorevitimirp quit (Remote host closed the connection) 2020-05-20T13:47:21Z toorevitimirp joined #lisp 2020-05-20T13:50:18Z whiteline joined #lisp 2020-05-20T13:51:20Z toorevitimirp quit (Remote host closed the connection) 2020-05-20T13:51:31Z pmden joined #lisp 2020-05-20T13:51:53Z toorevitimirp joined #lisp 2020-05-20T13:56:14Z phoe: jmercouris: while (and x y z) may refer both to the type specifier AND and the macro AND, '(and x y z) almost always refers to the type specifier due to the quote 2020-05-20T13:57:33Z phoe: it's slightly hard to generalize since some macros might also make use of that for purposes of macro writing, but that's an edge case that isn't really relevant for heuristics of reading the meaning of such Lisp code snippets 2020-05-20T13:57:55Z rgherdt quit (Remote host closed the connection) 2020-05-20T13:59:12Z paul0 quit (Quit: Leaving) 2020-05-20T14:00:57Z milanj joined #lisp 2020-05-20T14:01:07Z pjb quit (Ping timeout: 272 seconds) 2020-05-20T14:01:52Z orivej quit (Ping timeout: 256 seconds) 2020-05-20T14:01:57Z orivej_ joined #lisp 2020-05-20T14:05:29Z yonkunas joined #lisp 2020-05-20T14:08:23Z bhartrihari left #lisp 2020-05-20T14:15:34Z toorevitimirp quit (Remote host closed the connection) 2020-05-20T14:16:17Z toorevitimirp joined #lisp 2020-05-20T14:19:08Z kbtr quit (Remote host closed the connection) 2020-05-20T14:22:39Z orivej_ quit (Ping timeout: 260 seconds) 2020-05-20T14:26:33Z ebrasca joined #lisp 2020-05-20T14:29:41Z dddddd joined #lisp 2020-05-20T14:33:32Z jmarciano quit (Ping timeout: 256 seconds) 2020-05-20T14:36:43Z gko joined #lisp 2020-05-20T14:36:48Z pjb joined #lisp 2020-05-20T14:38:07Z yottabyte: hi all, asked this yesterday but I'll try to ask it again: how do I insert spaces into a uri for drakma? for example "curl --location --request GET 'https://postman-echo.com/get?foo1=hi%20hi'" reads the query parameter foo1 as "hi hi" in the response under "args" but if you run the same request through drakma, it'll read "hi%20hi" 2020-05-20T14:38:21Z jmercouris: phoe: acknowledged 2020-05-20T14:39:11Z phoe: yottabyte: sounds like a problem in PURI 2020-05-20T14:39:19Z phoe: which is the URI library that drakma uses 2020-05-20T14:39:34Z jmercouris: You can try quri instead 2020-05-20T14:39:39Z jmercouris: the APIs are quite similar 2020-05-20T14:40:01Z jmercouris: that would involve some work though in changing drakma... 2020-05-20T14:40:04Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-20T14:40:10Z jmercouris: what about trying dexador? 2020-05-20T14:40:46Z yottabyte: haven't heard of it, I'll try it right now 2020-05-20T14:40:55Z phoe: (puri:uri "https://postman-echo.com/get?foo1=hi%20hi") 2020-05-20T14:41:04Z yottabyte: changing drakma seems out of my wheelhouse right now, pretty new haha 2020-05-20T14:41:13Z jmercouris: then dexador 2020-05-20T14:41:20Z yottabyte: yup going to quickload it right now 2020-05-20T14:45:26Z yottabyte: that worked! thanks for the suggestion. surprised drakma doesn't handle this by default. sounds like a pretty big problem 2020-05-20T14:45:30Z phoe: the drakma source code is scary 2020-05-20T14:46:07Z phoe: yottabyte: file a bug at Kevin - we'll see if he's still around to fix things 2020-05-20T14:46:18Z stentroad quit (Ping timeout: 265 seconds) 2020-05-20T14:46:28Z phoe: and since the last commits are from 2 years ago then I am somewhat worried if that is the case 2020-05-20T14:46:31Z phoe: http://git.kpe.io/ 2020-05-20T14:47:05Z phoe: it's not drakma's fault, it's a bug in puri which is drakma's dependency 2020-05-20T14:47:22Z jmercouris: PURI is nice, but has some issues 2020-05-20T14:48:16Z bitmapper joined #lisp 2020-05-20T14:49:13Z yottabyte: do I email him? 2020-05-20T14:49:41Z phoe: yottabyte: yes 2020-05-20T14:50:35Z rippa joined #lisp 2020-05-20T14:50:45Z agam joined #lisp 2020-05-20T14:55:18Z sdumi quit (Ping timeout: 265 seconds) 2020-05-20T14:55:38Z agam quit (Ping timeout: 256 seconds) 2020-05-20T14:56:20Z sdumi joined #lisp 2020-05-20T14:56:47Z jmercouris: what is this git.kpe.io server? 2020-05-20T14:57:55Z jmercouris: I'm assuming it is Kevin's personal git repositories? 2020-05-20T14:58:07Z phoe: yes, it seems so 2020-05-20T15:03:00Z sdumi quit (Ping timeout: 256 seconds) 2020-05-20T15:04:59Z gaqwas quit (Quit: Leaving) 2020-05-20T15:05:52Z cage_ joined #lisp 2020-05-20T15:06:25Z notzmv joined #lisp 2020-05-20T15:06:42Z notzmv is now known as Guest57069 2020-05-20T15:07:25Z Guest57069 is now known as zmv 2020-05-20T15:07:55Z zmv is now known as Guest74931 2020-05-20T15:09:01Z pjb quit (Ping timeout: 252 seconds) 2020-05-20T15:09:26Z Guest74931 is now known as notzmv 2020-05-20T15:10:43Z gaqwas joined #lisp 2020-05-20T15:15:20Z phoe: FYI, LispWorks has released LispWorks 7.1.2 Personal Edition. 2020-05-20T15:15:28Z phoe: ;; still no package local nicknames though, grr 2020-05-20T15:15:41Z bitmapper: phoe: is there a 64bit version 2020-05-20T15:16:04Z bitmapper: THERE IS 2020-05-20T15:16:04Z Aurora_v_kosmose quit (Remote host closed the connection) 2020-05-20T15:16:19Z phoe: it seems there is, yes 2020-05-20T15:16:53Z jprajzne quit (Quit: Leaving.) 2020-05-20T15:17:38Z jw4 quit (Quit: tot siens) 2020-05-20T15:17:40Z Aurora_v_kosmose joined #lisp 2020-05-20T15:19:21Z jw4 joined #lisp 2020-05-20T15:22:13Z sdumi joined #lisp 2020-05-20T15:23:39Z quasi25 joined #lisp 2020-05-20T15:24:06Z jonatack quit (Quit: jonatack) 2020-05-20T15:24:44Z quasi25: greetings folks! visiting after years ... perhaps even a decade ! 2020-05-20T15:24:59Z beach: Hello quasi25. Welcome back. 2020-05-20T15:25:30Z phoe: quasi25: hello, how are things 2020-05-20T15:25:56Z orivej joined #lisp 2020-05-20T15:26:10Z splittist: quasi25: we kept the standard the same for you 2020-05-20T15:26:36Z quasi25: hahaha. 2020-05-20T15:26:58Z phoe: not for long™ 2020-05-20T15:27:12Z quasi25: lockeddown. Compiled the latest SBCL for fun. 2020-05-20T15:28:44Z gko quit (Ping timeout: 256 seconds) 2020-05-20T15:28:51Z quasi25: darn .. I forgot how to use IRC 2020-05-20T15:29:54Z __jrjsmrtn__ joined #lisp 2020-05-20T15:30:37Z agam joined #lisp 2020-05-20T15:31:25Z _jrjsmrtn quit (Ping timeout: 264 seconds) 2020-05-20T15:31:46Z quasi25: thanks phoe 2020-05-20T15:32:12Z phoe: quasi25: hm? what do you mean? 2020-05-20T15:32:25Z phoe: I referred to splittist comment 2020-05-20T15:33:09Z quasi25: haha.. I was just trying to see how to tag a user .... so tried your nic. I had forgotten. It's simply use the nick 2020-05-20T15:33:24Z quasi25: I feel so old 2020-05-20T15:35:44Z _quasi joined #lisp 2020-05-20T15:36:07Z amerlyq quit (Quit: amerlyq) 2020-05-20T15:36:52Z _quasi: woot! Joined via ERC :-) 2020-05-20T15:37:17Z quasi25 left #lisp 2020-05-20T15:37:55Z phoe: not that old after all 2020-05-20T15:40:24Z pjb joined #lisp 2020-05-20T15:41:01Z jonatack joined #lisp 2020-05-20T15:42:16Z _quasi: :) heh. 2020-05-20T15:45:03Z Aurora_v_kosmose quit (Ping timeout: 240 seconds) 2020-05-20T15:47:29Z _quasi: folks, I am need of a little bit of help. My old startup (~10 years old) tripr.in was done in Common Lisp. It's still running but no much much uses it and bit rot has happened (10 years is long). Having gotten the programing itch again (since I no more code in my day job) I am looking to get it to work well again. I setup everything and boom - CLSQL-MYSQL will not compile on the mac. I was using mysql and want to migrate to 2020-05-20T15:47:29Z _quasi: postgres. The CSLQL mailing list archives only go back up to 2015. Where to seek help? 2020-05-20T15:48:49Z afidegnum quit (Quit: leaving) 2020-05-20T15:49:09Z _quasi: I got it compiled by fiddling with the Makefile. Now it wont load with "Unknown mysql client version '8.0.19" 2020-05-20T15:50:23Z jackdaniel: you probably have mariadb on the system 2020-05-20T15:50:42Z jackdaniel: afair it is enough to "make it accept" any version to have it working 2020-05-20T15:50:49Z _quasi: Lemonodor fame has eluded me for far too long! 2020-05-20T15:50:56Z Aurora_v_kosmose joined #lisp 2020-05-20T15:51:43Z _quasi: jackdaniel I dont have mariadb on the system... 2020-05-20T15:51:48Z pve: _quasi: at least for postgresql you can use postmodern, I find it quite good 2020-05-20T15:51:53Z Josh_2: ^ 2020-05-20T15:51:55Z jackdaniel: aha 2020-05-20T15:52:13Z phoe: _quasi: what is your clsql version? are you using a recent one? 2020-05-20T15:52:18Z bebop quit (Ping timeout: 272 seconds) 2020-05-20T15:53:04Z toorevitimirp quit (Remote host closed the connection) 2020-05-20T15:53:20Z terpri quit (Remote host closed the connection) 2020-05-20T15:53:29Z toorevitimirp joined #lisp 2020-05-20T15:53:30Z _quasi: phoe clsql-20160208; the one which comes with the latest quicklisp 2020-05-20T15:54:01Z _quasi: pve yes that's the reason I want to migrate from mysql to postgresql. Is there any other way to do it? 2020-05-20T15:54:05Z terpri joined #lisp 2020-05-20T15:54:14Z phoe: pgloader! 2020-05-20T15:54:24Z phoe: (also written in lisp) 2020-05-20T15:54:57Z _quasi: phoe, yes yes Dimitri .. I have his book .. I had forgotten about pgloader 2020-05-20T15:55:46Z pve: _quasi: yes, dump the mysql db with the command line client, then use pgloader 2020-05-20T15:56:21Z pve: or do you need to massage the data before importing? 2020-05-20T15:56:30Z phoe: pve: AFAIK there's no need to dump, pgloader connects to mysql itself 2020-05-20T15:56:50Z pve: well that's sounds even better 2020-05-20T15:57:16Z shka_ joined #lisp 2020-05-20T15:57:57Z _quasi: pve if it migrates directly I would be quite happy. I will then explore how to use postmodern on the existing data. 2020-05-20T15:58:36Z pve: _quasi: also look at s-sql from the same author I believe 2020-05-20T15:59:19Z pve: i don't use it for every query, but it can be convenient 2020-05-20T16:00:25Z _quasi: my friend Chaitanya has also written an ORM 'Zorm' on top of postmodern which I am looking to explore. 2020-05-20T16:00:38Z bhartrihari joined #lisp 2020-05-20T16:00:42Z _quasi: pve s-sql.. sure. 2020-05-20T16:02:46Z _quasi: thank you good folks! I will be back, like Arnie, after I have explored this pgloader. Adios! 2020-05-20T16:02:55Z phoe: :D 2020-05-20T16:05:16Z Josh_2: _quasi: what was your startup for? I went to the site but not much info ¯\_(ツ)_/¯ 2020-05-20T16:06:46Z rogersm quit (Ping timeout: 240 seconds) 2020-05-20T16:07:07Z _quasi quit (Ping timeout: 246 seconds) 2020-05-20T16:07:33Z frgo_ quit 2020-05-20T16:10:18Z holycow quit (Quit: Lost terminal) 2020-05-20T16:13:27Z dxtr joined #lisp 2020-05-20T16:13:29Z pjb quit (Ping timeout: 272 seconds) 2020-05-20T16:18:34Z orivej quit (Ping timeout: 240 seconds) 2020-05-20T16:19:05Z orivej joined #lisp 2020-05-20T16:21:54Z luis: Some libraries like to mutate the *readtable*. They have the excuse that they predate named-readtables, fine. Is there a good point in ASDF to bind *readtable* to a readtable where these libraries can mutate all they want without messing with my readtable? 2020-05-20T16:23:00Z phoe: luis: https://bugs.launchpad.net/asdf/+bug/1820910 2020-05-20T16:23:14Z phoe: I'll port that over to gitlab. 2020-05-20T16:24:02Z phoe: https://gitlab.common-lisp.net/asdf/asdf/-/issues/31 2020-05-20T16:24:25Z cage_ quit (Quit: Leaving) 2020-05-20T16:24:29Z phoe: you could comment over there, I think 2020-05-20T16:26:04Z dvdmuckle quit (Quit: Bouncer Surgery) 2020-05-20T16:26:52Z phoe: ;; I hope that this is the issue in question 2020-05-20T16:28:03Z luis: phoe: It's strongly related. Commenting. Thanks. 2020-05-20T16:28:17Z dvdmuckle joined #lisp 2020-05-20T16:28:19Z slyrus_ quit (Quit: Leaving) 2020-05-20T16:30:44Z Balooga joined #lisp 2020-05-20T16:31:50Z phoe: luis: <3 2020-05-20T16:32:26Z Balooga left #lisp 2020-05-20T16:33:06Z liberliver quit (Quit: liberliver) 2020-05-20T16:35:11Z pmden quit (Quit: My MacBook Air has gone to sleep. ZZZzzz…) 2020-05-20T16:38:57Z luis: phoe: the solution is to get everyone on board with named-readtables, I guess? 2020-05-20T16:39:31Z luis: that might entail making it less annoying to use 2020-05-20T16:39:56Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-20T16:41:12Z phoe: luis: not really 2020-05-20T16:41:26Z phoe: even if I do (nr:in-readtable :qtools), this fact should not bother ASDF 2020-05-20T16:41:43Z phoe: ASDF should load its systems with a fresh readtable 2020-05-20T16:41:55Z phoe: if the system then switches to a named readtable, it's perfect 2020-05-20T16:42:13Z phoe: if it doesn't switch to a named readtable, then it does not poison the rest of the system 2020-05-20T16:42:22Z phoe: ;; and needs to be updated 2020-05-20T16:42:44Z phoe: like, (nr:in-readtable :qtools) (asdf:load-system :esrap) should load esrap with a clean readtable, not the qtools one 2020-05-20T16:42:49Z luis: phoe: agreed. but that would break libraries that change the readtable without named-readtables 2020-05-20T16:42:50Z phoe: IMO that is the fix 2020-05-20T16:43:02Z phoe: luis: no, that wouldn't break them - they were broken by the start 2020-05-20T16:43:22Z phoe: they mutate the global readtable, that's a no-no 2020-05-20T16:43:29Z luis: fair point. :-) 2020-05-20T16:43:53Z phoe: if fixing a bug in ASDF exposes bugs in people's code, then I think it's the good direction 2020-05-20T16:43:54Z sdumi quit (Ping timeout: 260 seconds) 2020-05-20T16:44:04Z phoe: s/by the start/from the start/ 2020-05-20T16:44:06Z shangul quit (Ping timeout: 256 seconds) 2020-05-20T16:45:36Z jackdaniel: fare worked on that, I think that the merge request still lingers somewhere 2020-05-20T16:46:09Z phoe: ! 2020-05-20T16:46:10Z phoe: https://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/86 2020-05-20T16:46:21Z phoe: jackdaniel: that one looks like it... 2020-05-20T16:46:33Z flazh quit (Quit: flazh) 2020-05-20T16:46:36Z jackdaniel: that's possible 2020-05-20T16:46:52Z phoe: oh well, it is still open 2020-05-20T16:47:02Z jackdaniel: that said, I'm not sure if people who depend on slightly broken libraries would be amused with a breakage, I think that was the reason for not merging it 2020-05-20T16:47:14Z phoe: correct 2020-05-20T16:47:37Z phoe: how do we proceed from here though, since we cannot even easily identify the breaking libraries at that point 2020-05-20T16:47:42Z phoe: can we? 2020-05-20T16:48:04Z luis: phoe: grep for set-dispatch-macro-character :) closure-common defines a few 2020-05-20T16:48:08Z pjb joined #lisp 2020-05-20T16:48:23Z phoe: hm, we'd need to grep the whole quicklisp world for that. 2020-05-20T16:48:32Z jackdaniel: it isn't that big 2020-05-20T16:48:38Z phoe: pfdietz: I remember you working with something similar before, could you help us out? 2020-05-20T16:48:41Z phoe: jackdaniel: correct 2020-05-20T16:49:20Z luis: Babel (used to?) overwrite #\ (so sorry, that was early-20s-luis's idea!) 2020-05-20T16:49:31Z phoe: luis: #\Space you mean? 2020-05-20T16:49:46Z jackdaniel wonder if he should answer to each statement directed at him he agrees with with a word "correct" 2020-05-20T16:49:47Z luis: #\# #\\ I mean. 2020-05-20T16:50:00Z jackdaniel: wonders° 2020-05-20T16:50:21Z phoe: okay, point taken 2020-05-20T16:50:38Z jackdaniel: correct 2020-05-20T16:50:44Z jackdaniel: ;> 2020-05-20T16:53:11Z sdumi joined #lisp 2020-05-20T16:54:22Z Necktwi_ joined #lisp 2020-05-20T16:54:26Z Necktwi quit (Ping timeout: 258 seconds) 2020-05-20T16:57:57Z fanta1 quit (Quit: fanta1) 2020-05-20T17:01:13Z akoana joined #lisp 2020-05-20T17:02:59Z EvW joined #lisp 2020-05-20T17:03:04Z aindilis quit (Remote host closed the connection) 2020-05-20T17:04:37Z sdumi quit (Read error: Connection reset by peer) 2020-05-20T17:05:36Z sdumi joined #lisp 2020-05-20T17:05:37Z ngqrl quit (Quit: Connection closed for inactivity) 2020-05-20T17:06:43Z scymtym quit (Ping timeout: 252 seconds) 2020-05-20T17:10:29Z rogersm joined #lisp 2020-05-20T17:13:00Z rgherdt joined #lisp 2020-05-20T17:15:06Z rogersm quit (Ping timeout: 240 seconds) 2020-05-20T17:17:03Z doesthiswork quit (Ping timeout: 258 seconds) 2020-05-20T17:17:19Z ldb joined #lisp 2020-05-20T17:18:04Z ldb: ping 2020-05-20T17:18:40Z lavaflow quit (Ping timeout: 256 seconds) 2020-05-20T17:18:42Z Josh_2: pong 2020-05-20T17:19:53Z jackdaniel: ash 2020-05-20T17:20:35Z doesthiswork joined #lisp 2020-05-20T17:20:44Z lavaflow joined #lisp 2020-05-20T17:21:20Z aindilis joined #lisp 2020-05-20T17:21:22Z pjb quit (Ping timeout: 260 seconds) 2020-05-20T17:23:51Z scymtym joined #lisp 2020-05-20T17:26:17Z emys joined #lisp 2020-05-20T17:27:25Z Jesin quit (Quit: Leaving) 2020-05-20T17:28:02Z Ethan__ joined #lisp 2020-05-20T17:30:54Z Jesin joined #lisp 2020-05-20T17:31:05Z Ethan__ quit (Read error: Connection reset by peer) 2020-05-20T17:31:09Z bhartrihari left #lisp 2020-05-20T17:31:27Z Ethan__ joined #lisp 2020-05-20T17:31:41Z bhartrihari joined #lisp 2020-05-20T17:31:52Z Ethan_ quit (Ping timeout: 260 seconds) 2020-05-20T17:34:09Z jw4 quit (Read error: Connection reset by peer) 2020-05-20T17:36:07Z jw4 joined #lisp 2020-05-20T17:43:06Z theseb joined #lisp 2020-05-20T17:45:48Z kpoeck joined #lisp 2020-05-20T17:50:47Z ozzloy quit (Ping timeout: 260 seconds) 2020-05-20T17:51:36Z ozzloy joined #lisp 2020-05-20T17:51:36Z ozzloy quit (Changing host) 2020-05-20T17:51:36Z ozzloy joined #lisp 2020-05-20T17:54:42Z pjb joined #lisp 2020-05-20T17:55:30Z sdumi quit (Ping timeout: 256 seconds) 2020-05-20T18:05:07Z jprajzne joined #lisp 2020-05-20T18:08:09Z orivej joined #lisp 2020-05-20T18:09:12Z ym quit (Quit: Leaving) 2020-05-20T18:15:21Z karlosz joined #lisp 2020-05-20T18:16:27Z jonatack quit (Ping timeout: 260 seconds) 2020-05-20T18:16:29Z duncan_ joined #lisp 2020-05-20T18:17:16Z milanj_ joined #lisp 2020-05-20T18:19:32Z milanj quit (Read error: No route to host) 2020-05-20T18:21:04Z Jesin quit (Quit: Leaving) 2020-05-20T18:21:25Z bhartrihari left #lisp 2020-05-20T18:21:26Z bhartrihari joined #lisp 2020-05-20T18:22:15Z milanj__ joined #lisp 2020-05-20T18:22:17Z EvW quit (Ping timeout: 260 seconds) 2020-05-20T18:22:36Z milanj_ quit (Ping timeout: 258 seconds) 2020-05-20T18:23:07Z Jesin joined #lisp 2020-05-20T18:24:12Z [mark] quit (Quit: Konversation terminated!) 2020-05-20T18:25:03Z stepnem_ joined #lisp 2020-05-20T18:25:10Z stepnem quit (Ping timeout: 260 seconds) 2020-05-20T18:27:45Z sauvin quit (Remote host closed the connection) 2020-05-20T18:29:41Z phoe: luis: holy ouch 2020-05-20T18:30:32Z phoe: so that's the issue with the readtable... 2020-05-20T18:33:36Z pmden joined #lisp 2020-05-20T18:33:48Z milanj__ quit (Quit: This computer has gone to sleep) 2020-05-20T18:34:36Z EvW joined #lisp 2020-05-20T18:34:52Z sdumi joined #lisp 2020-05-20T18:39:34Z Bahman joined #lisp 2020-05-20T18:42:36Z sdumi quit (Read error: Connection reset by peer) 2020-05-20T18:43:57Z sdumi joined #lisp 2020-05-20T18:45:44Z bhartrihari left #lisp 2020-05-20T18:45:50Z terpri quit (Remote host closed the connection) 2020-05-20T18:45:58Z bhartrihari joined #lisp 2020-05-20T18:46:26Z terpri joined #lisp 2020-05-20T18:47:21Z terpri quit (Remote host closed the connection) 2020-05-20T18:47:42Z terpri joined #lisp 2020-05-20T18:48:29Z Bahman quit (Quit: ave atque vale) 2020-05-20T18:48:50Z terpri quit (Remote host closed the connection) 2020-05-20T18:49:05Z bhartrihari left #lisp 2020-05-20T18:49:08Z bhartrihari joined #lisp 2020-05-20T18:49:57Z terpri joined #lisp 2020-05-20T18:50:02Z efm joined #lisp 2020-05-20T19:03:10Z cranes quit (Quit: Lost terminal) 2020-05-20T19:03:49Z cranes joined #lisp 2020-05-20T19:07:20Z stentroad joined #lisp 2020-05-20T19:09:11Z dale_ joined #lisp 2020-05-20T19:09:37Z dale_ is now known as dale 2020-05-20T19:19:21Z flazh joined #lisp 2020-05-20T19:26:26Z bhartrihari left #lisp 2020-05-20T19:26:39Z bhartrihari joined #lisp 2020-05-20T19:29:14Z vhost- quit (Ping timeout: 244 seconds) 2020-05-20T19:30:00Z vhost- joined #lisp 2020-05-20T19:30:15Z agam quit (Read error: Connection reset by peer) 2020-05-20T19:30:31Z agam joined #lisp 2020-05-20T19:34:02Z bhartrihari left #lisp 2020-05-20T19:34:32Z bhartrihari joined #lisp 2020-05-20T19:34:44Z rogersm joined #lisp 2020-05-20T19:35:14Z agam quit (Ping timeout: 272 seconds) 2020-05-20T19:36:09Z stentroad quit (Ping timeout: 272 seconds) 2020-05-20T19:40:37Z orivej quit (Ping timeout: 246 seconds) 2020-05-20T19:41:20Z orivej joined #lisp 2020-05-20T19:45:07Z toorevitimirp quit (Ping timeout: 260 seconds) 2020-05-20T19:46:48Z marcoxa quit (Quit: Good night.) 2020-05-20T19:48:28Z Inline joined #lisp 2020-05-20T19:52:11Z agam joined #lisp 2020-05-20T19:52:18Z ljavorsk quit (Ping timeout: 258 seconds) 2020-05-20T19:54:58Z Cymew quit (Ping timeout: 246 seconds) 2020-05-20T19:56:09Z rogersm quit (Remote host closed the connection) 2020-05-20T19:59:41Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-20T19:59:47Z SGASAU` quit (Remote host closed the connection) 2020-05-20T20:00:29Z SGASAU` joined #lisp 2020-05-20T20:01:00Z orivej joined #lisp 2020-05-20T20:04:09Z bhartrihari left #lisp 2020-05-20T20:04:21Z bhartrihari joined #lisp 2020-05-20T20:04:30Z bhartrihari left #lisp 2020-05-20T20:04:51Z bhartrihari joined #lisp 2020-05-20T20:10:33Z SGASAU` quit (Remote host closed the connection) 2020-05-20T20:12:11Z SGASAU` joined #lisp 2020-05-20T20:12:15Z kpoeck quit (Remote host closed the connection) 2020-05-20T20:12:38Z orivej quit (Read error: Connection reset by peer) 2020-05-20T20:12:42Z orivej_ joined #lisp 2020-05-20T20:16:26Z random-nick quit (Ping timeout: 256 seconds) 2020-05-20T20:17:37Z anticrisis joined #lisp 2020-05-20T20:17:48Z efm quit (Quit: Konversation terminated!) 2020-05-20T20:19:31Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-20T20:20:26Z shka_ quit (Ping timeout: 260 seconds) 2020-05-20T20:20:51Z orivej joined #lisp 2020-05-20T20:26:06Z _whitelogger quit (Read error: Connection reset by peer) 2020-05-20T20:28:11Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-20T20:28:43Z pjb quit (Ping timeout: 272 seconds) 2020-05-20T20:29:14Z _whitelogger joined #lisp 2020-05-20T20:29:30Z orivej joined #lisp 2020-05-20T20:29:50Z pmden quit (Quit: My MacBook Air has gone to sleep. ZZZzzz…) 2020-05-20T20:30:08Z random-nick joined #lisp 2020-05-20T20:33:02Z _whitelogger quit (Remote host closed the connection) 2020-05-20T20:35:14Z _whitelogger joined #lisp 2020-05-20T20:36:02Z _whitelogger quit (Remote host closed the connection) 2020-05-20T20:38:14Z _whitelogger joined #lisp 2020-05-20T20:39:02Z _whitelogger quit (Remote host closed the connection) 2020-05-20T20:41:15Z _whitelogger joined #lisp 2020-05-20T20:42:02Z _whitelogger quit (Remote host closed the connection) 2020-05-20T20:44:16Z _whitelogger joined #lisp 2020-05-20T20:44:59Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-20T20:45:50Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-20T20:46:11Z orivej joined #lisp 2020-05-20T20:51:43Z Balooga joined #lisp 2020-05-20T20:51:56Z bhartrihari left #lisp 2020-05-20T20:52:07Z bhartrihari joined #lisp 2020-05-20T20:56:59Z orivej quit (Ping timeout: 260 seconds) 2020-05-20T20:57:20Z orivej joined #lisp 2020-05-20T20:58:29Z SGASAU` quit (Remote host closed the connection) 2020-05-20T20:59:26Z SGASAU` joined #lisp 2020-05-20T21:00:38Z narimiran quit (Ping timeout: 256 seconds) 2020-05-20T21:02:43Z pjb joined #lisp 2020-05-20T21:03:33Z karayan quit (Remote host closed the connection) 2020-05-20T21:03:55Z karayan joined #lisp 2020-05-20T21:05:03Z Lycurgus joined #lisp 2020-05-20T21:08:28Z dmiles quit (Read error: Connection reset by peer) 2020-05-20T21:10:28Z frgo joined #lisp 2020-05-20T21:11:30Z theseb quit (Quit: Leaving) 2020-05-20T21:12:38Z dmiles joined #lisp 2020-05-20T21:13:56Z Inline: http://dpaste.com/0C4ND7Z 2020-05-20T21:16:35Z Josh_2: Inline: couldn't you do half of that in a single loop? 2020-05-20T21:17:01Z orivej quit (Ping timeout: 264 seconds) 2020-05-20T21:17:03Z orivej_ joined #lisp 2020-05-20T21:17:26Z Josh_2: you are checking (first form) in a few cases, surely you could just use (case (first form) ..) and then just put them in a hashtable or a list etc 2020-05-20T21:18:07Z Inline: erm, i'm not optimizing early 2020-05-20T21:18:38Z Bike: why did you post this 2020-05-20T21:18:59Z Josh_2: even if you wanted to only extract one type, you don't really need all that code duplication. You could have one function that just collects lines that start with 'defmacro or 'defmethod and then define extract-macro-names extract-method-names etc with that function 2020-05-20T21:19:05Z Josh_2: instead of all the code duplication 2020-05-20T21:19:11Z Inline: welp, that's what i got working for now for extracting different stuff in my local mcclim dirs 2020-05-20T21:19:48Z Josh_2: The first four are the same function just with a different symbol in the (eq ..) form 2020-05-20T21:19:48Z Inline: i wanted to see what belongs to what explicitly i.e. clim/drei/esa 2020-05-20T21:20:02Z SGASAU` quit (Remote host closed the connection) 2020-05-20T21:20:29Z Inline: hmmm 2020-05-20T21:20:58Z SGASAU` joined #lisp 2020-05-20T21:21:39Z phoe sigh 2020-05-20T21:21:44Z Inline: i could join them like you say but then i have to also rename the toplevel definition to something like extract-spec (&key (g generic-function).... 2020-05-20T21:22:25Z Inline: extract-spec g would then give me the gfs extract-spec f would give the funs etc 2020-05-20T21:22:43Z Inline: hmmm, surely doable 2020-05-20T21:22:43Z Josh_2: (defun extract-spec (sym filename)) and then (defun extract-gf-names (filename) (extract-spec 'defgeneric filename)) 2020-05-20T21:22:51Z pve quit (Quit: leaving) 2020-05-20T21:23:13Z Inline: jah ok 2020-05-20T21:23:55Z Inline: later on maybe 2020-05-20T21:25:04Z Josh_2: Same goes for the bottom functions that are all basically the same 2020-05-20T21:25:12Z Inline: jep 2020-05-20T21:25:51Z phoe: https://gitlab.common-lisp.net/asdf/asdf/-/issues/31 2020-05-20T21:25:54Z phoe: time to sleep 2020-05-20T21:26:16Z phoe: I have no idea how to fix this, maybe tomorrow will bring us more luck 2020-05-20T21:26:19Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-20T21:26:42Z orivej joined #lisp 2020-05-20T21:27:00Z Inline: heh ok phoe 2020-05-20T21:31:56Z bitmapper quit (Remote host closed the connection) 2020-05-20T21:36:52Z pjb quit (Ping timeout: 260 seconds) 2020-05-20T21:38:21Z bitmapper joined #lisp 2020-05-20T21:39:51Z gxt joined #lisp 2020-05-20T21:39:57Z rawr quit (Quit: I can't explain, you would not understand, this is not how I am) 2020-05-20T21:40:38Z orivej quit (Ping timeout: 272 seconds) 2020-05-20T21:40:42Z grumble joined #lisp 2020-05-20T21:40:52Z orivej joined #lisp 2020-05-20T21:47:42Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-20T21:49:02Z orivej joined #lisp 2020-05-20T21:49:38Z duncan_ quit (Quit: Leaving) 2020-05-20T21:54:19Z gravicappa quit (Ping timeout: 246 seconds) 2020-05-20T21:56:56Z Lycurgus quit (Remote host closed the connection) 2020-05-20T21:59:48Z luckless is now known as azimut 2020-05-20T21:59:51Z terpri quit (Remote host closed the connection) 2020-05-20T22:00:04Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-20T22:00:13Z terpri joined #lisp 2020-05-20T22:01:57Z karayan quit (Ping timeout: 260 seconds) 2020-05-20T22:06:38Z Josh_2: Inline: https://plaster.tymoon.eu/view/1854#1854 2020-05-20T22:07:04Z frgo quit (Remote host closed the connection) 2020-05-20T22:07:37Z frgo joined #lisp 2020-05-20T22:08:51Z pjb joined #lisp 2020-05-20T22:09:05Z phoe: well, it is tomorrow now 2020-05-20T22:09:10Z phoe: at least in my timezone 2020-05-20T22:09:32Z phoe: glad to know that we've come up with kind-of-a-nice solution for that asdf issue I just linked 2020-05-20T22:09:36Z phoe slep 2020-05-20T22:10:15Z drewc quit (Ping timeout: 260 seconds) 2020-05-20T22:10:49Z Josh_2: Inline: granted I did not test that at all 2020-05-20T22:11:37Z Inline: ok thank you Josh_2 2020-05-20T22:13:13Z orivej_ joined #lisp 2020-05-20T22:14:37Z orivej quit (Ping timeout: 246 seconds) 2020-05-20T22:18:57Z drewc joined #lisp 2020-05-20T22:21:50Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-20T22:21:53Z orivej joined #lisp 2020-05-20T22:42:22Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-20T22:43:31Z orivej joined #lisp 2020-05-20T22:43:59Z emys quit (Quit: Leaving) 2020-05-20T22:50:52Z orivej quit (Read error: Connection reset by peer) 2020-05-20T22:51:42Z orivej joined #lisp 2020-05-20T22:53:05Z buffergn0me joined #lisp 2020-05-20T22:54:42Z cosimone quit (Ping timeout: 260 seconds) 2020-05-20T22:58:36Z shifty joined #lisp 2020-05-20T23:06:48Z hineios joined #lisp 2020-05-20T23:07:28Z orivej quit (Ping timeout: 246 seconds) 2020-05-20T23:08:45Z karlosz quit (Remote host closed the connection) 2020-05-20T23:08:51Z orivej joined #lisp 2020-05-20T23:11:20Z karlosz joined #lisp 2020-05-20T23:12:21Z terpri quit (Remote host closed the connection) 2020-05-20T23:12:39Z terpri joined #lisp 2020-05-20T23:16:51Z terpri quit (Remote host closed the connection) 2020-05-20T23:21:43Z ober: phoe: you use the verboten lw? 2020-05-20T23:25:12Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-20T23:26:32Z orivej joined #lisp 2020-05-20T23:41:34Z orivej quit (Ping timeout: 240 seconds) 2020-05-20T23:42:13Z orivej joined #lisp 2020-05-20T23:45:39Z shangul joined #lisp 2020-05-20T23:48:23Z anticrisis quit (Quit: Leaving) 2020-05-20T23:49:26Z SGASAU` quit (Remote host closed the connection) 2020-05-20T23:50:19Z SGASAU` joined #lisp 2020-05-20T23:51:19Z orivej quit (Ping timeout: 265 seconds) 2020-05-20T23:51:29Z orivej_ joined #lisp 2020-05-20T23:52:59Z Inline quit (Ping timeout: 252 seconds) 2020-05-20T23:54:38Z random-nick quit (Ping timeout: 260 seconds) 2020-05-20T23:59:52Z Posterdati quit (Ping timeout: 256 seconds) 2020-05-21T00:00:29Z gxt quit (Remote host closed the connection) 2020-05-21T00:00:50Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-21T00:01:08Z orivej joined #lisp 2020-05-21T00:01:12Z gxt joined #lisp 2020-05-21T00:07:01Z pfdietz quit (Remote host closed the connection) 2020-05-21T00:11:08Z orivej quit (Ping timeout: 265 seconds) 2020-05-21T00:11:17Z orivej_ joined #lisp 2020-05-21T00:13:58Z ldb quit (Ping timeout: 246 seconds) 2020-05-21T00:15:08Z ldb joined #lisp 2020-05-21T00:16:36Z ldb quit (Client Quit) 2020-05-21T00:17:46Z Oladon joined #lisp 2020-05-21T00:20:02Z agam quit (Ping timeout: 256 seconds) 2020-05-21T00:21:01Z jprajzne quit (Quit: jprajzne) 2020-05-21T00:22:29Z wxie joined #lisp 2020-05-21T00:24:49Z orivej_ quit (Ping timeout: 246 seconds) 2020-05-21T00:25:26Z orivej joined #lisp 2020-05-21T00:29:01Z Jesin quit (Quit: Leaving) 2020-05-21T00:31:31Z ayuce quit (Remote host closed the connection) 2020-05-21T00:34:16Z orivej quit (Ping timeout: 256 seconds) 2020-05-21T00:34:36Z orivej joined #lisp 2020-05-21T00:37:46Z Lord_of_Life quit (Ping timeout: 246 seconds) 2020-05-21T00:38:10Z shifty quit (Ping timeout: 256 seconds) 2020-05-21T00:38:21Z shifty joined #lisp 2020-05-21T00:38:24Z Lord_of_Life joined #lisp 2020-05-21T00:38:28Z catchme joined #lisp 2020-05-21T00:40:30Z dzho quit (Remote host closed the connection) 2020-05-21T00:41:09Z SGASAU` quit (Remote host closed the connection) 2020-05-21T00:41:57Z SGASAU` joined #lisp 2020-05-21T00:42:40Z dddddd quit (Ping timeout: 246 seconds) 2020-05-21T00:43:10Z shifty quit (Ping timeout: 260 seconds) 2020-05-21T00:44:14Z shifty joined #lisp 2020-05-21T00:45:01Z SGASAU` quit (Remote host closed the connection) 2020-05-21T00:45:39Z Jesin joined #lisp 2020-05-21T00:45:56Z gxt_ joined #lisp 2020-05-21T00:46:33Z agam joined #lisp 2020-05-21T00:47:42Z SGASAU` joined #lisp 2020-05-21T00:48:16Z shifty quit (Ping timeout: 246 seconds) 2020-05-21T00:48:43Z gxt quit (Ping timeout: 240 seconds) 2020-05-21T00:48:56Z orivej quit (Ping timeout: 256 seconds) 2020-05-21T00:49:18Z orivej joined #lisp 2020-05-21T00:57:27Z orivej_ joined #lisp 2020-05-21T00:57:32Z orivej quit (Ping timeout: 265 seconds) 2020-05-21T00:59:16Z mangul joined #lisp 2020-05-21T00:59:22Z agam quit (Ping timeout: 256 seconds) 2020-05-21T01:02:01Z shangul quit (Ping timeout: 264 seconds) 2020-05-21T01:02:23Z noobineer joined #lisp 2020-05-21T01:05:12Z bitmapper quit (Ping timeout: 272 seconds) 2020-05-21T01:07:06Z orivej_ quit (Ping timeout: 272 seconds) 2020-05-21T01:07:11Z ebrasca quit (Remote host closed the connection) 2020-05-21T01:07:23Z pjb quit (Ping timeout: 272 seconds) 2020-05-21T01:07:37Z orivej joined #lisp 2020-05-21T01:11:11Z EvW quit (Ping timeout: 272 seconds) 2020-05-21T01:12:27Z jesse1010 joined #lisp 2020-05-21T01:12:39Z jesse1010: why lisp over c++? 2020-05-21T01:13:03Z noobineer quit (Read error: Connection reset by peer) 2020-05-21T01:13:45Z ober: jesse1010: it predates c++ 2020-05-21T01:14:27Z ober: jesse1010: see #clasp, you can have both, Lisp, and C++ 2020-05-21T01:14:42Z noobineer joined #lisp 2020-05-21T01:15:03Z gxt_ quit (Ping timeout: 240 seconds) 2020-05-21T01:15:14Z orivej quit (Ping timeout: 240 seconds) 2020-05-21T01:15:48Z orivej joined #lisp 2020-05-21T01:17:42Z mangul quit (Ping timeout: 260 seconds) 2020-05-21T01:18:04Z jesse1010: thank you 2020-05-21T01:18:21Z jesse1010: but in general, why is lisp so great? 2020-05-21T01:18:38Z solrize: jesse1010, it's completely different, lisp is a forerunner of today's scripting languages but with much more serious implementations 2020-05-21T01:24:08Z twelvemonkeys quit (Ping timeout: 256 seconds) 2020-05-21T01:25:07Z Kaisyu joined #lisp 2020-05-21T01:25:12Z jesse1010: what does lisp allow me to do, that makes it so special? 2020-05-21T01:25:41Z twelvemonkeys joined #lisp 2020-05-21T01:26:06Z orivej quit (Read error: Connection reset by peer) 2020-05-21T01:26:26Z orivej joined #lisp 2020-05-21T01:26:49Z noobineer quit (Read error: Connection reset by peer) 2020-05-21T01:28:28Z noobineer joined #lisp 2020-05-21T01:29:44Z solrize: um, what languages do you use now? 2020-05-21T01:30:10Z jesse1010: c++ 2020-05-21T01:30:12Z buffergn0me quit (Ping timeout: 260 seconds) 2020-05-21T01:30:29Z solrize: do you use anything like python or javascript? 2020-05-21T01:30:36Z jesse1010: no 2020-05-21T01:30:57Z noobineer quit (Read error: Connection reset by peer) 2020-05-21T01:31:54Z xristos: do you enjoy writing c++? 2020-05-21T01:32:21Z solrize: ok. i would say that with lisp (or python, or to some extent JS), 1) you don't have to worry about allocating and reclaiming memory, because the language handles that for you; 2) you don't have to worry much about pointer errors and core dumps, because the language traps most errors when they happen and tells you what went wrong, instead of silently corrupting something; 3) there is nowhere near as much boilerplate needed to get anything done 2020-05-21T01:32:39Z noobineer joined #lisp 2020-05-21T01:33:35Z aeth: Lisp rarely directly competes with C++. The people who didn't need high-performance, realtime, etc., mostly moved to Java and C# decades ago. That's why any language aiming at C++ programmers these days has no GC. Everyone else moved on. 2020-05-21T01:33:50Z solrize: so basically you can write code more productively but you take an efficiency hit, in both cpu usage and memory consumption. lisp (unlike python) has good compilers so the cpu hit is not that bad, though the memory footprint still is larger 2020-05-21T01:34:07Z mangul joined #lisp 2020-05-21T01:34:18Z agam joined #lisp 2020-05-21T01:34:23Z solrize: yeah that's a good point, java took over the gc-able segment of c++ users 2020-05-21T01:34:45Z solrize: anyway if languages interest you as a subject, then definitely try lisp or some dialects of it 2020-05-21T01:34:55Z solrize: mitpress.mit.edu/sicp is a good book to read 2020-05-21T01:37:01Z aeth: solrize: Another thing you get in pretty much every language that's not C or C++ is runtime safety, sort of your point #2. Sure, a C/C++ compiler will try to catch everything and vomit up dozens of lines of an error message if it finds something, but that's limited to runtime. 2020-05-21T01:37:40Z aeth: e.g. most languages do array bounds checking if it cannot prove at compilation time that the array access is in bounds. There goes like half of your C++ bugs unless you run everything through valgrind after every change. 2020-05-21T01:38:13Z aeth: s/that's limited to runtime/that's not available at runtime/ 2020-05-21T01:38:52Z agam quit (Ping timeout: 256 seconds) 2020-05-21T01:38:54Z jesse1010: can lisp be used as object oriented? 2020-05-21T01:39:11Z abhixec joined #lisp 2020-05-21T01:39:21Z mason: jesse1010: https://en.wikipedia.org/wiki/Common_Lisp_Object_System 2020-05-21T01:39:33Z pjb joined #lisp 2020-05-21T01:40:19Z jesse1010: thanks 2020-05-21T01:44:23Z jesse1010: i wonder about GUI abilities, I guess I could use wxwidgets with c++ then connect to a LISP service app 2020-05-21T01:45:42Z solrize: aeth yeah, that's what i mean, there are runtime checks. also jesse1010: lisp has a very fancy OOP system called CLOS, goes way beyond c++'s OOP but imho these days it's less interesting than it once was, since OOP has gone out of style 2020-05-21T01:46:25Z aeth: solrize: There aren't necessarily runtime checks. The difference is safe by default vs. fast by default. I'd wager that most code needs to be safe, not fast. 2020-05-21T01:46:48Z jesse1010: are there any OS's written in Lisp? 2020-05-21T01:48:23Z zaquest quit (Quit: Leaving) 2020-05-21T01:48:47Z solrize: jesse1010, yes that's been done a few times, the lisp machine (it was lisp-specialized down to the hardware) being the most notable example 2020-05-21T01:52:33Z jesse1010: by the looks of it, would you say LISP is one of the easier languages to write an OS in? 2020-05-21T01:56:22Z orivej quit (Ping timeout: 256 seconds) 2020-05-21T01:56:38Z orivej joined #lisp 2020-05-21T01:57:56Z Jeanne-Kamikaze joined #lisp 2020-05-21T01:58:28Z karlosz quit (Quit: karlosz) 2020-05-21T01:59:04Z aeth: jesse1010: The point of a Lisp is that language extensions look the same as language built-ins because of the uniform syntax. You can't write your own for () { } loop in most languages (although a few probably let you). 2020-05-21T01:59:21Z aeth: jesse1010: So while Lisp itself isn't a language for writing operating systems, you're free to add extensions to make it into one. 2020-05-21T01:59:36Z aeth: (It just probably won't be portable code afterwards.) 2020-05-21T02:00:06Z Necktwi_ quit (Quit: leaving) 2020-05-21T02:00:55Z Lycurgus joined #lisp 2020-05-21T02:01:05Z aeth: In particular, assembly languages are representable pretty easily in s-expression form, which helps with OSes and compilers. 2020-05-21T02:01:28Z Oladon quit (Quit: Leaving.) 2020-05-21T02:01:39Z aeth: But s-expressions are just as capable of expressing XML/HTML/etc., which is generally more useful for modern programmers. 2020-05-21T02:02:07Z solrize: jesse1010, OS's are usually about precise control of machine resources, so lisp isn't great for that 2020-05-21T02:02:25Z jesse1010: why not? 2020-05-21T02:02:27Z Jeanne-Kamikaze: I think wasm/web-assembly is actually written in a lisp. 2020-05-21T02:02:45Z aeth: Jeanne-Kamikaze: iirc, it just has an s-expression form to read it 2020-05-21T02:02:55Z Jeanne-Kamikaze: Yeah: https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format 2020-05-21T02:02:59Z aeth: solrize: The worst case scenario is that you lose access to most of the standard library in the OS kernel 2020-05-21T02:03:06Z aeth: But it's totally doable. 2020-05-21T02:03:21Z jesse1010: yeah I would be ok breaking from everything 2020-05-21T02:03:22Z aeth: And even C's standard library isn't available inside of Linux iirc 2020-05-21T02:03:29Z Lycurgus .oO( boy somebody sure stepped in it) 2020-05-21T02:03:45Z aeth: It's probably a bit easier in C because you can provide your own malloc-replacement. 2020-05-21T02:03:58Z jesse1010: I would be writing my own assembler/compiler before the OS 2020-05-21T02:04:19Z aeth: I think that's what Mezzano does, although it uses SBCL to bootstrap. https://github.com/froggey/Mezzano 2020-05-21T02:04:23Z Necktwi joined #lisp 2020-05-21T02:04:29Z buffergn0me joined #lisp 2020-05-21T02:05:12Z orivej quit (Ping timeout: 265 seconds) 2020-05-21T02:05:37Z karlosz joined #lisp 2020-05-21T02:05:44Z karlosz quit (Remote host closed the connection) 2020-05-21T02:07:12Z ober: well the kernel has many of the things it needs. 2020-05-21T02:07:21Z ober: for memory management, allocation, and not doing division 2020-05-21T02:07:28Z aeth: Right, the kernel reinvents many of the things that it needs, no matter what language it's written in. 2020-05-21T02:07:40Z aeth: But in a language with real macros and uniform syntax, you don't even notice. 2020-05-21T02:07:40Z karayan joined #lisp 2020-05-21T02:08:04Z aeth: You might not even notice you're using different things if it's as simple as (:use :kernel) instead of (:use :cl) in the package definition. Well, until you try to use something that isn't defined. 2020-05-21T02:10:23Z jesse1010: what are your recommendations for LISP guy apps? 2020-05-21T02:11:40Z libertyprime joined #lisp 2020-05-21T02:12:09Z aeth: GUI? 2020-05-21T02:12:48Z aeth: Well, there are different ways to make a GUI, such as using the web browser, making a pseudo-GUI in the terminal, using a toolkit, or even using a 3D API like OpenGL with something like SDL. 2020-05-21T02:13:45Z aeth: There's a Lisp-native GUI toolkit called CLIM. An open source implementation is here: https://github.com/McCLIM/McCLIM/ 2020-05-21T02:14:04Z aeth: Qt bindings also exist. Iirc, I think the Gtk ones are problematic. 2020-05-21T02:14:46Z aeth: As for graphical OS stuff, you'd want ot talk to froggey about Mezzano. https://github.com/froggey/Mezzano/blob/master/doc/screenshot1.png 2020-05-21T02:15:50Z [mark] joined #lisp 2020-05-21T02:15:54Z aeth: There are a lot of OpenGL-based stuff, mostly for games, e.g. https://borodust.org/projects/trivial-gamekit/ or https://github.com/vydd/sketch 2020-05-21T02:17:04Z aeth: And finally, if you're on macOS, you can use CCL to integrate with Apple's Objective-C macOS APIs. And on any OS, you can embed ECL within a graphical C or C++ program. 2020-05-21T02:19:54Z Bike quit (Quit: leaving) 2020-05-21T02:24:31Z wxie quit (Remote host closed the connection) 2020-05-21T02:25:00Z zaquest joined #lisp 2020-05-21T02:25:27Z jesse1010: aeth: thank you! 2020-05-21T02:25:35Z jesse1010: going to bed, thanks for all the help everyone 2020-05-21T02:30:02Z jesse1010 quit (Ping timeout: 256 seconds) 2020-05-21T02:34:41Z Lycurgus quit (Quit: Exeunt) 2020-05-21T02:35:08Z buffergn0me quit (Read error: Connection reset by peer) 2020-05-21T02:45:48Z karlosz joined #lisp 2020-05-21T02:47:55Z catchme quit (Quit: Connection closed for inactivity) 2020-05-21T02:50:28Z shifty joined #lisp 2020-05-21T02:58:05Z EvW joined #lisp 2020-05-21T02:59:20Z gaqwas quit (Ping timeout: 265 seconds) 2020-05-21T02:59:37Z gaqwas joined #lisp 2020-05-21T03:04:54Z SGASAU`` joined #lisp 2020-05-21T03:05:15Z wxie joined #lisp 2020-05-21T03:06:08Z jasom quit (Ping timeout: 260 seconds) 2020-05-21T03:06:18Z SGASAU` quit (Ping timeout: 256 seconds) 2020-05-21T03:06:32Z jasom joined #lisp 2020-05-21T03:10:57Z dmiles quit (Read error: Connection reset by peer) 2020-05-21T03:13:21Z dmiles joined #lisp 2020-05-21T03:19:04Z beach: Good morning everyone! 2020-05-21T03:21:29Z solrize: hey beach where are you, that it's morning there? 2020-05-21T03:22:07Z solrize: and good morning ;) 2020-05-21T03:22:16Z shifty quit (Ping timeout: 246 seconds) 2020-05-21T03:22:29Z beach: UTC+2 as always. 2020-05-21T03:24:40Z beach: ... in the summer. 2020-05-21T03:25:08Z solrize: nice 2020-05-21T03:27:15Z [mark] left #lisp 2020-05-21T03:27:25Z [mark] joined #lisp 2020-05-21T03:33:54Z oldtopman quit (Quit: *poof*) 2020-05-21T03:35:02Z agam joined #lisp 2020-05-21T03:36:32Z Oladon joined #lisp 2020-05-21T03:39:22Z EvW quit (Ping timeout: 260 seconds) 2020-05-21T03:39:26Z akoana left #lisp 2020-05-21T03:39:44Z agam quit (Ping timeout: 272 seconds) 2020-05-21T03:46:39Z markasoftware: What are some tools for generating html documentation for my system? 2020-05-21T03:48:12Z no-defun-allowed: Staple? 2020-05-21T03:48:18Z no-defun-allowed: https://github.com/Shinmera/staple 2020-05-21T03:49:07Z ech quit (Ping timeout: 265 seconds) 2020-05-21T03:49:57Z markasoftware: that seems reasonable, thanks 2020-05-21T03:56:09Z agam joined #lisp 2020-05-21T04:06:51Z jeosol joined #lisp 2020-05-21T04:22:17Z wxie quit (Ping timeout: 260 seconds) 2020-05-21T04:22:42Z agam left #lisp 2020-05-21T04:28:29Z SGASAU`` quit (Remote host closed the connection) 2020-05-21T04:29:09Z SGASAU`` joined #lisp 2020-05-21T04:30:38Z mathrick quit (Read error: Connection reset by peer) 2020-05-21T04:35:10Z SGASAU`` quit (Ping timeout: 258 seconds) 2020-05-21T04:36:08Z SGASAU`` joined #lisp 2020-05-21T04:37:39Z Necktwi quit (Quit: leaving) 2020-05-21T04:47:00Z narimiran joined #lisp 2020-05-21T04:47:45Z ober: now that 64bit is free on all platforms... it's hard to not push the lw 2020-05-21T04:48:12Z beach: What do you mean? I don't understand. 2020-05-21T04:48:40Z no-defun-allowed: lw = LispWorks? 2020-05-21T04:49:10Z beach: And what does it mean to "push" it? 2020-05-21T04:49:21Z mangul quit (Remote host closed the connection) 2020-05-21T04:49:31Z no-defun-allowed should test LispWorks on the Raspberry Pi. 2020-05-21T04:50:33Z no-defun-allowed: Or not, the time limit would prohibit myself from using it to run a server. 2020-05-21T04:51:15Z mangul joined #lisp 2020-05-21T04:51:57Z epony quit (Quit: reconfig) 2020-05-21T04:52:27Z ober: I mean Harlequin lisp, yes lw 2020-05-21T04:52:53Z ober: true 2020-05-21T04:53:25Z epony joined #lisp 2020-05-21T04:54:20Z doesthiswork quit (Ping timeout: 258 seconds) 2020-05-21T05:05:43Z solrize: lw = harlequin? i didn't know that 2020-05-21T05:05:59Z solrize: and it's free now? 2020-05-21T05:08:09Z ober: their free version is all platforms/64bit now, that's all same timeout though as pointed out above 2020-05-21T05:12:27Z gravicappa joined #lisp 2020-05-21T05:13:32Z wxie joined #lisp 2020-05-21T05:14:00Z ngqrl joined #lisp 2020-05-21T05:15:16Z SGASAU``` joined #lisp 2020-05-21T05:15:30Z SGASAU`` quit (Ping timeout: 256 seconds) 2020-05-21T05:17:18Z SGASAU``` quit (Remote host closed the connection) 2020-05-21T05:18:09Z SGASAU``` joined #lisp 2020-05-21T05:21:58Z p_l: They made a new personal release? 2020-05-21T05:22:23Z p_l: Cause maybe two weeks ago it was still stuck at 6.1 32bit 2020-05-21T05:23:24Z p_l: Looks like they put up 7.1,will have to check asap 2020-05-21T05:24:54Z wxie quit (Ping timeout: 256 seconds) 2020-05-21T05:33:26Z SGASAU``` quit (Ping timeout: 258 seconds) 2020-05-21T05:33:31Z sauvin joined #lisp 2020-05-21T05:34:22Z jonatack joined #lisp 2020-05-21T05:40:07Z mangul quit (Ping timeout: 260 seconds) 2020-05-21T05:47:23Z madage quit (Ping timeout: 240 seconds) 2020-05-21T05:47:47Z Lycurgus joined #lisp 2020-05-21T05:48:37Z vegai joined #lisp 2020-05-21T05:49:06Z ober: 7.1.2 64bit is up now 2020-05-21T05:49:14Z p_l: indeed it works, even an arm64 version is up 2020-05-21T05:49:15Z ober: unsure the timeout value. 2020-05-21T05:49:21Z ober: and arm64 has threads! 2020-05-21T05:50:24Z sauvin is now known as Sauvin 2020-05-21T05:50:41Z ober: 5 hours 2020-05-21T05:52:23Z jonatack quit (Ping timeout: 272 seconds) 2020-05-21T05:53:46Z Oladon quit (Quit: Leaving.) 2020-05-21T05:56:14Z sdumi quit (Ping timeout: 265 seconds) 2020-05-21T05:56:15Z bhartrihari left #lisp 2020-05-21T05:56:19Z bhartrihari joined #lisp 2020-05-21T05:57:13Z jonatack joined #lisp 2020-05-21T05:58:04Z sdumi joined #lisp 2020-05-21T06:05:52Z kbtr joined #lisp 2020-05-21T06:07:32Z slyrus joined #lisp 2020-05-21T06:08:32Z sdumi quit (Read error: Connection reset by peer) 2020-05-21T06:08:40Z madage joined #lisp 2020-05-21T06:08:46Z sdumi joined #lisp 2020-05-21T06:09:53Z bhartrihari left #lisp 2020-05-21T06:12:27Z bhartrihari joined #lisp 2020-05-21T06:14:37Z jonatack quit (Ping timeout: 264 seconds) 2020-05-21T06:16:31Z wxie joined #lisp 2020-05-21T06:19:05Z epony quit (Quit: reconfig) 2020-05-21T06:19:05Z shangul joined #lisp 2020-05-21T06:21:31Z pjb quit (Ping timeout: 272 seconds) 2020-05-21T06:22:49Z abhixec quit (Quit: leaving) 2020-05-21T06:24:00Z bebop joined #lisp 2020-05-21T06:27:16Z Lycurgus quit (Remote host closed the connection) 2020-05-21T06:27:49Z X-Scale` joined #lisp 2020-05-21T06:29:37Z X-Scale quit (Ping timeout: 264 seconds) 2020-05-21T06:29:38Z X-Scale` is now known as X-Scale 2020-05-21T06:29:50Z bhartrihari left #lisp 2020-05-21T06:30:24Z epony joined #lisp 2020-05-21T06:31:44Z easye: Mornin' Europe. "fasl" is an acronym for "Fast system loader" or "fast system loading"? Stylistically, should "fasl" be capitalized as "FASL"? 2020-05-21T06:32:14Z bhartrihari joined #lisp 2020-05-21T06:32:22Z phoe: http://www.lispworks.com/documentation/lw50/LWRM/html/lwref-67.htm 2020-05-21T06:32:31Z phoe: "(which is in LispWorks's FASL or Fast Load format)" 2020-05-21T06:32:38Z phoe: that's the version I've heard 2020-05-21T06:32:42Z Jeanne-Kamikaze quit (Quit: Leaving) 2020-05-21T06:33:21Z ober: some use fasl. some use fasl64u 2020-05-21T06:33:29Z themasterx-ahmad joined #lisp 2020-05-21T06:33:40Z themasterx-ahmad: hi 2020-05-21T06:33:58Z ober: hello 2020-05-21T06:34:37Z ober: hey Phoe see privmsg please 2020-05-21T06:34:56Z beach: Hello themasterx-ahmad. 2020-05-21T06:35:09Z easye: Ok, I seem to be definitely confused on the "system" part. 2020-05-21T06:35:23Z epony quit (Remote host closed the connection) 2020-05-21T06:35:48Z easye: Still, there is something incongruous about calling a file containing a compiled representation a "fast loader". 2020-05-21T06:35:56Z ober: and how trivial is it to decompile the fasl back to lisp code? 2020-05-21T06:36:16Z themasterx-ahmad: so you guys ! are you all working viusal lisp ? 2020-05-21T06:36:33Z beach: easye: I don't think it's "loader", I think it's "fast loadING" 2020-05-21T06:36:41Z easye: ober: that varies by implementation. Usually one uses CL:DISASSEMBLE interactively to inspect results. 2020-05-21T06:36:43Z ober: yeah 2020-05-21T06:36:54Z bhartrihari left #lisp 2020-05-21T06:37:02Z easye: beach: that makes a little more sense. 2020-05-21T06:37:03Z ober: easye: yeah, but asm 2020-05-21T06:37:05Z bhartrihari joined #lisp 2020-05-21T06:37:35Z beach: themasterx-ahmad: I am not sure I understand your question. 2020-05-21T06:37:46Z easye: ober: ah, yeah, there is no generalized way to reverse the transformation. 2020-05-21T06:37:57Z phoe: themasterx-ahmad: what do you mean, visual lisp? 2020-05-21T06:38:06Z beach: ober: You can't get the source back. It has been at least "minimally compiled", so the macros are gone. 2020-05-21T06:38:13Z ober: a lot of systems still don't automatically compile-file 2020-05-21T06:38:22Z themasterx-ahmad: ok , lisp is programing language for autoCAD 2020-05-21T06:38:32Z ober: clisp had pretty easy to parse fasl I thought 2020-05-21T06:38:38Z beach: themasterx-ahmad: Oh, this channel is dedicated to Common Lisp. 2020-05-21T06:38:44Z beach: Not Autolisp. 2020-05-21T06:38:57Z themasterx-ahmad: ah sorry i didn't read well 2020-05-21T06:38:57Z random-nick joined #lisp 2020-05-21T06:39:18Z beach: ober: Even so, the FASL has to be minimally compiled, which means that macros are expanded already. 2020-05-21T06:39:22Z pjb joined #lisp 2020-05-21T06:39:38Z ober: yeah we did that as some of us have generators hooked up to uncle john, and he's spinning so fast in his grave that CL took the lisp name for itself, we never have to pay those evil corporations for power again! 2020-05-21T06:39:54Z beach: ober: Interestingly, SICL takes that restriction literally, and the SICL FASL contains the abstract syntax tree of the code after the macros have been expanded. 2020-05-21T06:40:17Z ober: nice 2020-05-21T06:40:30Z ober: but that's much more a scheme right? 2020-05-21T06:40:43Z beach: ... which means that FASLs are largely independent of the backend. 2020-05-21T06:40:44Z ober: or was it LISPs 2020-05-21T06:40:48Z ober: lisp in small pieces 2020-05-21T06:41:09Z epony joined #lisp 2020-05-21T06:41:38Z beach: ober: What is your question about? 2020-05-21T06:41:52Z beach: ober: Oh, maybe you are confusing SICP and SICL. 2020-05-21T06:42:01Z beach: minion: Please tell ober about SICL. 2020-05-21T06:42:01Z minion: ober: SICL: SICL is a (perhaps futile) attempt to re-implement Common Lisp from scratch, hopefully using improved programming and bootstrapping techniques. See https://github.com/robert-strandh/SICL 2020-05-21T06:42:09Z vaporatorius quit (Ping timeout: 265 seconds) 2020-05-21T06:42:38Z ober: you're right. 2020-05-21T06:43:37Z beach: themasterx-ahmad: So is Autolisp the reason you came here, or are you interested in Lisp in general? 2020-05-21T06:45:09Z beach: PCL says "fasl" means "fast-load file". 2020-05-21T06:45:31Z easye: "fast-load file" is at least a noun. 2020-05-21T06:45:34Z themasterx-ahmad: beach autolisp 2020-05-21T06:45:46Z themasterx-ahmad left #lisp 2020-05-21T06:46:06Z beach: That settles that. 2020-05-21T06:47:14Z jonatack joined #lisp 2020-05-21T06:49:13Z p_l: easye: fast load 2020-05-21T06:49:32Z p_l: nothing else, because "systems" weren't a thing when FASL was defined 2020-05-21T06:51:13Z pve joined #lisp 2020-05-21T06:51:26Z shka_ joined #lisp 2020-05-21T06:51:31Z easye: The interesting (?) thing about the use of the term "FASL" is that it doesn't appear to have been "carefully defined" in the CLHS. 2020-05-21T06:52:15Z Posterdati joined #lisp 2020-05-21T06:52:16Z phoe: correct 2020-05-21T06:52:21Z phoe: it came from practice, not from the standard 2020-05-21T06:53:21Z easye: But the use of fasl must have been practice that could have been standardized, as the only (?) place it occurs in CLHS is in an example about CMUCL 2020-05-21T06:53:49Z benjamin1 joined #lisp 2020-05-21T06:54:27Z easye: "fasl" should be synonymous with "compiled on-disk representation" which is always an imprecise mouthful. 2020-05-21T06:54:52Z easye: Was there ever a "slow loading compiled representation"? 2020-05-21T06:55:12Z libertyprime quit (Ping timeout: 265 seconds) 2020-05-21T06:56:06Z easye: Anyways, enough navel-gazing. Onto some CONS... 2020-05-21T07:01:49Z libertyprime joined #lisp 2020-05-21T07:04:34Z p_l: easye: both plain source files and FASL files are loadable with LOAD, and this the origin for FASL - early load would mean parsing, any kind of compilation etc. Adding FASL meant that you could reload the same content much faster 2020-05-21T07:05:18Z p_l: and that was in quite resource constrained times 2020-05-21T07:07:09Z beach: And since we are less constrained these days, I just took the restriction literally, so the SICL fasl is just minimally compiled. No more. 2020-05-21T07:07:21Z beach: It makes the code MUCH simpler. 2020-05-21T07:07:32Z beach: I mean the FASL generator and the loader. 2020-05-21T07:07:48Z easye: p_l: so you would advocate that "FASL" be capitalized as an acronym? I observe that like LISP-->Lisp, FASL is more commonly downcased these days. 2020-05-21T07:09:41Z jonatack quit (Ping timeout: 252 seconds) 2020-05-21T07:10:08Z jonatack joined #lisp 2020-05-21T07:11:17Z p_l: easye: it became its own noun, except when speaking about concrete implementations where it might make a difference 2020-05-21T07:12:02Z benjamin1 quit (Ping timeout: 260 seconds) 2020-05-21T07:14:16Z p_l: for example, in sentences like "QFASL files are composed of one or more WHACKS, each WHACK is a sequence of 16 bit nibbles which are considered in groups" 2020-05-21T07:15:35Z libertyprime quit (Remote host closed the connection) 2020-05-21T07:18:43Z dale quit (Quit: My computer has gone to sleep) 2020-05-21T07:21:09Z benjamin1 joined #lisp 2020-05-21T07:27:41Z liberliver joined #lisp 2020-05-21T07:29:38Z jprajzne joined #lisp 2020-05-21T07:30:20Z mathrick joined #lisp 2020-05-21T07:36:15Z pmden joined #lisp 2020-05-21T07:37:03Z liberliver1 joined #lisp 2020-05-21T07:37:10Z Bourne joined #lisp 2020-05-21T07:38:58Z liberliver quit (Ping timeout: 260 seconds) 2020-05-21T07:38:59Z liberliver1 is now known as liberliver 2020-05-21T07:39:26Z benjamin1 quit (Ping timeout: 246 seconds) 2020-05-21T07:45:27Z mathrick quit (Remote host closed the connection) 2020-05-21T07:45:51Z mathrick joined #lisp 2020-05-21T07:49:20Z shka_ quit (Ping timeout: 265 seconds) 2020-05-21T07:50:06Z splittist: So what is (was) a FASD ? 2020-05-21T07:50:23Z gaqwas quit (Changing host) 2020-05-21T07:50:23Z gaqwas joined #lisp 2020-05-21T07:51:07Z splittist: FASL Dump, I trhink (to answer my own question) 2020-05-21T07:51:27Z liberliver quit (Remote host closed the connection) 2020-05-21T07:51:38Z splittist: Or maybe just FASt Dump 2020-05-21T07:52:21Z phoe: splittist: http://www.cs.cmu.edu/afs/cs/project/cmt-55/lti/Lab/Depot/Old/gcl-2.2/lsp/fasd.lisp 2020-05-21T07:54:39Z splittist: phoe: or http://mirror.informatimago.com/lisp/www.unlambda.com/lispm/lmi-source/extract/dj_full/l/sys/qcfile.lisp.372 2020-05-21T07:54:41Z phoe: but then also, https://common-lisp.net/svn/mit-cadr/trunk/lisp/zwei/fasupd.lisp 2020-05-21T07:54:47Z liberliver joined #lisp 2020-05-21T07:54:49Z benjamin1 joined #lisp 2020-05-21T07:55:00Z phoe: yep 2020-05-21T07:55:08Z gaqwas quit (Ping timeout: 256 seconds) 2020-05-21T07:56:58Z gaqwas joined #lisp 2020-05-21T07:58:07Z jonatack quit (Ping timeout: 260 seconds) 2020-05-21T07:58:24Z toorevitimirp joined #lisp 2020-05-21T07:58:56Z jonatack joined #lisp 2020-05-21T08:02:42Z mangul joined #lisp 2020-05-21T08:04:16Z bhartrihari left #lisp 2020-05-21T08:04:47Z bhartrihari joined #lisp 2020-05-21T08:05:14Z shangul quit (Ping timeout: 258 seconds) 2020-05-21T08:06:08Z p_l: fasd was GCL. QCFILE was FASL compiler, yes 2020-05-21T08:09:45Z liberliver1 joined #lisp 2020-05-21T08:10:31Z toorevitimirp quit (Remote host closed the connection) 2020-05-21T08:10:54Z kingragworm joined #lisp 2020-05-21T08:10:59Z toorevitimirp joined #lisp 2020-05-21T08:11:19Z kingragworm quit (Remote host closed the connection) 2020-05-21T08:11:37Z liberliver quit (Ping timeout: 264 seconds) 2020-05-21T08:12:05Z liberliver joined #lisp 2020-05-21T08:12:24Z karlosz quit (Read error: Connection reset by peer) 2020-05-21T08:12:44Z karlosz joined #lisp 2020-05-21T08:14:26Z liberliver1 quit (Ping timeout: 260 seconds) 2020-05-21T08:17:40Z sdumi quit (Ping timeout: 246 seconds) 2020-05-21T08:22:29Z wxie quit (Ping timeout: 258 seconds) 2020-05-21T08:23:46Z orivej joined #lisp 2020-05-21T08:30:06Z sdumi joined #lisp 2020-05-21T08:40:24Z shifty joined #lisp 2020-05-21T08:43:12Z ljavorsk joined #lisp 2020-05-21T08:46:52Z shifty quit (Ping timeout: 256 seconds) 2020-05-21T08:47:13Z shifty joined #lisp 2020-05-21T08:50:01Z orivej quit (Ping timeout: 264 seconds) 2020-05-21T08:50:26Z orivej joined #lisp 2020-05-21T08:50:31Z arpunk quit (Ping timeout: 260 seconds) 2020-05-21T08:53:36Z jonatack_ joined #lisp 2020-05-21T08:57:04Z jonatack quit (Ping timeout: 256 seconds) 2020-05-21T08:59:42Z orivej quit (Ping timeout: 260 seconds) 2020-05-21T09:00:06Z orivej joined #lisp 2020-05-21T09:01:52Z karlosz quit (Quit: karlosz) 2020-05-21T09:02:05Z solrize: sicl has 142K LOC of .lisp files 2020-05-21T09:02:31Z jonatack_ quit (Quit: jonatack_) 2020-05-21T09:02:44Z beach: You might be right. 2020-05-21T09:02:53Z jonatack joined #lisp 2020-05-21T09:04:18Z solrize: was fasd a lispm thing? 2020-05-21T09:04:25Z solrize: oh GCL 2020-05-21T09:04:43Z X-Scale` joined #lisp 2020-05-21T09:06:42Z X-Scale quit (Ping timeout: 256 seconds) 2020-05-21T09:06:42Z X-Scale` is now known as X-Scale 2020-05-21T09:07:51Z p_l: solrize: MIT CADR had FASLs (QFASL) and cold load bands 2020-05-21T09:10:09Z solrize: what about that LMI directory linked above--is that better than the CADR code? 2020-05-21T09:12:08Z solrize: i see aeth answered me yesterday after i went to bed, saying the cadr emulator busy loops when idle... i guess i have a bare metal server i can let that happen on, especially if it's just 1 core 2020-05-21T09:12:18Z orivej quit (Ping timeout: 260 seconds) 2020-05-21T09:12:46Z orivej joined #lisp 2020-05-21T09:15:19Z p_l: solrize: LMI is, afaik, much less diverged from CADR over time, though by the time of late TI Explorer it looked much different (and the general layout of "Q" - words, changed) 2020-05-21T09:15:36Z p_l: much less in comparison with symbolics that is 2020-05-21T09:16:07Z solrize: how does that stuff compare with what is being used today, in debugging tools etc.? 2020-05-21T09:16:15Z quazimodo quit (Remote host closed the connection) 2020-05-21T09:16:34Z p_l: solrize: a total mishmash, and not just in terms of Lisp stuff 2020-05-21T09:17:03Z mangul quit (Remote host closed the connection) 2020-05-21T09:17:14Z p_l: that said, Lisp machine (all of them - CADR, LMI, TI, Symbolics) had full access across the whole system in high level tooling, which is pretty rare today 2020-05-21T09:17:28Z beach: solrize: The tools situation, especially in FLOSS Common Lisp implementations is dismal. But some of us are working to change that. 2020-05-21T09:18:45Z solrize: thanks beach yeah that fits the picture i had some years back 2020-05-21T09:19:32Z p_l: solrize: if you want to do some archeology, there's CADR, LMI, TI and partial Symbolics emulation available 2020-05-21T09:19:33Z solrize: i wonder whether trying to resurrect/port the CADR tools could be of any help, or anyway reimplement the functionality, if the code itself is useless 2020-05-21T09:19:50Z shifty quit (Ping timeout: 272 seconds) 2020-05-21T09:19:53Z solrize: i never really used those things and i feel like i missed out 2020-05-21T09:20:07Z p_l: solrize: CADR tooling is quite primitive compared to later stuff, I believe 2020-05-21T09:20:09Z solrize: i've seen them in use and played with them a little but never got familiar with how they worked 2020-05-21T09:20:11Z solrize: ic 2020-05-21T09:20:37Z p_l: well, primitive to later versions on Lisp Machines - the advantage of lisp all the way up/down/sidewise/widdershins was still there 2020-05-21T09:20:52Z no-defun-allowed: Unlikely; I think the lispms have vastly different architecture to C machines. 2020-05-21T09:20:56Z shifty joined #lisp 2020-05-21T09:21:31Z solrize: no-defun-allowed, well that affects the compilers but the high level code was fairly CL-like 2020-05-21T09:21:32Z beach: no-defun-allowed: I don't think that matters much anymore. 2020-05-21T09:21:36Z p_l: fortunately we no longer run C machines either 2020-05-21T09:22:01Z p_l: PDP-11 died before last PDP-10 was delivered, as it turns out 2020-05-21T09:22:05Z solrize: somewhere i have a printed orange nual that i used to read at night 2020-05-21T09:22:16Z p_l: so one can argue that lisp CPUs won against C ;) 2020-05-21T09:22:22Z solrize: haha 2020-05-21T09:22:33Z solrize: nah there's no tag bits any more 2020-05-21T09:22:36Z solrize: sparc had that 2020-05-21T09:22:39Z benjamin1 quit (Ping timeout: 272 seconds) 2020-05-21T09:22:45Z no-defun-allowed: I mean that a decent bit of the debugging software on the CADR might not be so applicable to Common Lisp implementations; but I don't remember what hardware assistance it would have had. 2020-05-21T09:23:11Z p_l: solrize: the internals of CADR/3600/Ivory also didn't have tag bits, as they were microcoded ;) 2020-05-21T09:23:27Z p_l: solrize: btw, POWER does have tag bits, but that mode is undocumented 2020-05-21T09:25:01Z solrize: i remember oracle floating some kind of hardware support for java gc, but no idea if anything happened with it 2020-05-21T09:25:32Z solrize: no-defun-allowed, if you mean stuff like hardware breakpoints, most cpus have that now 2020-05-21T09:26:31Z p_l: solrize: Oracle is abusing MMU for accelerated GC nowadays by putting tags into high bits (but still keeping pointers canonical) 2020-05-21T09:26:55Z solrize: ahh ok... is that sparc specific (if they stlil use sparc at all) or can x86 do it too? 2020-05-21T09:27:08Z p_l: that's on amd64 only so far 2020-05-21T09:27:23Z p_l: but the mechanism is portable 2020-05-21T09:27:30Z solrize: sounds ok 2020-05-21T09:27:36Z p_l: so long as you have a wide enough address space 2020-05-21T09:27:52Z p_l: Azul had special Java-oriented CPU 2020-05-21T09:28:04Z p_l: now they also use MMU tricks with nested page tables 2020-05-21T09:28:13Z p_l: on recent-enough amd64 2020-05-21T09:28:25Z orivej quit (Ping timeout: 264 seconds) 2020-05-21T09:28:28Z orivej_ joined #lisp 2020-05-21T09:29:13Z p_l: Shenandoah just adds an extra forwarding pointer to every object - that's a technique that was used on Lisp machines, but there it used tagged pointers that were natively understood by microcode 2020-05-21T09:29:31Z solrize: what cpu did azul use? 2020-05-21T09:29:42Z solrize: i think that's what i was thinking of re special hardware 2020-05-21T09:30:23Z solrize: shenandoah boxes everything? or just has an extra field used only during gc 2020-05-21T09:30:32Z froggey: Shenandoah has ditched the forwarding pointer in recent versions and moved over to using pointer bits like ZGC 2020-05-21T09:31:57Z p_l: froggey: oh, that's very recent info for me 2020-05-21T09:33:59Z solrize: wow i didn't know there was this much diversity of high end gc's these days 2020-05-21T09:35:00Z White_Flame: p_l: what do you mean by the lispms not having tag bits because they're microcoded? 2020-05-21T09:35:51Z p_l: White_Flame: I meant it as difference between SPARC tag bit support (which was fully hw) and CADR/LMI/TI/3600/Ivory where it was microcoded affair 2020-05-21T09:36:09Z White_Flame: some had 40-bit RAMs, some encoded 4 40-bit words into 5 32-bit hardware RAM words 2020-05-21T09:36:18Z White_Flame: ah 2020-05-21T09:36:19Z p_l: White_Flame: an unfortunately lost to sands of time paper from Symbolics talked about their treatment of Alpha CPU as microcode engine 2020-05-21T09:36:34Z shifty quit (Ping timeout: 256 seconds) 2020-05-21T09:36:38Z p_l: White_Flame: CADR, LMI and TI all used 32bit wors 2020-05-21T09:36:40Z p_l: *words 2020-05-21T09:36:51Z White_Flame: right, the symbolics ones went 40-bit 2020-05-21T09:37:07Z p_l: Ivory went 40 bit. 3600 was 36bit 2020-05-21T09:37:07Z White_Flame: but still, all still tagged, and dedicated places in the words for tags 2020-05-21T09:37:09Z solrize: CADR wasn't 36 bit? 2020-05-21T09:37:10Z shifty joined #lisp 2020-05-21T09:37:12Z solrize: oh 2020-05-21T09:37:13Z solrize: ok 2020-05-21T09:37:18Z solrize: 36 + tags? 2020-05-21T09:37:34Z p_l: no, 36bit is the whole word, with tags 2020-05-21T09:37:54Z solrize: ah ok. and cadr was 32 with tags? 2020-05-21T09:38:02Z solrize: i had somehow thought it was 36 but np 2020-05-21T09:38:15Z p_l: CADR/LMI/TI used 32bits and included any tags/cdrcode in it 2020-05-21T09:38:22Z solrize: ic thanks 2020-05-21T09:38:58Z p_l: LMI I believe used 8bits for tags, while TI changed that to 7 2020-05-21T09:39:52Z pjb quit (Ping timeout: 260 seconds) 2020-05-21T09:40:54Z jackdaniel: I believe that my fridge has 1 bit: on / off switch, I'm not sure if it is tagged 2020-05-21T09:41:37Z solrize: do you think it is interesting for more than historical/retro reasons to run one of those systems (in emulation) for a while? i.e. to find inspiration in the tooling and that sort of thing 2020-05-21T09:42:06Z jackdaniel: running genera in vm is suposedly very interesting experience 2020-05-21T09:42:34Z jesse1010 joined #lisp 2020-05-21T09:42:38Z solrize: yeah i mostly meant cadr since the code is out there 2020-05-21T09:42:44Z p_l: symbolics ivory emulation is subtly broken, but it has I think the widest selection of non-OS software 2020-05-21T09:43:29Z p_l: with everything else you pretty much get the bare bones fresh install of OS and that's it 2020-05-21T09:44:01Z shifty quit (Ping timeout: 264 seconds) 2020-05-21T09:44:14Z shifty joined #lisp 2020-05-21T09:44:14Z solrize: ic. yeah doesn't sound that exciting 2020-05-21T09:45:29Z solrize: sicl's gc is very simple unless there's a bunch that i don't see in the gc directory 2020-05-21T09:46:04Z KingRiver joined #lisp 2020-05-21T09:46:15Z beach: solrize: SICL doesn't exist, so lots of the code is unfinished. If you are interested in its garbage collector, I suggest you read the specification. 2020-05-21T09:46:23Z solrize: ah ok 2020-05-21T09:46:33Z beach: http://metamodular.com/SICL/sicl-specification.pdf 2020-05-21T09:46:41Z Inline joined #lisp 2020-05-21T09:47:10Z beach: Or you can read any of the 15 or so research papers on new technique we either use or plan to use. 2020-05-21T09:50:07Z solrize: thanks, looking at that specification now... are the other papers in the sicl papers directory? 2020-05-21T09:50:16Z beach: Yeah. 2020-05-21T09:50:21Z solrize: k 2020-05-21T09:52:31Z solrize: i guess this looks pretty standard 2020-05-21T09:52:40Z beach: What does? 2020-05-21T09:53:01Z beach: Also we extracted several modules into independent repositories that are now maintained separately, like Eclector, Trucler, Concrete Syntax Tree. There are more to come. 2020-05-21T09:53:39Z solrize: cool 2020-05-21T09:53:40Z beach: The first-class global environments code, for instance. And perhaps all of the Cleavir compiler framework some day. 2020-05-21T09:53:56Z beach: What looks standard? 2020-05-21T09:54:01Z solrize: the description of the global gc looks fairly standard... reading about the nursery gc now 2020-05-21T09:54:45Z beach: If you consider a concurrent and parallel non-moving GC as "standard", sure. 2020-05-21T09:56:02Z solrize: ghc's is something like that now 2020-05-21T09:57:49Z solrize: for a while i think compacting was preferred to non-moving, but this has changed somehow. i'm not up on it 2020-05-21T09:58:28Z solrize: as you mention, non-moving helps ffi's 2020-05-21T09:58:30Z no-defun-allowed: I would say non-moving collectors are simpler to manage in multiprocessing environments, but I haven't read enough literature on modern collectors. 2020-05-21T09:59:48Z solrize: https://github.com/xoofx/gcix here's a portable version of immix 2020-05-21T10:00:38Z solrize: no-defun-allowed, jones et al's book is really good but it's not the very latest 2020-05-21T10:00:43Z solrize: and i don't know what's been going on since then 2020-05-21T10:01:08Z no-defun-allowed: Yeah, I have been reading the Handbook from the university library. 2020-05-21T10:01:10Z solrize: it's from 2012 2020-05-21T10:01:13Z solrize: yeah that's the one 2020-05-21T10:02:12Z solrize: beach, are you one of the sicl developers? 2020-05-21T10:02:43Z no-defun-allowed: beach started the SICL project. 2020-05-21T10:02:57Z solrize: oh wow nice 2020-05-21T10:03:04Z solrize: the sicl doc is impressive 2020-05-21T10:03:23Z solrize: looks like this gcix hasn't changed in 6 years 2020-05-21T10:04:53Z solrize: no-defun-allowed, perry cheng's phd thesis from the early 2000s is also really good reading 2020-05-21T10:05:24Z solrize: about parallel real time gc 2020-05-21T10:07:07Z frgo quit (Remote host closed the connection) 2020-05-21T10:07:44Z frgo joined #lisp 2020-05-21T10:08:05Z solrize: are there significant differences between scheme and lisp for compiling and runtime purposes? i don't mean the surface syntax but past that 2020-05-21T10:08:39Z beach: First-class continuations in Scheme make things complicated. 2020-05-21T10:09:21Z jeosol quit (Remote host closed the connection) 2020-05-21T10:09:22Z beach: You either have to allocation invocation records on the heap, or copy the stack to the heap when you do a CALL/CC. 2020-05-21T10:09:35Z beach: s/allocation/allocate/ 2020-05-21T10:10:03Z beach: On the other hand, Scheme doesn't have to bother with generic dispatch. 2020-05-21T10:10:09Z beach: ... and the MOP. 2020-05-21T10:11:17Z beach: Otherwise, I can't think of any particularly significant differences. 2020-05-21T10:12:52Z solrize: thanks 2020-05-21T10:12:57Z beach: Sure. 2020-05-21T10:12:58Z solrize: yeah i forgot about call/cc 2020-05-21T10:13:16Z solrize: this doc is great 2020-05-21T10:15:27Z jeosol joined #lisp 2020-05-21T10:15:31Z pjb` joined #lisp 2020-05-21T10:16:10Z KingRiverLee joined #lisp 2020-05-21T10:17:33Z gxt_ joined #lisp 2020-05-21T10:18:49Z EvW1 joined #lisp 2020-05-21T10:19:48Z jeosol53 joined #lisp 2020-05-21T10:20:00Z KingRiver quit (Ping timeout: 272 seconds) 2020-05-21T10:23:06Z orivej joined #lisp 2020-05-21T10:23:12Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-21T10:25:56Z sdumi quit (Ping timeout: 265 seconds) 2020-05-21T10:26:55Z jeosol left #lisp 2020-05-21T10:27:30Z jeosol53 quit (Remote host closed the connection) 2020-05-21T10:28:23Z sdumi joined #lisp 2020-05-21T10:28:41Z ayuce joined #lisp 2020-05-21T10:29:12Z Bike joined #lisp 2020-05-21T10:30:51Z solrize: anyway gnite all 2020-05-21T10:30:53Z solrize: zzz 2020-05-21T10:31:37Z no-defun-allowed: Take care. 2020-05-21T10:32:09Z benjamin1 joined #lisp 2020-05-21T10:40:03Z whiteline quit (Read error: Connection reset by peer) 2020-05-21T10:40:33Z whiteline_ joined #lisp 2020-05-21T10:40:57Z whiteline_ quit (Remote host closed the connection) 2020-05-21T10:41:23Z whiteline_ joined #lisp 2020-05-21T10:46:07Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T10:47:17Z orivej joined #lisp 2020-05-21T10:48:07Z pjb` quit (Ping timeout: 260 seconds) 2020-05-21T10:48:31Z bhartrihari left #lisp 2020-05-21T10:48:35Z bhartrihari joined #lisp 2020-05-21T10:48:38Z amerlyq joined #lisp 2020-05-21T10:51:54Z pmden quit (Quit: My MacBook Air has gone to sleep. ZZZzzz…) 2020-05-21T10:53:24Z pmden joined #lisp 2020-05-21T10:56:07Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T10:57:26Z orivej joined #lisp 2020-05-21T11:00:20Z benjamin1 quit (Ping timeout: 246 seconds) 2020-05-21T11:00:50Z ech joined #lisp 2020-05-21T11:05:57Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T11:07:07Z orivej joined #lisp 2020-05-21T11:07:34Z benjamin1 joined #lisp 2020-05-21T11:13:06Z dddddd joined #lisp 2020-05-21T11:13:13Z bhartrihari left #lisp 2020-05-21T11:13:15Z bhartrihari joined #lisp 2020-05-21T11:17:25Z pjb` joined #lisp 2020-05-21T11:18:06Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T11:19:16Z orivej joined #lisp 2020-05-21T11:22:12Z ngqrl quit (Quit: Connection closed for inactivity) 2020-05-21T11:31:57Z orivej_ joined #lisp 2020-05-21T11:32:12Z orivej quit (Ping timeout: 272 seconds) 2020-05-21T11:36:17Z benjamin1 quit (Ping timeout: 260 seconds) 2020-05-21T11:38:34Z bhartrihari left #lisp 2020-05-21T11:38:41Z bhartrihari joined #lisp 2020-05-21T11:46:47Z milanj joined #lisp 2020-05-21T11:51:11Z pjb` quit (Ping timeout: 265 seconds) 2020-05-21T11:52:13Z dmiles quit (Ping timeout: 246 seconds) 2020-05-21T11:57:53Z EvW1 quit (Ping timeout: 252 seconds) 2020-05-21T12:01:38Z Bourne quit (Ping timeout: 256 seconds) 2020-05-21T12:11:16Z pfdietz joined #lisp 2020-05-21T12:11:31Z pmden quit (Quit: My MacBook Air has gone to sleep. ZZZzzz…) 2020-05-21T12:13:03Z pfdietz: "pfdietz: I remember you working with something similar before, could you help us out?" --what was the issue? 2020-05-21T12:13:31Z jmercouris: pfdietz: you are quoting yourself? 2020-05-21T12:13:42Z jmercouris: or quoting someone addressing you? 2020-05-21T12:13:42Z pfdietz: No, quoting phoe 2020-05-21T12:13:55Z jmercouris: I see :-) 2020-05-21T12:14:14Z pmden joined #lisp 2020-05-21T12:15:14Z jackdaniel: "Quotes on the internet are tricky, even if started with a single apostrophe." - Julius Cesar 2020-05-21T12:17:45Z rogersm joined #lisp 2020-05-21T12:18:33Z shifty quit (Ping timeout: 265 seconds) 2020-05-21T12:20:42Z jesse1010: is it possible to put lisp ecl inside of wxwidgets c++? 2020-05-21T12:20:43Z gxt_ quit (Ping timeout: 240 seconds) 2020-05-21T12:22:29Z jackdaniel: you may use ecl like c libraries 2020-05-21T12:22:47Z jackdaniel: so if it is possible to use i.e libfoo.so in wxwidgets c++, then libecl shoudl work just fine 2020-05-21T12:24:36Z pjb` joined #lisp 2020-05-21T12:25:24Z kpoeck joined #lisp 2020-05-21T12:28:15Z SGASAU joined #lisp 2020-05-21T12:29:26Z p_l: I haven't tested it recently, but it used to be possible to compile ECL with C++ compiler and then even use inline C++ snippets 2020-05-21T12:29:47Z wsinatra joined #lisp 2020-05-21T12:30:02Z p_l even did a crazier thing, since he did that with MSVC++ 2020-05-21T12:30:18Z jackdaniel: yes, but it is not necessary to use lisp from c++ library 2020-05-21T12:30:28Z jackdaniel: s/library/application/ 2020-05-21T12:33:26Z Oddity quit (Ping timeout: 260 seconds) 2020-05-21T12:36:28Z Lord_of_Life_ joined #lisp 2020-05-21T12:38:07Z Inline quit (Ping timeout: 260 seconds) 2020-05-21T12:39:11Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-21T12:39:11Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-21T12:39:17Z phoe: pfdietz: basically, scanning over all quicklisp libraries that contain a particular symbol 2020-05-21T12:39:58Z Oddity joined #lisp 2020-05-21T12:40:09Z phoe: I'd like to look for set-macro-character and set-dispatch-macro-character because of https://gitlab.common-lisp.net/asdf/asdf/-/issues/31 2020-05-21T12:42:43Z pfdietz: The problem is that one can't load all the packages, so one has to cheat. 2020-05-21T12:42:51Z cosimone joined #lisp 2020-05-21T12:43:39Z pfdietz: I was looking for uses of sbcl internal symbols in various systems. 2020-05-21T12:43:50Z Shinmera: The individual talks for ELS2020 are now on YouTube. https://www.youtube.com/watch?v=lqVN1fGNpZw&list=PLA66mD-6yK8yjlJCI0Ay2f2IvvmB9Ktga 2020-05-21T12:44:12Z pfdietz: These are either directly referenced, by :[:], or imported-from/used in defpackages. 2020-05-21T12:44:58Z beach: Shinmera: Excellent! 2020-05-21T12:45:21Z pfdietz: The former you find by simple grepping, the latter by a ghetto reader that doesn't get *package* right. SBCL now has restarts to keep the reader from aborting when a package prefix isn't found, so it can keep going. 2020-05-21T12:45:54Z White_Flame: Shinmera: nice! 2020-05-21T12:46:24Z gko joined #lisp 2020-05-21T12:50:34Z choegusung joined #lisp 2020-05-21T12:50:34Z choegusung quit (Client Quit) 2020-05-21T12:51:32Z pfdietz: Other uses for that cheating reader were finding package name collisions https://github.com/pfdietz/find-lisp-package-name-collisions and in ansi-test for reading in fodder expressions for mutational test generation. https://github.com/pfdietz/ansi-test/blob/master/random/mutate.lsp 2020-05-21T12:52:24Z kpoeck: Shinmera kudos 2020-05-21T12:52:40Z gxt joined #lisp 2020-05-21T12:53:00Z seok joined #lisp 2020-05-21T12:53:10Z seok: Morning guys 2020-05-21T12:53:16Z seok: How do I work with bytestreams? 2020-05-21T12:53:22Z seok: byte arrays * 2020-05-21T12:53:51Z Bike: you can make a byte array by passing the appropriate :element-type to make-array, and then you can just use aref 2020-05-21T12:53:58Z jdz: "Like with any other arrays" is probably not the answer you're looking for? 2020-05-21T12:54:06Z Shinmera: I don't know, how /do you/ work with them? 2020-05-21T12:55:16Z Lord_of_Life quit (Read error: Connection reset by peer) 2020-05-21T12:55:26Z seok: https://www.dukascopy.com/datafeed/AUDUSD/2016/01/10/05h_ticks.bi5 2020-05-21T12:55:34Z seok: I get the byte from here 2020-05-21T12:55:45Z seok: but I'm not sure whether I'm suppose to convert that to string 2020-05-21T12:56:02Z seok: I'm guessing it is a byte array of series of ints and floats 2020-05-21T12:56:21Z jdz: It looks like an "LZMA compressed data, non-streamed, size 49320". 2020-05-21T12:56:22Z seok: They somehow convert this into a csv 2020-05-21T12:57:10Z seok: babel:octets-to-string returns illegal utf8 error 2020-05-21T12:57:37Z Lord_of_Life joined #lisp 2020-05-21T12:57:37Z Bike: a zip file is probably not a valid utf8 string, no 2020-05-21T12:57:44Z jdz: seok: You'll get a similar result when you try it on /dev/urandom. 2020-05-21T12:57:45Z seok: Oh, is it a zip? 2020-05-21T12:57:57Z Bike: jdz said it was LZMA compressed 2020-05-21T12:58:06Z Bike: does wherever you're getting this from not document a format? 2020-05-21T12:58:31Z seok: Well, I just monitored the network to see how they are providing the data 2020-05-21T12:58:48Z KingRiverLee quit (Ping timeout: 256 seconds) 2020-05-21T12:58:58Z seok: for normal users you are suppose to download like this https://www.dukascopy.com/swiss/english/marketwatch/historical/ 2020-05-21T12:59:14Z Bike: okay, well, first things first you have to figure out the format it's in 2020-05-21T12:59:15Z seok: but it was a pain to crawl 2020-05-21T13:01:33Z seok: Someone wrote a python code to crawl this https://github.com/giuse88/duka/blob/master/duka/core/fetch.py 2020-05-21T13:01:50Z seok: It is not working atm, but it doesn't look like a zip format 2020-05-21T13:02:49Z vaporatorius joined #lisp 2020-05-21T13:02:50Z vaporatorius quit (Changing host) 2020-05-21T13:02:50Z vaporatorius joined #lisp 2020-05-21T13:02:55Z Bike: this doesn't look like it interprets at all 2020-05-21T13:03:05Z Bike: it just downloads the file 2020-05-21T13:03:14Z keepzen joined #lisp 2020-05-21T13:03:39Z Bike: https://github.com/giuse88/duka/blob/master/duka/core/processor.py check it out: decompress_lzma 2020-05-21T13:03:48Z phoe: pfdietz: I basically need to grep Quicklisp for occurrences of these two strings. That, hopefully, should be enough. 2020-05-21T13:03:52Z seok: hm 2020-05-21T13:04:15Z phoe: lzma! 2020-05-21T13:04:19Z orivej_ quit (Read error: Connection reset by peer) 2020-05-21T13:04:19Z phoe: I have a lzma library 2020-05-21T13:04:23Z seok: would cl-lzma work? 2020-05-21T13:04:27Z seok: phoe: nice! 2020-05-21T13:04:34Z phoe: that's the library that I meant, yes 2020-05-21T13:04:37Z orivej joined #lisp 2020-05-21T13:04:40Z seok: Oh that's yours 2020-05-21T13:04:43Z EvW joined #lisp 2020-05-21T13:04:44Z phoe: it's a small wrapper over the original lzma library in C 2020-05-21T13:04:54Z seok: I will check it out 2020-05-21T13:05:11Z jdz: Aww, FFI :( 2020-05-21T13:05:37Z seok: do I just use decompress-from-vector ? 2020-05-21T13:06:06Z Bike: "No complete natural language specification of the compressed format seems to exist, other than the one attempted in the following text. " oh hell 2020-05-21T13:07:06Z jprajzne quit (Quit: Leaving.) 2020-05-21T13:07:23Z seok: Hm, so that returned a bigger byte array, so I guess that is working 2020-05-21T13:07:25Z Bike: the description on wikipedia is very obvious reverse engineered. sheesh. i'd use ffi too. 2020-05-21T13:07:30Z Bike: obviously* 2020-05-21T13:07:45Z seok: How do i get the data out of this array? 2020-05-21T13:08:08Z Bike: again, that depends on the format of the data, which none of us know. 2020-05-21T13:08:28Z Bike: it looks like processor.py does that kind of thing, so maybe you can figure out the format by looking at it. 2020-05-21T13:09:48Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-21T13:13:50Z phoe: seok: data out of this array?... 2020-05-21T13:13:52Z phoe: what do you mean 2020-05-21T13:13:58Z phoe: the array *is* the data 2020-05-21T13:14:07Z seok: so I mean 2020-05-21T13:14:07Z phoe: you should get a ub8 vector, this is the uncompressed stuff 2020-05-21T13:14:40Z phoe: if you want to dump it to file, alexandria:write-byte-vector-into-file 2020-05-21T13:14:45Z seok: can I figure out the format from this? 2020-05-21T13:14:48Z seok: is it a string? 2020-05-21T13:14:55Z phoe: I don't know, you tell me 2020-05-21T13:15:05Z seok: How would I find out? 2020-05-21T13:15:07Z phoe: if it's a string, then you should be able to convert it via babel 2020-05-21T13:15:15Z seok: Yeah, that didn't work 2020-05-21T13:15:18Z phoe: I don't know, it's your archive, you should know what's inside 2020-05-21T13:15:34Z seok: I'm still looking at the python code to figure it out 2020-05-21T13:15:35Z phoe: LZMA has no metadata about files or folders or extensions 2020-05-21T13:15:45Z seok: it should be some form of ints and floats 2020-05-21T13:15:57Z Bike: what you have is a sequence of bytes. of course you can't figure out just from a sequence of bytes what those bytes represent. that's how we can encode and decode data on computers. 2020-05-21T13:16:50Z phoe: LZMA just turns a ub8 vector into a ub8 vector 2020-05-21T13:16:59Z phoe: and that rule holds both ways 2020-05-21T13:17:28Z jackdaniel: are you sure it is not the other way around? ub8 vector into ub8 vector? 2020-05-21T13:17:36Z jesse1010: does lisp have namespaces? 2020-05-21T13:17:41Z phoe: might be, I need to read the lzma specification for that 2020-05-21T13:17:43Z jackdaniel: it has packages 2020-05-21T13:18:05Z jackdaniel: it is more cumbersome than namespaces but gives you some extra perks 2020-05-21T13:18:19Z jackdaniel: and plenty of confused new programmers 2020-05-21T13:19:25Z KingRiverLee joined #lisp 2020-05-21T13:19:31Z seok: Haha 2020-05-21T13:21:11Z SGASAU` joined #lisp 2020-05-21T13:22:18Z refpga joined #lisp 2020-05-21T13:23:24Z X-Scale quit (Ping timeout: 258 seconds) 2020-05-21T13:23:34Z SGASAU quit (Ping timeout: 240 seconds) 2020-05-21T13:24:02Z bitmapper joined #lisp 2020-05-21T13:24:38Z X-Scale` joined #lisp 2020-05-21T13:25:18Z X-Scale` is now known as X-Scale 2020-05-21T13:26:29Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-21T13:26:59Z SGASAU joined #lisp 2020-05-21T13:27:20Z seok: Is this the line that parses the bytes? tokens.append(struct.unpack('!IIIff', buffer[i * token_size: (i + 1) * token_size])) 2020-05-21T13:27:21Z seok: tokens.append(struct.unpack('!IIIff', buffer[i * token_size: (i + 1) * token_size])) 2020-05-21T13:27:33Z seok: Looks like a C struct 2020-05-21T13:28:44Z Bike: see: https://docs.python.org/3/library/struct.html 2020-05-21T13:28:54Z seok: Yes I've been there 2020-05-21T13:29:04Z seok: It is a bit over me because I don't know C 2020-05-21T13:30:02Z Bike: it's in big endian format. three four byte unsigned integers followed by two four byte single floats. 2020-05-21T13:30:48Z seok: Ah i see it 2020-05-21T13:32:23Z Bike: you can get successive big endian numbers with aref and shift operations, and then use a library like https://github.com/marijnh/ieee-floats to get floats. 2020-05-21T13:32:59Z beach: jesse1010: I think you should bite the bullet and learn to program in Common Lisp. I think you will have some very nice surprises compared to what you are used to. 2020-05-21T13:33:20Z jesse1010: thank you, yes I am going to do it 2020-05-21T13:33:28Z beach: Great! 2020-05-21T13:33:42Z jesse1010: I would like to combine C++ wxwidgets and lisp using UNIX sockets 2020-05-21T13:33:56Z jesse1010: so two separate programs and have them communicate 2020-05-21T13:33:58Z beach: Hmm, that's different from what I suggested. 2020-05-21T13:34:10Z beach: Oh, sure, that can be done. 2020-05-21T13:34:16Z jesse1010: what did you suggest? ECL 2020-05-21T13:34:26Z jesse1010: I could go that route I suppose 2020-05-21T13:34:56Z beach: There are several implementations. If you are going to communicate over a byte stream, you are more free in your choice of Common Lisp implementation. 2020-05-21T13:35:12Z beach: ECL would be the choice if you want to embed the Common Lisp code in your existing application. 2020-05-21T13:36:08Z jackdaniel: (or if you want to make your CL program available to other unix program as a shared library, or when you target android/ios, I'm sure I could think of more ;) 2020-05-21T13:36:10Z jesse1010: could I have the lisp code in a completely different file? 2020-05-21T13:36:34Z jesse1010: if I were to embedd it with ECL 2020-05-21T13:36:57Z beach: You should probably ask jackdaniel about that. He is the maintainer of ECL. 2020-05-21T13:37:02Z jackdaniel: yes, lisp source code is expected to be in a different file than i.e C source code 2020-05-21T13:37:20Z jackdaniel: but for pipes you'll have more community support if you stick to sbcl 2020-05-21T13:37:36Z jackdaniel: that said you should learn at least basics of Common Lisp before you attempt to "embed" it 2020-05-21T13:37:39Z jackdaniel: minion: tell jesse1010 about pcl 2020-05-21T13:37:39Z minion: jesse1010: direct your attention towards 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). 2020-05-21T13:38:57Z dmiles joined #lisp 2020-05-21T13:39:24Z beach: jesse1010: My suggestion was that you learn Common Lisp first, before attempting something like that. You may find that it's a great programming in its own right. 2020-05-21T13:41:57Z toorevitimirp quit (Remote host closed the connection) 2020-05-21T13:41:57Z EvW quit (Ping timeout: 260 seconds) 2020-05-21T13:42:26Z paul0 joined #lisp 2020-05-21T13:42:33Z jesse1010: I will do that 2020-05-21T13:42:59Z jesse1010: Thank you all for your help. This is a very welcoming place. 2020-05-21T13:43:08Z phoe: jesse1010: no problem! 2020-05-21T13:43:13Z phoe: feel free to join #clschool as well 2020-05-21T13:45:52Z jesse1010: cant seem to find this through google... is it possible to call ASM from lisp? 2020-05-21T13:46:11Z beach: That is implementation dependent. But why would you want to do that? 2020-05-21T13:46:20Z phoe: in implementation-dependent ways, but yes, if you absolutely need to 2020-05-21T13:46:36Z phoe: the question is why 2020-05-21T13:46:38Z Bike: does wxWidgets usually need assembler stubs 2020-05-21T13:46:45Z beach: Ouch! 2020-05-21T13:47:23Z jesse1010: for learning multiple things at once 2020-05-21T13:47:39Z jesse1010: I know c allows for calling ASM 2020-05-21T13:47:48Z Bike: it doesn't. some implementations of C do. 2020-05-21T13:47:53Z pjb` quit (Ping timeout: 252 seconds) 2020-05-21T13:47:54Z phoe: you don't want to learn multiple things at once 2020-05-21T13:48:00Z Bike: if you want to learn assembler you should probably just learn assembler. 2020-05-21T13:48:07Z beach: jesse1010: Believe me, you are much better off learning Common Lisp by itself at first. 2020-05-21T13:48:15Z phoe: especially things as different as asm and Lisp 2020-05-21T13:48:20Z Bike: if you try to learn assembler via lisp, you will have to learn all of lisp, assembler, and how to mesh assembler and lisp, which is not easy. 2020-05-21T13:48:24Z beach: jesse1010: I think you will find that you don't need inlined assembly. 2020-05-21T13:48:40Z jmercouris: I can think of literally 0 examples where inlined assembly makes a realistic difference 2020-05-21T13:49:05Z jesse1010: ok I guess ill skip the ASM for now 2020-05-21T13:49:08Z jmercouris: learning assembly in 2020, unless you are an computer engineer rather than a computer scientist, is pointless 2020-05-21T13:49:56Z jackdaniel: so decisively! 2020-05-21T13:50:09Z jesse1010: well, I am neither :) just a hobbiest 2020-05-21T13:50:11Z rumbler3_ quit (Remote host closed the connection) 2020-05-21T13:50:12Z toorevitimirp joined #lisp 2020-05-21T13:50:49Z paul0 quit (Remote host closed the connection) 2020-05-21T13:51:09Z paul0 joined #lisp 2020-05-21T13:51:25Z Bike: i forgot C++ (but not C, i don't think) actually does have a standard 'asm' declaration, but how it actually works is totally implementation defined 2020-05-21T13:52:17Z jackdaniel: 'pointless excercises are where the human spirit thrives, because there is no incentive which would redirect it' - Julius Cesar, 2020 bc 2020-05-21T13:53:53Z jmercouris: 'stop making up quotes jackdaniel' - Abraham Lincoln 2020-05-21T13:54:20Z jackdaniel: hm? 2020-05-21T13:54:36Z jmercouris: not my words, honest Abe's 2020-05-21T13:55:28Z toorevitimirp quit (Remote host closed the connection) 2020-05-21T13:55:30Z phoe: 'without pointless exercises, Lisp would not even exist' - Harold Jay Sussman-McCarthy during the keynote speech of 837th ELS in year #.(most-positive-fixnum) 2020-05-21T13:56:28Z splittist: there goes phoe flaunting his time machine again 2020-05-21T13:57:10Z pfdietz quit (Ping timeout: 245 seconds) 2020-05-21T14:02:16Z KingRiverLee quit (Ping timeout: 256 seconds) 2020-05-21T14:04:58Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T14:06:17Z orivej joined #lisp 2020-05-21T14:06:44Z KingRiverLee joined #lisp 2020-05-21T14:10:10Z frgo_ joined #lisp 2020-05-21T14:13:28Z frgo quit (Ping timeout: 260 seconds) 2020-05-21T14:17:22Z KingRiverLee quit (Remote host closed the connection) 2020-05-21T14:17:46Z KingRiverLee joined #lisp 2020-05-21T14:18:14Z gravicappa quit (Ping timeout: 240 seconds) 2020-05-21T14:18:54Z aeth quit (Ping timeout: 265 seconds) 2020-05-21T14:20:29Z pjb` joined #lisp 2020-05-21T14:20:41Z aeth joined #lisp 2020-05-21T14:21:19Z sdumi quit (Ping timeout: 265 seconds) 2020-05-21T14:21:24Z KingOfCSU joined #lisp 2020-05-21T14:21:31Z EvW1 joined #lisp 2020-05-21T14:23:03Z gxt quit (Ping timeout: 240 seconds) 2020-05-21T14:24:28Z KingRiverLee quit (Ping timeout: 246 seconds) 2020-05-21T14:25:52Z gxt joined #lisp 2020-05-21T14:29:02Z sdumi joined #lisp 2020-05-21T14:34:04Z KingOfCSU quit (Ping timeout: 256 seconds) 2020-05-21T14:34:29Z jayspeer joined #lisp 2020-05-21T14:35:11Z doesthiswork joined #lisp 2020-05-21T14:35:13Z jw4 quit (Quit: tot siens) 2020-05-21T14:36:31Z Necktwi joined #lisp 2020-05-21T14:36:58Z jw4 joined #lisp 2020-05-21T14:37:58Z narimiran quit (Ping timeout: 256 seconds) 2020-05-21T14:45:05Z rippa joined #lisp 2020-05-21T14:45:18Z KingOfCSU joined #lisp 2020-05-21T14:52:44Z kpoeck quit (Remote host closed the connection) 2020-05-21T14:55:36Z SGASAU quit (Read error: Connection reset by peer) 2020-05-21T14:56:23Z EvW1 quit (Ping timeout: 244 seconds) 2020-05-21T14:56:34Z SGASAU joined #lisp 2020-05-21T14:57:23Z bhartrihari left #lisp 2020-05-21T14:57:34Z bhartrihari joined #lisp 2020-05-21T14:59:44Z bebop quit (Ping timeout: 256 seconds) 2020-05-21T14:59:57Z H3dn1ng joined #lisp 2020-05-21T15:02:44Z ljavorsk joined #lisp 2020-05-21T15:04:14Z efm joined #lisp 2020-05-21T15:08:34Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-21T15:11:14Z gravicappa joined #lisp 2020-05-21T15:13:02Z keepzen quit (Quit: Connection closed for inactivity) 2020-05-21T15:18:47Z orivej quit (Ping timeout: 258 seconds) 2020-05-21T15:18:57Z orivej joined #lisp 2020-05-21T15:19:53Z Snaffu joined #lisp 2020-05-21T15:22:23Z phoe: https://gitlab.common-lisp.net/alexandria/alexandria/-/commit/f5f4953bdd9af94de18750f952e4d28b0de7e609 2020-05-21T15:22:29Z kingcons quit (Quit: ZNC 1.6.5+deb1+deb9u2 - http://znc.in) 2020-05-21T15:22:33Z seok: How would I split a long vector into shorter vectors? 2020-05-21T15:22:35Z phoe: hah, I just saw someone has a breakage with that 2020-05-21T15:22:41Z seok: Do I have to use loop? 2020-05-21T15:22:48Z phoe: seok: split, how? 2020-05-21T15:23:05Z phoe: by a single-element delimiter? 2020-05-21T15:23:10Z phoe: with no delimiters? 2020-05-21T15:23:16Z phoe: by a more-than-single-element delimiter? 2020-05-21T15:23:18Z seok: #(0 1 2 3 4 5) => (0 1) (2 3) (4 5) 2020-05-21T15:23:20Z seok: like this 2020-05-21T15:23:25Z phoe: loop + subseq 2020-05-21T15:23:38Z phoe: also, these are lists, not vectors 2020-05-21T15:23:47Z seok: Wondered if there was a built in 2020-05-21T15:23:52Z seok: sure, thanks! 2020-05-21T15:23:58Z phoe: not really, since "splitting" is poorly defined 2020-05-21T15:24:02Z seok: yup 2020-05-21T15:24:06Z seok: guess so 2020-05-21T15:24:09Z phoe: you could want to split witout delimiters, like you have 2020-05-21T15:24:23Z Bike: we can't give you advice on how to do something if you don't know what that thing is 2020-05-21T15:24:42Z phoe: one could want "foo bar baz" to be split on #\Space and give ("foo" "bar" "baz") 2020-05-21T15:24:47Z phoe: that's what split-sequence does 2020-05-21T15:24:53Z seok: Ya, I've done those with strings 2020-05-21T15:24:59Z jayspeer quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-21T15:25:00Z phoe: one could want "fooAAbarAAbazAA" split on "AA", cl-ppcre does that 2020-05-21T15:25:10Z phoe: dunno about generalized vectors though 2020-05-21T15:25:32Z pmden quit (Quit: Textual IRC Client: www.textualapp.com) 2020-05-21T15:26:42Z refpga quit (Ping timeout: 256 seconds) 2020-05-21T15:26:56Z zaquest quit (Ping timeout: 256 seconds) 2020-05-21T15:27:11Z rgherdt left #lisp 2020-05-21T15:27:22Z refpga joined #lisp 2020-05-21T15:27:23Z bhartrihari left #lisp 2020-05-21T15:27:26Z bhartrihari joined #lisp 2020-05-21T15:27:30Z rgherdt joined #lisp 2020-05-21T15:27:35Z rgherdt left #lisp 2020-05-21T15:29:28Z zaquest joined #lisp 2020-05-21T15:31:28Z Kabriel: seok: how about (let* ((a #(0 1 2 3 4 5)) (b (make-array (list 3 2) :displaced-to a))) b) 2020-05-21T15:32:06Z Kabriel: -> #2A((0 1) (2 3) (4 5)) 2020-05-21T15:33:08Z orivej_ joined #lisp 2020-05-21T15:33:13Z orivej quit (Ping timeout: 264 seconds) 2020-05-21T15:33:22Z refpga quit (Read error: Connection reset by peer) 2020-05-21T15:33:38Z refpga joined #lisp 2020-05-21T15:35:42Z seok: @kabriel I have already written it but thanks! 2020-05-21T15:36:51Z seok: Wait, I've never seen that 2020-05-21T15:37:24Z seok: Wow you can do that? 2020-05-21T15:37:44Z slyrus_ joined #lisp 2020-05-21T15:38:14Z refpga quit (Ping timeout: 260 seconds) 2020-05-21T15:38:44Z refpga joined #lisp 2020-05-21T15:38:52Z bhartrihari left #lisp 2020-05-21T15:38:56Z bhartrihari joined #lisp 2020-05-21T15:40:04Z slyrus quit (Ping timeout: 246 seconds) 2020-05-21T15:40:41Z zaquest quit (Read error: Connection reset by peer) 2020-05-21T15:41:04Z zaquest joined #lisp 2020-05-21T15:41:56Z seok: hm, why doesn't this work? (defun f (bytes) 2020-05-21T15:42:16Z seok: I get error 2020-05-21T15:42:18Z seok: . 2020-05-21T15:42:21Z Bike: please put long pastes in a pastebin site instead of dumping them into irc 2020-05-21T15:42:21Z seok: oops 2020-05-21T15:42:33Z seok: it was one line tho 2020-05-21T15:42:36Z seok: #. 2020-05-21T15:42:51Z Bike: well you didn't paste the actual code 2020-05-21T15:42:56Z beach: That seems pretty clear. 2020-05-21T15:43:11Z seok: the second bit was mistake sorry 2020-05-21T15:43:13Z seok: just this 2020-05-21T15:43:21Z seok: (defun f (bytes) 2020-05-21T15:43:36Z Kabriel: If I have too (which isn't often), I will use :element-type (array-element-type a) 2020-05-21T15:44:00Z Kabriel: beach: yes, a very clear error message for sure 2020-05-21T15:44:11Z beach: For once! :) 2020-05-21T15:44:49Z beach: As oppose to something like "The value nil is not a number" or something similar. :) 2020-05-21T15:44:58Z seok: Oh that works! 2020-05-21T15:44:58Z Kabriel: beach: why does this matter, because I thought these are all just pointers anyone, which would all be of the same size. 2020-05-21T15:45:03Z seok: You are a genius 2020-05-21T15:45:09Z Kabriel: s/anyone/anyway/ 2020-05-21T15:45:16Z seok: guess there was a sort of in-built function 2020-05-21T15:45:28Z Kabriel: seok: you are obviously talking to beach 2020-05-21T15:45:41Z kpoeck joined #lisp 2020-05-21T15:45:47Z beach: Kabriel: If the array is specialized, the elements are not pointers. 2020-05-21T15:46:23Z orivej_ quit (Ping timeout: 258 seconds) 2020-05-21T15:46:34Z refpga quit (Ping timeout: 240 seconds) 2020-05-21T15:46:35Z beach: Kabriel: Specialized arrays exist so that more compact representations can be chosen. 2020-05-21T15:46:46Z seok: I don't understand why :element-type is needed though. Why must CL give an error if it cannot ensure type? 2020-05-21T15:46:48Z orivej joined #lisp 2020-05-21T15:47:08Z beach: seok: What does it mean to "ensure type"? 2020-05-21T15:47:20Z seok: Isn't that what the option does? 2020-05-21T15:47:49Z seok: The option :element-type 2020-05-21T15:47:50Z beach: No, it tells what kind of representation the array has. 2020-05-21T15:48:09Z seok: By representation what do you mean? 2020-05-21T15:48:27Z seok: the array dimensions? or the type of objects it contains? 2020-05-21T15:48:35Z beach: Like I told Kabriel, :ELEMENT-TYPE is not for type checking. It is so that the Common Lisp implementation can choose a different way of storing the elements. 2020-05-21T15:49:06Z bhartrihari left #lisp 2020-05-21T15:49:07Z refpga joined #lisp 2020-05-21T15:49:15Z jackdaniel: it could be used for type inference too 2020-05-21T15:49:16Z bhartrihari joined #lisp 2020-05-21T15:49:38Z seok: Oh I see 2020-05-21T15:49:40Z beach: Like most implementations probably have an element-type of (unsigned-byte 8). This means that the elements are stored as a byte vector, not as pointers to integers. 2020-05-21T15:49:44Z seok: A bit 2020-05-21T15:50:40Z Kabriel: On a related note, if I have have (defun f (... &key (scale #(1 1 1))) ...) is the array for scale crated on every call to f? 2020-05-21T15:51:01Z beach: Nope. 2020-05-21T15:51:04Z Kabriel can't type; s/crated/created/ 2020-05-21T15:51:19Z beach: It is created once at read time. 2020-05-21T15:51:25Z Kabriel: does that mean it is a literal and shouldn't be modified? 2020-05-21T15:51:34Z beach: Indeed. 2020-05-21T15:51:53Z Bike: if you do (scale (make-array ...)) it will make a new one every time, but on the bright side you can modify it 2020-05-21T15:52:15Z bhartrihari left #lisp 2020-05-21T15:52:24Z bhartrihari joined #lisp 2020-05-21T15:53:09Z seok: Do I just use math to convert 4 x 8 bytes to integers? or is there an in-built? 2020-05-21T15:53:10Z refpga quit (Read error: Connection reset by peer) 2020-05-21T15:53:46Z Kabriel: I thought that might be the case. I'm surprised I don't get an error when I do that. 2020-05-21T15:53:51Z refpga joined #lisp 2020-05-21T15:54:22Z pjb` quit (Ping timeout: 260 seconds) 2020-05-21T15:55:26Z jackdaniel: modifying literals have /undefined consequences/ 2020-05-21T15:56:18Z jackdaniel: it may be, that when you modify data, another invocation to the function will have this modified data as default value 2020-05-21T15:56:21Z jackdaniel: and that is indeed usually a case 2020-05-21T15:56:40Z jackdaniel: but implementation could conformingly signal an error 2020-05-21T15:57:26Z Kabriel: indeed it is for sbcl 2020-05-21T15:58:12Z jackdaniel: funnily sbcl has a hack in make-method relying on that - they modify literal cons to do something 2020-05-21T15:58:16Z jackdaniel: I don't remember details 2020-05-21T15:58:30Z jackdaniel: make-method-lambda that is 2020-05-21T15:58:46Z rogersm quit (Ping timeout: 240 seconds) 2020-05-21T15:59:29Z MCP_ joined #lisp 2020-05-21T15:59:32Z Bike: it's so that the method function's call-next-method can refer to the method when it needs to signal a no-next-method error. it seems nasty 2020-05-21T16:00:52Z rogersm joined #lisp 2020-05-21T16:03:13Z jprajzne joined #lisp 2020-05-21T16:04:23Z cosimone quit (Quit: Quit.) 2020-05-21T16:05:54Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T16:06:37Z cantstanya quit (Remote host closed the connection) 2020-05-21T16:07:04Z orivej joined #lisp 2020-05-21T16:08:06Z rogersm quit (Ping timeout: 240 seconds) 2020-05-21T16:08:33Z cantstanya joined #lisp 2020-05-21T16:12:19Z pjb` joined #lisp 2020-05-21T16:13:48Z seok: Hm, it seems I cannot just (aref array i) for multi dimension arrays unlike lists 2020-05-21T16:14:02Z seok: Do I have to create a new array and access the whole row for this? 2020-05-21T16:14:05Z jackdaniel: row-major-aref 2020-05-21T16:14:27Z jackdaniel: http://www.lispworks.com/documentation/HyperSpec/Body/f_row_ma.htm 2020-05-21T16:14:28Z seok: that only fetches one value in [i, i, i] doesn't it? 2020-05-21T16:14:37Z seok: I want to fetch a whole row 2020-05-21T16:14:50Z jackdaniel: ah 2020-05-21T16:15:07Z jackdaniel: maybe you want a vector of vectors then? 2020-05-21T16:15:12Z seok: Yes 2020-05-21T16:15:14Z jackdaniel: not multi-dimensional array 2020-05-21T16:15:31Z seok: So Kabriel taught me this 2020-05-21T16:15:33Z seok: (make-array (list (/ (length bytes) 4 5) 5 4) :displaced-to bytes :element-type (array-element-type bytes)) 2020-05-21T16:15:42Z seok: So this returns a multi dimension array 2020-05-21T16:16:08Z seok: Can I make this return a vector of vectors or list of lists? 2020-05-21T16:18:41Z twocats joined #lisp 2020-05-21T16:19:04Z pjb` quit (Quit: renaming) 2020-05-21T16:19:06Z gko quit (Ping timeout: 272 seconds) 2020-05-21T16:19:19Z pjb joined #lisp 2020-05-21T16:20:11Z twocats quit (Client Quit) 2020-05-21T16:20:37Z pjb: seok: for rows, you can use a displaced array. For columns, you would have to copy them, or use a lazy solution. 2020-05-21T16:21:00Z efm quit (Quit: Konversation terminated!) 2020-05-21T16:21:38Z orivej quit (Ping timeout: 260 seconds) 2020-05-21T16:21:41Z selwyn: by using array-operations' #'aops:split and #'aops:combine, you can convert between multidimensional arrays and vectors of such 2020-05-21T16:21:45Z orivej_ joined #lisp 2020-05-21T16:22:10Z catchme joined #lisp 2020-05-21T16:22:28Z seok: @selwyn oh this must be it! 2020-05-21T16:26:48Z selwyn: a word of warning, there are nine different forks of it, and the original is abandoned. i use the one maintained at https://github.com/bendudson/array-operations 2020-05-21T16:27:48Z catchme: Hello, What is the best data structure to store lisp symbols? I am using binary tree, but when I use gc, I have to write recursive function to relocate all symbols. https://www.irccloud.com/pastebin/uYgjziI2/ 2020-05-21T16:28:20Z beach: catchme: That depends on what the operations on your collection are. 2020-05-21T16:29:18Z beach: catchme: Like, is it just a set, so you have a MEMBER function and INSERT/DELETE? 2020-05-21T16:29:40Z KingOfCSU quit (Ping timeout: 256 seconds) 2020-05-21T16:30:34Z orivej_ quit (Ping timeout: 240 seconds) 2020-05-21T16:30:39Z beach: catchme: What on earth is that? 2020-05-21T16:30:40Z catchme: I need fast access, non-recursive traversal, and, not complicated like hash-table 2020-05-21T16:31:23Z orivej joined #lisp 2020-05-21T16:31:30Z catchme: I am implementing lisp for a micro-controller and this line causes stack overflow 2020-05-21T16:31:42Z beach: You still haven't told me what operations you have on your collection. 2020-05-21T16:31:58Z shka_ joined #lisp 2020-05-21T16:32:21Z catchme: insert and traversal 2020-05-21T16:32:27Z beach: traversal? 2020-05-21T16:32:45Z beach: OK, then just store them linearly in a vector, i mean consecutive words. 2020-05-21T16:33:15Z catchme: I mean any kind in/post/pre-order traversal 2020-05-21T16:33:23Z beach: *sigh* 2020-05-21T16:33:33Z beach: Those are defined only on trees. 2020-05-21T16:33:53Z beach: What kind of order do you impose on your symbols to make them suitable for a tree? 2020-05-21T16:34:54Z astronavt quit (Quit: ...) 2020-05-21T16:35:22Z catchme: I forgot to mention that symbols won't repeat, so insert would use search to check that symbol is new 2020-05-21T16:35:26Z beach: So it seems you assume they are stored in a tree, yet your question suggests that you don't want a tree. 2020-05-21T16:35:40Z astronavt joined #lisp 2020-05-21T16:35:54Z beach: Oh, so it's a set. 2020-05-21T16:36:01Z beach: Why didn't you say so? 2020-05-21T16:36:14Z jackdaniel: catchme: are you implementing common lisp? 2020-05-21T16:36:20Z beach: Now, a set doesn't define pre/post/in order traversal. 2020-05-21T16:36:24Z catchme: beach: 2020-05-21T16:36:27Z catchme: my fault 2020-05-21T16:36:33Z Bike: how many symbols do you have that there's a stack overflow from a tree traversal? if the tree is balanced a thousand symbols go down like ten at most, right? 2020-05-21T16:37:02Z beach: Bike: More importantly, what makes symbols suitable for a tree in the first place? 2020-05-21T16:37:25Z beach: I guess ordering them by string< of the names. 2020-05-21T16:37:37Z Bike: or some kind of hash, i'd think, yeah. 2020-05-21T16:37:38Z beach: But then, I am sorry, a hash table is the best solution anyway. 2020-05-21T16:38:45Z catchme: I have only 1024 byte stack and some local variables with recursive function relocate https://www.irccloud.com/pastebin/jkbfVcTg/ 2020-05-21T16:38:53Z ahungry joined #lisp 2020-05-21T16:40:09Z catchme: jackdaniel: yes 2020-05-21T16:40:43Z cantstanya is now known as frank 2020-05-21T16:40:44Z jackdaniel: oh oh! do you have some placeholder repository? 2020-05-21T16:41:04Z frank is now known as cantstanya 2020-05-21T16:41:14Z catchme: https://github.com/Islam0mar/LispDoor 2020-05-21T16:41:20Z jackdaniel: thank you 2020-05-21T16:41:35Z Bike: could it be a recursion problem? like, if you passed this a keyword, it would have itself as its value, so LispGcRelocate would keep calling itself on line 11. 2020-05-21T16:41:39Z catchme: I have not push the last commits 2020-05-21T16:41:48Z jackdaniel: " 2020-05-21T16:41:48Z jackdaniel: A dialect of lisp1 targeting microcontrollers. 2020-05-21T16:42:05Z catchme: I have increased stack to 2048 and it worked! 2020-05-21T16:43:18Z jackdaniel: (also, what is noteworthy, you mention that it is forked from ECL yet you claim that the licensie is MIT, what violates the ECL license which is lgpl-2.1+, you may want to fix that) 2020-05-21T16:43:53Z catchme: Bike: I have increased stack to 2048 and it worked + I am using gdb to be sure 2020-05-21T16:44:24Z dale_ joined #lisp 2020-05-21T16:44:34Z dale_ is now known as dale 2020-05-21T16:44:39Z sdumi quit (Ping timeout: 260 seconds) 2020-05-21T16:44:57Z mason is now known as ChibaPet 2020-05-21T16:45:02Z ChibaPet is now known as mason 2020-05-21T16:45:17Z catchme: I have rewritten the code from ECL. 2020-05-21T16:45:32Z sdumi joined #lisp 2020-05-21T16:45:36Z catchme: jackdaniel: would that still be a violation? 2020-05-21T16:45:55Z Bike: well, none of this really looks like ECL to me anyway 2020-05-21T16:46:18Z jackdaniel: objects.h definetely retains its structure 2020-05-21T16:46:50Z jackdaniel: catchme: http://teem.sourceforge.net/lgpl.html defiens what it means for work to be "derived" 2020-05-21T16:49:46Z catchme: jackdaniel: I will read that and would change the license. 2020-05-21T16:49:47Z jackdaniel: also, I don't think that you can remove copyright headers like this (when you translate work). but this is offtopic here, so I'll stop at that. 2020-05-21T16:51:26Z catchme: I will fix that at night :) 2020-05-21T16:51:26Z catchme: I was focusing on correctness, and I used my template project 2020-05-21T16:55:14Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T16:56:34Z orivej joined #lisp 2020-05-21T16:57:45Z mibr joined #lisp 2020-05-21T17:03:11Z narimiran joined #lisp 2020-05-21T17:05:39Z orivej quit (Ping timeout: 260 seconds) 2020-05-21T17:05:44Z orivej_ joined #lisp 2020-05-21T17:08:01Z ech quit (Ping timeout: 264 seconds) 2020-05-21T17:09:48Z ljavorsk joined #lisp 2020-05-21T17:12:51Z astronavt quit (Quit: ...) 2020-05-21T17:13:31Z astronavt joined #lisp 2020-05-21T17:17:23Z gxt quit (Ping timeout: 240 seconds) 2020-05-21T17:17:33Z gxt_ joined #lisp 2020-05-21T17:22:11Z zmt01 quit (Read error: Connection reset by peer) 2020-05-21T17:25:49Z zmt00 joined #lisp 2020-05-21T17:26:27Z [mark] quit (Quit: Konversation terminated!) 2020-05-21T17:27:12Z seok: @selwyn thank you, there is aops:sub 2020-05-21T17:27:29Z seok: I don't need to convert the array 2020-05-21T17:28:02Z rogersm joined #lisp 2020-05-21T17:29:28Z selwyn: happy to help 2020-05-21T17:33:32Z rogersm quit (Quit: Leaving...) 2020-05-21T17:33:53Z gaqwas quit (Remote host closed the connection) 2020-05-21T17:34:14Z jw4 quit (Read error: Connection reset by peer) 2020-05-21T17:35:14Z fourier joined #lisp 2020-05-21T17:36:20Z jw4 joined #lisp 2020-05-21T17:44:51Z shifty joined #lisp 2020-05-21T17:47:10Z selwyn: seok: may i ask what you are trying to achieve with these multidimensional arrays? 2020-05-21T17:47:28Z seok: I am parsing byte arrays 2020-05-21T17:47:40Z seok: https://www.dukascopy.com/datafeed/AUDUSD/2016/01/10/05h_ticks.bi 2020-05-21T17:48:43Z slyrus joined #lisp 2020-05-21T17:50:12Z slyrus_ quit (Ping timeout: 258 seconds) 2020-05-21T17:51:04Z karlosz joined #lisp 2020-05-21T17:52:17Z efm joined #lisp 2020-05-21T17:52:55Z selwyn: cool 2020-05-21T17:53:15Z gaqwas joined #lisp 2020-05-21T17:56:19Z gaqwas quit (Read error: Connection reset by peer) 2020-05-21T17:57:05Z milanj quit (Quit: This computer has gone to sleep) 2020-05-21T18:00:48Z gaqwas joined #lisp 2020-05-21T18:03:02Z nckx quit (Quit: Updating my Guix System — https://guix.gnu.org) 2020-05-21T18:06:24Z nckx joined #lisp 2020-05-21T18:12:51Z seok: hm, how do i concat 4x byte8's to a byte32? 2020-05-21T18:14:29Z bitmapper quit (Remote host closed the connection) 2020-05-21T18:16:42Z gaqwas quit (Ping timeout: 265 seconds) 2020-05-21T18:17:49Z bitmappe_ joined #lisp 2020-05-21T18:18:27Z fourier quit (Ping timeout: 260 seconds) 2020-05-21T18:18:34Z doesthiswork quit (Quit: Konversation terminated!) 2020-05-21T18:18:47Z doesthiswork joined #lisp 2020-05-21T18:18:58Z phoe: seok: logior + ash 2020-05-21T18:19:59Z phoe: (format nil "#x~8,'0X" (logior (ash 1 24) (ash 2 16) (ash 3 8) (ash 4 0))) ;=> "#x01020304" 2020-05-21T18:22:17Z bitmappe_ is now known as bitmapper 2020-05-21T18:22:33Z seok: Ah i see! 2020-05-21T18:22:39Z seok: phoe thank you 2020-05-21T18:24:19Z Sauvin quit (Read error: Connection reset by peer) 2020-05-21T18:24:53Z pjb: seok: I prefer dpb: (format nil "~8,'0X" (dpb 1 (byte 8 24) (dpb 2 (byte 8 16) (dpb 3 (byte 8 8) (dpb 4 (byte 8 0) 0))))) #| --> "01020304" |# 2020-05-21T18:25:35Z phoe: dpb is nice if you have a threading macro, the nestedness is not really nice 2020-05-21T18:26:08Z pjb: phoe: you can use a loop. 2020-05-21T18:26:19Z doesthiswork quit (Quit: Konversation terminated!) 2020-05-21T18:26:29Z phoe: or that, yes, setf with dpb in a loop 2020-05-21T18:26:32Z doesthiswork joined #lisp 2020-05-21T18:28:08Z lucasb joined #lisp 2020-05-21T18:28:32Z pjb: (format nil "~8,'0X" (reduce (let ((pos 32)) (lambda (v b) (dpb b (byte 8 (decf pos 8)) v))) '(1 2 3 4) :initial-value 0)) #| --> "01020304" |# 2020-05-21T18:36:13Z pi_____ joined #lisp 2020-05-21T18:36:23Z pi_____ left #lisp 2020-05-21T18:38:37Z yottabyte: hi all, hopefully a minor mistake, but not sure why this isn't working: https://pastebin.com/eniB99zg 2020-05-21T18:39:15Z Bike: your hash table compares values with EQL, and strings aren't EQL unless they're identical 2020-05-21T18:39:22Z Bike: try passing :test #'equal ot make-hash-table 2020-05-21T18:41:20Z yottabyte: interesting! 2020-05-21T18:44:21Z ech joined #lisp 2020-05-21T18:45:06Z yottabyte: another question, coming from clojure, you can just do something like (reduce + '(1 2 3)), but in cl you have to do (reduce '+ '(1 2 3)), i.e. quote the function +, why is that? why does clojure require no such identifier? and I could've also done (reduce #'+ '(1 2 3)), what's the difference there and what is that called? #' vs ' 2020-05-21T18:45:45Z Bike: common lisp has distinct namespaces for variables and functions. #'foo means you look up FOO in the function namespace. 2020-05-21T18:46:36Z Bike: the difference between (reduce '+ ...) and (reduce #'+ ...) is that in the former, you're just passing the name of the function, and reduce will then look up the function. 2020-05-21T18:56:17Z mibr quit (Quit: mibr) 2020-05-21T18:58:53Z MCP_ quit (Quit: Leaving) 2020-05-21T18:59:23Z doesthiswork quit (Quit: Konversation terminated!) 2020-05-21T18:59:24Z MCP_ joined #lisp 2020-05-21T18:59:36Z doesthiswork joined #lisp 2020-05-21T19:01:02Z MCP_ quit (Client Quit) 2020-05-21T19:01:24Z Bit_MCP joined #lisp 2020-05-21T19:02:20Z 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) 2020-05-21T19:02:56Z rogersm joined #lisp 2020-05-21T19:06:33Z kpoeck quit (Remote host closed the connection) 2020-05-21T19:07:22Z cosimone joined #lisp 2020-05-21T19:07:31Z karlosz quit (Quit: karlosz) 2020-05-21T19:07:38Z troydm joined #lisp 2020-05-21T19:08:01Z Bit_MCP quit (Quit: Leaving) 2020-05-21T19:11:36Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-21T19:14:15Z karlosz joined #lisp 2020-05-21T19:17:00Z jonatack_ joined #lisp 2020-05-21T19:17:06Z doesthiswork quit (Quit: Konversation terminated!) 2020-05-21T19:17:30Z ikki joined #lisp 2020-05-21T19:18:28Z jonatack quit (Ping timeout: 256 seconds) 2020-05-21T19:20:11Z catchme quit (Quit: Connection closed for inactivity) 2020-05-21T19:20:17Z slyrus_ joined #lisp 2020-05-21T19:23:01Z slyrus quit (Ping timeout: 264 seconds) 2020-05-21T19:23:36Z jonatack_ quit (Quit: jonatack_) 2020-05-21T19:23:47Z karlosz quit (Quit: karlosz) 2020-05-21T19:24:02Z karlosz joined #lisp 2020-05-21T19:24:37Z jonatack joined #lisp 2020-05-21T19:25:35Z theseb joined #lisp 2020-05-21T19:27:30Z refpga quit (Read error: Connection reset by peer) 2020-05-21T19:27:31Z bhartrihari left #lisp 2020-05-21T19:27:43Z yottabyte: Bike: makes sense. so is (reduce #'+ ...) more efficient? 2020-05-21T19:27:46Z refpga joined #lisp 2020-05-21T19:27:57Z orivej_ quit (Ping timeout: 258 seconds) 2020-05-21T19:27:57Z bhartrihari joined #lisp 2020-05-21T19:28:10Z Bike: in some sense, but the overhead of looking up a function is probably going to be dwarfed by the actual reduction 2020-05-21T19:28:24Z orivej joined #lisp 2020-05-21T19:29:20Z rogersm quit (Quit: Leaving...) 2020-05-21T19:30:33Z Bike: the name only has to be looked up one time, after all 2020-05-21T19:31:06Z Bike: this also means that code that uses #'foo may be insensitive to redefinitions of foo 2020-05-21T19:31:34Z SGASAU quit (Ping timeout: 256 seconds) 2020-05-21T19:31:48Z yottabyte: why is that? 2020-05-21T19:32:17Z SGASAU joined #lisp 2020-05-21T19:32:33Z Bike: passing 'foo pretty much forces a runtime lookup, but #'foo doesn't 2020-05-21T19:37:01Z ldb joined #lisp 2020-05-21T19:39:58Z ldb: good mornig 2020-05-21T19:44:02Z Josh_2: Evenin 2020-05-21T19:47:44Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T19:48:50Z pjb quit (Remote host closed the connection) 2020-05-21T19:49:05Z orivej joined #lisp 2020-05-21T19:51:38Z noobineer quit (Read error: Connection reset by peer) 2020-05-21T19:54:48Z ldb quit (Ping timeout: 256 seconds) 2020-05-21T20:01:11Z Bike: obscure question time again: why does update-instance-for-redefined-class take initargs? it's not supposed to be called by programmers, and the internal thing that does call it passes no initargs 2020-05-21T20:01:55Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T20:03:15Z orivej joined #lisp 2020-05-21T20:04:42Z phoe: clhs u-i-f-r-c 2020-05-21T20:04:42Z specbot: update-instance-for-redefined-class: http://www.lispworks.com/reference/HyperSpec/Body/f_upda_1.htm 2020-05-21T20:06:15Z kpoeck joined #lisp 2020-05-21T20:06:51Z phoe: hmm 2020-05-21T20:07:25Z gaqwas joined #lisp 2020-05-21T20:13:45Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T20:14:54Z orivej joined #lisp 2020-05-21T20:18:41Z froggey: maybe to mirror update-instance-for-different-class, or possibly just a copy & paste thing that nobody thought too deeply about 2020-05-21T20:22:21Z Bike: it does seem like it's just to match the others, but they did put some thought into the initargs, there are the rules for checking validity and stuff 2020-05-21T20:25:50Z jrx joined #lisp 2020-05-21T20:26:19Z ldb joined #lisp 2020-05-21T20:27:40Z Josh_2 quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-21T20:27:50Z pjb joined #lisp 2020-05-21T20:28:10Z narimiran quit (Ping timeout: 265 seconds) 2020-05-21T20:29:12Z jrx left #lisp 2020-05-21T20:30:31Z Josh_2 joined #lisp 2020-05-21T20:30:55Z ldb quit (Ping timeout: 246 seconds) 2020-05-21T20:32:51Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T20:33:02Z orivej joined #lisp 2020-05-21T20:36:37Z notzmv quit (Read error: Connection reset by peer) 2020-05-21T20:40:52Z orivej quit (Ping timeout: 256 seconds) 2020-05-21T20:41:41Z orivej joined #lisp 2020-05-21T20:42:26Z H3dn1ng quit (Quit: leaving) 2020-05-21T20:43:36Z ldb joined #lisp 2020-05-21T20:46:12Z cantstanya quit (Remote host closed the connection) 2020-05-21T20:48:24Z cantstanya joined #lisp 2020-05-21T20:48:33Z notzmv joined #lisp 2020-05-21T20:49:35Z pve quit (Quit: leaving) 2020-05-21T20:53:59Z pjb: yottabyte: note that it's not specified if the function lookup performed by reduce (and other similar functions) is done once or inside the loop. For functions in CL it doesn't make a difference (apart perhaps the speed), but for your own functions (or library), it may mean something different. 2020-05-21T20:55:14Z pjb: yottabyte: (declaim (notinline add)) (defun add (a b) (+ a b)) (reduce 'add '(1 2 3 4) :key (lambda (x) (setf (fdefinition 'add) (lambda (a b) (- a b))) x)) #| --> -8 |# 2020-05-21T20:55:39Z pjb: or 10. or something else. This code is not conforming. 2020-05-21T20:55:51Z karayan quit (Remote host closed the connection) 2020-05-21T20:56:47Z pjb: To make it conforming you would have to write: (reduce (lambda (a b) (add a b)) '(1 2 3 4) :key (lambda (x) (setf (fdefinition 'add) (lambda (a b) (- a b))) x)) #| --> -8 |# 2020-05-21T20:57:05Z pjb: The indirection forces one choice. 2020-05-21T21:00:08Z shka_ quit (Ping timeout: 256 seconds) 2020-05-21T21:01:57Z karayan joined #lisp 2020-05-21T21:02:38Z phoe: Bike: clhs 4.3.6.2 2020-05-21T21:02:48Z phoe: "The generic function update-instance-for-redefined-class also takes any number of initialization arguments. When it is called by the system to update an instance whose class has been redefined, no initialization arguments are provided." 2020-05-21T21:02:55Z Bike: yeah. 2020-05-21T21:03:16Z Bike: like i said. 2020-05-21T21:03:26Z phoe: hmm 2020-05-21T21:03:44Z phoe: I mean, yeah, it seems like nothing ever calls u-i-f-r-c with initargs 2020-05-21T21:03:55Z phoe: the only place mentioned in the standard is make-instances-obsolete 2020-05-21T21:04:01Z amerlyq quit (Quit: amerlyq) 2020-05-21T21:04:38Z Bike: make-instances-obsolete only arranges for it to be called. generally it will be actually called somewhere in a discriminating function or the like 2020-05-21T21:04:51Z phoe: yes, correct 2020-05-21T21:05:06Z phoe: ...but even then, no keyword arguments are passed 2020-05-21T21:05:14Z phoe: which is weird 2020-05-21T21:06:28Z Bike: i don't think it's weird that it's not passed initargs. liek what would that mean? you can imagine a make-instances-obsolete that can be called with initargs, and then the updater will be called with those initargs, i guess? 2020-05-21T21:07:37Z phoe: I guess that would work; that would be a channel of passing information to u-i-f-r-c 2020-05-21T21:08:55Z Bike: but if you're actually redefining a class you can just specify an initform and bam 2020-05-21T21:09:04Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-21T21:09:36Z phoe: that's correct, I was thinking that such a make-instances-obsolete would be a slightly lower level function than ensure-class though 2020-05-21T21:09:41Z phoe: but, that's speculation 2020-05-21T21:10:53Z ahungry quit (Remote host closed the connection) 2020-05-21T21:20:58Z gravicappa quit (Ping timeout: 246 seconds) 2020-05-21T21:21:20Z shifty quit (Ping timeout: 265 seconds) 2020-05-21T21:21:39Z shifty joined #lisp 2020-05-21T21:30:52Z hineios3 joined #lisp 2020-05-21T21:33:34Z hineios quit (Ping timeout: 256 seconds) 2020-05-21T21:33:34Z hineios3 is now known as hineios 2020-05-21T21:38:32Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-21T21:39:52Z orivej joined #lisp 2020-05-21T21:48:43Z ayuce quit (Read error: Connection reset by peer) 2020-05-21T21:51:45Z Ethan__ quit (Quit: Leaving) 2020-05-21T21:56:08Z shifty quit (Ping timeout: 265 seconds) 2020-05-21T22:01:45Z pjb quit (Remote host closed the connection) 2020-05-21T22:03:19Z pjb joined #lisp 2020-05-21T22:05:18Z markasoftware: in method combination, is the main difference between :around and :before that before has no next-method? 2020-05-21T22:06:02Z frgo_ quit (Remote host closed the connection) 2020-05-21T22:06:26Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-21T22:06:38Z frgo joined #lisp 2020-05-21T22:09:57Z Bike: also if an around method doesn't call-next-method, the other methods aren't called, but with before they are 2020-05-21T22:11:30Z pjb: also, before are called before, while around are called around. 2020-05-21T22:12:04Z pjb: markasoftware: https://pupeno.com/tag/common-lisp/ 2020-05-21T22:12:56Z theseb: phoe: if people only learn python or java or perl or ....they never have a good understanding of programming language theory....lisp provides that 2020-05-21T22:13:25Z theseb: because it is so elegant with an understandable core 2020-05-21T22:13:33Z theseb: phoe: *that* is the only real lisp "enlightenment" 2020-05-21T22:14:21Z theseb: Having said that...I got a similar "enlightenment" when I learned about Turing machines, lambda calculus and Godel's Incompleteness Theorem 2020-05-21T22:15:22Z aeth: theseb: The only enlightenment moment I got was with scope, which so many languages do horribly (or mildly) wrong. 2020-05-21T22:16:08Z aeth: With Common Lisp (but not Scheme), you have to use things like LET, which makes scope explicit. 2020-05-21T22:16:26Z aeth: Well, disregarding &aux, which few people know exists :-p 2020-05-21T22:17:37Z SGASAU quit (Remote host closed the connection) 2020-05-21T22:18:05Z pjb: markasoftware: https://termbin.com/vd1q 2020-05-21T22:21:16Z SGASAU joined #lisp 2020-05-21T22:27:02Z gaqwas quit (Ping timeout: 260 seconds) 2020-05-21T22:31:23Z gaqwas joined #lisp 2020-05-21T22:34:54Z SGASAU quit (Ping timeout: 240 seconds) 2020-05-21T22:37:31Z SGASAU joined #lisp 2020-05-21T22:39:03Z zulu-inuoe: Bike: Hello! Presumably you are the same person as the author of introspect-environment? If so, I noticed I got a warning today of 'Don't know how to PARSE-COMPILER-MACRO on this SBCL version.'. I'm on 1.5.9, is this version too new/old? If it's too 'new', is there a replacement library you might recommend? 2020-05-21T22:41:41Z Bike: yeah, that's me. i haven't touched that library in a while, and parse-compiler-macro has been fragile since sbcl doesn't export it. if you check https://portability.cl/, cl-environments or trivial-cltl2 might be good? 2020-05-21T22:44:40Z zulu-inuoe: Okay cool. The code that uses it is a little old, but I remember switching to introspect-environment because it did a better job at normalizing either ftype on `function-information` or `type` on `variable-information`. At least, it gave me more consistent answers 2020-05-21T22:45:24Z Bike: i don't mind doing some work on it, i just haven't had much reason to use it myself, so 2020-05-21T22:46:07Z zulu-inuoe: Oh no worries. I'll get re-acquainted with the actual code and see if it was just past me being lazy or if there's a simple PR I can send over 2020-05-21T22:46:22Z zulu-inuoe: Thanks! 2020-05-21T22:46:31Z Bike: sure 2020-05-21T22:46:44Z Bike: the problem is just that sbcl changed something internally again, i imagine 2020-05-21T22:49:28Z gaqwas quit (Changing host) 2020-05-21T22:49:28Z gaqwas joined #lisp 2020-05-21T22:53:18Z orivej quit (Ping timeout: 256 seconds) 2020-05-21T22:53:33Z orivej joined #lisp 2020-05-21T22:55:34Z Josh_2 quit (Ping timeout: 256 seconds) 2020-05-21T22:59:31Z SGASAU quit (Remote host closed the connection) 2020-05-21T23:00:23Z SGASAU` joined #lisp 2020-05-21T23:01:44Z random-nick quit (Ping timeout: 256 seconds) 2020-05-21T23:01:56Z catchme joined #lisp 2020-05-21T23:02:18Z SGASAU` quit (Client Quit) 2020-05-21T23:04:52Z cosimone quit (Ping timeout: 260 seconds) 2020-05-21T23:06:21Z SGASAU joined #lisp 2020-05-21T23:06:41Z wxie joined #lisp 2020-05-21T23:07:10Z ldb quit (Ping timeout: 260 seconds) 2020-05-21T23:09:28Z gaqwas quit (Ping timeout: 246 seconds) 2020-05-21T23:21:21Z Jesin quit (Quit: Leaving) 2020-05-21T23:21:34Z ikki quit (Quit: Leaving) 2020-05-21T23:22:25Z bhartrihari left #lisp 2020-05-21T23:22:34Z bhartrihari joined #lisp 2020-05-21T23:26:41Z Jesin joined #lisp 2020-05-21T23:32:12Z rumbler31 joined #lisp 2020-05-21T23:32:19Z kpoeck quit (Remote host closed the connection) 2020-05-21T23:33:27Z lucasb quit (Quit: Connection closed for inactivity) 2020-05-21T23:33:32Z ldb joined #lisp 2020-05-21T23:36:16Z jeosol joined #lisp 2020-05-21T23:36:21Z emacsomancer: first working version: https://gitlab.com/emacsomancer/volemad - Mullvad WireGuard interface in CL 2020-05-21T23:38:36Z ldb quit (Ping timeout: 265 seconds) 2020-05-21T23:38:41Z bhartrihari left #lisp 2020-05-21T23:38:50Z bhartrihari joined #lisp 2020-05-21T23:42:16Z phantomics_ joined #lisp 2020-05-21T23:42:27Z quazimodo joined #lisp 2020-05-21T23:42:43Z pjb quit (Ping timeout: 272 seconds) 2020-05-21T23:43:38Z phantomics quit (Ping timeout: 258 seconds) 2020-05-21T23:50:47Z pjb joined #lisp 2020-05-21T23:52:16Z bhartrihari left #lisp 2020-05-21T23:52:28Z bhartrihari joined #lisp 2020-05-21T23:53:35Z orivej quit (Ping timeout: 265 seconds) 2020-05-21T23:59:01Z orivej joined #lisp 2020-05-21T23:59:59Z malik joined #lisp 2020-05-22T00:04:09Z toorevitimirp joined #lisp 2020-05-22T00:06:21Z Josh_2 joined #lisp 2020-05-22T00:07:14Z cosimone joined #lisp 2020-05-22T00:08:38Z SGASAU quit (Remote host closed the connection) 2020-05-22T00:09:18Z SGASAU joined #lisp 2020-05-22T00:12:13Z ech quit (Ping timeout: 264 seconds) 2020-05-22T00:13:57Z ech joined #lisp 2020-05-22T00:14:18Z KingOfCSU joined #lisp 2020-05-22T00:14:31Z SGASAU quit (Remote host closed the connection) 2020-05-22T00:15:04Z SGASAU` joined #lisp 2020-05-22T00:17:42Z toorevitimirp quit (Remote host closed the connection) 2020-05-22T00:18:09Z toorevitimirp joined #lisp 2020-05-22T00:27:09Z jeosol quit (Ping timeout: 245 seconds) 2020-05-22T00:28:48Z refpga quit (Read error: Connection reset by peer) 2020-05-22T00:28:52Z bhartrihari left #lisp 2020-05-22T00:28:57Z bhartrihari joined #lisp 2020-05-22T00:28:58Z refpga joined #lisp 2020-05-22T00:36:05Z bhartrihari left #lisp 2020-05-22T00:37:11Z Lord_of_Life_ joined #lisp 2020-05-22T00:40:25Z Lord_of_Life quit (Ping timeout: 264 seconds) 2020-05-22T00:40:27Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-22T00:44:26Z gxt__ joined #lisp 2020-05-22T00:46:43Z gxt_ quit (Ping timeout: 240 seconds) 2020-05-22T01:05:26Z ntr: in your opinion what would be the most representative lisp proyect that follows best coding practices, structure, testing, etc 2020-05-22T01:05:54Z libertyprime joined #lisp 2020-05-22T01:06:44Z Oladon joined #lisp 2020-05-22T01:19:30Z shifty joined #lisp 2020-05-22T01:22:31Z cosimone quit (Ping timeout: 265 seconds) 2020-05-22T01:23:14Z cosimone joined #lisp 2020-05-22T01:24:02Z zaquest quit (Quit: Leaving) 2020-05-22T01:28:19Z cosimone quit (Ping timeout: 265 seconds) 2020-05-22T01:33:00Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-22T01:33:43Z SGASAU joined #lisp 2020-05-22T01:40:20Z sz0 quit (Quit: Connection closed for inactivity) 2020-05-22T01:53:43Z jfrancis quit (Remote host closed the connection) 2020-05-22T01:56:04Z bitmapper quit (Ping timeout: 246 seconds) 2020-05-22T01:58:26Z orivej quit (Ping timeout: 260 seconds) 2020-05-22T01:58:39Z zaquest joined #lisp 2020-05-22T02:05:18Z corpix_ quit (Remote host closed the connection) 2020-05-22T02:07:30Z cosimone joined #lisp 2020-05-22T02:08:26Z wxie quit (Ping timeout: 265 seconds) 2020-05-22T02:09:23Z corpix joined #lisp 2020-05-22T02:09:28Z wxie joined #lisp 2020-05-22T02:09:58Z libertyprime quit (Read error: Connection reset by peer) 2020-05-22T02:10:21Z libertyprime joined #lisp 2020-05-22T02:15:58Z cosimone quit (Quit: Quit.) 2020-05-22T02:20:23Z White_Flame: ntr: because CL is a programmable programming language, no 2 projects really look the same 2020-05-22T02:20:41Z White_Flame: there isn't just 1 "style" to be used. CL is multiparadigm, and allows you to create styles 2020-05-22T02:21:24Z White_Flame: basic indentation is enforced by emacs/slime, and using kebab-case-names instead of Other_Things are just surface level 2020-05-22T02:21:57Z White_Flame: other languages are much more constrained, and thus require specific coding practices not to paint themselves into a corner 2020-05-22T02:22:32Z Balooga: For just general good CL code, wouldn't Edi Weitz's projects be worth a look? 2020-05-22T02:22:40Z White_Flame: in Lisp, any of the general practices will be fairly shallow 2020-05-22T02:23:02Z White_Flame: in the more complex software architecture case, you're really free to do (and to create means of doing) anything 2020-05-22T02:24:58Z bjorkintosh joined #lisp 2020-05-22T02:28:27Z Oladon quit (Quit: Leaving.) 2020-05-22T02:29:52Z ntr: got it, how about from the structure of the proyect point of view? what semi-complex/complex project looks well structured (elegant solution, test coverage, etc) 2020-05-22T02:30:55Z ntr: i know it may be a subjective topic but im just looking for a good example to analyze 2020-05-22T02:31:12Z ntr: Balooga: will check them out, thanks 2020-05-22T02:32:02Z jesse1010 quit (Ping timeout: 260 seconds) 2020-05-22T02:34:25Z White_Flame: most modern commercial use isn't open 2020-05-22T02:34:32Z White_Flame: and is fairly niche 2020-05-22T02:34:58Z White_Flame: but again, creating abstractions for your large project, and refactoring them when things get off, will yield extremely divergent styles 2020-05-22T02:35:28Z White_Flame: some will rely on the reader, some will rely on macros, some will rely on runtime dispatch, etc, and all will have different tradeoffs and reasons 2020-05-22T02:35:41Z White_Flame: and use combinations of many different things as appropriate 2020-05-22T02:35:52Z White_Flame: those 2 last words are the most important thing, and that's more an issue of familiarity 2020-05-22T02:39:08Z rumbler31 quit (Remote host closed the connection) 2020-05-22T02:40:20Z psiperator[m] joined #lisp 2020-05-22T02:40:26Z psiperator[m] left #lisp 2020-05-22T02:40:31Z space_otter joined #lisp 2020-05-22T02:41:17Z catchme quit (Quit: Connection closed for inactivity) 2020-05-22T02:45:06Z acolarh quit (Ping timeout: 260 seconds) 2020-05-22T02:47:51Z acolarh joined #lisp 2020-05-22T02:54:50Z KingOfCSU quit (Ping timeout: 265 seconds) 2020-05-22T02:58:08Z wxie quit (Ping timeout: 272 seconds) 2020-05-22T03:00:13Z jprajzne quit (Quit: jprajzne) 2020-05-22T03:00:38Z jprajzne joined #lisp 2020-05-22T03:00:51Z benjamin1 joined #lisp 2020-05-22T03:04:45Z jprajzne quit (Client Quit) 2020-05-22T03:05:08Z jprajzne joined #lisp 2020-05-22T03:13:33Z Bike quit (Quit: Lost terminal) 2020-05-22T03:15:20Z wxie joined #lisp 2020-05-22T03:16:16Z beach: Good morning everyone! 2020-05-22T03:16:39Z solrize: moning beach 2020-05-22T03:16:52Z solrize: do you think of putting lightweight processes into the sicl runtime? 2020-05-22T03:22:47Z beach: Threads are essential to SICL, if that is what you mean. 2020-05-22T03:22:58Z solrize: i meant more like erlang 2020-05-22T03:23:34Z beach: Probably not. 2020-05-22T03:23:40Z solrize: ah ok 2020-05-22T03:23:42Z solrize: thanks 2020-05-22T03:24:56Z beach: I don't know Erlang. How are lightweight processes different from threads? 2020-05-22T03:25:59Z solrize: there is no visible memory sharing between them (communication is by message passing, which in some instances can be implemented by shared memory behind the scenes), but you can alternatively think of them as lightweight threads 2020-05-22T03:27:14Z solrize: the point though is that they are very cheap, so you can implement high-concurrency servers by launching separate lightweight processes for each connection even with 100,000's of them 2020-05-22T03:27:47Z solrize: avoids callbacks and similar async headaches 2020-05-22T03:28:09Z beach: I see. Thanks. 2020-05-22T03:29:30Z no-defun-allowed: Implementing "lightweight processes" wouldn't be very different to "green threads", except that Erlang has separate heaps, I think. 2020-05-22T03:29:37Z beach: Well, I have good news for you then. I plan to make SICL the base for CLOSOS which will have no distinction between user privilege and supervisor privilege, so threads will be incredibly cheap, and communication can be done just as with Common Lisp functions. 2020-05-22T03:30:05Z solrize: wow cool 2020-05-22T03:30:42Z beach: http://metamodular.com/closos.pdf 2020-05-22T03:31:05Z __jrjsmrtn__ quit (Ping timeout: 265 seconds) 2020-05-22T03:31:15Z _jrjsmrtn joined #lisp 2020-05-22T03:31:23Z solrize: looking 2020-05-22T03:32:26Z no-defun-allowed: I have also proposed that a nursery scaling system similar to that of Erlang would also reduce the "cost" of threads in CLOSOS. 2020-05-22T03:32:53Z beach: How would that work? 2020-05-22T03:37:00Z no-defun-allowed: When a thread is created, it is given a nursery that is quite small, say, 16KiB, and then it is grown every collection that cannot free enough of the nursery (20% or so) up to the maximum nursery size (which I think was proposed to be 8MiB or so). 2020-05-22T03:37:18Z beach: It seems to me like a lot of these inventions exist because of two fundamental problems. One is the overhead of a context switch in a typical "modern" operating system such as Unix. The other is the fact that people insist on using programming languages that have full access to address space of the process. 2020-05-22T03:37:53Z beach: no-defun-allowed: Ah, yes, this sounds familiar. You must have talked to me about it in the past. 2020-05-22T03:37:57Z no-defun-allowed: Although, I might have misunderstood how the nursery is to be implemented, and the "large" nursery size for many threads that do not use much memory may not be an actual problem. 2020-05-22T03:38:56Z akoana joined #lisp 2020-05-22T03:39:07Z no-defun-allowed: I mentioned it in #sicl around 01/01/20, and that it was loosely based off https://erlang.org/doc/apps/erts/GarbageCollection.html#sizing-the-heap 2020-05-22T03:39:27Z beach: Nursery size may be a problem if there are many threads, since a chunk of memory is taken for each one. And since that memory is touched frequently, there is no hope that it will migrate to secondary memory. 2020-05-22T03:40:03Z beach: So, yes, in such situations, it could be a good idea to start with a small nursery and grow it as necessary. 2020-05-22T03:40:09Z beach: That should not be a problem. 2020-05-22T03:41:21Z beach: In fact, since objects in the nursery are located in the beginning and in the end, it would be enough to start a GC early. The pages in the middle will then be on secondary memory. 2020-05-22T03:41:39Z beach: ... or not even mapped. 2020-05-22T03:45:20Z fe[nl]ix: beach: Linux on recent x86_64 CPUs has a context switch overhead of ~1 microsecond 2020-05-22T03:45:36Z beach: That's great! 2020-05-22T03:45:47Z beach: Er, no, that's not so great. 2020-05-22T03:45:59Z beach: But maybe it's better than it was. 2020-05-22T03:48:14Z beach: I read an interesting article about recent I/O devices based on solid-state memory, and apparently, the time for context switching makes it hard for "modern" operating systems to take advantage of the speed of these devices. 2020-05-22T03:48:33Z solrize: you are reinventing the lisp machine ;) 2020-05-22T03:48:58Z twelvemonkeys quit (Ping timeout: 265 seconds) 2020-05-22T03:48:58Z beach: No, I am trying to do much better. 2020-05-22T03:49:26Z beach: The Lisp machine was a single-user machine with not enough security for a modern system. 2020-05-22T03:49:29Z shka_ joined #lisp 2020-05-22T03:49:53Z solrize: fair enough 2020-05-22T03:50:46Z twelvemonkeys joined #lisp 2020-05-22T03:50:53Z beach: But yeah, the user experience on Genera was apparently (never used it myself) something extraordinary. 2020-05-22T03:50:53Z solrize: erlang has hot upgrade but it's not clear how useful it is... the way phone switches traditionally did it was with a failover processor that they needed anyway. they'd upgrade the software on the backup processor, fail over to it, upgrade the former primary, and fail over again 2020-05-22T03:51:48Z solrize: yeah i was hoping that the cadr would be something close to that, since it is available and can run under emulation, but it sounds like it's not as good 2020-05-22T03:52:26Z bhartrihari joined #lisp 2020-05-22T03:52:33Z beach: I think we can do much better. But it's a lot of work of course. 2020-05-22T03:53:00Z rumbler31 joined #lisp 2020-05-22T03:54:22Z solrize: yeah 2020-05-22T03:54:30Z solrize: i wonder how the old parc smalltalk systems compared 2020-05-22T03:54:39Z solrize: i never saw any of those 2020-05-22T03:55:58Z benjamin1 quit (Ping timeout: 260 seconds) 2020-05-22T03:57:33Z no-defun-allowed: You can use https://lively-web.org/users/bert/Smalltalk-78.html which is an implementation of one old Smalltalk system, or Squeak (or Pharo) which will probably run faster and has many more features, but support for that is very off-topic for #lisp. 2020-05-22T03:57:54Z rumbler31 quit (Ping timeout: 240 seconds) 2020-05-22T03:58:22Z solrize: no-defun-allowed, i don't mean the smalltalk language which imho is not that interesting, but rather the old parc smalltalk machines like the dorado... the lisp context is how they compared to lisp machines in tooling etc 2020-05-22T03:59:06Z beach: solrize: Hardware is not a problem anymore. Any modern processor will be very good as the hardware for a Lisp system. 2020-05-22T03:59:24Z no-defun-allowed: solrize: They had a keyboard, mouse, display and bytecode interpreter, which is universal for Smalltalk machines. 2020-05-22T04:00:16Z no-defun-allowed: The hardware let it run very fast without sophisticated compilers, sure, but the context is all the same. 2020-05-22T04:00:22Z solrize: no-defun-allowed, question is about the development environment (editors, debuggers, etc.) not the language and not the hardware. same thing can be asked about lisp machines and in the case of the cadr, can be answered by running the cadr images under emulation 2020-05-22T04:00:36Z solrize: in principle that could be done with the smalltalk stuff too, but i don't know if the code is out there 2020-05-22T04:00:58Z Oladon joined #lisp 2020-05-22T04:01:44Z solrize: beach yeah again the idea is to compare the user experiences, not to actually run the old stuff except for comparison purposes 2020-05-22T04:02:03Z beach: solrize: What is your objective with all this? I am asking because I am convinced that we can do a lot better than what the Lisp machines did. I suggest you help out with our current effort instead. 2020-05-22T04:02:11Z no-defun-allowed: You get development environments in both, and the lively-web runtime is almost exactly PARC had in 1978. 2020-05-22T04:03:17Z solrize: oh nice 2020-05-22T04:04:08Z no-defun-allowed: And then I think that the toolage in Squeak is a superset of the toolage of that image. (Smalltalk is image based, and you get the development environment with the implementation of image-based languages usually.) 2020-05-22T04:05:23Z solrize: beach i didn't realize i had an objective ;). i have some interest in trying out a lisp machine (real or emulated) to see how it compares to the stuff we have now... if you're trying to beat the old stuff it seems worthwhile making a side by side comparison. maybe the new thing is better in 17 areas out of 20 and the old stuff is ahead in 3. that means there are 3 things that can use more attention 2020-05-22T04:05:53Z beach: I see. 2020-05-22T04:06:45Z [mark] joined #lisp 2020-05-22T04:07:30Z [mark] quit (Client Quit) 2020-05-22T04:07:53Z [mark] joined #lisp 2020-05-22T04:08:43Z beach: Compared to "the stuff we have now" (at least the FLOSS stuff), almost anything is better. Hell, GDB in the 1980s was much better than any FLOSS debugger we now have for Common Lisp. 2020-05-22T04:09:52Z beach: And the reason we don't have anything better than we do, appears to be the fact that most developers don't seem to appreciate advanced debugging tools. 2020-05-22T04:10:21Z beach: The seem happy to use FORMAT and to stare at a backtrace when things go wrong. 2020-05-22T04:10:25Z fe[nl]ix: some advanced debugging tools are incompatible with the CL development style 2020-05-22T04:10:48Z beach: If you mean traditional debugging tools for other languages, sure. 2020-05-22T04:11:17Z SGASAU quit (Remote host closed the connection) 2020-05-22T04:11:57Z SGASAU joined #lisp 2020-05-22T04:12:21Z beach: Hence my ELS2020 paper on "Omnipresent and low-overhead application debugging". 2020-05-22T04:13:21Z fe[nl]ix: many experienced developers end up never using advanced debuggers because it's rarely useful for hard bugs, typically race conditions of some kind 2020-05-22T04:13:34Z beach: That's true. 2020-05-22T04:13:50Z beach: But now we are falling into the trap that I discuss in that paper. 2020-05-22T04:13:50Z fe[nl]ix: the one exception is a time travel debugger, but that requires the debugger to be external to the debugged program 2020-05-22T04:14:04Z fe[nl]ix: hence no in-image development environment like in CL 2020-05-22T04:14:19Z _paul0 joined #lisp 2020-05-22T04:14:19Z fe[nl]ix: I should read your paper 2020-05-22T04:14:27Z solrize: is it online? 2020-05-22T04:14:28Z beach: http://metamodular.com/SICL/sicl-debugging.pdf 2020-05-22T04:14:36Z solrize: ah thx 2020-05-22T04:15:20Z beach: ywlcm 2020-05-22T04:16:02Z shka_ quit (Ping timeout: 265 seconds) 2020-05-22T04:17:03Z fe[nl]ix: a useful debugger for race conditions would be one that does all the things exploit writers do to probe code, widen race windows 2020-05-22T04:17:17Z paul0 quit (Ping timeout: 260 seconds) 2020-05-22T04:17:30Z fe[nl]ix: e.g. inducing frequent TLB flushes to slow down execution 2020-05-22T04:17:41Z beach: The trap is basically "since there are situations in which traditional debuggers are useless, specifically for debugging compilers, garbage collectors, race conditions, etc., then we should give up trying to create an application debugger for all the other situations". 2020-05-22T04:17:53Z fe[nl]ix: or maybe running the program under an emulator that you can control 2020-05-22T04:20:14Z fe[nl]ix: beach: I guess the only solution is to build it and see if people start using it 2020-05-22T04:20:51Z solrize: will you have something like STM? that gets rid of a lot of race issues (software transactional memory) 2020-05-22T04:23:17Z SAL9000 quit (Remote host closed the connection) 2020-05-22T04:24:50Z solrize: i've also wondered if it's possible to use model checking to statically verify things like parallel garbage collectors 2020-05-22T04:25:42Z pjb quit (Ping timeout: 260 seconds) 2020-05-22T04:27:09Z wxie quit (Ping timeout: 265 seconds) 2020-05-22T04:31:55Z SAL9000 joined #lisp 2020-05-22T04:32:38Z beach: fe[nl]ix: Yes, I think you are right. 2020-05-22T04:33:52Z beach: fe[nl]ix: I don't think people will use it, given the attitude of most application programmers. I mean, I constantly hear things similar to "Emacs with SLIME is the best development environment in existence, even compared to those of other languages". 2020-05-22T04:35:32Z beach: Not that I care much. I know what I want myself, and I am not creating things with the main objective that those things be used by a maximum number of people. 2020-05-22T04:42:02Z _whitelogger quit (Remote host closed the connection) 2020-05-22T04:44:15Z _whitelogger joined #lisp 2020-05-22T04:45:19Z shifty quit (Ping timeout: 258 seconds) 2020-05-22T04:46:15Z solrize: i haven't used the sbcl or clisp debuggers if they even have them 2020-05-22T04:46:30Z solrize: but emacs lisp has its own debugger that is somewhat usable and sounds better than some of the stuff you described 2020-05-22T04:52:26Z benjamin1 joined #lisp 2020-05-22T04:54:20Z rumbler31 joined #lisp 2020-05-22T04:54:43Z pjb joined #lisp 2020-05-22T04:56:59Z Lycurgus joined #lisp 2020-05-22T04:59:44Z rumbler31 quit (Ping timeout: 272 seconds) 2020-05-22T05:00:41Z Oladon quit (Quit: Leaving.) 2020-05-22T05:04:22Z dddddd quit (Ping timeout: 265 seconds) 2020-05-22T05:15:16Z jprajzne quit (Quit: jprajzne) 2020-05-22T05:15:42Z jprajzne joined #lisp 2020-05-22T05:15:50Z wxie joined #lisp 2020-05-22T05:15:54Z libertyprime quit (Ping timeout: 240 seconds) 2020-05-22T05:17:26Z Lycurgus quit (Remote host closed the connection) 2020-05-22T05:18:38Z gravicappa joined #lisp 2020-05-22T05:19:45Z jprajzne quit (Client Quit) 2020-05-22T05:20:07Z jprajzne joined #lisp 2020-05-22T05:23:32Z Misha_B joined #lisp 2020-05-22T05:25:37Z sauvin joined #lisp 2020-05-22T05:25:45Z pjb quit (Remote host closed the connection) 2020-05-22T05:26:45Z pjb joined #lisp 2020-05-22T05:31:28Z narimiran joined #lisp 2020-05-22T05:36:02Z benjamin1 quit (Ping timeout: 260 seconds) 2020-05-22T05:37:18Z KingOfCSU joined #lisp 2020-05-22T05:41:51Z benjamin1 joined #lisp 2020-05-22T05:47:01Z wxie quit (Ping timeout: 264 seconds) 2020-05-22T05:47:27Z Blukunfando joined #lisp 2020-05-22T05:52:40Z rgherdt joined #lisp 2020-05-22T05:52:49Z rgherdt left #lisp 2020-05-22T05:53:09Z madage quit (Remote host closed the connection) 2020-05-22T05:54:14Z toorevitimirp quit (Ping timeout: 240 seconds) 2020-05-22T05:54:24Z toorevitimirp joined #lisp 2020-05-22T05:55:35Z rumbler31 joined #lisp 2020-05-22T05:55:57Z SGASAU quit (Remote host closed the connection) 2020-05-22T05:56:46Z SGASAU joined #lisp 2020-05-22T05:59:19Z benjamin1 quit (Read error: Connection reset by peer) 2020-05-22T06:00:30Z rumbler31 quit (Ping timeout: 256 seconds) 2020-05-22T06:01:27Z madage joined #lisp 2020-05-22T06:02:31Z Misha_B quit (Remote host closed the connection) 2020-05-22T06:06:12Z malik quit (Read error: Connection reset by peer) 2020-05-22T06:07:47Z lukego: one big idea in debugging that I still don't have my head around - despite it being around for a long time - is the rr style of back-in-time debugging 2020-05-22T06:08:17Z easye: "rr style?" 2020-05-22T06:08:37Z loli quit (Ping timeout: 264 seconds) 2020-05-22T06:09:36Z lukego: https://rr-project.org/ the gdb that can step forwards and also backwards. So you can e.g. query backwards to the last time variable had value from the point where something bad happened. 2020-05-22T06:10:31Z lukego: and the whole thing runs with low-overhead on plain native code thanks to some low-level CPU performance counter hacks of the sort that should never work in practice 2020-05-22T06:11:11Z easye: rr is very Linux-specific then? 2020-05-22T06:12:16Z loli joined #lisp 2020-05-22T06:12:24Z lukego: I'm not sure about that but I think it only works reliable on Intel CPUs 2020-05-22T06:12:43Z lukego: it's from Mozilla a decade or more ago and the authors have a startup based on it now (can't find it atm) 2020-05-22T06:13:08Z easye: rr seems to be using QEMU which is Intel/AMD specific. 2020-05-22T06:13:37Z lukego: no QEMU 2020-05-22T06:14:00Z easye: Ah "supports QEMU". My hasty reading... 2020-05-22T06:14:59Z lukego: it runs native code with low overhead, but it uses CPU performance counters to wake up at regular intervals based on the precise number of instructions retired and that only works well on Intel (not even AMD) - I'm amazed such low-level hackery works anywhere. 2020-05-22T06:17:26Z shifty joined #lisp 2020-05-22T06:17:35Z sdumi quit (Ping timeout: 260 seconds) 2020-05-22T06:18:15Z dale quit (Quit: My computer has gone to sleep) 2020-05-22T06:18:25Z lukego: The basic intuition is simple though. If you record all the I/O that a program does then you can "replay" it in a sandbox later. If it tries to e.g. read from disk you just give it the same data and then it will do the same thing. And if you can replay from time T0 to any future time Tn then you can reconstruct any time Tm FOO 2020-05-22T20:04:53Z phoe: so (symbol-name 'foo) = "FOO" 2020-05-22T20:05:00Z solrize: yep 2020-05-22T20:05:01Z phoe: but (symbol-name '|foo|) = "foo" 2020-05-22T20:05:11Z seok: Indeed 2020-05-22T20:05:12Z solrize: yeah i get it 2020-05-22T20:06:25Z seok: wow sicl is huge 2020-05-22T20:06:26Z solrize: clojure looks interesting except for the damn JVM... it would be cool if sicl could support some of its features like STM 2020-05-22T20:07:21Z seok: People should be getting paid to work on this 2020-05-22T20:07:26Z solrize: that too 2020-05-22T20:09:04Z _death: luis: I thought about writing an interface similar to pulp.. the two interfaces in cl-glpk aren't so great 2020-05-22T20:09:21Z gaqwas joined #lisp 2020-05-22T20:09:46Z dkeohane left #lisp 2020-05-22T20:16:07Z gaqwas quit (Ping timeout: 246 seconds) 2020-05-22T20:16:24Z ralt: luis: I fixed this one too, it was dumb https://github.com/cffi/cffi/pull/157 2020-05-22T20:17:25Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-22T20:18:34Z orivej joined #lisp 2020-05-22T20:24:40Z bhartrihari left #lisp 2020-05-22T20:24:54Z bhartrihari joined #lisp 2020-05-22T20:25:01Z vaporatorius__ quit (Quit: Leaving) 2020-05-22T20:25:14Z vaporatorius joined #lisp 2020-05-22T20:25:52Z snits quit (Ping timeout: 256 seconds) 2020-05-22T20:27:03Z efm quit (Ping timeout: 260 seconds) 2020-05-22T20:27:03Z nullman quit (Ping timeout: 260 seconds) 2020-05-22T20:30:24Z bitmapper: hmm 2020-05-22T20:30:32Z bitmapper: is it possible to get multiple values from read? 2020-05-22T20:31:58Z gaqwas joined #lisp 2020-05-22T20:34:26Z phoe: bitmapper: what do you mean, multiple values 2020-05-22T20:34:43Z phoe: CL:READ reads one object from the stream and returns it 2020-05-22T20:34:47Z bitmapper: phoe: i want to read in something like 5 132 5 324 634 and get a list that contains it 2020-05-22T20:34:51Z bitmapper: phoe: ah 2020-05-22T20:35:05Z bitmapper: i misunderstood what was happening 2020-05-22T20:35:28Z phoe: bitmapper: (loop for thing = (read stream nil stream) until (eq thing stream) collect thing) 2020-05-22T20:36:13Z bitmapper: it's from standard input 2020-05-22T20:36:26Z bitmapper: doesn't that depend on eof 2020-05-22T20:39:19Z phoe: standard input will hang 2020-05-22T20:39:37Z bitmapper: yeah i know 2020-05-22T20:39:46Z phoe: how many numbers do you want to read? 2020-05-22T20:40:00Z phoe: and why don't you just read (1 2 3 4 5 ...) instead of separate numbers? 2020-05-22T20:40:24Z bitmapper: phoe: thems the rules 2020-05-22T20:40:33Z bitmapper: phoe: it's a variable amount of numbers 2020-05-22T20:40:47Z phoe: bitmapper: oh, are you reading from a file? 2020-05-22T20:40:51Z bitmapper: no 2020-05-22T20:40:54Z bitmapper: i found out the google kickstart competition allows you to write common lisp 2020-05-22T20:41:21Z phoe: I am confused now; if the standard input is not interactive, it will finally give you an EOF 2020-05-22T20:41:30Z phoe: like, it won't hang 2020-05-22T20:41:35Z bitmapper: phoe: it's interactive. 2020-05-22T20:41:51Z bitmapper: sorta 2020-05-22T20:42:02Z bitmapper: i need to read an input, do something, read another input, do something 2020-05-22T20:42:04Z bitmapper: before eof 2020-05-22T20:42:12Z phoe: so you *do* get an EOF 2020-05-22T20:42:18Z bitmapper: oh yea 2020-05-22T20:42:21Z bitmapper: good point 2020-05-22T20:42:22Z phoe: what's the problem then 2020-05-22T20:42:26Z bitmapper: nothing 2020-05-22T20:42:46Z phoe: if your puzzle input is structured properly, then you'll get a number of how many numbers you are supposed to read 2020-05-22T20:43:05Z phoe: like, 3 40 50 60 where 3 means "read 3 numbers from stdin" 2020-05-22T20:43:15Z phoe: so you can just do (loop repeat (read) collect (read)) 2020-05-22T20:43:39Z bitmapper: hahaha 2020-05-22T20:43:55Z bitmapper: good point 2020-05-22T20:44:03Z bitmapper: i never thought about that 2020-05-22T20:46:33Z MichaelRaskin: Well, I would expect that it is better to read input piece by piece and handle them separately 2020-05-22T20:47:00Z MichaelRaskin: If only to release the memory in case of a huge input 2020-05-22T20:51:46Z msk joined #lisp 2020-05-22T20:54:13Z wooden quit (Read error: Connection reset by peer) 2020-05-22T20:56:50Z karayan quit (Remote host closed the connection) 2020-05-22T21:05:49Z karayan joined #lisp 2020-05-22T21:06:14Z Josh_2 joined #lisp 2020-05-22T21:11:02Z ahungry quit (Read error: Connection reset by peer) 2020-05-22T21:11:17Z |Pirx| joined #lisp 2020-05-22T21:14:23Z luis: ralt: slowly, but surely, we're getting there! 2020-05-22T21:16:40Z orivej quit (Ping timeout: 246 seconds) 2020-05-22T21:17:55Z orivej joined #lisp 2020-05-22T21:19:13Z ralt: luis: another question for you: I want to change the c-file to be loaded a grovel-wrapper files. Well, rather, I want them to go away when dumping, too. How would I best approach that? I did something by adding a new argument to LOAD-FOREIGN-LIBRARY (because that's what the C-FILE asdf extension is using), but I'm pretty sure you don't want to change the interface. And :grovel-wrapper is probably not appropriate for a C-FILE. 2020-05-22T21:19:31Z andrei-n quit (Quit: Leaving) 2020-05-22T21:20:04Z ralt: (I added the sqlite3.c file in my project, loaded it as a `(:c-file "sqlite3")`component, and it works perfectly. The question is how to do that in CFFI.) 2020-05-22T21:20:54Z jmercouris: how can I best automate the following? (in-package :abc)(in-package :cde)(defun xyz () ...)(in-package :abc) 2020-05-22T21:20:59Z jmercouris: as you can see the function xyz is defined within the cde package 2020-05-22T21:21:01Z rumbler31 joined #lisp 2020-05-22T21:21:29Z jmercouris: I thought about making a macro to expnd and have some in-package declarations, my problem is that I don't know how to make the macro output a (in-package :abc) at the end 2020-05-22T21:21:35Z ralt: jmercouris: (let ((*package* (find-package "ABC"))) (defun xyz ())) 2020-05-22T21:21:40Z phoe: ralt: nope 2020-05-22T21:21:42Z phoe: that won't work 2020-05-22T21:21:43Z jmercouris: that doesn't work 2020-05-22T21:21:46Z jmercouris: I've tried that in the past 2020-05-22T21:21:48Z ralt: damn 2020-05-22T21:21:52Z phoe: the symbols are read before the binding is made 2020-05-22T21:22:04Z phoe: jmercouris: (defun cde:xyz ...) 2020-05-22T21:22:06Z jmercouris: it should totally work that way though :-D 2020-05-22T21:22:15Z phoe: jmercouris: no, it doesn't 2020-05-22T21:22:21Z jmercouris: phoe: that's a good point, but I wasn't clear 2020-05-22T21:22:33Z phoe: the symbols are read before LET has a chance to rebind the package 2020-05-22T21:22:37Z jmercouris: I want to be able to use stuff from cde in xyz without having to prefix them like cde:a cde:b 2020-05-22T21:22:50Z jmercouris: I'm saying it should work that way as a joke 2020-05-22T21:22:51Z phoe: jmercouris: this sounds like USE-PACKAGE 2020-05-22T21:23:01Z phoe: oh, wait 2020-05-22T21:23:03Z phoe: I misread 2020-05-22T21:23:08Z ralt: phoe: no, he means internal symbols of 2020-05-22T21:23:14Z ralt: nvm me :) 2020-05-22T21:23:21Z jmercouris: here's my use case 2020-05-22T21:23:25Z jmercouris: I have inlined parenscript in my code 2020-05-22T21:23:30Z jmercouris: but I don't like having to write (ps:for 2020-05-22T21:23:36Z jmercouris: and ps:@ etc within the body of my parenscript 2020-05-22T21:24:03Z jmercouris: here is the macro: http://dpaste.com/041XPMT 2020-05-22T21:24:17Z jmercouris: here is example usage: http://dpaste.com/0HDNQ7S 2020-05-22T21:24:23Z ralt: that... does sound like you want USE-PACKAGE, or ps' equivalent 2020-05-22T21:24:29Z jmercouris: I do not want to use ps 2020-05-22T21:24:32Z jmercouris: it shadows many things 2020-05-22T21:24:33Z jmercouris: for example 2020-05-22T21:24:35Z jmercouris: LET 2020-05-22T21:24:38Z jmercouris: with PS:LET 2020-05-22T21:25:02Z ralt: I am confused 2020-05-22T21:25:12Z jmercouris: maybe I am confused 2020-05-22T21:25:29Z jmercouris: but if I have a package where I :use PS, do i not import all of its symbols? 2020-05-22T21:25:45Z ralt: ah, no, I get it 2020-05-22T21:26:39Z jmercouris: do I have to use a reader macro or something? 2020-05-22T21:26:45Z jmercouris: there MUST be a way to do this 2020-05-22T21:27:29Z ralt: PS adds a custom USE-PACKAGE, but only for use with COMPILE-FILE or COMPILE-STREAM 2020-05-22T21:27:38Z ralt: i.e. when you write all your PS in a separate file 2020-05-22T21:27:55Z jmercouris: yes, but I am inlining it 2020-05-22T21:28:23Z jmercouris: :'( 2020-05-22T21:28:27Z jmercouris: this has been bothering me for like a year now 2020-05-22T21:29:02Z karlosz quit (Quit: karlosz) 2020-05-22T21:29:10Z ralt: would a simple (:import-from :ps #:@ #:for #:etc) be enough maybe? 2020-05-22T21:29:12Z jmercouris: I guess I could expand the macro to accept an optional current package and assume the package is :next, but I do not like that 2020-05-22T21:29:28Z jmercouris: ralt: unfortunately no, because I want to be able to use let, defun, etc 2020-05-22T21:29:44Z jmercouris: phoe: ideas? 2020-05-22T21:29:50Z karlosz joined #lisp 2020-05-22T21:29:50Z ralt: ah, PS:LET etc? 2020-05-22T21:30:21Z jmercouris: correct 2020-05-22T21:32:26Z jmercouris: in-package: The variable *package* is assigned. If the in-package form is a top level form, this assignment also occurs at compile time. 2020-05-22T21:33:00Z pve: jmercouris: define an abbrev that expands into those use-package forms with a defun between them, and places your cursor at the defun 2020-05-22T21:33:38Z pve: trying to macro your way out of this will drive you mad 2020-05-22T21:35:32Z ralt: jmercouris: I would encourage you to write your PS code in a separate file. Despite the closeness of the syntax, IME, PS is a very separate environment. Putting them together doesn't make a ton of sense imho. 2020-05-22T21:38:03Z jmercouris: :'( 2020-05-22T21:38:32Z jmercouris: you might be right 2020-05-22T21:38:42Z bhartrihari left #lisp 2020-05-22T21:38:45Z bhartrihari joined #lisp 2020-05-22T21:40:36Z rumbler31 quit (Ping timeout: 256 seconds) 2020-05-22T21:40:43Z saravia quit (Ping timeout: 240 seconds) 2020-05-22T21:44:12Z MerlinTheWizard joined #lisp 2020-05-22T21:45:52Z rumbler31 joined #lisp 2020-05-22T21:45:55Z akoana joined #lisp 2020-05-22T21:46:02Z saravia joined #lisp 2020-05-22T21:46:11Z nullheroes quit (Quit: WeeChat 2.8) 2020-05-22T21:47:32Z jmercouris: SURELY there MUST be a way to do this 2020-05-22T21:47:32Z pjb quit (Ping timeout: 260 seconds) 2020-05-22T21:47:46Z jmercouris: I refuse to believe that this problem is unsolvable 2020-05-22T21:47:55Z nullheroes joined #lisp 2020-05-22T21:48:12Z rumbler3_ joined #lisp 2020-05-22T21:49:32Z rumbler__ joined #lisp 2020-05-22T21:49:35Z Bike: if you want to mess with the reader you'll need a reader macro, basically 2020-05-22T21:49:46Z |Pirx| quit (Remote host closed the connection) 2020-05-22T21:50:18Z MerlinTheWizard: Hi all. I'm writing a palindrome program for SPOJ, and I'm running into an issue with "control stack exhausted" after I do slime-compile-and-load-file and try to test the function lrbelt. I'm new to common lisp and have no idea why this is happening. Am I doing something wrong? Here's the program (main block commented to test whether that might be the problem): https://pastebin.com/qCkSsPTb 2020-05-22T21:51:11Z pve quit (Quit: leaving) 2020-05-22T21:51:22Z rumbler31 quit (Ping timeout: 260 seconds) 2020-05-22T21:51:47Z abel left #lisp 2020-05-22T21:52:44Z Bike: antibelt calls itself recursively and there's no base case that i can see 2020-05-22T21:53:08Z rumbler3_ quit (Ping timeout: 256 seconds) 2020-05-22T21:53:26Z MerlinTheWizard: Bike, good call. Thanks. 2020-05-22T21:54:45Z bhartrihari left #lisp 2020-05-22T21:54:51Z bhartrihari joined #lisp 2020-05-22T21:54:56Z Bike: this palinfun macro may hide that kind of problem from you 2020-05-22T21:55:39Z MerlinTheWizard: Bike, yes. I'm new to macros as well. I will have to be careful and take this sort of issue into account. 2020-05-22T22:00:07Z rumbler__ quit (Ping timeout: 260 seconds) 2020-05-22T22:01:17Z SGASAU` joined #lisp 2020-05-22T22:01:54Z orivej quit (Read error: Connection reset by peer) 2020-05-22T22:02:06Z orivej joined #lisp 2020-05-22T22:04:02Z kpoeck quit (Remote host closed the connection) 2020-05-22T22:05:06Z SGASAU quit (Ping timeout: 272 seconds) 2020-05-22T22:05:09Z frgo quit (Read error: Connection reset by peer) 2020-05-22T22:05:45Z frgo joined #lisp 2020-05-22T22:08:44Z snits joined #lisp 2020-05-22T22:09:56Z saravia quit (Remote host closed the connection) 2020-05-22T22:10:05Z snits quit (Read error: Connection reset by peer) 2020-05-22T22:10:34Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-22T22:11:11Z saravia joined #lisp 2020-05-22T22:11:46Z orivej joined #lisp 2020-05-22T22:11:53Z SGASAU` quit (Remote host closed the connection) 2020-05-22T22:12:27Z rumbler31 joined #lisp 2020-05-22T22:12:56Z SGASAU` joined #lisp 2020-05-22T22:13:50Z snits joined #lisp 2020-05-22T22:17:05Z ralt: luis and fe[nl]ix this is what I want to achieve, what would be a better way to do so? https://gist.github.com/ralt/3288f886c5a2baf7c7160c78af02aef2 2020-05-22T22:17:41Z ralt: the last change is the important one, because it means the C files are now part of the condition to close the foreign libraries when dumping. 2020-05-22T22:17:46Z pjb joined #lisp 2020-05-22T22:17:56Z ralt: the rest is what allows me to do so, but I don't think that's the way to do this. 2020-05-22T22:20:09Z orivej quit (Ping timeout: 265 seconds) 2020-05-22T22:20:25Z orivej joined #lisp 2020-05-22T22:24:44Z marusich quit (Ping timeout: 272 seconds) 2020-05-22T22:24:44Z voidlily quit (Ping timeout: 272 seconds) 2020-05-22T22:27:45Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-22T22:28:52Z bhartrihari left #lisp 2020-05-22T22:28:59Z bhartrihari joined #lisp 2020-05-22T22:29:06Z orivej joined #lisp 2020-05-22T22:30:20Z marusich joined #lisp 2020-05-22T22:30:22Z voidlily joined #lisp 2020-05-22T22:31:21Z rumbler31 quit (Remote host closed the connection) 2020-05-22T22:33:24Z rumbler31 joined #lisp 2020-05-22T22:33:53Z luis: ralt: does Stelian's canary option for define-foreign-library help? 2020-05-22T22:34:25Z ralt: luis: I'm unaware of what that is, do you have a link? 2020-05-22T22:34:30Z gravicappa quit (Ping timeout: 256 seconds) 2020-05-22T22:35:09Z ralt: alternatively, what about a CLOSE-ON-DUMP property on foreign libraries? 2020-05-22T22:35:41Z luis: ralt: https://github.com/cffi/cffi/pull/160 2020-05-22T22:36:47Z ralt: oooh nice 2020-05-22T22:36:48Z luis: ralt: that's actually something everyone does some way or another, I think. We should make it easier. Probably the default even. 2020-05-22T22:36:49Z ralt: let me see that 2020-05-22T22:38:11Z ralt: luis: ish, no? for typical system libraries, you don't want to close them, or they won't be loaded at restore time? unless I'm missing something 2020-05-22T22:39:48Z ralt: hm, that's annoying, cflags in `(:c-file "foo" :cflags "...")` are ignored :/ 2020-05-22T22:40:32Z luis: ralt: you then want to load them explicitly at start, because Lisps typically will simply repeat whatever load-foreign 2020-05-22T22:40:56Z rgherdt quit (Quit: Leaving) 2020-05-22T22:40:58Z luis: whatever load-foreign-library call succeeded, whereas define-foreign-library usually lists lots of alternatives 2020-05-22T22:41:29Z ralt: luis: wouldn't that break a lot of code that simply uses define-foreign-library to change the default behavior? 2020-05-22T22:41:58Z luis: ralt: the idea would be to both register close at dump and reopen at start 2020-05-22T22:42:05Z bhartrihari left #lisp 2020-05-22T22:42:35Z luis: ralt: I have to leave, let's continue the discussion in cffi-devel or pull request 2020-05-22T22:42:41Z ralt: kk 2020-05-22T22:43:31Z SGASAU` quit (Remote host closed the connection) 2020-05-22T22:43:38Z snits quit (Ping timeout: 258 seconds) 2020-05-22T22:46:01Z Lycurgus joined #lisp 2020-05-22T22:48:38Z heisig quit (Quit: Leaving) 2020-05-22T22:49:10Z snits joined #lisp 2020-05-22T22:50:36Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-22T22:51:37Z pjb quit (Ping timeout: 272 seconds) 2020-05-22T22:51:45Z orivej joined #lisp 2020-05-22T22:55:32Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-22T22:55:58Z bhartrihari joined #lisp 2020-05-22T22:59:47Z MerlinTheWizard joined #lisp 2020-05-22T23:01:42Z orivej quit (Ping timeout: 260 seconds) 2020-05-22T23:01:55Z orivej joined #lisp 2020-05-22T23:01:59Z rumbler31 quit (Remote host closed the connection) 2020-05-22T23:03:34Z snits quit (Ping timeout: 260 seconds) 2020-05-22T23:04:08Z sjl_ quit (Ping timeout: 265 seconds) 2020-05-22T23:04:47Z snits joined #lisp 2020-05-22T23:05:29Z snits quit (Read error: Connection reset by peer) 2020-05-22T23:14:04Z pjb joined #lisp 2020-05-22T23:14:53Z terpri quit (Remote host closed the connection) 2020-05-22T23:16:06Z terpri joined #lisp 2020-05-22T23:17:43Z terpri_ joined #lisp 2020-05-22T23:18:53Z terpri_ quit (Remote host closed the connection) 2020-05-22T23:19:14Z terpri_ joined #lisp 2020-05-22T23:19:15Z z147 joined #lisp 2020-05-22T23:20:37Z terpri quit (Ping timeout: 260 seconds) 2020-05-22T23:21:00Z Josh_2: am I gonna run into any problems using https://github.com/K1D77A/arithmetic-operators-as-words/blob/master/arithmetic-operators-as-words.lisp these instead of the < > <= >= directly? 2020-05-22T23:24:00Z Lycurgus quit (Quit: Exeunt) 2020-05-22T23:24:10Z aeth: that's disappointing. No plus, minus, etc.? 2020-05-22T23:24:26Z Bourne quit (Ping timeout: 265 seconds) 2020-05-22T23:24:56Z White_Flame: gt, lt, etc was also common in the past 2020-05-22T23:25:11Z Bike: they're macros rather than functions, so you can't pass thme to other functions 2020-05-22T23:25:29Z theseb joined #lisp 2020-05-22T23:25:30Z White_Flame: you could declare them inline, or you could use symbol macros instead 2020-05-22T23:25:42Z White_Flame: (or in addition) 2020-05-22T23:27:38Z Josh_2: hmm 2020-05-22T23:27:41Z aeth: yeah, you'd also need add, subtract, sub, etc., in addition to plus/minus. 2020-05-22T23:27:42Z Josh_2: good point Bike 2020-05-22T23:27:55Z Josh_2: aeth: well I guess I could add those as well :P 2020-05-22T23:28:08Z aeth: The appeal of natural language is having multiple aliases :-p 2020-05-22T23:33:51Z Josh_2: How do I pass a rest arg to a function that uses a rest (defun greater-than (number &rest more-numbers) (> number more-numbers)) ? 2020-05-22T23:33:59Z Bike: apply. 2020-05-22T23:34:02Z Josh_2: ah 2020-05-22T23:36:57Z aeth: If it's inline, SBCL will optimize it away, iirc. Other implementations might not. 2020-05-22T23:40:09Z Josh_2: https://plaster.tymoon.eu/view/1863#1863 hows that? 2020-05-22T23:41:09Z aeth: I thought inline has to be done as (declaim (inline foo)) 2020-05-22T23:41:13Z Josh_2: oops 2020-05-22T23:41:28Z Josh_2: hmm 2020-05-22T23:41:29Z Josh_2: idk 2020-05-22T23:41:33Z aeth: I think (declare (inline foo)) would only inline recursive calls? It's not an error. That's weird. 2020-05-22T23:41:46Z Josh_2: sbcl complains when I use declaim instead of declare 2020-05-22T23:42:07Z Josh_2: oh maybe it is supposed to be outside the function definition 2020-05-22T23:42:27Z aeth: yeah 2020-05-22T23:42:54Z Josh_2: Yep that worked 2020-05-22T23:43:13Z Josh_2: https://plaster.tymoon.eu/view/1864#1864 2020-05-22T23:43:41Z aeth: Josh_2: I think generally, the style is to put the declaim right above the defun 2020-05-22T23:43:43Z z147 quit (Ping timeout: 240 seconds) 2020-05-22T23:43:46Z Josh_2: hnnng 2020-05-22T23:43:48Z Josh_2: alright 2020-05-22T23:43:52Z aeth: you can also write a macro to automate it 2020-05-22T23:44:21Z aeth: since it's just `(progn (declaim (inline ,name)) (defun ,name ...)) 2020-05-22T23:44:23Z Josh_2: Yes 2020-05-22T23:44:26Z Josh_2: I thought about doing that 2020-05-22T23:44:35Z aeth: (a PROGN keeps it at a top level, otherwise macros like that would be impossible) 2020-05-22T23:44:38Z Josh_2: Then I decided I'm not gonna bother as I was already halfway done 2020-05-22T23:45:29Z igemnace quit (Remote host closed the connection) 2020-05-22T23:49:53Z terpri_ quit (Remote host closed the connection) 2020-05-22T23:50:12Z terpri_ joined #lisp 2020-05-22T23:54:45Z theseb quit (Quit: Leaving) 2020-05-22T23:55:13Z random-nick quit (Ping timeout: 246 seconds) 2020-05-22T23:58:33Z Josh_2: hmm 2020-05-22T23:58:45Z Josh_2: Why do I get symbol conflicts when what I attempt to import are functions? 2020-05-23T00:02:35Z shangul joined #lisp 2020-05-23T00:02:46Z Josh_2: The symbols that are being imported are conflicting with local variables 2020-05-23T00:05:22Z White_Flame: symbols are symbols, regardless of how they're used 2020-05-23T00:05:23Z whiteline quit (Remote host closed the connection) 2020-05-23T00:05:32Z whiteline joined #lisp 2020-05-23T00:05:56Z White_Flame: if your code used (let ((foo ...)) ..), then there's a my-package::foo created for it to represent the source code 2020-05-23T00:06:38Z Josh_2: hmm alright 2020-05-23T00:06:45Z Josh_2: well it works when shadowing 2020-05-23T00:10:47Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-23T00:13:18Z MerlinTheWizard joined #lisp 2020-05-23T00:19:01Z orivej quit (Ping timeout: 246 seconds) 2020-05-23T00:19:35Z orivej joined #lisp 2020-05-23T00:26:32Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-23T00:28:52Z flazh quit (Read error: Connection reset by peer) 2020-05-23T00:29:06Z flazh joined #lisp 2020-05-23T00:31:14Z nullman joined #lisp 2020-05-23T00:31:48Z choegusung joined #lisp 2020-05-23T00:31:48Z choegusung quit (Client Quit) 2020-05-23T00:38:12Z Lord_of_Life_ joined #lisp 2020-05-23T00:40:12Z EvW quit (Ping timeout: 260 seconds) 2020-05-23T00:41:17Z Lord_of_Life quit (Ping timeout: 265 seconds) 2020-05-23T00:41:21Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-23T00:44:33Z bhartrihari left #lisp 2020-05-23T00:44:39Z bhartrihari joined #lisp 2020-05-23T00:53:51Z MerlinTheWizard joined #lisp 2020-05-23T00:55:24Z fengshaun quit (Quit: bibi!) 2020-05-23T00:56:38Z bitmappe_ joined #lisp 2020-05-23T00:56:41Z fengshaun joined #lisp 2020-05-23T00:58:12Z bitmapper quit (Ping timeout: 265 seconds) 2020-05-23T00:58:38Z phadthai quit (Ping timeout: 272 seconds) 2020-05-23T01:00:42Z orivej quit (Ping timeout: 256 seconds) 2020-05-23T01:00:49Z phadthai joined #lisp 2020-05-23T01:02:36Z rumbler31 joined #lisp 2020-05-23T01:06:26Z easye quit (Remote host closed the connection) 2020-05-23T01:06:41Z fengshaun quit (Quit: bibi!) 2020-05-23T01:07:40Z easye joined #lisp 2020-05-23T01:08:15Z fengshaun joined #lisp 2020-05-23T01:10:02Z phadthai quit (Ping timeout: 272 seconds) 2020-05-23T01:11:08Z phadthai joined #lisp 2020-05-23T01:12:44Z fengshaun quit (Client Quit) 2020-05-23T01:13:10Z fengshaun joined #lisp 2020-05-23T01:13:57Z SGASAU joined #lisp 2020-05-23T01:17:18Z terpri_ quit (Remote host closed the connection) 2020-05-23T01:18:01Z SGASAU` joined #lisp 2020-05-23T01:18:08Z shifty joined #lisp 2020-05-23T01:18:41Z terpri joined #lisp 2020-05-23T01:18:54Z SGASAU quit (Ping timeout: 272 seconds) 2020-05-23T01:31:53Z SGASAU` quit (Remote host closed the connection) 2020-05-23T01:33:05Z SGASAU`` joined #lisp 2020-05-23T01:34:58Z bitmappe_ quit (Ping timeout: 246 seconds) 2020-05-23T01:49:11Z mangul joined #lisp 2020-05-23T01:51:25Z shangul quit (Ping timeout: 246 seconds) 2020-05-23T01:54:23Z marusich quit (Quit: Leaving) 2020-05-23T01:59:37Z marusich joined #lisp 2020-05-23T02:01:29Z sword joined #lisp 2020-05-23T02:02:44Z Josh_2: I like little 1 function libraries 2020-05-23T02:03:35Z dsmith joined #lisp 2020-05-23T02:03:37Z sword quit (Client Quit) 2020-05-23T02:03:58Z Mawile quit (Read error: Connection reset by peer) 2020-05-23T02:05:14Z none joined #lisp 2020-05-23T02:05:33Z none is now known as Guest38791 2020-05-23T02:05:45Z dsmith: Howdy folks. Some time ago (many years) I rememer reading about some web site that was implemented in CL. And it went though many changes over the years. But it was still running the *same* lisp process. (Same PID). 2020-05-23T02:06:03Z Guest38791 quit (Remote host closed the connection) 2020-05-23T02:06:06Z dsmith: I don't remmeber it, and I haven't been able to find it. 2020-05-23T02:06:37Z dsmith: IF that sounds familiar, can you point me to it? 2020-05-23T02:07:28Z sword joined #lisp 2020-05-23T02:07:53Z dsmith: I think it was using hunchentoot 2020-05-23T02:07:53Z sword quit (Read error: Connection reset by peer) 2020-05-23T02:08:37Z SGASAU`` quit (Ping timeout: 264 seconds) 2020-05-23T02:10:34Z Josh_2: sounds reasonable 2020-05-23T02:11:07Z Josh_2: once you have started your image and have swank/slynk going there isnt much reason to restart it 2020-05-23T02:11:12Z Josh_2: unless you break it ofcourse 2020-05-23T02:13:41Z dsmith: I'd like to re-read that article I'm remembering, if it's still available. 2020-05-23T02:16:12Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-23T02:19:24Z shifty quit (Ping timeout: 265 seconds) 2020-05-23T02:20:21Z shifty joined #lisp 2020-05-23T02:24:34Z KingOfCSU joined #lisp 2020-05-23T02:25:14Z toorevitimirp joined #lisp 2020-05-23T02:26:58Z MerlinTheWizard joined #lisp 2020-05-23T02:34:52Z bhartrihari left #lisp 2020-05-23T02:34:56Z bhartrihari joined #lisp 2020-05-23T02:38:53Z zmt01 quit (Quit: Leaving) 2020-05-23T02:40:24Z zmt00 joined #lisp 2020-05-23T02:41:34Z shifty quit (Ping timeout: 256 seconds) 2020-05-23T02:42:49Z shifty joined #lisp 2020-05-23T02:45:08Z KingOfCSU quit (Ping timeout: 256 seconds) 2020-05-23T02:49:13Z ralt quit (Quit: Connection closed for inactivity) 2020-05-23T02:52:31Z bhartrihari left #lisp 2020-05-23T02:53:16Z shifty quit (Ping timeout: 272 seconds) 2020-05-23T02:54:00Z shifty joined #lisp 2020-05-23T02:54:34Z bhartrihari joined #lisp 2020-05-23T02:56:26Z msk quit (Ping timeout: 272 seconds) 2020-05-23T02:56:38Z gaqwas quit (Ping timeout: 258 seconds) 2020-05-23T02:56:55Z gaqwas joined #lisp 2020-05-23T03:02:17Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-23T03:02:37Z sirmacik quit (Ping timeout: 264 seconds) 2020-05-23T03:08:00Z mason left #lisp 2020-05-23T03:13:30Z Codaraxis quit (Remote host closed the connection) 2020-05-23T03:14:26Z Misha_B quit (Remote host closed the connection) 2020-05-23T03:15:13Z Codaraxis joined #lisp 2020-05-23T03:16:05Z MerlinTheWizard joined #lisp 2020-05-23T03:16:57Z beach: Good morning everyone! 2020-05-23T03:20:52Z paul0 joined #lisp 2020-05-23T03:21:30Z SGASAU joined #lisp 2020-05-23T03:25:50Z solrize: morning beach 2020-05-23T03:27:30Z beach: solrize: In addition to myself, Bike, karlosz, and heisig, scymtym is also working on the SICL project. He is maintaining the Eclector reader. 2020-05-23T03:28:06Z zaquest quit (Quit: Leaving) 2020-05-23T03:28:06Z SGASAU quit (Ping timeout: 272 seconds) 2020-05-23T03:28:39Z beach: He is also working on McCLIM, and while McCLIM is not part of SICL directly, it's an important brick in the overall picture. And jackdaniel is the main maintainer of McCLIM, and there are several other doing great work there. 2020-05-23T03:30:48Z solrize: nice 2020-05-23T03:31:16Z solrize: is eclector a big project? is it more than a CL reader? 2020-05-23T03:31:20Z beach: I just wanted to set the record straight, since you asked. It is not terribly important otherwise. 2020-05-23T03:31:24Z solrize: np 2020-05-23T03:32:14Z solrize: i can see that a lot of work went into it 2020-05-23T03:32:19Z zaquest joined #lisp 2020-05-23T03:32:27Z beach: Eclector does lots of interesting things, in particular it can read S-expressions wrapped in standard objects that give information about source location. And it is configurable, so that client code can choose how to interpret tokens and such. 2020-05-23T03:32:49Z pjb quit (Ping timeout: 272 seconds) 2020-05-23T03:33:29Z beach: And it is a marvel of error recovery. We need all that stuff because Eclector is part of the editor project(s) for editing Common Lisp source code. Eclector is used to parse the buffer contents. 2020-05-23T03:33:48Z beach: And we can't allow it to just call ERROR in the middle of an editing session. 2020-05-23T03:35:02Z beach: It is also well documented and well tested, so a model for the "modules" I want to create. Eclector started life as the "SICL reader", but scymtym has taken it way beyond that initial state. 2020-05-23T03:40:02Z Oladon joined #lisp 2020-05-23T03:41:31Z solrize: aha nice yeah that makes sense 2020-05-23T03:41:43Z solrize: being able to connect it up to an editor etc 2020-05-23T03:41:55Z beach: And a debugger worthy of the name. 2020-05-23T03:41:58Z solrize: can it reach into the compiler's type inference ? 2020-05-23T03:42:04Z solrize: the debugger is part of eclector? 2020-05-23T03:42:15Z solrize: or oh i think i see 2020-05-23T03:42:16Z beach: No, it is not. It's a separate project. 2020-05-23T03:43:10Z beach: The editor I am planning will actually run part of a Cleavir-based compiler to analyze the code and give feedback to the user based on such analysis. 2020-05-23T03:43:26Z beach: And I am pretty sure I will be able to run the compiler at typing speed. 2020-05-23T03:43:31Z solrize: yeah that's what i was hoping 2020-05-23T03:43:40Z beach: So no need to hit any particular key to get that information. 2020-05-23T03:43:59Z beach: minion: Please tell solrize about Cleavir. 2020-05-23T03:43:59Z minion: solrize: Cleavir: A project to create an implementation-independent compilation framework for Common Lisp. Currently Cleavir is part of SICL, but that might change in the future 2020-05-23T03:49:32Z solrize: do you have a writeup about cleavir? 2020-05-23T03:49:39Z solrize: well lemme look in docs dir 2020-05-23T03:49:50Z beach: yes, there is a Documentation subdirectory. 2020-05-23T03:49:55Z solrize: yeah looking 2020-05-23T03:49:57Z beach: It is unfortunately a bit out of date. 2020-05-23T03:50:08Z beach: Also, there are two version of Cleavir now. 2020-05-23T03:50:20Z beach: We will merge them in the future. 2020-05-23T03:50:30Z solrize: i don't see a compiler doc 2020-05-23T03:50:49Z beach: SICL/Code/Cleavir/Documentation/ 2020-05-23T03:50:53Z solrize: ah ok 2020-05-23T03:50:56Z beach: ... should be it. 2020-05-23T03:51:24Z beach: But it evolves a lot, so the documentation is lagging behind. 2020-05-23T03:51:36Z beach: Not that it matter for understanding the basic idea(s). 2020-05-23T03:52:14Z solrize: hmmm some tex fonts missing 2020-05-23T03:52:31Z beach: There is nothing special about Cleavir in terms of compiler technology. We are mostly applying existing techniques, with adaptations for Common Lisp particularities. 2020-05-23T03:53:03Z beach: What is special about it is that it can be configured to different Common Lisp implementations. 2020-05-23T03:54:08Z Bike quit (Quit: leaving) 2020-05-23T03:54:40Z beach: So, Cleavir is currently used by Clasp and SICL, but karlosz wrote a Cleavir-based compiler for CLISP as well, demonstrating that it is really independent of the Common Lisp implementation. 2020-05-23T03:55:02Z beach: And, as I said, I plan to use it to analyze Common Lisp code in an editor buffer. 2020-05-23T03:56:02Z beach: solrize: It may look like I am addressing you specifically with this information, but it doesn't hurt to remind other #lisp participants from time to time. 2020-05-23T03:56:38Z bhartrihari left #lisp 2020-05-23T03:56:45Z bhartrihari joined #lisp 2020-05-23T03:59:08Z shifty quit (Ping timeout: 272 seconds) 2020-05-23T03:59:17Z shifty joined #lisp 2020-05-23T03:59:49Z pjb joined #lisp 2020-05-23T04:00:51Z solrize: nice... i'm trying to install enough tex fonts to typeset the cleavir docs 2020-05-23T04:00:56Z solrize: what is clasp? 2020-05-23T04:01:25Z beach: minion: Please tell solrize about Clasp. 2020-05-23T04:01:25Z minion: solrize: Clasp: An implementation of Common Lisp that interoperates smoothly with C++ and uses LLVM to generate native code 2020-05-23T04:01:43Z solrize: oh interesting i didn't know about that 2020-05-23T04:02:41Z solrize: ok i made the pdf 2020-05-23T04:05:35Z solrize: looking at it 2020-05-23T04:07:00Z beach: All this configuration I am talking about is achieved using generic functions and often auxiliary methods on those generic functions. So we are using the full Common Lisp language. It means that, if you build a Common Lisp implementation from scratch from (say) C or C++, then you need a temporary evaluator written in that language before you can bootstrap a Cleavir-based compiler. 2020-05-23T04:07:08Z beach: That's what Clasp and CLISP are both doing. 2020-05-23T04:07:21Z solrize: it's reasonable to write CL compilers in CL 2020-05-23T04:07:32Z solrize: e.g. start with clisp or something 2020-05-23T04:07:52Z notzmv joined #lisp 2020-05-23T04:08:12Z beach: But SICL is unique in that it is written entirely in Common Lisp. And while it is trivial to write a compiler for a traditional file-translating compiler, it is a very different matter to write an entire Common Lisp system in Common Lisp. 2020-05-23T04:09:10Z beach: There are several reasons for that, but mainly, the Common Lisp system is a web of mutual modules. 2020-05-23T04:09:13Z solrize: it's perfectly fine as long as you have something you can bootstrap from 2020-05-23T04:09:26Z solrize: or is there more to it than that, hmm 2020-05-23T04:09:33Z beach: The reader and the compiler can call the evaluator, for instance. 2020-05-23T04:11:24Z solrize: something like this comes up in forth metacompilation 2020-05-23T04:12:18Z solrize: bbiab, incoming phone call. these docs are really good 2020-05-23T04:12:28Z beach: Also, pretty much every Common Lisp system in existence started life as a CLtL1 language, and CLOS was then "bolted on" for ANSI compliance. Typically using "PCL" (Portable Common Loops) to implement CLOS. 2020-05-23T04:13:31Z beach: But that makes the code ugly, and less maintainable. Even the SBCL compiler is written without the use of generic functions and standard classes (apparently. I haven't looked at the details). 2020-05-23T04:14:24Z beach: With SICL, I wanted to take advantage of MOP technology to create most of the system. So the bootstrapping technique is unique, in that it starts by creating the MOP class hierarchy. 2020-05-23T04:22:52Z akrl quit (Read error: Connection reset by peer) 2020-05-23T04:22:53Z dddddd quit (Ping timeout: 258 seconds) 2020-05-23T04:23:02Z akrl joined #lisp 2020-05-23T04:23:53Z beach: seok: Two of us are kind of paid to work on SICL. I am a researcher and SICL is my main research project, so I have my salary. And Bike is hired by drmeister to work on the Cleavir compiler framework, especially in the context of Clasp, of course, but in practice there is a lot of general Cleavir work that must be done for that, like compiler optimizations. 2020-05-23T04:28:47Z bhartrihari left #lisp 2020-05-23T04:28:52Z bhartrihari joined #lisp 2020-05-23T04:29:53Z solrize: oh cool i didn't realize there was still any CL research going on anywhere 2020-05-23T04:30:19Z beach: As I often say, 15 or so papers since 2014. 2020-05-23T04:31:04Z beach: Another place where Common Lisp research is done is Epita in Paris, where Didier Verna and Jim Newton work. 2020-05-23T04:31:27Z beach: They have had important papers (and theses etc) in the past few years. 2020-05-23T04:32:08Z beach: But yeah, for a dead language, there is a lot of activity. 2020-05-23T04:32:36Z solrize: there's still a few forth conferences every year 2020-05-23T04:32:59Z pjb quit (Ping timeout: 272 seconds) 2020-05-23T04:35:33Z wxie joined #lisp 2020-05-23T04:36:33Z gko joined #lisp 2020-05-23T04:38:47Z beach: Anyway, enough rants for a while, I think. 2020-05-23T04:40:30Z shifty quit (Ping timeout: 256 seconds) 2020-05-23T04:42:26Z bhartrihari left #lisp 2020-05-23T04:42:32Z bhartrihari joined #lisp 2020-05-23T04:50:55Z solrize: heh 2020-05-23T04:51:07Z solrize: i think i built all the pdfs and can upload a tarball if you want it 2020-05-23T04:52:32Z beach: That's fine. They might already be on metamodular.com somewhere. But thanks for the offer. 2020-05-23T04:52:37Z solrize: np 2020-05-23T04:54:09Z beach: I need to organize the documentation and the papers on metamodular.com so that they are more easily accessible, but I am too busy with bootstrapping to concentrate on that. 2020-05-23T04:55:24Z saravia quit (Quit: saravia is afk) 2020-05-23T04:59:30Z no-defun-allowed: Do you have a list of the files in metamodular.com/SICL/ at least? 2020-05-23T04:59:50Z beach: I don't :( 2020-05-23T05:00:11Z solrize: the doc files? i just used "find" to locate all the tex files, then ran the makefiles in the directories where they were 2020-05-23T05:00:29Z solrize: and i had to install a bunch of different tex and metafont packages because debian splinters everything into tiny fragments 2020-05-23T05:00:40Z solrize: but now i have all the pdfs in one place 2020-05-23T05:00:43Z beach: People want a web page with PDFs. 2020-05-23T05:01:07Z solrize: https://i.solrize.net/sicl-pdf.tar 2020-05-23T05:01:15Z beach: Great! 2020-05-23T05:01:29Z solrize: hmm some might be missing 2020-05-23T05:01:36Z solrize: but that's a start 2020-05-23T05:01:45Z beach: Yeah, thanks. 2020-05-23T05:02:10Z solrize: oh ok that's just from the Papers directory 2020-05-23T05:02:54Z wxie quit (Ping timeout: 240 seconds) 2020-05-23T05:06:36Z farooqkz__ joined #lisp 2020-05-23T05:08:49Z mangul quit (Ping timeout: 246 seconds) 2020-05-23T05:09:29Z pjb joined #lisp 2020-05-23T05:13:52Z sauvin joined #lisp 2020-05-23T05:22:23Z wxie joined #lisp 2020-05-23T05:28:04Z stylewarning: What’s new in Lisp land 2020-05-23T05:28:19Z no-defun-allowed: Hello stylewarning 2020-05-23T05:28:23Z terpri quit (Remote host closed the connection) 2020-05-23T05:28:25Z stylewarning: Hello hello 2020-05-23T05:28:44Z no-defun-allowed: Here is something new: (make-array 10) 2020-05-23T05:29:43Z no-defun-allowed: I think the CLHS uses the adjective "fresh" for objects that were newly created, but that's new. 2020-05-23T05:29:55Z stylewarning: no-defun-allowed: Is it truly new or are you serving me certified pre-owned memory 2020-05-23T05:30:06Z terpri joined #lisp 2020-05-23T05:30:27Z no-defun-allowed: stylewarning: refurbished, 24 hour burn in test, no visible damage 2020-05-23T05:30:34Z stylewarning: yeah the used car salesman also told me this 1996 Buick is “fresh” too 2020-05-23T05:31:42Z no-defun-allowed: You see, I'm a CDR saleswoman, not a CAR salesman. CDRs are way cooler. 2020-05-23T05:32:25Z stylewarning: I found a music video about Lisp’s garbage collector: https://youtu.be/-UfsEj7AOGI 2020-05-23T05:32:49Z stylewarning: (The cons cells talk) 2020-05-23T05:35:41Z no-defun-allowed: What a weird collector, it only recycles CARs. 2020-05-23T05:41:48Z Oladon quit (Quit: Leaving.) 2020-05-23T05:42:44Z gravicappa joined #lisp 2020-05-23T05:43:17Z pjb quit (Ping timeout: 272 seconds) 2020-05-23T05:48:47Z andrei-n joined #lisp 2020-05-23T05:48:57Z agspathis joined #lisp 2020-05-23T05:52:53Z akoana left #lisp 2020-05-23T05:58:44Z ober: but always O(1) 2020-05-23T06:08:10Z phoe: good morning 2020-05-23T06:08:25Z beach: Hello phoe. 2020-05-23T06:10:06Z ober: morning phoe 2020-05-23T06:13:54Z pjb joined #lisp 2020-05-23T06:17:38Z bhartrihari left #lisp 2020-05-23T06:17:41Z bhartrihari joined #lisp 2020-05-23T06:19:33Z shifty joined #lisp 2020-05-23T06:20:37Z wxie quit (Ping timeout: 260 seconds) 2020-05-23T06:28:40Z bhartrihari left #lisp 2020-05-23T06:28:42Z bhartrihari joined #lisp 2020-05-23T06:36:55Z bhartrihari left #lisp 2020-05-23T06:45:45Z bhartrihari joined #lisp 2020-05-23T06:46:32Z pjb quit (Ping timeout: 260 seconds) 2020-05-23T06:52:16Z pve joined #lisp 2020-05-23T07:03:07Z nullman quit (Ping timeout: 265 seconds) 2020-05-23T07:03:22Z nullman joined #lisp 2020-05-23T07:03:59Z bhartrihari left #lisp 2020-05-23T07:08:52Z beach: This page: metamodular.com/CLOS-MOP/initialization-of-generic-function-metaobjects.html says that the :method-combination argument is a method-combination metaobject. But it also says that "Unless there is a specific not to the contrary, then during reinitialization, if an initialization argument is not supplied, the previously stored value is left unchanged". 2020-05-23T07:08:53Z beach: So I take that to mean that it has to be supplied during initialization, and it should not be checked during reinitialization. Am I right? 2020-05-23T07:10:31Z beach: Hmm, no wait. 2020-05-23T07:10:44Z beach: It CAN be supplied during reinitialization as well. 2020-05-23T07:11:52Z beach: OK, so it should be type checked during reinitialization if provided. And it should be verified that it *is* provided during initialization. 2020-05-23T07:23:49Z pjb joined #lisp 2020-05-23T07:28:12Z liberliver1 joined #lisp 2020-05-23T07:30:20Z heisig joined #lisp 2020-05-23T07:30:49Z liberliver quit (Ping timeout: 264 seconds) 2020-05-23T07:30:49Z liberliver1 is now known as liberliver 2020-05-23T07:31:46Z shifty quit (Ping timeout: 260 seconds) 2020-05-23T07:32:35Z shifty joined #lisp 2020-05-23T07:36:07Z sdumi quit (Ping timeout: 260 seconds) 2020-05-23T07:40:32Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-23T07:42:08Z sdumi joined #lisp 2020-05-23T07:48:02Z rgherdt joined #lisp 2020-05-23T07:49:56Z RukiSama joined #lisp 2020-05-23T07:51:32Z toorevitimirp quit (Remote host closed the connection) 2020-05-23T07:51:58Z toorevitimirp joined #lisp 2020-05-23T07:52:54Z RukiSama_ quit (Ping timeout: 265 seconds) 2020-05-23T07:56:30Z bhartrihari joined #lisp 2020-05-23T08:03:41Z shifty quit (Ping timeout: 258 seconds) 2020-05-23T08:04:12Z gaqwas quit (Changing host) 2020-05-23T08:04:13Z gaqwas joined #lisp 2020-05-23T08:04:17Z shifty joined #lisp 2020-05-23T08:05:18Z sdumi quit (Ping timeout: 256 seconds) 2020-05-23T08:06:27Z sdumi joined #lisp 2020-05-23T08:08:32Z nullman quit (Ping timeout: 256 seconds) 2020-05-23T08:09:00Z nullman joined #lisp 2020-05-23T08:11:41Z emys joined #lisp 2020-05-23T08:17:59Z sdumi quit (Ping timeout: 260 seconds) 2020-05-23T08:20:49Z sdumi joined #lisp 2020-05-23T08:22:45Z mibr joined #lisp 2020-05-23T08:27:59Z ralt joined #lisp 2020-05-23T08:33:17Z Inline joined #lisp 2020-05-23T08:38:01Z shifty quit (Ping timeout: 264 seconds) 2020-05-23T08:38:19Z shifty joined #lisp 2020-05-23T08:40:44Z cage_ joined #lisp 2020-05-23T08:41:51Z solrize: stylewarning, you probably saw this already, but if not... https://youtu.be/HM1Zb3xmvMc 2020-05-23T08:42:11Z stylewarning: :) 2020-05-23T08:45:05Z phoe: stylewarning: you probably uploa^Wsaw this already, but if now... https://youtu.be/e_Rih95korc 2020-05-23T08:45:46Z rogersm joined #lisp 2020-05-23T08:46:57Z stylewarning: Wow, after watching that, Common Lisp suddenly makes sense to me! 2020-05-23T08:48:10Z solrize: oh wow lol 2020-05-23T08:48:19Z solrize: i can't watch that no (no sound) but later 2020-05-23T08:48:20Z bhartrihari left #lisp 2020-05-23T08:48:23Z bhartrihari joined #lisp 2020-05-23T08:48:25Z rogersm quit (Client Quit) 2020-05-23T08:49:13Z solrize: https://www.youtube.com/watch?v=u-7qFAuFGao try this though 2020-05-23T08:53:19Z hiroaki_ quit (Ping timeout: 265 seconds) 2020-05-23T08:59:20Z Fade quit (Ping timeout: 272 seconds) 2020-05-23T08:59:28Z Fade joined #lisp 2020-05-23T09:03:13Z agspathis quit (Quit: ERC (IRC client for Emacs 28.0.50)) 2020-05-23T09:18:56Z emys quit (Ping timeout: 265 seconds) 2020-05-23T09:22:50Z emys joined #lisp 2020-05-23T09:23:49Z orivej joined #lisp 2020-05-23T09:24:27Z sirmacik joined #lisp 2020-05-23T09:30:42Z emys quit (Ping timeout: 256 seconds) 2020-05-23T09:31:54Z orivej quit (Read error: Connection reset by peer) 2020-05-23T09:32:03Z orivej_ joined #lisp 2020-05-23T09:33:00Z toorevitimirp quit (Ping timeout: 258 seconds) 2020-05-23T09:34:22Z anticrisis quit (Quit: Leaving) 2020-05-23T10:00:13Z heisig quit (Ping timeout: 264 seconds) 2020-05-23T10:04:04Z frgo quit (Remote host closed the connection) 2020-05-23T10:04:38Z frgo joined #lisp 2020-05-23T10:07:09Z z147 joined #lisp 2020-05-23T10:07:32Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-23T10:08:42Z orivej joined #lisp 2020-05-23T10:11:03Z karlosz quit (Quit: karlosz) 2020-05-23T10:12:45Z hiroaki joined #lisp 2020-05-23T10:14:20Z z147 quit (Remote host closed the connection) 2020-05-23T10:15:10Z easye quit (Remote host closed the connection) 2020-05-23T10:16:31Z easye joined #lisp 2020-05-23T10:19:10Z wxie joined #lisp 2020-05-23T10:21:12Z orivej quit (Ping timeout: 260 seconds) 2020-05-23T10:21:23Z orivej joined #lisp 2020-05-23T10:23:15Z heisig joined #lisp 2020-05-23T10:30:47Z cosimone joined #lisp 2020-05-23T10:32:35Z orivej_ joined #lisp 2020-05-23T10:34:42Z orivej quit (Ping timeout: 260 seconds) 2020-05-23T10:38:06Z EvW1 joined #lisp 2020-05-23T10:38:50Z srji joined #lisp 2020-05-23T10:41:06Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-23T10:41:12Z orivej joined #lisp 2020-05-23T10:42:12Z pjb quit (Ping timeout: 260 seconds) 2020-05-23T10:44:15Z Bourne joined #lisp 2020-05-23T10:45:10Z wxie quit (Remote host closed the connection) 2020-05-23T10:45:48Z fourier joined #lisp 2020-05-23T10:50:26Z wxie joined #lisp 2020-05-23T10:51:25Z pjb joined #lisp 2020-05-23T10:56:09Z pjb quit (Ping timeout: 272 seconds) 2020-05-23T11:02:57Z wxie quit (Ping timeout: 260 seconds) 2020-05-23T11:08:36Z pjb joined #lisp 2020-05-23T11:13:05Z random-nick joined #lisp 2020-05-23T11:17:12Z fourier quit (Ping timeout: 260 seconds) 2020-05-23T11:25:33Z akoana joined #lisp 2020-05-23T11:26:45Z gxt__ joined #lisp 2020-05-23T11:28:30Z Bourne quit (Ping timeout: 256 seconds) 2020-05-23T11:28:34Z shifty quit (Ping timeout: 256 seconds) 2020-05-23T11:29:38Z shifty joined #lisp 2020-05-23T11:30:22Z toorevitimirp joined #lisp 2020-05-23T11:38:08Z orivej quit (Ping timeout: 256 seconds) 2020-05-23T11:38:26Z orivej joined #lisp 2020-05-23T11:45:37Z madage quit (Remote host closed the connection) 2020-05-23T11:47:12Z orivej quit (Ping timeout: 256 seconds) 2020-05-23T11:47:56Z orivej joined #lisp 2020-05-23T11:52:39Z toorevitimirp quit (Remote host closed the connection) 2020-05-23T11:55:42Z orivej quit (Ping timeout: 256 seconds) 2020-05-23T11:56:06Z orivej joined #lisp 2020-05-23T11:57:00Z toorevitimirp joined #lisp 2020-05-23T11:57:43Z ralt quit (Quit: Connection closed for inactivity) 2020-05-23T11:57:58Z quazimodo quit (Ping timeout: 256 seconds) 2020-05-23T12:02:44Z madage joined #lisp 2020-05-23T12:10:57Z EvW1 quit (Ping timeout: 244 seconds) 2020-05-23T12:17:52Z ralt joined #lisp 2020-05-23T12:22:56Z Bourne joined #lisp 2020-05-23T12:23:37Z toorevitimirp quit (Ping timeout: 264 seconds) 2020-05-23T12:23:59Z toorevitimirp joined #lisp 2020-05-23T12:27:48Z Bike joined #lisp 2020-05-23T12:29:47Z orivej_ joined #lisp 2020-05-23T12:31:55Z orivej quit (Ping timeout: 246 seconds) 2020-05-23T12:39:00Z sdumi quit (Ping timeout: 256 seconds) 2020-05-23T12:39:23Z Lord_of_Life_ joined #lisp 2020-05-23T12:40:04Z quazimodo joined #lisp 2020-05-23T12:41:27Z orivej joined #lisp 2020-05-23T12:41:38Z orivej_ quit (Ping timeout: 272 seconds) 2020-05-23T12:41:43Z Lord_of_Life quit (Ping timeout: 246 seconds) 2020-05-23T12:42:12Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-23T12:44:37Z sdumi joined #lisp 2020-05-23T12:46:46Z flazh quit (Read error: Connection reset by peer) 2020-05-23T12:47:21Z FreeBirdLjj joined #lisp 2020-05-23T12:48:25Z quazimod1 joined #lisp 2020-05-23T12:48:58Z quazimodo quit (Ping timeout: 256 seconds) 2020-05-23T12:50:02Z flazh joined #lisp 2020-05-23T12:58:26Z kpoeck joined #lisp 2020-05-23T13:05:06Z flazh quit (Quit: flazh) 2020-05-23T13:05:37Z orivej quit (Ping timeout: 265 seconds) 2020-05-23T13:05:37Z orivej_ joined #lisp 2020-05-23T13:09:14Z bhartrihari left #lisp 2020-05-23T13:09:21Z bhartrihari joined #lisp 2020-05-23T13:12:55Z Inline quit (Quit: Leaving) 2020-05-23T13:14:25Z apertus joined #lisp 2020-05-23T13:14:34Z Inline joined #lisp 2020-05-23T13:15:31Z apertus quit (Client Quit) 2020-05-23T13:16:32Z apertus joined #lisp 2020-05-23T13:24:11Z mangul joined #lisp 2020-05-23T13:25:27Z cosimone quit (Quit: Quit.) 2020-05-23T13:25:57Z cosimone joined #lisp 2020-05-23T13:26:17Z apertus quit (Remote host closed the connection) 2020-05-23T13:26:52Z farooqkz__ quit (Ping timeout: 246 seconds) 2020-05-23T13:31:02Z gabot quit (Ping timeout: 272 seconds) 2020-05-23T13:36:16Z arpunk joined #lisp 2020-05-23T13:36:31Z X-Scale` joined #lisp 2020-05-23T13:36:53Z KingOfCSU joined #lisp 2020-05-23T13:37:25Z X-Scale quit (Ping timeout: 264 seconds) 2020-05-23T13:37:26Z X-Scale` is now known as X-Scale 2020-05-23T13:41:06Z KingRiverLee joined #lisp 2020-05-23T13:42:13Z KingOfCSU quit (Ping timeout: 264 seconds) 2020-05-23T13:43:48Z gabot joined #lisp 2020-05-23T13:45:04Z X-Scale quit (Ping timeout: 246 seconds) 2020-05-23T13:45:35Z X-Scale` joined #lisp 2020-05-23T13:46:12Z X-Scale` is now known as X-Scale 2020-05-23T13:47:19Z dddddd joined #lisp 2020-05-23T13:50:50Z SGASAU joined #lisp 2020-05-23T13:54:22Z frgo quit (Remote host closed the connection) 2020-05-23T13:55:01Z frgo joined #lisp 2020-05-23T14:00:01Z SGASAU quit (Remote host closed the connection) 2020-05-23T14:00:47Z theseb joined #lisp 2020-05-23T14:01:15Z SGASAU joined #lisp 2020-05-23T14:01:27Z frgo_ joined #lisp 2020-05-23T14:01:41Z sdumi quit (Ping timeout: 265 seconds) 2020-05-23T14:04:11Z frgo quit (Ping timeout: 252 seconds) 2020-05-23T14:05:09Z sdumi joined #lisp 2020-05-23T14:09:13Z sdumi quit (Ping timeout: 246 seconds) 2020-05-23T14:10:39Z easye quit (Remote host closed the connection) 2020-05-23T14:11:11Z easye joined #lisp 2020-05-23T14:12:21Z sdumi joined #lisp 2020-05-23T14:19:57Z KingOfCSU joined #lisp 2020-05-23T14:23:13Z KingRiverLee quit (Ping timeout: 246 seconds) 2020-05-23T14:23:15Z toorevitimirp quit (Read error: Connection reset by peer) 2020-05-23T14:27:44Z ralt quit (Quit: Connection closed for inactivity) 2020-05-23T14:29:03Z Misha_B joined #lisp 2020-05-23T14:29:49Z igemnace joined #lisp 2020-05-23T14:30:08Z MerlinTheWizard joined #lisp 2020-05-23T14:30:50Z igemnace quit (Client Quit) 2020-05-23T14:36:51Z Josh_2: Afternoon all 2020-05-23T14:37:37Z Josh_2: how can I get the args list from a λ? 2020-05-23T14:37:45Z Josh_2: I just need It's length basically 2020-05-23T14:40:48Z Bike: from a lambda expression? from a function? what are you doing? 2020-05-23T14:41:37Z Josh_2: I want to make sure that a λ passed to a function has one argument 2020-05-23T14:41:43Z Josh_2: or requires one argument 2020-05-23T14:43:09Z Oladon joined #lisp 2020-05-23T14:44:16Z Inline: maybe you wanna set call-arguments-limit locally 2020-05-23T14:44:39Z Bike: oh, i see. you can't do that. 2020-05-23T14:44:57Z Bike: it's permissible for the implementation to drop that information to save space. 2020-05-23T14:45:14Z Bike: and please just say "function" if you mean function. 2020-05-23T14:45:20Z Josh_2: okay if I can't do it I can't do it ¯\_(ツ)_/¯ 2020-05-23T14:45:25Z Josh_2: no biggy 2020-05-23T14:45:46Z phoe: sometimes FUNCTION-LAMBDA-EXPRESSION will give you what you seek, but it doesn't have to 2020-05-23T14:46:49Z phoe: you could, however, try swank:operator-arglist that should work decently 2020-05-23T14:47:20Z Josh_2: nah It's alright, rather not have to depend on swank 2020-05-23T14:47:25Z Inline: bah, it's a constant 2020-05-23T14:47:55Z Inline: and can't be smaller than 50 anyway heh 2020-05-23T14:48:38Z Inline: same with lambda-parameters-limit 2020-05-23T14:48:44Z Inline: another constant 2020-05-23T14:49:23Z pjb quit (Ping timeout: 246 seconds) 2020-05-23T14:49:47Z Bike: operator-arglist and such are not intended for type checks, which is what this sounds like. they are necessarily not perfectly reliable. 2020-05-23T14:49:51Z axion: 50 2020-05-23T14:50:03Z bhartrihari left #lisp 2020-05-23T14:50:04Z axion: https://gist.github.com/mfiano/1a31ef23cdde03e17843e02ffbffa46f 2020-05-23T14:50:30Z phoe: yes, ABCL is surprisingly close to the standard limits 2020-05-23T14:50:38Z jmercouris: OR IS IT? 2020-05-23T14:50:41Z _death: just avoid doing what TRIVIA does.. it "tests" whether a function is unary by calling it with a single argument and expecting an error if it's not unary 2020-05-23T14:50:55Z jmercouris: OPTIMA > TRIVIA 2020-05-23T14:50:56Z phoe: _death: ...wtf 2020-05-23T14:51:02Z jmercouris: I knew it 2020-05-23T14:51:06Z jmercouris: even though Trivia is "fasteR" 2020-05-23T14:51:13Z Bike: that's about what you'd have to do, yeah 2020-05-23T14:51:28Z Bike: and, bonus, it has well defined behavior, unlike arglist things 2020-05-23T14:51:46Z jmercouris: Bike: you mentioned a reader macro to do what I was suggesting yesterday 2020-05-23T14:51:53Z jmercouris: Bike: could you please elaborate? 2020-05-23T14:52:26Z emys joined #lisp 2020-05-23T14:52:43Z _death: https://github.com/guicho271828/trivia/blob/167eee367bf1a80ee778be0fe9120dd45593e303/level2/derived-class.lisp#L311 2020-05-23T14:52:46Z Bike: you could define, like, a [packagename x] macro, which reads packagename, binds *package* to that package, and then reads and returns x 2020-05-23T14:52:54Z Bike: i don't think this is the right way to go about things, but it's possible, i think 2020-05-23T14:53:15Z Bike: _death: why does it even want to know this? 2020-05-23T14:53:27Z Bike: to find structure reader functions...? 2020-05-23T14:54:21Z _death: I guess.. it's been a while since I looked at that code 2020-05-23T14:56:45Z jmercouris: Bike: what is the "right way" in your opinion? 2020-05-23T14:56:58Z SGASAU quit (Ping timeout: 260 seconds) 2020-05-23T14:57:06Z bitmapper joined #lisp 2020-05-23T14:57:10Z jesse1010 joined #lisp 2020-05-23T14:57:16Z Bike: in-package, or put it in a different file, or whatnot 2020-05-23T14:57:22Z axion: jmercouris: Is this for a library or an application? 2020-05-23T14:57:30Z Bike: i haven't worked with parenscript much, tho 2020-05-23T14:57:32Z jmercouris: axion: por que no las dos? 2020-05-23T14:57:42Z jmercouris: axion: it is for both 2020-05-23T14:57:49Z axion: jmercouris: One reason this is not a good idea, is if this is for a library and your users are forced to annotate their source files using it with named-readtables nonsense to switch/restore the standard readtable 2020-05-23T14:58:51Z jmercouris: it is a library for other people using the same application 2020-05-23T14:58:58Z jmercouris: axion: are you familiar with our lord and savior? 2020-05-23T14:59:01Z jmercouris: I'm just kidding, Next browser? 2020-05-23T14:59:14Z jmercouris: axion: https://github.com/atlas-engineer/next 2020-05-23T14:59:18Z axion: <-- mfiano, jmercouris 2020-05-23T14:59:20Z jmercouris: it is for this source code, which authors of packages will use 2020-05-23T14:59:26Z jmercouris: axion: Oh I see 2020-05-23T14:59:31Z jmercouris: axion: why the username switch? 2020-05-23T15:00:26Z axion: I've had this name for a couple decades and use it ocassionally. No real reason. 2020-05-23T15:02:59Z axion: jmercouris: Every file that is loaded must switch out the standard readtable for yours, and then restore the standard readtable after it's done being used in that file. One way this is done is by your users bringing in the named-readtables dependency and annotating every file they load into their image that uses your custom reader macros. 2020-05-23T15:03:31Z jmercouris: sounds a bit painful 2020-05-23T15:03:55Z jmercouris: maybe a road I do not wish to go down... 2020-05-23T15:04:26Z axion: Yes. It isn't something I want to force on users 2020-05-23T15:04:40Z axion: I don't really write reader macros if I can help it. 2020-05-23T15:13:03Z bhartrihari joined #lisp 2020-05-23T15:13:33Z bhartrihari left #lisp 2020-05-23T15:13:42Z bhartrihari joined #lisp 2020-05-23T15:18:57Z flazh joined #lisp 2020-05-23T15:24:17Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-23T15:24:29Z pjb joined #lisp 2020-05-23T15:26:22Z ArthurStrong joined #lisp 2020-05-23T15:26:34Z emys quit (Ping timeout: 240 seconds) 2020-05-23T15:29:19Z madnificent joined #lisp 2020-05-23T15:30:10Z emys joined #lisp 2020-05-23T15:31:14Z loli quit (Quit: WeeChat 2.8) 2020-05-23T15:31:29Z loli joined #lisp 2020-05-23T15:31:48Z __jrjsmrtn__ joined #lisp 2020-05-23T15:32:42Z _jrjsmrtn quit (Ping timeout: 260 seconds) 2020-05-23T15:41:42Z Hawthorne joined #lisp 2020-05-23T15:41:49Z Hawthorne quit (Remote host closed the connection) 2020-05-23T15:42:18Z Snaffu joined #lisp 2020-05-23T15:42:42Z KingOfCSU quit (Remote host closed the connection) 2020-05-23T15:49:43Z bitmapper quit (Remote host closed the connection) 2020-05-23T15:53:26Z bitmapper joined #lisp 2020-05-23T15:56:59Z efm joined #lisp 2020-05-23T15:57:37Z pjb quit (Ping timeout: 272 seconds) 2020-05-23T15:58:36Z bitmapper quit (Ping timeout: 272 seconds) 2020-05-23T16:04:29Z ljavorsk joined #lisp 2020-05-23T16:12:39Z Snaffu quit (Remote host closed the connection) 2020-05-23T16:15:18Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-23T16:18:11Z sdumi quit (Ping timeout: 258 seconds) 2020-05-23T16:18:50Z ralt joined #lisp 2020-05-23T16:19:08Z sdumi joined #lisp 2020-05-23T16:22:52Z bhartrihari left #lisp 2020-05-23T16:23:02Z bhartrihari joined #lisp 2020-05-23T16:24:07Z bebop joined #lisp 2020-05-23T16:24:52Z bhartrihari left #lisp 2020-05-23T16:24:57Z bhartrihari joined #lisp 2020-05-23T16:27:31Z bhartrihari left #lisp 2020-05-23T16:27:37Z bhartrihari joined #lisp 2020-05-23T16:30:32Z gko quit (Ping timeout: 256 seconds) 2020-05-23T16:32:18Z pjb joined #lisp 2020-05-23T16:42:38Z emys quit (Ping timeout: 265 seconds) 2020-05-23T16:45:45Z Oladon quit (Quit: Leaving.) 2020-05-23T16:49:53Z emys joined #lisp 2020-05-23T16:51:18Z kpoeck quit (Remote host closed the connection) 2020-05-23T16:54:19Z cosimone quit (Quit: Quit.) 2020-05-23T16:55:10Z theseb quit (Quit: Leaving) 2020-05-23T16:57:52Z emys quit (Ping timeout: 260 seconds) 2020-05-23T16:59:09Z emys joined #lisp 2020-05-23T17:00:44Z bitmapper joined #lisp 2020-05-23T17:05:21Z EvW joined #lisp 2020-05-23T17:05:23Z pjb quit (Ping timeout: 272 seconds) 2020-05-23T17:09:03Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-23T17:15:20Z bhartrihari left #lisp 2020-05-23T17:15:25Z bhartrihari joined #lisp 2020-05-23T17:20:12Z fmcs joined #lisp 2020-05-23T17:20:54Z bebop quit (Ping timeout: 240 seconds) 2020-05-23T17:24:35Z Inline quit (Ping timeout: 260 seconds) 2020-05-23T17:25:49Z MerlinTheWizard joined #lisp 2020-05-23T17:27:49Z bhartrihari left #lisp 2020-05-23T17:29:46Z Josh_2: So I have a function that can signal a custom condition which isn't handled intentionally, I should export this one right? I have another custom condition but this one is handled by the library itself, should I export that one anyway? 2020-05-23T17:30:19Z stylewarning: Josh_2: The former, yes. Export the condition and any methods to access the condition. They should be readers. 2020-05-23T17:30:39Z stylewarning: Josh_2: If the second condition will never make its way out of the library, don’t export it, but do document it. 2020-05-23T17:31:08Z stylewarning: (And add to its :REPORT that you should never see this condition, otherwise it’s a bug in the library) 2020-05-23T17:33:20Z Josh_2: Okay thanks :) 2020-05-23T17:34:23Z jw4 quit (Read error: Connection reset by peer) 2020-05-23T17:36:38Z jw4 joined #lisp 2020-05-23T17:37:33Z xuxuru joined #lisp 2020-05-23T17:38:07Z rgherdt quit (Ping timeout: 260 seconds) 2020-05-23T17:38:16Z pjb joined #lisp 2020-05-23T17:39:31Z rogersm joined #lisp 2020-05-23T17:43:46Z emys quit (Quit: Leaving) 2020-05-23T17:46:17Z holycow joined #lisp 2020-05-23T17:47:49Z madnificent quit (Ping timeout: 272 seconds) 2020-05-23T17:48:27Z fmcs left #lisp 2020-05-23T17:49:06Z Josh_2: https://github.com/K1D77A/validate-list can anyone do a quick review of my code please? there is only 1 file in src/validate-list.lisp 2020-05-23T17:52:48Z phoe: the docstring in the README could use some formatting, such as being in a markdown quote instead of an inline code block 2020-05-23T17:52:55Z phoe: but that's a nitpick 2020-05-23T17:53:12Z Shinmera wishes there was a way to add docstrings for restarts 2020-05-23T17:53:45Z Josh_2: alrighty 2020-05-23T17:53:48Z Shinmera: Hmmm, I suppose if I ever get around to the protocol for local definitions in... Definitions, that might be a place to store that. 2020-05-23T17:53:49Z phoe: restarts are dynamic extent though 2020-05-23T17:53:53Z Shinmera: I am aware. 2020-05-23T17:53:56Z phoe: you mean restart names? 2020-05-23T17:54:27Z Shinmera: Same difference from the perspective of documentation. 2020-05-23T17:54:57Z phoe: oh! for restart names that would work, sure 2020-05-23T17:55:40Z Shinmera: So far I've been putting it into relevant functions and conditions, but I've always wanted to have it separate too. 2020-05-23T17:56:08Z phoe: ...I guess that for restarts too, but only if the docstrings were stored on the restart objects themselves - having them in a separate hashtable of any sort is nigh impossible because of DX 2020-05-23T17:56:14Z phoe: s/restarts/restart instances/ 2020-05-23T17:57:18Z phoe: plus it would be non-standard, since you'd need to define a method on #'documentation with specializers (t (eql 'restart)) or (restart (eql 'restart)) which is foreboden 2020-05-23T17:57:54Z Shinmera: Luckily I don't have to worry about that in Definitions 2020-05-23T17:58:06Z phoe: yes 2020-05-23T18:01:18Z madage quit (Remote host closed the connection) 2020-05-23T18:01:36Z stylewarning: Josh_2: how do you want it reviewed? It would have been easier if you made a PR to your own library (: 2020-05-23T18:01:51Z holycow: do you guys use code folding? just curious if there are any recommended packages. 2020-05-23T18:03:01Z stylewarning: holycow: I don’t 2020-05-23T18:03:22Z holycow: k. appreciate the feedback. 2020-05-23T18:03:54Z stylewarning: It might be nice to fold top level forms with a preview 2020-05-23T18:04:04Z phoe: holycow: hide-show-mode in emacs 2020-05-23T18:04:13Z Josh_2: stylewarning: a pr? 2020-05-23T18:04:17Z holycow: aha, let me try that 2020-05-23T18:04:25Z stylewarning: Josh_2: a github pull request 2020-05-23T18:04:42Z Josh_2: oh, no I just wanted someone to look over it and make sure I havent done anything obviously wrong 2020-05-23T18:05:06Z stylewarning: Nothing seems obviously wrong but there are many areas for improvement 2020-05-23T18:05:12Z stylewarning: But mostly miscellaneous 2020-05-23T18:05:52Z Josh_2: like what? 2020-05-23T18:07:06Z stylewarning: For instance, HANDLE-OR can be implemented with a single FIND call 2020-05-23T18:08:02Z stylewarning: CALL-THE-RIGHT-... can be chances to just FUN-FOR-SYM which returns the function to call 2020-05-23T18:08:35Z orivej_ quit (Ping timeout: 258 seconds) 2020-05-23T18:08:44Z stylewarning: which means you can further refactor by putting these sym/fun pairs in a DEFVAR allowing runtime extension of new kinds of validators 2020-05-23T18:08:47Z orivej joined #lisp 2020-05-23T18:09:08Z stylewarning: chances -> changed* 2020-05-23T18:09:16Z Josh_2: hmm I did think about doing that 2020-05-23T18:09:31Z stylewarning: I’d put tests in a separate file 2020-05-23T18:09:44Z Josh_2: but I'd already written it when I had the "d'oh" moment, so I just added a quick way to extend the functionality with new symbols 2020-05-23T18:10:17Z Josh_2: But if you think It's a better idea to return a function associated with a keyword then I'll do that instead 2020-05-23T18:10:17Z stylewarning: MAP-PLIST isn’t so efficient with repeated calls to NTH. You should traverse the list just once. 2020-05-23T18:10:43Z Josh_2: alrighty 2020-05-23T18:11:44Z stylewarning: HANDLE-SATISFIES: the LIST case I’d do (some #'handle-satisfies func) 2020-05-23T18:12:12Z Josh_2: oh right smart 2020-05-23T18:12:33Z holycow: that works great, thaks phoe 2020-05-23T18:13:18Z stylewarning: https://github.com/K1D77A/validate-list/blob/master/src/validate-list.lisp#L180 2020-05-23T18:13:33Z bhartrihari joined #lisp 2020-05-23T18:13:42Z stylewarning: 180-182 can be changed to just (check-type maxlen (integer 1)) 2020-05-23T18:14:19Z stylewarning: The type (integer a b) represents integers between A and B inclusive. If you leave off B then it’s all integers greater or equal to A 2020-05-23T18:14:41Z stylewarning: So (integer 1) is all integers greater or equal to 1 2020-05-23T18:14:45Z Josh_2: awesome :) 2020-05-23T18:15:03Z stylewarning: Similarly to MINLEN 2020-05-23T18:15:56Z Josh_2: okay noted! 2020-05-23T18:16:51Z stylewarning: I think docstrings should be full and complete capitalized sentences 2020-05-23T18:17:09Z stylewarning: Docstrings can be several paragraphs. Don’t be afraid to add new lines 2020-05-23T18:17:30Z Josh_2: Alrighty 2020-05-23T18:18:08Z stylewarning: Here is an example of my style of docstring https://github.com/stylewarning/cl-permutation/blob/master/src/permutation-group.lisp#L41 2020-05-23T18:18:33Z stylewarning: Capitalize arg and func names, heaping of paragraphs, sometimes illustrative examples 2020-05-23T18:19:00Z Jeanne-Kamikaze joined #lisp 2020-05-23T18:19:10Z Josh_2: Okay thats a very smart idea 2020-05-23T18:19:18Z Josh_2: makes it more clear. I will do that in the future 2020-05-23T18:21:51Z stylewarning: I think those are the major things I’d note 2020-05-23T18:22:04Z Josh_2: okay well I'll get to fixing those up. I really appreciate it! 2020-05-23T18:23:14Z rgherdt joined #lisp 2020-05-23T18:25:47Z madage joined #lisp 2020-05-23T18:28:03Z kpoeck joined #lisp 2020-05-23T18:29:27Z orivej_ joined #lisp 2020-05-23T18:29:56Z orivej quit (Ping timeout: 265 seconds) 2020-05-23T18:35:03Z dsmith quit (Read error: Connection reset by peer) 2020-05-23T18:35:16Z mangul quit (Ping timeout: 256 seconds) 2020-05-23T18:40:52Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-23T18:41:07Z orivej joined #lisp 2020-05-23T18:41:10Z holycow quit (Quit: leaving) 2020-05-23T18:41:11Z seok: Can I define a class only within a local scope? like within a let? 2020-05-23T18:42:02Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-23T18:42:05Z axion: WHy would you want to? 2020-05-23T18:42:09Z SGASAU joined #lisp 2020-05-23T18:42:50Z bhartrihari left #lisp 2020-05-23T18:42:55Z bhartrihari joined #lisp 2020-05-23T18:43:31Z FreeBirdLjj joined #lisp 2020-05-23T18:44:44Z Bike: you can make anonymous classes however you want, but there is no lexical binding of types or classes 2020-05-23T18:44:57Z Bike: i can think of some hacks to do that, maybe, but i wouldn't 2020-05-23T18:45:04Z shifty quit (Ping timeout: 256 seconds) 2020-05-23T18:45:43Z aeth: put it in an UNWIND-PROTECT? 2020-05-23T18:45:58Z Bike: that would be dynamic 2020-05-23T18:46:36Z aeth: LET can do local, dynamic variables. 2020-05-23T18:46:47Z stylewarning: seok: I always thought this was a sort of oddball idea. 2020-05-23T18:47:02Z seok: axion: https://github.com/fukamachi/mito mito forces me to make a seperate class for each table 2020-05-23T18:47:12Z stylewarning: seok: What would be the utility of a class defined lexically? 2020-05-23T18:47:44Z axion: That's usually the case with an ORM. What is it you think should be different? 2020-05-23T18:48:31Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-23T18:48:47Z mangul joined #lisp 2020-05-23T18:49:02Z seok: it is a bit annoying to refer to each class by symbol when working with multiple tables with same columns 2020-05-23T18:49:40Z stylewarning: Im not sure how this library works, but classes can have the same accessor function names 2020-05-23T18:50:15Z seok: for example when I write a loop to do the same operation on multiple tables 2020-05-23T18:50:18Z stylewarning: (defclass A () ((x :reader x))) (defclass B () ((x :reader x))) 2020-05-23T18:50:28Z stylewarning: You can call the function x on both instances of A and B 2020-05-23T18:50:29Z seok: How do I refer to each class definition? 2020-05-23T18:51:22Z seok: (eval 'symbol) ? 2020-05-23T18:51:49Z stylewarning: What is symbol referring to here? 2020-05-23T18:51:56Z axion: FIND-CLASS 2020-05-23T18:51:59Z seok: the symbol is the class definition 2020-05-23T18:52:07Z seok: axion: ah 2020-05-23T18:52:33Z axion: It sounds like you want a macro or a more correct database schema 2020-05-23T18:54:14Z SGASAU quit (Remote host closed the connection) 2020-05-23T18:54:23Z seok: (find-class 'audusd) this works 2020-05-23T18:54:32Z seok: (find-class (make-symbol "AUDUSD")) but this does not work 2020-05-23T18:54:50Z stylewarning: The symbol needs to be from the right package 2020-05-23T18:54:54Z SGASAU joined #lisp 2020-05-23T18:55:07Z axion: MAKE-SYMBOL is not what you want 2020-05-23T18:55:32Z seok: What do I want 2020-05-23T18:55:44Z FreeBirdLjj joined #lisp 2020-05-23T18:56:09Z stylewarning: (find-symbol "BLAH" :your-package) 2020-05-23T18:56:20Z msk joined #lisp 2020-05-23T18:56:26Z axion: 'audusd will instruct the parser to intern a symbol on the first invocation, and reuse it thereafter. 2020-05-23T18:56:36Z axion: If you want to intern into some package, use INTERN 2020-05-23T18:56:56Z seok: ah (find-class (intern "AUDUSD")) works 2020-05-23T18:56:58Z seok: yes 2020-05-23T18:57:17Z stylewarning: I don’t recommend using INTERN unless you really know what you’re doing 2020-05-23T18:57:18Z seok: thanks, cheers stylewarning axion 2020-05-23T18:57:19Z axion: It sounds like you are doing things very wrong 2020-05-23T18:57:28Z stylewarning: This is how you get the famed memory leaks that people complain about 2020-05-23T18:57:30Z seok: I should not use this? 2020-05-23T18:57:41Z stylewarning: Use FIND-SYMBOL 2020-05-23T18:57:50Z seok: I don't know what I'm doing, just want to convert strings to symbols 2020-05-23T18:58:04Z stylewarning: Symbols that already exist somewhere else? 2020-05-23T18:58:12Z stylewarning: (Like class names?) 2020-05-23T18:58:15Z axion: Strings don't have enough information to be converted into symbols. 2020-05-23T18:58:26Z SGASAU quit (Remote host closed the connection) 2020-05-23T18:58:29Z axion: You also have to decide on the package 2020-05-23T18:58:50Z seok: I have this macro to make table which uses intern 2020-05-23T18:58:50Z seok: https://pastebin.com/EqW8nbUY 2020-05-23T18:59:12Z seok: Here symbol does not exist so I cannot use find-symbol 2020-05-23T18:59:30Z stylewarning: Ok that’s fine 2020-05-23T18:59:52Z SGASAU joined #lisp 2020-05-23T18:59:55Z stylewarning: Why not give it a symbol in the first place? 2020-05-23T18:59:58Z stylewarning: Why a string? 2020-05-23T19:00:11Z axion: ',pair 2020-05-23T19:00:17Z axion: oh string 2020-05-23T19:00:22Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-23T19:00:45Z axion: Yeah I don't see why you would go through the trouble of using a string here 2020-05-23T19:01:08Z seok: guess it's easier to convert symbol to string eh? 2020-05-23T19:01:20Z axion: You don't need to 2020-05-23T19:01:32Z seok: I need a string version for a format somewhere else 2020-05-23T19:01:33Z axion: Symbols have cells, one of them is there name, as a string 2020-05-23T19:01:36Z axion: their* 2020-05-23T19:01:41Z seok: Have a crawler for url 2020-05-23T19:01:52Z axion: Symbols are objects like everything else in CL. Inspect one sometime 2020-05-23T19:02:20Z terpri quit (Remote host closed the connection) 2020-05-23T19:02:27Z stylewarning: seok: (SYMBOL-NAME s) gives the string 2020-05-23T19:02:39Z seok: yes it does 2020-05-23T19:02:45Z seok: I think i used intern when writing that 2020-05-23T19:02:46Z terpri joined #lisp 2020-05-23T19:02:52Z seok: because I could not get macro to work with symbol 2020-05-23T19:03:08Z seok: https://pastebin.com/T2dyyn1s 2020-05-23T19:03:14Z farooqkz__ joined #lisp 2020-05-23T19:03:18Z seok: This for symbol version does not work with 'symbol input 2020-05-23T19:03:33Z stylewarning: You don’t quote it 2020-05-23T19:03:36Z stylewarning: It’s a macro 2020-05-23T19:03:58Z stylewarning: (make-table my-cool-table) 2020-05-23T19:04:22Z seok: Ah 2020-05-23T19:05:20Z seok: then how would i call the macro in a loop? 2020-05-23T19:05:27Z rogersm quit (Quit: Leaving...) 2020-05-23T19:05:52Z mangul quit (Ping timeout: 256 seconds) 2020-05-23T19:06:12Z seok: I don't think this works when I want to use variables for pair 2020-05-23T19:06:20Z axion: This macro doesn't evaluate it's argument 2020-05-23T19:06:27Z seok: exactly 2020-05-23T19:06:30Z axion: So you cannot evaluate a variable binding 2020-05-23T19:06:36Z axion: You would need a macro for that 2020-05-23T19:07:02Z stylewarning: (defmacro make-lots-of-tables (&rest names) `(progn ,@(loop for name in names collect `(make-table ,name)))) 2020-05-23T19:07:18Z stylewarning: (make-lots-of-tables billy joe bob) 2020-05-23T19:09:31Z seok: Yeah.. so I need another macro layer on top of it? 2020-05-23T19:09:53Z seok: Then isn't it simpler to use string? 2020-05-23T19:10:39Z axion: You cannot use a string 2020-05-23T19:10:49Z stylewarning: Symbol v string is inconsequential 2020-05-23T19:10:59Z stylewarning: A string doesn’t get evaluated or make anything easier 2020-05-23T19:11:02Z axion: This macro expects an unevaluated symbol, as it's intended to be used as a definition form at the toplevel 2020-05-23T19:11:26Z seok: No, the version that was already working with strings using intern 2020-05-23T19:11:33Z vap1 joined #lisp 2020-05-23T19:11:40Z stylewarning: seok: let me ask this: where are you getting the list of table names? 2020-05-23T19:11:52Z stylewarning: What tables do you need to actually generate? 2020-05-23T19:12:21Z seok: I just have a function on top which can be called with the pair name 2020-05-23T19:12:35Z seok: (defun workone (symbol year month day hour) ......) 2020-05-23T19:12:41Z seok: which calls this macro 2020-05-23T19:12:54Z stylewarning: Why would you want to generate a table inside of a function? 2020-05-23T19:12:55Z seok: then uses the table geerated by the macro 2020-05-23T19:13:10Z Kevslinger quit (Quit: Connection closed for inactivity) 2020-05-23T19:13:25Z seok: It is a crawler 2020-05-23T19:13:29Z axion: Macro expansion happens at compile time 2020-05-23T19:13:38Z axion: Before you can call your function 2020-05-23T19:13:54Z seok: Yes it does 2020-05-23T19:14:09Z seok: Why wouldn't I want to generate a table inside my crawler function? 2020-05-23T19:14:53Z vaporatorius quit (Ping timeout: 265 seconds) 2020-05-23T19:15:21Z stylewarning: You wouldn’t want to do that because that means you would be generating new, unknown classes at runtime, and that gets out of hand. It’s possible and not difficult to do but I would consider it to be extremely odd 2020-05-23T19:15:42Z vaporatorius__ joined #lisp 2020-05-23T19:15:55Z seok: That's why I asked if it was possible to make a class locally only 2020-05-23T19:15:57Z seok: before 2020-05-23T19:16:09Z seok: So the class only exists inside the function 2020-05-23T19:16:20Z stylewarning: But that doesn’t make much sense. 2020-05-23T19:16:32Z stylewarning: What happens if you create an instance of a class and return it from the function? 2020-05-23T19:16:48Z stylewarning: What happens if you pass an instance of such a local class to another function? 2020-05-23T19:17:08Z seok: you can make local variables, what's wrong with local classes? 2020-05-23T19:17:33Z seok: sure you can return the class if you want, what's wrong with that? 2020-05-23T19:17:36Z phoe: he's got a point you know, except that the current Lisp syntax doesn't really make that convenient 2020-05-23T19:17:52Z Bike: it could be lexically named but have indefinite extent, stylewarning. like lexical variables with closures. 2020-05-23T19:17:55Z seok: Oh, lisp does not do this? 2020-05-23T19:17:57Z phoe: there's no LET-CLASS for local classes 2020-05-23T19:18:03Z seok: :( 2020-05-23T19:18:04Z Bike: however i suspect they won't help this particular dao whatever problem. 2020-05-23T19:18:05Z phoe: seok: it is possible with the metaobject protocol 2020-05-23T19:18:16Z phoe: but it's not convenient to create classes that way 2020-05-23T19:18:32Z Bike: yeah that's what i said half an hour ago. you can make classes however but there's no lexical naming of them. 2020-05-23T19:18:38Z ralt quit (Quit: Connection closed for inactivity) 2020-05-23T19:18:39Z stylewarning: I can obviously imagine anonymous class objects and Lisp is good enough to deal with them for the most part but I don’t think the thought experiment is helpful 2020-05-23T19:18:44Z vap1 quit (Ping timeout: 258 seconds) 2020-05-23T19:18:51Z phoe: especially since you'd also need to dabble with whatever mito stuff you are doing 2020-05-23T19:18:52Z Oladon joined #lisp 2020-05-23T19:19:26Z phoe: if one-class-per-table doesn't suit your model then mito is a wrong choice - it explicitly makes an assumption of one-class-per-table, as most ORMs do 2020-05-23T19:19:33Z stylewarning: Common Lisp wasn’t designed in any way to make such a concept useful in CLOS, so I don’t think there’s any point to entertain it unless it’s purely for, well, Saturday entertainment 2020-05-23T19:19:34Z orivej quit (Ping timeout: 240 seconds) 2020-05-23T19:19:57Z seok: Ah 2020-05-23T19:20:12Z lucasb joined #lisp 2020-05-23T19:20:16Z orivej joined #lisp 2020-05-23T19:20:17Z axion: In any case, ORMs are flawed anyway, if relational theory has anything to say. 2020-05-23T19:20:22Z seok: For some reason I thought it would be obvious that such thing was possible in lisp 2020-05-23T19:20:30Z Josh_2: stylewarning: hows this? https://github.com/K1D77A/validate-list/blob/master/src/validate-list.lisp 2020-05-23T19:20:50Z phoe: stylewarning: I find it evil to think that FIND-CLASS could be passed an &environment variable... 2020-05-23T19:20:58Z stylewarning: seok: you can make classes on the fly. And you can make metaclasses. And metametaclasses. But it’s not a useful pattern in CLOS 2020-05-23T19:20:59Z phoe: seok: it is possible if you bend the language hard enough 2020-05-23T19:21:11Z phoe: nothing that's the natural way though 2020-05-23T19:21:19Z kamid joined #lisp 2020-05-23T19:22:31Z pve: seok: do you really need to partition your crawler output like that? 2020-05-23T19:22:43Z seok: Wanted to save a bit of coding with ORM 2020-05-23T19:22:51Z seok: and there new problems 2020-05-23T19:22:52Z seok: : ) 2020-05-23T19:23:29Z seok: pve: well, I'm not forced into anything really, just thought this was the fastest way 2020-05-23T19:23:44Z stylewarning: Josh_2: I like it. I would personally use an alist and not a hash table. Easier hacking, but a hash table is completely fine 2020-05-23T19:24:52Z stylewarning: Josh_2: you can also use alexandria:hash-table-keys instead of keeping a record of *current-keys* 2020-05-23T19:25:13Z pve: seok: are you doing separate tables for each source? 2020-05-23T19:25:16Z stylewarning: (defun current-keys () (alexandria:...)) 2020-05-23T19:25:38Z seok: pve: crawling forex data, a table for each pair 2020-05-23T19:25:46Z Josh_2: stylewarning: already on it! 2020-05-23T19:26:40Z pve: seok: I think you should use a single table 2020-05-23T19:26:56Z pve: would it be possible? 2020-05-23T19:27:00Z vaporatorius__ quit (Quit: Leaving) 2020-05-23T19:27:02Z seok: No... definitely don't want to do that just for some convenience in this part 2020-05-23T19:27:09Z seok: It would be too messy later 2020-05-23T19:27:25Z vaporatorius joined #lisp 2020-05-23T19:27:25Z vaporatorius quit (Changing host) 2020-05-23T19:27:25Z vaporatorius joined #lisp 2020-05-23T19:27:31Z stylewarning: Josh_2: also I prefer the HANDLE-FOO functions. It makes redefinition easier. Then you can (define-key :foo 'handle-foo) 2020-05-23T19:27:38Z borodust quit (Remote host closed the connection) 2020-05-23T19:27:47Z stylewarning: And everything will Just Work even if you redefine HANDLE-FOO at runtime 2020-05-23T19:27:52Z stylewarning: No need to redefine the key even 2020-05-23T19:28:15Z Josh_2: hmm 2020-05-23T19:28:25Z Josh_2: That's a good idea 2020-05-23T19:28:39Z Josh_2: never thought about that 2020-05-23T19:28:51Z stylewarning: It’s a little maintainability/hackability change. Less elegant than just using lambdas of course 2020-05-23T19:29:16Z phoe: lambdas can be a pain in the butt 2020-05-23T19:29:26Z phoe: especially in the debugger, if they are unnamed 2020-05-23T19:29:54Z pve: seok: well in any case you should create your tables in advance, not while the crawler is running 2020-05-23T19:30:08Z hiroaki quit (Ping timeout: 272 seconds) 2020-05-23T19:30:21Z seok: yes, make once first then insert 2020-05-23T19:30:22Z Josh_2: phoe: this is very true. 2020-05-23T19:30:30Z Josh_2: I will do what you suggested stylewarning 2020-05-23T19:32:14Z stylewarning: Josh_2: can’t wait for you to write a COMPILE-TEMPLATE ext which converts a template into an efficient open-coded lambda function ;) 2020-05-23T19:32:28Z stylewarning: Absolute overkill but a fun exercise 2020-05-23T19:32:44Z Josh_2: Well I don't have a clue what you mean so you might be waiting a while xD 2020-05-23T19:32:46Z pve: seok: and if you have n tables, then you should have n corresponding (non-local) classes 2020-05-23T19:32:57Z FreeBirdLjj joined #lisp 2020-05-23T19:33:00Z anticrisis joined #lisp 2020-05-23T19:33:02Z seok: yup 2020-05-23T19:33:09Z karlosz joined #lisp 2020-05-23T19:33:39Z stylewarning: Josh_2: imagine if you analyzed the template and looked up all of the functions ahead of time, and returned a “super” lambda function that was specialized for just that template 2020-05-23T19:34:17Z TwoNotes joined #lisp 2020-05-23T19:34:52Z Josh_2: converting the template into one big function to validate the list? 2020-05-23T19:35:05Z _16bitmood joined #lisp 2020-05-23T19:35:30Z seok: wait, so can I put that macro inside a function and pass a symbol? 2020-05-23T19:35:42Z stylewarning: Josh_2: Yes a function you could reuse 2020-05-23T19:36:22Z stylewarning: So if you were doing a lot of checking with the same template, you wouldn’t have to dig into the template every time. You’d just dig into it once, and make a lambda specific for that template 2020-05-23T19:36:45Z Josh_2: oh, yes thats a good idea 2020-05-23T19:36:49Z farooqkz__ quit (Ping timeout: 264 seconds) 2020-05-23T19:37:13Z Steinberg2010 joined #lisp 2020-05-23T19:37:16Z Josh_2: considering I will most likely be doing lots of validation with the same templates, as I want to use this with ningle to validate json which ningle converts into lists 2020-05-23T19:37:32Z Steinberg2010 quit (Client Quit) 2020-05-23T19:37:50Z stylewarning: Josh_2: you could also do stuff like (define-key :age-of-minor (compile-template '(:between 0 17))) 2020-05-23T19:38:17Z Josh_2: hmm 2020-05-23T19:38:17Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-23T19:38:23Z Josh_2: this is very good idea :) 2020-05-23T19:38:33Z Josh_2: I will look into it now 2020-05-23T19:38:44Z Josh_2: well when I have everything together in It's current form 2020-05-23T19:39:10Z stylewarning: Yeah don’t let me distract 2020-05-23T19:40:45Z bars0 quit (Remote host closed the connection) 2020-05-23T19:41:41Z pve: seok: you might want to save yourself some headache and create a source file with the necessary deftable forms, either automatically or manually. 2020-05-23T19:42:32Z hiroaki joined #lisp 2020-05-23T19:43:47Z bars0 joined #lisp 2020-05-23T19:46:02Z cage_ quit (Quit: Leaving) 2020-05-23T19:46:15Z Josh_2: stylewarning: thanks for all the help! 2020-05-23T19:49:46Z orivej quit (Ping timeout: 272 seconds) 2020-05-23T19:49:56Z orivej joined #lisp 2020-05-23T19:55:46Z MerlinTheWizard joined #lisp 2020-05-23T19:56:53Z efm quit (Ping timeout: 256 seconds) 2020-05-23T20:00:02Z efm joined #lisp 2020-05-23T20:02:14Z bhartrihari left #lisp 2020-05-23T20:02:24Z bhartrihari joined #lisp 2020-05-23T20:07:03Z ralt joined #lisp 2020-05-23T20:11:23Z FreeBirdLjj joined #lisp 2020-05-23T20:12:31Z twelvemonkeys quit (Ping timeout: 246 seconds) 2020-05-23T20:12:34Z nightfly joined #lisp 2020-05-23T20:15:30Z twelvemonkeys joined #lisp 2020-05-23T20:16:03Z Codaraxis quit (Remote host closed the connection) 2020-05-23T20:16:52Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2020-05-23T20:17:04Z Codaraxis joined #lisp 2020-05-23T20:17:22Z TwoNotes quit (Quit: Leaving) 2020-05-23T20:21:55Z corpix quit (Quit: corpix) 2020-05-23T20:25:20Z _16bitmood quit (Quit: Leaving) 2020-05-23T20:36:29Z wlangstroth joined #lisp 2020-05-23T20:41:04Z T3ns0r joined #lisp 2020-05-23T20:43:56Z drmeister: Has anyone heard of foo-bar-baz being called "Kabob style"? I just heard it in a talk. 2020-05-23T20:44:44Z axion: kebab-case? Yes 2020-05-23T20:45:19Z valsa joined #lisp 2020-05-23T20:45:39Z ralt: https://wiki.c2.com/?KebabCase 2020-05-23T20:45:53Z ralt: no idea why it's named like that 2020-05-23T20:45:53Z kpoeck quit (Remote host closed the connection) 2020-05-23T20:46:00Z antoszka: -[]- 2020-05-23T20:46:02Z antoszka: that's why 2020-05-23T20:46:16Z ralt: I... don't get it, sorry 2020-05-23T20:46:51Z antoszka: https://www.drupal.org/files/project-images/2804524544_8ce185d9cd_b.jpg 2020-05-23T20:47:08Z antoszka: the metal rod going-across-the-meat-block 2020-05-23T20:47:57Z ralt: oh. 2020-05-23T20:48:14Z ralt: ok, thanks 2020-05-23T20:48:27Z kpoeck joined #lisp 2020-05-23T20:49:02Z antoszka: np :) 2020-05-23T20:49:07Z orivej_ joined #lisp 2020-05-23T20:49:12Z pjb quit (Ping timeout: 260 seconds) 2020-05-23T20:49:18Z orivej quit (Ping timeout: 272 seconds) 2020-05-23T20:51:33Z valsa quit (Ping timeout: 265 seconds) 2020-05-23T20:52:01Z valsa joined #lisp 2020-05-23T20:52:21Z valsa left #lisp 2020-05-23T20:52:40Z bhartrihari left #lisp 2020-05-23T20:52:49Z bhartrihari joined #lisp 2020-05-23T20:54:00Z T3ns0r quit (Quit: Textual IRC Client: www.textualapp.com) 2020-05-23T20:54:27Z T3ns0r joined #lisp 2020-05-23T20:55:25Z karayan quit (Remote host closed the connection) 2020-05-23T20:56:17Z Aurora_v_kosmose quit (Quit: Пока, мир.) 2020-05-23T21:01:04Z catchme joined #lisp 2020-05-23T21:01:05Z karayan joined #lisp 2020-05-23T21:02:03Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-23T21:02:47Z orivej joined #lisp 2020-05-23T21:10:33Z Oladon quit (Quit: Leaving.) 2020-05-23T21:11:17Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-23T21:12:26Z orivej joined #lisp 2020-05-23T21:15:53Z bhartrihari left #lisp 2020-05-23T21:15:57Z bhartrihari joined #lisp 2020-05-23T21:17:25Z wlangstroth quit (Quit: Leaving) 2020-05-23T21:18:27Z Aurora_v_kosmose joined #lisp 2020-05-23T21:20:04Z pve quit (Quit: leaving) 2020-05-23T21:20:22Z pjb joined #lisp 2020-05-23T21:29:56Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-23T21:31:06Z orivej joined #lisp 2020-05-23T21:31:59Z gravicappa quit (Ping timeout: 246 seconds) 2020-05-23T21:35:49Z mibr quit (Ping timeout: 272 seconds) 2020-05-23T21:48:06Z twelvemonkeys quit (Ping timeout: 265 seconds) 2020-05-23T21:48:26Z kpoeck quit (Remote host closed the connection) 2020-05-23T21:49:31Z twelvemonkeys joined #lisp 2020-05-23T21:51:19Z DGASAU joined #lisp 2020-05-23T21:53:33Z pjb quit (Ping timeout: 272 seconds) 2020-05-23T21:55:30Z bhartrihari left #lisp 2020-05-23T21:55:40Z bhartrihari joined #lisp 2020-05-23T21:56:41Z jmercouris: I like kebab 2020-05-23T21:57:09Z jmercouris: I saw a window sticker on a car that said “Kebap your life”, not sure what that means, but it was inspiring 2020-05-23T21:58:46Z ralt: luis: canary is not helping fwiw 2020-05-23T22:01:25Z xuxuru quit (Quit: xuxuru) 2020-05-23T22:03:05Z frgo_ quit (Remote host closed the connection) 2020-05-23T22:03:39Z frgo joined #lisp 2020-05-23T22:06:25Z bhartrihari left #lisp 2020-05-23T22:06:31Z bhartrihari joined #lisp 2020-05-23T22:11:49Z Jeanne-Kamikaze quit (Quit: Leaving) 2020-05-23T22:15:50Z rgherdt quit (Ping timeout: 258 seconds) 2020-05-23T22:18:49Z msk quit (Ping timeout: 264 seconds) 2020-05-23T22:21:31Z msk joined #lisp 2020-05-23T22:22:21Z andrei-n quit (Quit: Leaving) 2020-05-23T22:23:07Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-23T22:26:54Z pjb joined #lisp 2020-05-23T22:29:11Z bhartrihari left #lisp 2020-05-23T22:29:19Z bhartrihari joined #lisp 2020-05-23T22:35:20Z midre joined #lisp 2020-05-23T22:38:42Z ldb joined #lisp 2020-05-23T22:39:43Z ldb quit (Client Quit) 2020-05-23T22:40:13Z sz0 quit (Quit: Connection closed for inactivity) 2020-05-23T22:41:01Z random-nick quit (Quit: quit) 2020-05-23T22:41:35Z bhartrihari left #lisp 2020-05-23T22:41:39Z bhartrihari joined #lisp 2020-05-23T22:50:21Z random-nick joined #lisp 2020-05-23T22:51:04Z Bourne quit (Remote host closed the connection) 2020-05-23T22:57:44Z MerlinTheWizard joined #lisp 2020-05-23T23:08:05Z Jeanne-Kamikaze joined #lisp 2020-05-23T23:15:06Z gaqwas quit (Ping timeout: 265 seconds) 2020-05-23T23:23:12Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-23T23:24:13Z niklasl joined #lisp 2020-05-23T23:24:40Z bhartrihari left #lisp 2020-05-23T23:24:50Z bhartrihari joined #lisp 2020-05-23T23:25:38Z stentroad_ joined #lisp 2020-05-23T23:25:49Z gaqwas joined #lisp 2020-05-23T23:30:39Z MerlinTheWizard joined #lisp 2020-05-23T23:33:15Z gaqwas quit (Ping timeout: 260 seconds) 2020-05-23T23:34:02Z bhartrihari left #lisp 2020-05-23T23:34:06Z bhartrihari joined #lisp 2020-05-23T23:40:25Z nckx quit (Ping timeout: 264 seconds) 2020-05-23T23:41:31Z nckx joined #lisp 2020-05-23T23:43:22Z random-nick quit (Ping timeout: 260 seconds) 2020-05-23T23:45:12Z v3ga joined #lisp 2020-05-23T23:52:53Z terpri quit (Remote host closed the connection) 2020-05-23T23:53:41Z terpri joined #lisp 2020-05-24T00:10:58Z FreeBirdLjj joined #lisp 2020-05-24T00:12:28Z heisig quit (Quit: Leaving) 2020-05-24T00:13:10Z dxtr quit (Ping timeout: 256 seconds) 2020-05-24T00:15:20Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2020-05-24T00:18:26Z catchme quit (Excess Flood) 2020-05-24T00:18:35Z catchme joined #lisp 2020-05-24T00:20:16Z jprajzne quit (Quit: jprajzne) 2020-05-24T00:20:43Z jprajzne joined #lisp 2020-05-24T00:24:45Z jprajzne quit (Client Quit) 2020-05-24T00:25:10Z jprajzne joined #lisp 2020-05-24T00:29:54Z Josh_2 quit (Ping timeout: 240 seconds) 2020-05-24T00:31:27Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-24T00:32:48Z orivej_ joined #lisp 2020-05-24T00:32:52Z orivej quit (Ping timeout: 272 seconds) 2020-05-24T00:36:57Z lucasb quit (Quit: Connection closed for inactivity) 2020-05-24T00:37:19Z stereosphere joined #lisp 2020-05-24T00:39:48Z Lord_of_Life_ joined #lisp 2020-05-24T00:42:38Z Lord_of_Life quit (Ping timeout: 260 seconds) 2020-05-24T00:42:46Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-24T00:50:15Z pjb quit (Ping timeout: 272 seconds) 2020-05-24T00:56:49Z FreeBirdLjj joined #lisp 2020-05-24T01:00:26Z orivej joined #lisp 2020-05-24T01:00:44Z orivej_ quit (Ping timeout: 272 seconds) 2020-05-24T01:01:39Z FreeBirdLjj quit (Ping timeout: 272 seconds) 2020-05-24T01:04:39Z MerlinTheWizard joined #lisp 2020-05-24T01:07:31Z msk quit (Remote host closed the connection) 2020-05-24T01:07:52Z msk joined #lisp 2020-05-24T01:23:04Z pjb joined #lisp 2020-05-24T01:27:48Z bhartrihari left #lisp 2020-05-24T01:27:55Z bhartrihari joined #lisp 2020-05-24T01:28:37Z MerlinTheWizard quit (Ping timeout: 260 seconds) 2020-05-24T01:37:56Z bitmapper quit (Ping timeout: 256 seconds) 2020-05-24T01:43:22Z marusich quit (Quit: Leaving) 2020-05-24T01:44:14Z orivej quit (Ping timeout: 256 seconds) 2020-05-24T01:46:52Z bhartrihari left #lisp 2020-05-24T01:48:36Z shifty joined #lisp 2020-05-24T01:54:20Z shifty quit (Ping timeout: 258 seconds) 2020-05-24T01:59:55Z shifty joined #lisp 2020-05-24T02:01:43Z dale_ joined #lisp 2020-05-24T02:02:02Z dale quit (Disconnected by services) 2020-05-24T02:02:08Z dale_ is now known as dale 2020-05-24T02:07:10Z dale_ joined #lisp 2020-05-24T02:07:23Z dale quit (Disconnected by services) 2020-05-24T02:07:25Z dale_ is now known as dale 2020-05-24T02:07:42Z v3ga quit (Ping timeout: 260 seconds) 2020-05-24T02:08:22Z White_Flame: drmeister: kebab-style vs snake_case vs camelCase vs probably other animal & food related ones 2020-05-24T02:08:59Z akoana left #lisp 2020-05-24T02:15:40Z gxt__ quit (Remote host closed the connection) 2020-05-24T02:17:15Z EvW quit (Ping timeout: 244 seconds) 2020-05-24T02:18:52Z toorevitimirp joined #lisp 2020-05-24T02:21:39Z gxt__ joined #lisp 2020-05-24T02:28:05Z lalilulelo joined #lisp 2020-05-24T02:28:28Z lalilulelo quit (Max SendQ exceeded) 2020-05-24T02:31:57Z pjb: drmeister: I object to this name for lisp style. 2020-05-24T02:32:24Z arpunk quit (Remote host closed the connection) 2020-05-24T02:32:54Z Oladon joined #lisp 2020-05-24T02:39:31Z msk quit (Read error: Connection reset by peer) 2020-05-24T02:39:53Z msk joined #lisp 2020-05-24T02:41:51Z ag` joined #lisp 2020-05-24T02:43:22Z ag` left #lisp 2020-05-24T02:43:28Z ag` joined #lisp 2020-05-24T02:45:30Z ag`: Hi. Total noob here. Can someone help me to get (format) right. I need something like this (format nil "first item ~second ~first" "1st" "2nd") 2020-05-24T02:46:01Z ag`: Basically I need to get nth item either from a given list or the arguments 2020-05-24T02:48:13Z Bike: i'm not sure i understand. could you give an example of a format call with arguments and what you'd like to see output. without the format string, of course, if you don't know how to write it 2020-05-24T02:51:44Z ag`: Let's say I have a list ("1st" "2nd" "3d",,, etc) I want a string (using (format)) that interpolates arbitrary nth element, something like this: "second item is 2nd first is 1st" ... etc 2020-05-24T02:52:30Z ag`: If I say I need a string that iterates through the elements, that's straightforward, but I need to "pick" nth element from the list 2020-05-24T02:52:44Z Aurora_v_kosmose quit (Quit: Пока, мир.) 2020-05-24T02:53:19Z Bike: okay, but what would the call look like? (format nil string-goes-here '("1st" "2nd" "3rd") 2 1)? 2020-05-24T02:54:16Z Bike: well, format doesn't really do counting anyway, at least not in any way that would work for what i think you're thinking of 2020-05-24T02:54:34Z ag`: I don't really care the call may look like (format nil string-goes-here "1st" "2nd" "3d") or (format nil string-goes-here '("1st" "2nd" "3d")) 2020-05-24T02:54:59Z Bike: and in that case it would print "first item is 1st second item is 2nd third item is 3d"? 2020-05-24T02:55:18Z Bike: How does the "picking" enter there? 2020-05-24T02:56:27Z ag`: That's what I meean. If I ask to grab elements in order i.e.: through iterating the list - that's straightforward. 2020-05-24T02:57:07Z ag`: but the string may go like this "fist ~1, second ~2, and first again ~1" 2020-05-24T02:57:27Z Bike: oh. oh oh. if i understand you correctly, 2020-05-24T02:57:28Z Bike: clhs ~* 2020-05-24T02:57:28Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/22_cga.htm 2020-05-24T02:57:32Z Bike: should do it 2020-05-24T02:58:22Z ag`: damn... format is sooooo confusing 2020-05-24T03:00:24Z ag`: I just started playing with CL, and I LOVE it but having to deal with (format) magic makes me feel stupid. 2020-05-24T03:01:44Z Bike: well, it's another language. 2020-05-24T03:07:06Z ech quit (Ping timeout: 265 seconds) 2020-05-24T03:08:16Z ag`: can you show me an example where something like ~n* is used? I don't get this shit like at all 2020-05-24T03:09:40Z Bike: (format nil "first is ~a, second is ~a, first again is ~0@*~a" "harpsichord" "VASIMR") => "first is harpsichord, second is VASIMR, first again is harpsichord" 2020-05-24T03:10:40Z beach: Good morning everyone! 2020-05-24T03:11:57Z ag`: @Bike holy shit... this is pure magic... so I understand that ~0@* goes to the first argument, but why do you need ~a right after it? 2020-05-24T03:12:37Z ag`: ah... I see it now... it's basically like a "pointer".. it just moves it into the position 2020-05-24T03:12:49Z Bike: right, it doesn't print an argument itself. 2020-05-24T03:12:52Z ag`: OMG 2020-05-24T03:13:18Z ag`: cool.. awesome. Thanks! 2020-05-24T03:13:39Z Bike: no problem 2020-05-24T03:19:42Z ag` quit (Quit: ERC (IRC client for Emacs 28.0.50)) 2020-05-24T03:19:47Z hvxgr quit (Quit: Lost terminal) 2020-05-24T03:30:02Z _whitelogger quit (Remote host closed the connection) 2020-05-24T03:32:16Z _whitelogger joined #lisp 2020-05-24T03:39:02Z _whitelogger quit (Remote host closed the connection) 2020-05-24T03:41:15Z _whitelogger joined #lisp 2020-05-24T03:44:14Z farooqkz__ joined #lisp 2020-05-24T03:44:35Z MerlinTheWizard joined #lisp 2020-05-24T03:50:37Z farooqkz__ quit (Ping timeout: 264 seconds) 2020-05-24T04:09:41Z MerlinTheWizard quit (Remote host closed the connection) 2020-05-24T04:09:45Z pjb quit (Ping timeout: 272 seconds) 2020-05-24T04:14:32Z _paul0 joined #lisp 2020-05-24T04:17:21Z paul0 quit (Ping timeout: 272 seconds) 2020-05-24T04:19:30Z catchme quit (Quit: Connection closed for inactivity) 2020-05-24T04:21:36Z azimut quit (Remote host closed the connection) 2020-05-24T04:21:51Z azimut joined #lisp 2020-05-24T04:27:25Z pjb joined #lisp 2020-05-24T04:33:54Z Bike quit (Quit: leaving) 2020-05-24T04:34:33Z gko joined #lisp 2020-05-24T04:40:48Z stylewarning: Nice harpsichord 2020-05-24T04:53:48Z dddddd quit (Ping timeout: 272 seconds) 2020-05-24T05:10:05Z lerax joined #lisp 2020-05-24T05:13:40Z jesse1010 quit (Ping timeout: 258 seconds) 2020-05-24T05:17:25Z Bourne joined #lisp 2020-05-24T05:31:31Z bhartrihari joined #lisp 2020-05-24T05:33:38Z bhartrihari left #lisp 2020-05-24T05:33:46Z bhartrihari joined #lisp 2020-05-24T05:37:50Z FreeBirdLjj joined #lisp 2020-05-24T05:40:03Z bhartrihari left #lisp 2020-05-24T05:40:06Z bhartrihari joined #lisp 2020-05-24T05:44:58Z SGASAU quit (Remote host closed the connection) 2020-05-24T05:45:37Z bhartrihari left #lisp 2020-05-24T05:45:43Z SGASAU joined #lisp 2020-05-24T05:47:41Z bhartrihari joined #lisp 2020-05-24T05:50:42Z v3ga joined #lisp 2020-05-24T05:53:44Z froggey quit (Ping timeout: 256 seconds) 2020-05-24T05:54:50Z toorevitimirp quit (Ping timeout: 260 seconds) 2020-05-24T05:55:35Z froggey joined #lisp 2020-05-24T05:56:23Z v3ga: so for anyone with strong common lisp and clojure experience what do you like about common lisps repl opposed to clojure? 2020-05-24T05:56:27Z toorevitimirp joined #lisp 2020-05-24T05:57:05Z v3ga: I ask because I mostly deal with clojure but I do like the books that deal with common lisp but I don't feel i've experienced enough to say what it is that feel different about the development process 2020-05-24T06:04:48Z mibr joined #lisp 2020-05-24T06:07:52Z beach: v3ga: The channel ##lisp is probably better for comparisons like that. This channel is dedicated to Common Lisp. 2020-05-24T06:08:13Z beach: v3ga: But feel free to ask specific questions about Common Lisp if you want. 2020-05-24T06:12:02Z _whitelogger quit (Remote host closed the connection) 2020-05-24T06:14:15Z _whitelogger joined #lisp 2020-05-24T06:15:16Z beach: Also, as I understand it, Clojure is a functional programming language, but Common Lisp is a multi-paradigm language with a strong object-oriented paradigm possible. So I am guessing that the comparison is going to be more than just about the REPL. 2020-05-24T06:15:19Z andrei-n joined #lisp 2020-05-24T06:18:14Z toorevitimirp quit (Remote host closed the connection) 2020-05-24T06:18:22Z no-defun-allowed: The more developed condition system in Common Lisp allows one to handle some errors in a Common Lisp REPL in a nicer way than with some other language implementations' REPLs. 2020-05-24T06:19:53Z toorevitimirp joined #lisp 2020-05-24T06:20:12Z stereosphere quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2020-05-24T06:20:31Z no-defun-allowed: One small example is that if I made a mistake in a file in an ASDF system, the debugger would present me with some restarts, including trying to recompile the file. I could then fix my mistake and invoke that restart. 2020-05-24T06:21:06Z Jeanne-Kamikaze quit (Quit: Leaving) 2020-05-24T06:22:34Z no-defun-allowed: The object system also has a protocol for updating instances for redefined classes, so "hot reloading" a program is much less difficult. 2020-05-24T06:24:47Z v3ga: beach: ahh well then also i'd like to ask which is preferable for working through how to design programs. racket or would i be safe with guile? 2020-05-24T06:25:12Z Aurora_v_kosmose joined #lisp 2020-05-24T06:25:15Z beach: v3ga: Again, this channel is for Common Lisp. 2020-05-24T06:25:42Z v3ga: no-defun-allowed: hmm thats what I felt I was getting closer to. Again I only toyed with it for a short period but it felt like it would be a great debugging tool. 2020-05-24T06:26:26Z beach: v3ga: Common Lisp with its object system is a great tool for designing modular and extensible code. 2020-05-24T06:27:21Z beach: v3ga: In fact, in many situations it turns out that auxiliary methods are necessary in order to avoid breaking an API while still allowing for significant updates to the implementation. 2020-05-24T06:27:33Z v3ga: beach: i'm slow. those both are Scheme. lol sorry. i'm reading a few books at once but i've been forcing examples to clojure though now i've decided to get my feet wet again 2020-05-24T06:27:48Z beach: v3ga: So unless your other language choices have generic functions with auxiliary methods, I think Common Lisp is the best choice. 2020-05-24T06:28:39Z beach: v3ga: Yes, I know that Guile and Racket are both Scheme based. 2020-05-24T06:29:16Z v3ga: well yeah for any projects I'd go CL from what i've seen. this is more so down time. Funny enough I had a cynical answer to someone asking what language they should use for task. After they mentioned that it was for learning purposes I asked them why not both. I suppose that answer fits my questions as well 2020-05-24T06:30:59Z farooqkz__ joined #lisp 2020-05-24T06:31:41Z beach: When I give talks to industry, I strongly advice against languages that do not have an independent standard. Common Lisp is one of the few languages that that do that. If a language does not have an independent standard, it can change at the whim of the person or organization that controls it, and your investment may be destroyed. 2020-05-24T06:33:29Z beach: With Common Lisp, you also have several different, often very good, implementations available to you. You can then choose the implementation that corresponds to your needs, and if one implementation ceases to be maintained, you can choose a different one with very few problems. 2020-05-24T06:35:27Z v3ga: beach: yeah, makes sense. I have sbcl at the moment installed. i suppose another annoyance but saving grace is you roll a lot of things togehther yourself. 2020-05-24T06:35:33Z beach: Furthermore, while an independent frozen standard would be a disaster to traditional languages, this is not the case for Common Lisp, since the language itself is extensible through its macro mechanism. 2020-05-24T06:35:52Z beach: v3ga: Like what? 2020-05-24T06:36:11Z beach: v3ga: There are many libraries available for Common Lisp these days. 2020-05-24T06:37:51Z v3ga: well as you said via macros...or your own dsl. it seems to be the same for most lisps where a library may no longer be updated but that seems to be beause it just works or you've molded your own toold over a period. i have no working experince there, that just seemed to be the case. 2020-05-24T06:38:35Z pjb quit (Ping timeout: 272 seconds) 2020-05-24T06:40:45Z beach: I mentioned the macro system because some people object that the standard is old. But that doesn't matter as much for Common Lisp as it does for other languages, since we do not have to wait for a new standard in order to get additional functionality. 2020-05-24T06:41:31Z beach: But there are several good libraries (available in Quicklisp) that work for many of the popular Common Lisp implementations. 2020-05-24T06:41:52Z beach: There is a lot less need to roll your own these days, depending on what you want to do of coruse. 2020-05-24T06:41:54Z beach: course 2020-05-24T06:41:59Z solrize: no-defun-allowed, v3ga hot reloading is one of erlang's marquee features but after a while i decided it was more trouble than it was worth, and i actually talked with joe armstrong (RIP) about it and he felt the same way. it's better to just launch the new version of the program separately and then transfer the active network connections etc from the old to the new. that's not trivial but it's how phone switches have traditionally worked for ages 2020-05-24T06:42:33Z Blukunfando quit (Remote host closed the connection) 2020-05-24T06:42:37Z solrize: SICL will be able to have sandboxed applications if i understand it right, so that might be a good setup for hot reloading that way 2020-05-24T06:42:46Z guicho joined #lisp 2020-05-24T06:43:44Z no-defun-allowed: I see. So far, I have had relatively few issues with updating at a function or class level. 2020-05-24T06:56:08Z shifty quit (Ping timeout: 260 seconds) 2020-05-24T07:00:50Z pve joined #lisp 2020-05-24T07:03:50Z pjb joined #lisp 2020-05-24T07:04:32Z mangul joined #lisp 2020-05-24T07:07:19Z v3ga: solrize: yeah i'm familiar with it =P I read a bit on erlang when I played with scala years ago and actors. 2020-05-24T07:07:19Z farooqkz__ quit (Ping timeout: 260 seconds) 2020-05-24T07:20:07Z Oladon quit (Quit: Leaving.) 2020-05-24T07:20:25Z gaqwas joined #lisp 2020-05-24T07:25:04Z hineios6 joined #lisp 2020-05-24T07:27:17Z liberliver1 joined #lisp 2020-05-24T07:28:17Z marusich joined #lisp 2020-05-24T07:28:42Z hineios quit (Ping timeout: 256 seconds) 2020-05-24T07:28:43Z hineios6 is now known as hineios 2020-05-24T07:28:50Z cosimone joined #lisp 2020-05-24T07:29:36Z liberliver quit (Ping timeout: 272 seconds) 2020-05-24T07:29:37Z liberliver1 is now known as liberliver 2020-05-24T07:32:53Z rgherdt joined #lisp 2020-05-24T07:34:22Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-24T07:34:58Z FreeBirdLjj joined #lisp 2020-05-24T07:36:28Z ldb joined #lisp 2020-05-24T07:38:28Z ljavorsk joined #lisp 2020-05-24T07:38:30Z ldb: goot eveing 2020-05-24T07:38:59Z no-defun-allowed: Hello ldb 2020-05-24T07:39:07Z ldb: today i read about extensible effect handler 2020-05-24T07:39:33Z ldb: which seems to be very close to condition system 2020-05-24T07:40:01Z ldb: no-defun-allowed: hello 2020-05-24T07:40:12Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-24T07:41:33Z madnificent joined #lisp 2020-05-24T07:45:50Z SGASAU quit (Remote host closed the connection) 2020-05-24T07:46:30Z SGASAU joined #lisp 2020-05-24T07:50:08Z phoe: ldb: where is this from? 2020-05-24T07:52:18Z ldb: phoe: https://www.eff-lang.org 2020-05-24T07:52:33Z ldb: also https://hackage.haskell.org/package/effect-handlers 2020-05-24T07:55:12Z ldb: it is called "extensible" because like condition system, unhandled effects are passed to upper level handlers. 2020-05-24T07:55:29Z niklasl quit (Remote host closed the connection) 2020-05-24T07:56:07Z no-defun-allowed: I thought the condition system does check "upper level handlers". 2020-05-24T07:57:07Z beach: We need to do something about this ambiguous stack-direction terminology. 2020-05-24T07:57:42Z beach: I can't imagine a stack of (say) plates growing "downward". 2020-05-24T07:57:53Z no-defun-allowed: True. 2020-05-24T07:57:53Z v3ga: hmm 2020-05-24T07:58:28Z beach: We have to use two different words. 2020-05-24T07:58:37Z no-defun-allowed: How about "I thought the condition system does check handlers that were bound earlier"? 2020-05-24T07:58:48Z mangul quit (Ping timeout: 256 seconds) 2020-05-24T07:58:56Z beach: Now, that I understand. 2020-05-24T08:01:27Z solrize: that eff looks interesting 2020-05-24T08:01:41Z solrize: dunno if i'd compare it to lisp conditions though 2020-05-24T08:04:50Z no-defun-allowed: For example, (signal 'b ...) in (handler-bind ((b something)) (handler-bind ((a something-else)) (signal 'b ...)) would have an applicable handler from the outermost HANDLER-BIND form. 2020-05-24T08:06:33Z FreeBirdLjj joined #lisp 2020-05-24T08:08:16Z ldb quit (Ping timeout: 246 seconds) 2020-05-24T08:08:27Z ldb joined #lisp 2020-05-24T08:11:10Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2020-05-24T08:24:13Z phoe: no-defun-allowed: if I understand algebraic effects correctly, they *are* condition handlers, just wrapped in enough mathematics to make them implementable in Haskell and other strictly statically typed strictly functional languages. 2020-05-24T08:24:40Z no-defun-allowed: Alright. 2020-05-24T08:24:41Z phoe: Like, algebraic effects are to condition handlers what the IO monad is to #'write and #'read. 2020-05-24T08:25:21Z phoe: ldb: thanks for the links, I'll write about them. How should I credit you in my book? 2020-05-24T08:28:14Z ldb: phoe: Qifan Wang 2020-05-24T08:28:33Z phoe: ldb: thanks. 2020-05-24T08:30:33Z gaqwas quit (Changing host) 2020-05-24T08:30:34Z gaqwas joined #lisp 2020-05-24T08:33:16Z DGASAU quit (Read error: Connection reset by peer) 2020-05-24T08:34:30Z DGASAU joined #lisp 2020-05-24T08:34:56Z cosimone quit (Remote host closed the connection) 2020-05-24T08:35:25Z cosimone joined #lisp 2020-05-24T08:37:05Z SGASAU quit (Remote host closed the connection) 2020-05-24T08:37:46Z ldb: ok, apple has break my shell somehow. 2020-05-24T08:37:51Z SGASAU joined #lisp 2020-05-24T08:41:01Z FreeBirdLjj joined #lisp 2020-05-24T08:43:33Z gravicappa joined #lisp 2020-05-24T08:45:47Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-24T08:46:31Z bhartrihari left #lisp 2020-05-24T08:46:40Z bhartrihari joined #lisp 2020-05-24T08:47:54Z sdumi quit (Ping timeout: 240 seconds) 2020-05-24T08:49:31Z ldb quit (Ping timeout: 260 seconds) 2020-05-24T08:49:42Z ldb joined #lisp 2020-05-24T08:49:52Z cosimone quit (Remote host closed the connection) 2020-05-24T08:50:07Z sdumi joined #lisp 2020-05-24T08:50:22Z cosimone joined #lisp 2020-05-24T08:57:33Z shifty joined #lisp 2020-05-24T09:03:55Z ljavorsk quit (Ping timeout: 246 seconds) 2020-05-24T09:09:37Z oldtopman joined #lisp 2020-05-24T09:17:40Z wxie joined #lisp 2020-05-24T09:19:32Z anticrisis quit (Read error: Connection reset by peer) 2020-05-24T09:23:10Z heisig joined #lisp 2020-05-24T09:24:52Z oxum joined #lisp 2020-05-24T09:39:45Z nicktick joined #lisp 2020-05-24T09:44:11Z orivej joined #lisp 2020-05-24T09:44:41Z White_Flame: is it possible to compile new functions that can share the bindings in closures that are already compiled? 2020-05-24T09:45:43Z White_Flame: eg (let ((count 0)) (defun next () (incf count))), then add more defuns that can access COUNT as directly as NEXT can 2020-05-24T09:45:54Z White_Flame: after the fact 2020-05-24T09:46:14Z beach: I don't see how that would be possible. 2020-05-24T09:46:26Z phoe: not via any standard means 2020-05-24T09:47:47Z White_Flame: closures are just that much more optimal, vs accessing dynamic bindings, that it would be nice for optimization to somehow wrangle that 2020-05-24T09:48:16Z phoe: you'd need to extract locatives for that binding and then use these 2020-05-24T09:48:21Z ldb: White_Flame: the most close thing I can think of is first class pointer 2020-05-24T09:48:36Z ldb: or so called locatives 2020-05-24T09:48:37Z phoe: and there's no locatives in CL other than via reader/writer closures 2020-05-24T09:48:47Z White_Flame: right, but that wouldn't be direct access in terms of compiled cost to access them in the same way as the original defun 2020-05-24T09:49:02Z White_Flame: well yeah, I use cons cells for poor man's locatives, as they tend to be the least overhead 2020-05-24T09:49:26Z White_Flame: but then one has to pass them around etc, they aren't just ever-present on the function pointer like closure bindings are 2020-05-24T09:49:30Z axion: You can imitate something similar with symbol macros. See "pandoric" macros from Let Over Lambda. 2020-05-24T09:50:34Z dale quit (Quit: My computer has gone to sleep) 2020-05-24T09:51:41Z ldb: acesss bindings in compiled closure breaks the abstraction that programming languages provide 2020-05-24T09:53:16Z White_Flame: well, it wouldn't ideally be accessing from the outside, but rather putting a new function inside 2020-05-24T09:53:43Z White_Flame: (which is unexpressable in pretty much every language, I'd guess) 2020-05-24T09:54:11Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T09:54:35Z White_Flame: I guess langs that have an eval that can see & close over the caller's lexical environment might be able to pull that off, but that is not lisp 2020-05-24T09:54:45Z White_Flame: at least not CL 2020-05-24T09:55:20Z orivej joined #lisp 2020-05-24T09:59:52Z pjb quit (Ping timeout: 260 seconds) 2020-05-24T10:02:10Z ldb: in many languages other than lisp, defining a global function inside a let binding is impossible 2020-05-24T10:02:10Z rixard quit 2020-05-24T10:03:08Z frgo quit (Remote host closed the connection) 2020-05-24T10:03:31Z orivej_ joined #lisp 2020-05-24T10:03:44Z frgo joined #lisp 2020-05-24T10:03:55Z aeth: I guess you could add a locative, but then that adds a layer of indirection and would remove a lot of the efficiency of the clsoure. 2020-05-24T10:05:09Z aeth: The easiest way would probably be to use a symbol-macrolet instead of a let... does a top-level symbol-macrolet create a closure like let? 2020-05-24T10:05:24Z orivej quit (Ping timeout: 272 seconds) 2020-05-24T10:05:47Z aeth: But then you're not really restricting access except by convention... One of the good things about a lexical closure in CL is that it's one of the few ways to truly restrict access. 2020-05-24T10:07:14Z gareppa joined #lisp 2020-05-24T10:08:03Z aeth: Cons cells (or similar) are actually pretty clever because then you could have a %foo accessor and use this as the basis to copy the locative, which doesn't have to exist globally except as part of that accessor. 2020-05-24T10:08:37Z ldb quit (Ping timeout: 264 seconds) 2020-05-24T10:09:20Z White_Flame: well, what I'm seeing now (and smacking myself on the forehead abotu) is that the stuff I'm closing over really is mutating arrays & structures, so sharing the actual binding itself actually doesn't matter. 2020-05-24T10:09:21Z aeth: White_Flame: Off the top of my head, you could do a LET containing conses (or 0D arrays or 1-elt vectors or 1-element structs, etc.) over a SYMBOL-MACROLET (to make them look like variables to the user functions, since this will probably be wrapped in a macro except for the &body) over DEFUNs/etc. 2020-05-24T10:09:41Z White_Flame: since the binding doesn't change; it just points to a shared mutable composite 2020-05-24T10:09:57Z White_Flame: and so multiple closures just simply share the same final reference, not binding 2020-05-24T10:10:45Z aeth: White_Flame: This can be macro-generated including with an "inheritance" system done by calling a function that copies all of the LET bindings into new bindings (so the inherited setup would actually be LET over MULTIPLE-VALUE-BIND over SYMBOL-MACROLET over DEFUNs/etc.) 2020-05-24T10:10:50Z FreeBirdLjj joined #lisp 2020-05-24T10:12:55Z aeth: White_Flame: e.g. (define-global-closure give-it-a-name-for-the-inheritance-function (bindings-go-here) (inherit-from-parents-or-this-can-be-nil) ...) ; where "..." would be the DEFUNs/etc. and in those DEFUNs you would pretend that the bindings are variables instead of a CAR/AREF/etc. accessor because of symbol-macrolet. 2020-05-24T10:14:38Z aeth: e.g. (define-global-closure foo ((bar 42) (baz 53) (quux 64)) () (defun foobar (x) (incf bar x))) (define-global-closure barfoo ((qwerty 75)) (foo) (defun decbar (x) (decf bar x))) 2020-05-24T10:15:30Z aeth: With the caveat that this will be less efficient because of the indirection, both directly because of the indirection and because the compiler isn't smart enough to know that bar is going to remain a number. 2020-05-24T10:15:50Z ldb joined #lisp 2020-05-24T10:16:07Z aeth: White_Flame: and, yeah, if it's just arrays/lists/etc. anyway you don't need to do this, but this solution's perfectly general. 2020-05-24T10:16:48Z johntalent joined #lisp 2020-05-24T10:18:35Z random-nick joined #lisp 2020-05-24T10:20:37Z ldb quit (Ping timeout: 264 seconds) 2020-05-24T10:22:40Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-24T10:22:41Z orivej joined #lisp 2020-05-24T10:27:56Z dddddd joined #lisp 2020-05-24T10:28:09Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-24T10:28:12Z sdumi quit (Ping timeout: 272 seconds) 2020-05-24T10:29:26Z sdumi joined #lisp 2020-05-24T10:34:47Z wxie1 joined #lisp 2020-05-24T10:35:06Z wxie quit (Remote host closed the connection) 2020-05-24T10:35:06Z wxie1 is now known as wxie 2020-05-24T10:35:58Z ldb joined #lisp 2020-05-24T10:37:15Z pjb` joined #lisp 2020-05-24T10:37:47Z orivej quit (Ping timeout: 260 seconds) 2020-05-24T10:37:52Z orivej_ joined #lisp 2020-05-24T10:40:39Z ldb quit (Ping timeout: 258 seconds) 2020-05-24T10:41:59Z cosimone quit (Quit: Quit.) 2020-05-24T10:44:23Z rixard joined #lisp 2020-05-24T10:50:02Z bhartrihari left #lisp 2020-05-24T10:50:03Z karlosz quit (Quit: karlosz) 2020-05-24T10:50:44Z karlosz joined #lisp 2020-05-24T10:50:49Z bhartrihari joined #lisp 2020-05-24T10:51:33Z bhartrihari left #lisp 2020-05-24T10:51:43Z bhartrihari joined #lisp 2020-05-24T10:53:24Z ralt quit (Quit: Connection closed for inactivity) 2020-05-24T10:55:34Z bhartrihari left #lisp 2020-05-24T10:56:18Z ldb joined #lisp 2020-05-24T10:57:12Z gareppa quit (Quit: Leaving) 2020-05-24T10:57:31Z hvxgr joined #lisp 2020-05-24T10:58:39Z tankman joined #lisp 2020-05-24T11:00:28Z tankman quit (Client Quit) 2020-05-24T11:00:30Z sdumi quit (Ping timeout: 272 seconds) 2020-05-24T11:01:07Z ldb quit (Ping timeout: 260 seconds) 2020-05-24T11:03:19Z sdumi joined #lisp 2020-05-24T11:08:42Z pjb` quit (Ping timeout: 260 seconds) 2020-05-24T11:11:11Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T11:12:31Z orivej joined #lisp 2020-05-24T11:15:55Z karlosz quit (Quit: karlosz) 2020-05-24T11:16:21Z ldb joined #lisp 2020-05-24T11:20:54Z ldb quit (Ping timeout: 240 seconds) 2020-05-24T11:23:01Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T11:24:10Z orivej joined #lisp 2020-05-24T11:25:06Z ralt joined #lisp 2020-05-24T11:28:32Z ralt: White_Flame: not sure why you're not using a class instead 2020-05-24T11:36:43Z ldb joined #lisp 2020-05-24T11:36:56Z phoe: Somewhat-Lisp-related question. What would be a good example program where using dynamic bindings can greatly simplify code? 2020-05-24T11:37:16Z phoe: Or show something that is otherwise hard to achieve without dynamic bindings? 2020-05-24T11:40:22Z madnificent: phoe: Lik special variables? 2020-05-24T11:40:28Z madnificent: s/lik/like/ 2020-05-24T11:40:38Z phoe: madnificent: yes 2020-05-24T11:40:57Z madnificent: Extending unexpected things has been major for me with mu-cl-resources. 2020-05-24T11:41:20Z madnificent: Such cases are possible, but super hard to do when you're not allowed to pass things through deep down. 2020-05-24T11:41:31Z ldb quit (Ping timeout: 256 seconds) 2020-05-24T11:41:46Z phoe: I don't want to depend on external libraries here; I want to write an example program where I demonstrate the things that dynamic bindings allow that would otherwise be hard. 2020-05-24T11:42:06Z phoe: Which means that I need to figure out what that program would need to be, in the first place. 2020-05-24T11:42:26Z madnificent: Say, for example, that somewhere deep down in the call stack you want some behaviour to be different, it gets super hard to pass that information through to the lower layers without having to re-architect the code. 2020-05-24T11:42:48Z _death: RANDOM 2020-05-24T11:43:03Z madnificent: A specific case we have this way is caching. I'll lay down what the issue there was, then we check if that works for you? 2020-05-24T11:43:14Z phoe: _death: uhhhh? 2020-05-24T11:43:24Z phoe: madnificent: OK 2020-05-24T11:43:57Z _death: imagine if you had to explicitly pass down the random-state 2020-05-24T11:44:40Z phoe: oooh, that is correct 2020-05-24T11:45:30Z madnificent: mu-cl-resources gives you a jsonapi.org compliant response for data that is in a triplestore. It uses bindings for that. We want to cache the response and clear the cache when something relevant is updated. Hence, the system creates a "cache key" for each resource it needs to construct a response. Because there are various code-paths creating parts of the response, there are various code-paths creating cache-keys. 2020-05-24T11:45:30Z madnificent: cache-keys is not trivial without special variables. 2020-05-24T11:45:53Z madnificent: We have a similar case where we did something like that in Elixir and it was a lot less fun :) 2020-05-24T11:46:40Z phoe: I see 2020-05-24T11:47:51Z madnificent: Cases where you are not linearly executing code become hard. You end up passing arguments to functions which don't have too much to do with the function at all. You can do it, but it's harder to read and more error-prone. 2020-05-24T11:48:08Z madnificent: The random state is a nice example of that too. 2020-05-24T11:48:08Z _death: this use-case is mentioned in SICP in relation to global state.. basically special variables are useful for context.. they also provide a stack-like, thread-local behavior (shadowing bindings) 2020-05-24T11:49:55Z _death: they make it easy to implement REPL-friendly operators 2020-05-24T11:51:52Z ldb joined #lisp 2020-05-24T11:52:37Z ldb quit (Client Quit) 2020-05-24T11:52:44Z bhartrihari joined #lisp 2020-05-24T11:52:46Z orivej quit (Ping timeout: 256 seconds) 2020-05-24T11:52:47Z wxie quit (Ping timeout: 260 seconds) 2020-05-24T11:52:52Z orivej_ joined #lisp 2020-05-24T11:53:54Z Aurora_v_kosmose quit (Remote host closed the connection) 2020-05-24T11:54:32Z Aurora_v_kosmose joined #lisp 2020-05-24T11:57:59Z FreeBirdLjj joined #lisp 2020-05-24T11:59:45Z wxie joined #lisp 2020-05-24T12:04:58Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-24T12:11:26Z Bike joined #lisp 2020-05-24T12:12:16Z madnificent: phoe: We probably have more cases like this which are used in the wild. 2020-05-24T12:15:49Z hvxgr_ joined #lisp 2020-05-24T12:16:28Z _death: (defmacro with-replayability (&body forms) `(let ((*random-state* (make-random-state *random-state*))) ,@forms)) 2020-05-24T12:23:25Z sdumi quit (Ping timeout: 246 seconds) 2020-05-24T12:24:44Z pve: hi, does something like this exist? 2020-05-24T12:24:45Z pve: https://plaster.tymoon.eu/view/1866# 2020-05-24T12:24:54Z pve: i.e. a function that establishes a restart 2020-05-24T12:25:27Z Bike: you want the restart to invoke another restart? 2020-05-24T12:25:33Z Bike: you should be able to use restart-bind, though 2020-05-24T12:26:29Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T12:26:30Z pve: just wondering if there is a function equivalent to, say, with-simple-restart 2020-05-24T12:26:51Z sdumi joined #lisp 2020-05-24T12:27:13Z orivej joined #lisp 2020-05-24T12:27:45Z pve: the conditions dictionary in the hyperspec tells me that there might not be, but I just wanted to check 2020-05-24T12:27:50Z phoe: pve: no 2020-05-24T12:27:53Z phoe: you can implement it though 2020-05-24T12:28:10Z phoe: (defun call-with-simple-restart (... thunk) (with-simple-restart (...) (funcall thunk))) 2020-05-24T12:28:47Z pve: hmm will that really work.. 2020-05-24T12:28:59Z pve: i must test this 2020-05-24T12:29:14Z phoe: pve: yes, it will 2020-05-24T12:29:25Z Lycurgus joined #lisp 2020-05-24T12:29:45Z phoe: ...oh wait a second, it's non-trivial 2020-05-24T12:29:52Z phoe: clhs with-simple-restart 2020-05-24T12:29:52Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_w_smp_.htm 2020-05-24T12:30:06Z phoe: the name is not evaluated 2020-05-24T12:30:07Z phoe: that is a problem 2020-05-24T12:30:39Z phoe: same with restart cases, same with restart bindings... 2020-05-24T12:30:48Z phoe: thanks! I'll add this to my book 2020-05-24T12:31:15Z pve: yes, that was exactle my problem 2020-05-24T12:31:21Z stentroad_ quit (Ping timeout: 272 seconds) 2020-05-24T12:31:22Z pve: exactly 2020-05-24T12:32:00Z phoe: that is not an issue if you have the compiler handy, since you can (funcall (compile nil `(lambda () (with-simple-restart (,name ,string) (funcall ,thunk))))) 2020-05-24T12:32:10Z phoe: but that's invoking the compiler 2020-05-24T12:32:20Z phoe: which might quirk quite a few brows 2020-05-24T12:33:16Z phoe: damn! I never noticed that issue until now 2020-05-24T12:34:04Z phoe: I guess no one really specifies handler/restart details at runtime, even though it seems like a decent addition... 2020-05-24T12:34:14Z phoe adds this to the bag of ideas for the Hypothetical Future Revision 2020-05-24T12:34:19Z Bike: what do you mean? 2020-05-24T12:35:11Z phoe: (call-with-handler #'foo 'my-condition (lambda (c) (print 42))) 2020-05-24T12:35:36Z phoe: (call-with-restart #'foo 'my-restart (lambda () (print 42)) :interactive-function ... :report-function ... :test-function ...) 2020-05-24T12:35:44Z phoe: where #'FOO is our thunk that we want to call 2020-05-24T12:36:08Z Bike: the only part of those you can't do is evaluating the name and type specifier. 2020-05-24T12:36:17Z phoe: correct 2020-05-24T12:36:21Z Bike: which i guess is something, though it's hard to imagine actually wanting to do that 2020-05-24T12:37:10Z phoe: pve: what is your use case? 2020-05-24T12:40:07Z Lord_of_Life_ joined #lisp 2020-05-24T12:41:30Z pve: I'm working on my "symbolic smalltalk" and would like to add restarts to it, preferably using only functions 2020-05-24T12:42:06Z phoe: then you'll need to use the workaround I proposed up there 2020-05-24T12:42:09Z pve: but it's no big deal if it can't be done, just need to expand to the macros 2020-05-24T12:42:14Z phoe: hold on, let me write it... 2020-05-24T12:42:44Z pve: but that means restricting the selectors in question and making them "special" 2020-05-24T12:43:25Z Lord_of_Life quit (Ping timeout: 264 seconds) 2020-05-24T12:43:30Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-24T12:43:30Z pve: naturally I would like to have as few special selectors as possible 2020-05-24T12:43:54Z orivej quit (Read error: Connection reset by peer) 2020-05-24T12:44:55Z orivej joined #lisp 2020-05-24T12:45:11Z TwoNotes joined #lisp 2020-05-24T12:45:32Z wxie quit (Ping timeout: 256 seconds) 2020-05-24T12:47:14Z phoe: https://plaster.tymoon.eu/view/1867#1867 2020-05-24T12:48:10Z pve: nice 2020-05-24T12:48:25Z phoe: oh wait a second 2020-05-24T12:48:31Z phoe: I screwed up a thing... 2020-05-24T12:48:58Z sdumi quit (Ping timeout: 246 seconds) 2020-05-24T12:49:00Z phoe: there, fixed now 2020-05-24T12:49:31Z Bike: clisp has some kind of handler-case or handler-bind instruction in its bytecode, so i wonder if type specifiers can be dynamically specified or not 2020-05-24T12:49:43Z phoe: obviously they do not need to be 2020-05-24T12:49:51Z phoe: the specification does not mandate that anywhere. 2020-05-24T12:49:59Z phoe: that's why I must use the compiler 2020-05-24T12:50:38Z sdumi joined #lisp 2020-05-24T12:51:10Z Bike: well, i wonder. i'm curious what clisp does. every other implementation i'm familiar with does the dynamic variable thing in which case it's fine (though you can probably optimize constant type specifiers better) 2020-05-24T12:53:08Z phoe: I mean, even if clisp does that, it has to get the type specifier and restart name from somewhere 2020-05-24T12:53:30Z phoe: so, at least in theory, they could be provided dynamically, too - which means via a functional interface 2020-05-24T12:56:31Z orivej quit (Read error: Connection reset by peer) 2020-05-24T12:56:36Z orivej_ joined #lisp 2020-05-24T12:57:29Z Snaffu joined #lisp 2020-05-24T12:58:40Z pve: while I'm here, can I ask you, will this come back and bite me in the behind later, or do I need to rethink it? 2020-05-24T12:58:44Z pve: https://plaster.tymoon.eu/view/1868#1868 2020-05-24T12:59:16Z pve: I do this because it's a little inconvenient that conditions can't be defined using defclass 2020-05-24T12:59:43Z FreeBirdLjj joined #lisp 2020-05-24T13:00:11Z pve: so I would prefer if "conditions" could be defined using the normal subclass method 2020-05-24T13:01:00Z Bike: phoe: i mean like, if there was only handler-case and not handler-bind, you could have the type specifiers not to be accessible to signal. might be doable with handler-bind too. 2020-05-24T13:02:06Z Bike: pve: might be slower, but since you have your own language here it doesn't seem like there'd be a problem 2020-05-24T13:02:09Z phoe: pve: seems OK to me. 2020-05-24T13:02:35Z phoe: Bike: correct; we can implement handler-case via handler-bind though, so we are lucky 2020-05-24T13:03:05Z pve: ok great! 2020-05-24T13:03:08Z phoe: pve: the return-from in line 34 is superfluous 2020-05-24T13:03:14Z pve: thanks for your input, bike, phoe 2020-05-24T13:03:30Z phoe: required in handler-case, not required in handler-bind 2020-05-24T13:03:30Z pve: oh right 2020-05-24T13:03:35Z pve: will remove 2020-05-24T13:04:26Z Bike: like for example if you compiled a type check into the function with the handler, and unwound to that frame with handler-bind, and then rewound if there was a restart 2020-05-24T13:04:40Z Bike: with that implementation there wouldn't be any way to do a type specifier dynamically short of the compile 2020-05-24T13:04:53Z phoe: correct 2020-05-24T13:05:16Z phoe: an implementation is allowed to leverage the fact the condition types are not suppliable at runtime 2020-05-24T13:06:04Z phoe: and optimize the hell out of such code by e.g. turning a runtime TYPEP with a Lisp type specifier into a compiled, more efficient one 2020-05-24T13:06:47Z wxie joined #lisp 2020-05-24T13:07:46Z phoe: a functional interface with variable condition type would make it hard to optimize that. 2020-05-24T13:08:37Z ech joined #lisp 2020-05-24T13:09:15Z orivej_ quit (Read error: Connection reset by peer) 2020-05-24T13:09:16Z orivej joined #lisp 2020-05-24T13:10:26Z TwoNotes: If I use Quicklisp to load both :SHA1 and :DEXADOR I get this: "BASE64" is a package name, so it cannot be a nickname for "CL-BASE64". 2020-05-24T13:11:11Z Lycurgus quit (Remote host closed the connection) 2020-05-24T13:11:54Z phoe: TwoNotes: sounds like an ugly package name conflict between different base64 libraries. 2020-05-24T13:11:59Z beach: Both those names are badly chosen actually. 2020-05-24T13:12:06Z TwoNotes: groan 2020-05-24T13:12:57Z TwoNotes: I am looking at the code for dexador and I do not see that it actually defines BASE64. It does however 'depend-on' a bunch of other things, including cl-base64 2020-05-24T13:13:06Z phoe: that's where the nickname comes from 2020-05-24T13:13:50Z rme quit (Ping timeout: 180 seconds) 2020-05-24T13:14:46Z phoe: please complain at the authors of the relevant systems to unclobber the package namespace and/or the authors of sha1 that the package is unloadable with dexador and/or the authors of dexador that the package is unl... nah, don't complain at dexador, I sadly don't expect the author to change anything 2020-05-24T13:15:06Z _death: I believe someone already complained 2020-05-24T13:15:22Z _death: https://github.com/massung/sha1/pull/2 2020-05-24T13:15:50Z TwoNotes: SHA1 defines a function "sha1-base64", which returns a base64-encoded hash. That is the one function I use form it. 2020-05-24T13:16:27Z TwoNotes: Maybe I just clone SHA1 and fix it myself locally 2020-05-24T13:17:02Z phoe: TwoNotes: https://github.com/massung/sha1/issues/3 2020-05-24T13:17:46Z EvW joined #lisp 2020-05-24T13:18:00Z TwoNotes: In the first link, the author says he doesn't feel like changing it because he likes his own base64 implementation so much 2020-05-24T13:18:02Z _death: or use ironclad.. its sha1 implementation is more performant 2020-05-24T13:18:03Z phoe: it's different than the PR that _death linked since it provides a real-life breakage case (which you provided to us!) 2020-05-24T13:18:10Z phoe: _death: and also *huge* 2020-05-24T13:18:21Z rme quit (Read error: Connection reset by peer) 2020-05-24T13:18:29Z phoe: needing to pull all of ironclad just to use its sha1 implementation is why the sha1 system actually came into life 2020-05-24T13:18:35Z orivej quit (Ping timeout: 258 seconds) 2020-05-24T13:18:41Z TwoNotes: All I need is a hash function that returns a string. It doesn't *have* to be sha1 2020-05-24T13:18:47Z jmercouris quit (Read error: Connection reset by peer) 2020-05-24T13:18:53Z _death: well, usually you need more than sha1.. 2020-05-24T13:18:55Z TwoNotes: I am using it to make small Merkle Trees 2020-05-24T13:19:04Z orivej joined #lisp 2020-05-24T13:19:11Z gendl quit (Read error: Connection reset by peer) 2020-05-24T13:19:29Z mpontillo quit (Ping timeout: 272 seconds) 2020-05-24T13:19:53Z rme joined #lisp 2020-05-24T13:20:48Z _death: what's surprising is that ironclad doesn't include base64 ;) 2020-05-24T13:21:25Z _death: though it mentions it might need to do that in the TODO 2020-05-24T13:21:40Z phoe: _death: it's good that base64, cl-base64, qbase64, and s-base64 do 2020-05-24T13:22:03Z phoe: there's a pbase64 missing though, where p stands for "phoe"... 2020-05-24T13:22:03Z phoe: brb 2020-05-24T13:22:15Z _death: phoe: plus a bunch of inline implementations written in 10 mins throughout the years 2020-05-24T13:22:21Z phoe: _death: oh no! 2020-05-24T13:22:23Z TwoNotes: I can call cl-base64 myself. I just need the hashing. Ironclad looks interesting to play with itself, but I don't need all that for this particular project. 2020-05-24T13:22:37Z phoe: we need to extract these into separate ASDF systems and upload them to quicklisp 2020-05-24T13:22:58Z phoe: TwoNotes: you can pull in the sha1 code and either gut out the base64 parts or tweak them to use cl-base64 2020-05-24T13:23:13Z phoe: ;; if you don't need base64 encoding, I suggest the former 2020-05-24T13:23:16Z TwoNotes: I could start with SHA1, strip out the base64 stuff, and call cl-base64 instead. 2020-05-24T13:23:31Z mpontillo joined #lisp 2020-05-24T13:23:43Z _death: there should be a choose-system system that baffles you with choices for test/base64/utility/portability libraries 2020-05-24T13:23:46Z phoe: sure - or just throw out all base64 and cl-base64 stuff altogether if you don't ever want to use that encoding. 2020-05-24T13:23:47Z TwoNotes: It does not HAVE to be base64. I use it as a key into an LMDB database. 2020-05-24T13:23:50Z phoe: _death: ... 2020-05-24T13:23:52Z TwoNotes: LMDB doesn't care 2020-05-24T13:23:55Z _death: and a pick-system too 2020-05-24T13:23:55Z phoe: trivial-base64 2020-05-24T13:24:57Z terrorjack quit (Ping timeout: 260 seconds) 2020-05-24T13:25:02Z stentroad joined #lisp 2020-05-24T13:27:13Z rme quit (Ping timeout: 264 seconds) 2020-05-24T13:29:13Z _death: maybe asdf has a user hook for "do this after that system loads".. or is it too simple minded 2020-05-24T13:29:28Z phoe: _death: I guess that defining methods counts... 2020-05-24T13:29:50Z phoe: I think you could defmethod on asdf:operate 2020-05-24T13:29:52Z stentroad quit (Ping timeout: 260 seconds) 2020-05-24T13:30:22Z phoe: (defmethod asdf:operate :after ((operation 'load-op) (component (eql (asdf:find-system :base64)))) ...) ? 2020-05-24T13:30:34Z _death: what if there are two hooks 2020-05-24T13:31:00Z phoe: then you're in trouble 2020-05-24T13:31:05Z phoe: I don't know such a hooking mechanism in ASDF. 2020-05-24T13:31:09Z jmercouris joined #lisp 2020-05-24T13:31:11Z rme joined #lisp 2020-05-24T13:31:14Z _death: phoe: it may be too convenient :) 2020-05-24T13:31:39Z phoe adds that to the idea bin named "Future Rants About ASDF - Public Use" 2020-05-24T13:33:08Z orivej quit (Ping timeout: 272 seconds) 2020-05-24T13:33:15Z orivej_ joined #lisp 2020-05-24T13:33:21Z _death: package name clashes suggest that the lisp ecosystem is growing.. aren't you happy? :) 2020-05-24T13:33:23Z terrorjack joined #lisp 2020-05-24T13:33:50Z phoe: package name clashes suggest that the current way the Lisp ecosystem is cultivated has issues 2020-05-24T13:35:26Z liberliver quit (Ping timeout: 265 seconds) 2020-05-24T13:35:32Z _death: btw, one wonders why a sha1 library should depend on a base64 library.. 2020-05-24T13:36:15Z phoe: "what if you wanted to have a sha1 digest that is base64-encoded" 2020-05-24T13:36:21Z phoe: obviously you need to depend on base64 2020-05-24T13:36:31Z phoe: "what if you wanted to have a sha1 digest that is engraved onto a metal ring" 2020-05-24T13:36:32Z _death: create a sha1+base64 library 2020-05-24T13:36:53Z phoe: obviously you need to depend on a library that interfaces with CNC milling machines 2020-05-24T13:37:00Z gendl joined #lisp 2020-05-24T13:37:02Z phoe: that's why base64 should depend on one as well 2020-05-24T13:37:47Z phoe: and when the CNC milling machine library depends on a base64, then you can safely depend on cl-base64 to avoid having a circular dependency 2020-05-24T13:37:56Z phoe: there! problem solved 2020-05-24T13:38:19Z _death: I've been using a dirty trick to work around circular dependencies lately 2020-05-24T13:38:47Z phoe: what is it? 2020-05-24T13:38:56Z _death: (defpackage :foo (:use :cl) (:export :some-symbol-defined-in-bar)) (defpackage :bar (:use :cl :foo) (:export :some-symbol-defined-in-bar)) ... 2020-05-24T13:39:34Z phoe: that looks like uiop:define-package :reexport, am I right? 2020-05-24T13:39:51Z _death: so now the symbol is interned in package foo, but the definition (say, a function definition) is made in bar 2020-05-24T13:40:39Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T13:40:39Z oxum quit (Remote host closed the connection) 2020-05-24T13:40:49Z _death: no, it's not about re-exporting 2020-05-24T13:41:02Z mibr quit (Quit: mibr) 2020-05-24T13:41:35Z oxum joined #lisp 2020-05-24T13:41:54Z orivej joined #lisp 2020-05-24T13:41:56Z _death: the original code made no use of packages (had in-package :cl-user) 2020-05-24T13:42:02Z phoe: ouch 2020-05-24T13:42:37Z _death: do you understand what I did? 2020-05-24T13:42:42Z phoe: yes 2020-05-24T13:43:00Z phoe: you separated it into packages in a way that still makes it work 2020-05-24T13:43:24Z ralt quit (Quit: Connection closed for inactivity) 2020-05-24T13:43:34Z _death: yes.. I could define a single package that both foo and bar modules share 2020-05-24T13:43:36Z phoe: where the latter packages use and reexport all symbols exported by the former packages, therefore allowing definitions to work on the same symbols 2020-05-24T13:43:51Z phoe: nice 2020-05-24T13:44:52Z X-Scale` joined #lisp 2020-05-24T13:45:14Z _death: but package-inferred-systems style fit this code base better 2020-05-24T13:45:48Z X-Scale quit (Ping timeout: 272 seconds) 2020-05-24T13:45:49Z X-Scale` is now known as X-Scale 2020-05-24T13:46:04Z oxum quit (Ping timeout: 265 seconds) 2020-05-24T13:51:58Z orivej quit (Ping timeout: 246 seconds) 2020-05-24T13:52:36Z orivej joined #lisp 2020-05-24T14:01:55Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T14:02:00Z sz0 joined #lisp 2020-05-24T14:03:14Z orivej joined #lisp 2020-05-24T14:07:35Z bhartrihari left #lisp 2020-05-24T14:07:43Z bhartrihari joined #lisp 2020-05-24T14:07:58Z gravicappa quit (Ping timeout: 272 seconds) 2020-05-24T14:08:27Z gravicappa joined #lisp 2020-05-24T14:19:20Z oxum joined #lisp 2020-05-24T14:20:59Z TwoNotes: Package names are *supposed* to be long, like internet names. But nobody likes to type all that each time so they have nicknames too. Trouble is, the nicknames are part of the defpackage and then you can have conflicts if two developers pick the same nicknames. Better to let the end-user pick the nicknames, as in done in Python 2020-05-24T14:21:23Z aeth quit (Read error: Connection reset by peer) 2020-05-24T14:21:52Z FreeBirdLjj quit (Remote host closed the connection) 2020-05-24T14:22:03Z beach: Or use package-local nicknames which are now available nearly everywhere. 2020-05-24T14:22:13Z aeth joined #lisp 2020-05-24T14:22:50Z _death: or :import-from with the long name 2020-05-24T14:23:30Z wxie quit (Ping timeout: 260 seconds) 2020-05-24T14:23:47Z stentroad joined #lisp 2020-05-24T14:23:54Z phoe: TwoNotes: package-local nicknames are a form of python's import 2020-05-24T14:24:06Z phoe: or rather, Python import ... as 2020-05-24T14:26:42Z stentroad quit (Client Quit) 2020-05-24T14:29:57Z oxum quit (Remote host closed the connection) 2020-05-24T14:34:36Z TwoNotes: It is the ".. as .." construct I was htinking of 2020-05-24T14:36:34Z quazimod1 quit (Ping timeout: 260 seconds) 2020-05-24T14:37:01Z phoe: package-local nicknames then 2020-05-24T14:37:14Z phoe: they work everywhere except CLISP 2020-05-24T14:38:08Z luis: phoe: what do you mean everywhere? 2020-05-24T14:40:24Z beach: In every significant Common Lisp implementation. 2020-05-24T14:40:25Z phoe: luis: SBCL, CCL, ECL, Clasp, ABCL, ACL, LW 7.2 2020-05-24T14:40:34Z phoe: (note: LW 7.2 is not released yet) 2020-05-24T14:40:46Z phoe: so, right - except CLISP and LW (yet) 2020-05-24T14:41:03Z luis: phoe: that's impressive. Cool! 2020-05-24T14:41:08Z orivej quit (Ping timeout: 256 seconds) 2020-05-24T14:41:25Z orivej joined #lisp 2020-05-24T14:41:39Z phoe: luis: I'm looking for someone brave enough to dig into the C code of the CLISP reader and implement PLNs there 2020-05-24T14:42:02Z phoe: and someone even more brave who will convince Bruno that it is time for a new CLISP release after ten years 2020-05-24T14:42:21Z beach: As I recall, it's not a reader thing. 2020-05-24T14:42:32Z beach: Isn't it FIND-PACKAGE that is modified? 2020-05-24T14:43:15Z phoe: beach: correct, I didn't express myself clearly; it's FIND-PACKAGE and FIND-SYMBOL and DEFPACKAGE other related operators 2020-05-24T14:43:24Z phoe: it's not the reader per se, the reader just calls FIND-PACKAGE and FIND-SYMBOL 2020-05-24T14:43:40Z quazimodo joined #lisp 2020-05-24T14:51:15Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T14:51:24Z arpunk joined #lisp 2020-05-24T14:52:35Z orivej joined #lisp 2020-05-24T14:53:31Z Snaffu quit (Quit: leaving) 2020-05-24T14:56:32Z luis: phoe: if only it were C code :) 2020-05-24T14:57:03Z phoe: luis: what do you mean? 2020-05-24T14:57:38Z phoe: https://gitlab.com/gnu-clisp/clisp/-/blob/master/src/package.d#L661 seems like C with macros 2020-05-24T14:59:13Z luis: Last time I checked it seemed very macro-heavy... that doesn't look as bad as I remembered 2020-05-24T15:01:03Z toorevitimirp quit (Quit: Konversation terminated!) 2020-05-24T15:03:05Z phoe: yes, but still C 2020-05-24T15:04:05Z bitmapper joined #lisp 2020-05-24T15:08:27Z EvW quit (Ping timeout: 260 seconds) 2020-05-24T15:12:46Z orivej_ joined #lisp 2020-05-24T15:13:09Z orivej quit (Read error: Connection reset by peer) 2020-05-24T15:20:06Z oxum joined #lisp 2020-05-24T15:20:34Z dddddd quit (Ping timeout: 240 seconds) 2020-05-24T15:26:28Z oxum quit (Ping timeout: 246 seconds) 2020-05-24T15:27:14Z guicho quit (Remote host closed the connection) 2020-05-24T15:28:05Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T15:30:25Z orivej joined #lisp 2020-05-24T15:31:31Z lucasb joined #lisp 2020-05-24T15:33:47Z madnific` joined #lisp 2020-05-24T15:37:57Z madnificent quit (Ping timeout: 260 seconds) 2020-05-24T15:39:16Z gko quit (Ping timeout: 258 seconds) 2020-05-24T15:39:34Z Oladon joined #lisp 2020-05-24T15:41:04Z Necktwi quit (Ping timeout: 272 seconds) 2020-05-24T15:42:13Z Necktwi joined #lisp 2020-05-24T15:44:33Z jesse1010 joined #lisp 2020-05-24T15:46:03Z Bit_MCP joined #lisp 2020-05-24T15:49:38Z sdumi quit (Ping timeout: 256 seconds) 2020-05-24T15:49:56Z nicktick quit (Ping timeout: 272 seconds) 2020-05-24T15:53:03Z TwoNotes: I call a function that returns multiple values But I don't need all the values. I use declare ignore, but it still complains. https://privatebin.net/?99c568896ea30811#9We1DrL9YbeEv8iuhuatJE7JRrsHXW844spqzKFd98NB 2020-05-24T15:55:54Z _death: the declaration form should be placed where the bindings are introduced (in your case, outside the let form) 2020-05-24T15:58:33Z sdumi joined #lisp 2020-05-24T15:58:43Z ralt joined #lisp 2020-05-24T15:59:13Z beach: TwoNotes: When you expose your code for others to read, it is important that you make sure it follows elementary conventions about indentation and spacing. 2020-05-24T15:59:36Z Bourne quit (Remote host closed the connection) 2020-05-24T16:00:07Z beach: TwoNotes: A closing parenthesis should never be preceded by whitespace, in particular not by a newline. 2020-05-24T16:00:37Z beach: TwoNotes: And the list of variables introduced by your MULTIPLE-VALUE-BIND is not indented correctly. 2020-05-24T16:00:57Z beach: TwoNotes: What programming environment do you use? 2020-05-24T16:01:11Z kpoeck joined #lisp 2020-05-24T16:01:21Z beach: TwoNotes: You should use three or four semicolons for comments outside a top-level form. 2020-05-24T16:01:56Z beach: TwoNotes: The arguments starting at HOUR to your format are not indented correctly. 2020-05-24T16:02:54Z phoe: https://plaster.tymoon.eu/view/1869#1869 2020-05-24T16:03:01Z phoe: there, reindented and fixed 2020-05-24T16:03:02Z beach: TwoNotes: And there is no point in having a LET with no bindings introduced. In this case, since the declaration should go outside the LET, you can remove it. If you do need a declaration but no bindings, use LOCALLY. 2020-05-24T16:03:25Z orivej quit (Ping timeout: 258 seconds) 2020-05-24T16:03:35Z orivej_ joined #lisp 2020-05-24T16:07:13Z _death: may also consider using *x* for special variables rather than +x+ (some think it makes sense for constants, but...) 2020-05-24T16:07:53Z TwoNotes: I was under the mistaken impression that multiple-value-bind only allowed one form. So I removed the let and now it works. 2020-05-24T16:08:07Z _death: also, you may want to use vectors instead of lists 2020-05-24T16:08:15Z phoe: clhs multiple-value-bind 2020-05-24T16:08:16Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_multip.htm 2020-05-24T16:08:25Z TwoNotes: This is SBCL. It complains if I change the +x+ for *x* in violation of "convention" 2020-05-24T16:08:34Z _death: complains how? 2020-05-24T16:08:43Z TwoNotes: I did try using defconstant, but it annoyingly complains every time I recompile 2020-05-24T16:09:01Z phoe: TwoNotes: correct, DEFCONSTANT with lists is very annoying 2020-05-24T16:09:02Z _death: defconstant is indeed the wrong operator to use 2020-05-24T16:09:16Z phoe: you could try alexandria:define-constant with #'equal predicate 2020-05-24T16:09:18Z _death: defparameter/defvar should use *x* 2020-05-24T16:09:24Z beach: TwoNotes: Did you understand the style remarks that were given to you? 2020-05-24T16:09:31Z TwoNotes: I see lots of examples with + though 2020-05-24T16:09:42Z TwoNotes: Yes, I did, thank you. I use emacs in lisp mode 2020-05-24T16:09:54Z beach: I suggest you use SLIME. 2020-05-24T16:10:08Z _death: TwoNotes: because it's not a standard convention, there are multiple "sub-conventions" 2020-05-24T16:10:09Z beach: It has better indentation capabilities for Common Lisp. 2020-05-24T16:10:09Z TwoNotes: Does SLIME work with asdf .asd files? 2020-05-24T16:10:15Z phoe: TwoNotes: yes 2020-05-24T16:10:16Z phoe: very yes 2020-05-24T16:10:18Z TwoNotes: ah ok 2020-05-24T16:10:27Z phoe: (asdf:load-system :foo) in the REPL and you're good to go 2020-05-24T16:10:55Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T16:12:15Z orivej joined #lisp 2020-05-24T16:17:29Z rumbler31 quit (Remote host closed the connection) 2020-05-24T16:20:06Z TwoNotes: Do I leave the ;;;; -*- Mode: Lisp at the start of each file? 2020-05-24T16:20:28Z _death: there's no need if you have a proper file extension like .lisp 2020-05-24T16:20:35Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T16:21:13Z sdumi quit (Read error: Connection reset by peer) 2020-05-24T16:21:45Z TwoNotes: Is there a "pretty-print my region" command in SLIME that will fix up my indentations? 2020-05-24T16:21:56Z orivej joined #lisp 2020-05-24T16:21:58Z ghard joined #lisp 2020-05-24T16:22:18Z sdumi joined #lisp 2020-05-24T16:22:24Z _death: C-x h C-M-q 2020-05-24T16:23:05Z _death: nice, Lisp's concept of decoded time supports job security 2020-05-24T16:28:03Z _death: if you pass encode-universal-time a year between 0 and 99 it shifts the prospect from employment from current day to the end of the century 2020-05-24T16:28:46Z msk quit (Ping timeout: 246 seconds) 2020-05-24T16:30:31Z pjb joined #lisp 2020-05-24T16:30:45Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T16:31:03Z _death: ah, it's a bit more elaborate.. has to be within fifty years 2020-05-24T16:31:42Z pjb: phoe: you can trivially make locatives with closures! 2020-05-24T16:32:04Z orivej joined #lisp 2020-05-24T16:32:06Z pjb: phoe: https://www.informatimago.com/articles/usenet.html#C-like-pointers-in-Lisp 2020-05-24T16:32:52Z pjb: White_Flame: remember closures are equivalent to objects. What you want to do is done with classes and methods! 2020-05-24T16:34:07Z phoe: pjb: I've mentioned it. 2020-05-24T16:34:28Z pjb: White_Flame: your example must be written: (defclass anonymous-1 () ((count :initform 0))) (defmethod next ((s anonymous-1)) (incf (slot-value s 'count))) #| AND THEN: |# (defmethod previous ((s anonymous-1)) (decf (slot-value s 'count))) 2020-05-24T16:35:59Z phoe: pjb: your example is equivalent in semantics but not equivalent in performance, and this is what I think White_Flame was concerned about; closures have less overhead than classes and methods. 2020-05-24T16:36:57Z pjb: phoe: totally wrong! 2020-05-24T16:37:09Z Jeanne-Kamikaze joined #lisp 2020-05-24T16:37:13Z pjb: phoe: this is precisely because this is totally wrong, that the equivalence was discovered! 2020-05-24T16:39:04Z phoe: pjb: I don't understand, which *exactly* part is wrong? that the two are equivalent in semantics, that the two are not equivalent in performance, that this is what I think White_Flame wac concerned about, or that closures have less overhead than classes and methods? 2020-05-24T16:39:20Z phoe: Since you used "totally", I assume you mean all four of them. 2020-05-24T16:42:12Z oxum joined #lisp 2020-05-24T16:42:50Z TwoNotes: So the correct way to balance parens to to pile all the close-parens at the end of the last line? 2020-05-24T16:43:24Z phoe: TwoNotes: correct 2020-05-24T16:43:39Z TwoNotes: ok. The Style Guide does not directly address this point, but all of its example do. 2020-05-24T16:43:48Z phoe: a line with only whitespace and closing parens is a line that should be folded into the above one 2020-05-24T16:43:53Z phoe: I think the luv-slides do 2020-05-24T16:44:09Z phoe: https://www.cs.umd.edu/~nau/cmsc421/norvig-lisp-style.pdf 2020-05-24T16:44:32Z TwoNotes: I was reading https://lisp-lang.org/style-guide/ 2020-05-24T16:45:12Z phoe: oh! https://google.github.io/styleguide/lispguide.xml?showone=Horizontal_white_space#Horizontal_white_space mentions it 2020-05-24T16:46:22Z orivej quit (Ping timeout: 256 seconds) 2020-05-24T16:46:30Z luckless joined #lisp 2020-05-24T16:46:35Z azimut quit (Ping timeout: 272 seconds) 2020-05-24T16:47:15Z orivej joined #lisp 2020-05-24T16:48:08Z TwoNotes: I'm a big beleiver in coding style, so I will go over all these, thanks. Over the *cough* decades I have had to read other people's badly written code in that other-language-who-shall-not-be-named-that -is-about-coffee 2020-05-24T16:48:44Z TwoNotes: It is amazing how much "professionally" written code contains zero comments. 2020-05-24T16:49:29Z pjb: phoe: Don't you know that when https://web.archive.org/web/20060615225746/http://www.brics.dk/~hosc/local/HOSC-11-4-pp399-404.pdf 2020-05-24T16:49:57Z madnific` quit (Ping timeout: 260 seconds) 2020-05-24T16:50:01Z pjb: phoe: "Then came a crucial discovery. Once we got the interpreter working correctly and had played with it for a while, writing small actors programs, we were astonished to discover that the program fragments in apply that implemented function application and actor invocation were identical! Further inspection of other parts of the interpreter, such as the code for creating functions and actors, confirmed this insight: the fact th 2020-05-24T16:50:01Z pjb: functions were intended to return values and actors were not made no difference anywhere in their implementation." 2020-05-24T16:52:25Z X-Scale quit (Ping timeout: 264 seconds) 2020-05-24T16:52:40Z pjb: TwoNotes: https://groups.google.com/forum/#!msg/comp.lang.lisp/oGmha6PbAD4/kmpG51wjJ6gJ 2020-05-24T16:53:26Z SGASAU quit (Remote host closed the connection) 2020-05-24T16:53:38Z X-Scale` joined #lisp 2020-05-24T16:53:47Z pjb: TwoNotes: basically: comments of type "pseudo-code" must be compiled into code. comments of type "specification" are of type "pseudo-code" too! 2020-05-24T16:53:57Z pjb: TwoNotes: you just need a compiler for the specifications! :-) 2020-05-24T16:54:11Z SGASAU joined #lisp 2020-05-24T16:54:28Z X-Scale` is now known as X-Scale 2020-05-24T16:56:50Z TwoNotes: We must not neglect this classic: paper "Artificial Intelligence Meets Natural Stupidity" http://www.cs.yorku.ca/~jarek/courses/ai/F11/naturalstupidity.pdf 2020-05-24T16:57:01Z pjb: TwoNotes: what's amazing, is that actually most code is considered to be basically throwable. The situation where you have code that last long, and be maintained over generations of programmers is rather rare. 2020-05-24T16:57:37Z TwoNotes: My primary audience for the code I write is a future me. 2020-05-24T16:57:55Z ljavorsk joined #lisp 2020-05-24T16:59:12Z cosimone joined #lisp 2020-05-24T17:05:37Z stereosphere joined #lisp 2020-05-24T17:07:26Z ljavorsk quit (Ping timeout: 258 seconds) 2020-05-24T17:08:35Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T17:09:42Z MichaelRaskin: pjb: forget generations, I am OK with reclaiming mere ten years 2020-05-24T17:10:08Z orivej joined #lisp 2020-05-24T17:12:03Z EvW1 joined #lisp 2020-05-24T17:13:11Z p_l: heh 2020-05-24T17:13:12Z pjb: Indeed. Remember that every 5 years, the number of programmers doubles. Which means that at all times, half the programmers have less than 5 years of experience. Which explains why there are new fads all the time, new silver bullet programming languages, etc. 2020-05-24T17:13:43Z p_l: meanwhile I'm in a project where Python was chosen because the code will have to run for 20 years under probably random maintainers 2020-05-24T17:14:04Z pjb: but also, code written doubles every 5 years, so (more than) half of the code written is less than 5 years odl. 2020-05-24T17:14:14Z p_l: pjb: It compounds with technological advances into "great generational knowledge death", as I call it 2020-05-24T17:14:33Z pjb: p_l: bad choice. python 2.7 is dead. In the meantime, CL is still going… 2020-05-24T17:14:42Z p_l: pjb: Python 3 fortunately 2020-05-24T17:14:51Z p_l: the thing is, availability of CL programmers is lower 2020-05-24T17:14:51Z phoe: jackdaniel: I remember that you mentioned some sort of server that has asynchronous and synchronous components; the async parts were realized by calling handlers 2020-05-24T17:15:14Z phoe: is it published anywhere? 2020-05-24T17:16:02Z pjb: p_l: will be dead soon… :-) for python 4 or viper or grass-snake? 2020-05-24T17:16:32Z p_l: pjb: the question was "do we want support calls for next 20 years or do we want ability to throw someone else under the bus" 2020-05-24T17:16:39Z TwoNotes: LISP and FORTRAN are the two oldest languages still in use. But does anyone really still use FORTRAN? 2020-05-24T17:16:45Z pjb: p_l: this is wrong. Everywhere I've worked, programmers knew lisp (or scheme). They've been taught it in university. 2020-05-24T17:16:51Z p_l: that said, the experience with this project is convincing others to learn Lisp 2020-05-24T17:16:59Z DGASAU quit (Ping timeout: 256 seconds) 2020-05-24T17:17:08Z pjb: p_l: only since it's not a hiring bullet-point, they don't talk about it. 2020-05-24T17:17:21Z TwoNotes: Some places consider LISP their secret sauce 2020-05-24T17:17:21Z p_l: pjb: the only university that still had serious lisp course closed it exactly when I wanted to go there so I'd have been in the first year without list 2020-05-24T17:17:23Z p_l: *lisp 2020-05-24T17:17:44Z p_l: (only university that was within "range" let's say) 2020-05-24T17:17:50Z phoe: TwoNotes: fortran is still used in academia and physics computations; tons of battle-tested scientific code is written in Fortran and there's no need or money to rewrite it in elsething 2020-05-24T17:18:06Z TwoNotes: Places like CERN 2020-05-24T17:18:06Z p_l: I'd have way higher chances depending on Haskell, because then I can always put up adverts in Scotland 2020-05-24T17:18:15Z p_l: TwoNotes: not only 2020-05-24T17:18:25Z p_l: actually CERN is heavily in C++, iirc 2020-05-24T17:18:34Z p_l: though I think they have mixed up code 2020-05-24T17:19:06Z p_l: TwoNotes: however if you need to run MPI calculations on arrays it tends to be much easier to just grab fortran 90 with OpenMP and hack 2020-05-24T17:19:24Z MichaelRaskin: pjb: meh, remind me when pypy2 stops working 2020-05-24T17:19:48Z random-nick quit (Ping timeout: 256 seconds) 2020-05-24T17:20:24Z orivej_ joined #lisp 2020-05-24T17:22:24Z orivej quit (Ping timeout: 272 seconds) 2020-05-24T17:22:37Z p_l: anyway, next such project will be mix of C and Lisp :V 2020-05-24T17:22:54Z MichaelRaskin: Nice 2020-05-24T17:24:25Z TwoNotes: Last time I hung out with high-energy physics people was at uni 50 years ago. Not a lot of options then. 2020-05-24T17:25:52Z p_l: MichaelRaskin: the C is only there because we would need a kernel module for a realtime bit 2020-05-24T17:26:07Z bhartrihari left #lisp 2020-05-24T17:26:16Z bhartrihari joined #lisp 2020-05-24T17:26:48Z p_l: unless I end up getting rt gc for a lisp on top of a *proper* RTOS (something that implements OSEK/AUTOSAR or ARINC-653 or similar) 2020-05-24T17:27:33Z TwoNotes: Stop-the-world GC is a bad idea. I like the way Erlang does it. 2020-05-24T17:27:45Z p_l: Stop the world is good for certain kinds of work 2020-05-24T17:28:00Z p_l: what I'd be happy with is something that worked on the metronome pattern 2020-05-24T17:28:56Z DGASAU joined #lisp 2020-05-24T17:34:27Z jw4 quit (Read error: Connection reset by peer) 2020-05-24T17:34:56Z rogersm joined #lisp 2020-05-24T17:35:47Z rippa joined #lisp 2020-05-24T17:36:25Z jw4 joined #lisp 2020-05-24T17:41:07Z beach: TwoNotes: It is not surprising that professionally written code is bad. Remember that a "professional" (by definition) is a person who does something for money, whereas an "amateur" (again by definition) is a person who does something out of love. 2020-05-24T17:42:39Z random-nick joined #lisp 2020-05-24T17:43:18Z oxum quit (Remote host closed the connection) 2020-05-24T17:43:52Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-24T17:44:02Z orivej joined #lisp 2020-05-24T17:44:43Z bhartrihari left #lisp 2020-05-24T17:44:48Z bhartrihari joined #lisp 2020-05-24T17:46:01Z jackdaniel: phoe: no, but I've described how that could be implemented 2020-05-24T17:49:11Z phoe: jackdaniel: OK, I see - I'll think about that 2020-05-24T17:53:32Z cosimone quit (Ping timeout: 260 seconds) 2020-05-24T17:54:06Z TwoNotes: Can a sub-class override a slot :type from the superclass? 2020-05-24T17:54:22Z oxum joined #lisp 2020-05-24T17:54:40Z phoe: TwoNotes: it can, but the provided type must be a subtype of the original 2020-05-24T17:54:41Z cosimone joined #lisp 2020-05-24T17:54:42Z Bike: it can't override it, they're combined 2020-05-24T17:54:50Z phoe: otherwise LSP does not hold 2020-05-24T17:56:35Z phoe: Bike used better words than me 2020-05-24T17:57:06Z rogersm quit (Ping timeout: 240 seconds) 2020-05-24T17:57:43Z Bike: specifically, if C2 is a subclass of C1, and they both declare a slot with the same name, with types T2 and T1 respectively, the type of the effective slot of C2 is equivalent to (and T1 T2) 2020-05-24T17:58:34Z oxum quit (Ping timeout: 240 seconds) 2020-05-24T17:58:59Z TwoNotes: What if the superclass does not mention :type at all, can the subclasses *add* a :type? 2020-05-24T17:59:25Z Bike: if a slot doesn't have a :type mentioned the type is implicitly T 2020-05-24T17:59:28Z phoe: yes 2020-05-24T17:59:29Z rogersm joined #lisp 2020-05-24T17:59:30Z rogersm quit (Client Quit) 2020-05-24T17:59:34Z Bike: so, yeah go for it 2020-05-24T17:59:50Z rogersm joined #lisp 2020-05-24T17:59:51Z Xach: temper your expectations for how useful it will be beyond documentation for the human reader 2020-05-24T17:59:59Z Josh_2 joined #lisp 2020-05-24T18:00:05Z Bike: mhm 2020-05-24T18:00:20Z phoe: I mean, SBCL now typechecks stuff based on :TYPE 2020-05-24T18:00:26Z Bike: though i have some ideas for how packed data in standard objects might usefully be supported in sicl and clasp. we'll see how that goes 2020-05-24T18:00:28Z phoe: CCL did it for a long time™ 2020-05-24T18:01:02Z TwoNotes: It is a b-tree structure, which can be in memoery or on disk. The concept of a 'left' and 'right' downward pointer is common to both. But in memory those slots contain references to other nodes, while on disk they contain strings where are DB keys. I was thinking of possible optimizations the compiler might do 2020-05-24T18:01:30Z Xach: none 2020-05-24T18:01:37Z rogersm: Hi guys, what is the prefered library for PEG parsing? 2020-05-24T18:01:46Z Bike: yeah, it's none on any implementation i'm aware of that actually exists 2020-05-24T18:02:11Z Bike: the problem is that CLOS supports redefinition heavily so the compiler generally can't rely on any information like that 2020-05-24T18:04:27Z phoe: rogersm: esrap-peg IIRC 2020-05-24T18:04:34Z phoe: https://github.com/fb08af68/esrap-peg 2020-05-24T18:04:36Z rogersm: thanks! 2020-05-24T18:04:44Z phoe: MichaelRaskin is the one to bother for providing support for that 2020-05-24T18:05:07Z phoe: see our conversation at https://irclog.tymoon.eu/freenode/%23lisp?around=1589647933#1589647933 for some pointers 2020-05-24T18:05:22Z phoe: I was using that library recently 2020-05-24T18:05:44Z rogersm: phoe: any tricky things I need to know? 2020-05-24T18:06:07Z phoe: rogersm: I don't know, I'm just a neophyte of that lib 2020-05-24T18:06:45Z MichaelRaskin: Well, all the magic optimisations are in Esrap proper 2020-05-24T18:07:22Z MichaelRaskin: Esrap-PEG is just a translation of language-independent PEG syntax as described in the Ford's work to Esrap rules 2020-05-24T18:07:43Z MichaelRaskin: PEG does have some interesting tricky corner cases (unfortunately) 2020-05-24T18:08:01Z MichaelRaskin: Some things are easier to define in BNF, some in PEG. 2020-05-24T18:12:19Z gravicappa quit (Ping timeout: 260 seconds) 2020-05-24T18:13:14Z Xach blames easye for the failure report bloodbath today 2020-05-24T18:16:33Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T18:17:24Z liberliver joined #lisp 2020-05-24T18:17:43Z orivej joined #lisp 2020-05-24T18:20:48Z phoe: what did easye do 2020-05-24T18:21:28Z liberliver quit (Ping timeout: 246 seconds) 2020-05-24T18:21:44Z liberliver joined #lisp 2020-05-24T18:25:24Z bhartrihari left #lisp 2020-05-24T18:25:32Z bhartrihari joined #lisp 2020-05-24T18:29:22Z dxtr joined #lisp 2020-05-24T18:29:23Z dxtr quit (Client Quit) 2020-05-24T18:30:04Z FreeBirdLjj joined #lisp 2020-05-24T18:31:59Z bhartrihari left #lisp 2020-05-24T18:32:11Z bhartrihari joined #lisp 2020-05-24T18:32:57Z v3ga quit (Ping timeout: 260 seconds) 2020-05-24T18:33:50Z Xach: phoe: unbalanced parens 2020-05-24T18:34:42Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-24T18:34:50Z oxum joined #lisp 2020-05-24T18:36:49Z phoe: ooh 2020-05-24T18:36:51Z phoe: how unfortunate 2020-05-24T18:36:55Z phoe gets the chainsaw 2020-05-24T18:37:02Z EvW1 quit (Ping timeout: 260 seconds) 2020-05-24T18:40:25Z oxum quit (Ping timeout: 264 seconds) 2020-05-24T18:45:34Z bhartrihari left #lisp 2020-05-24T18:45:47Z bhartrihari joined #lisp 2020-05-24T18:47:27Z bhartrihari left #lisp 2020-05-24T18:47:34Z bhartrihari joined #lisp 2020-05-24T18:50:32Z flip214: phoe: better get some ballistic parens in reserve, they might be needed 2020-05-24T18:51:59Z phoe: flip214: I got only opening ones though 2020-05-24T18:52:46Z orivej quit (Ping timeout: 260 seconds) 2020-05-24T18:53:56Z flip214: phoe: turn them around, then they match the other end too 2020-05-24T18:54:06Z phoe: flip214: woah 2020-05-24T18:55:58Z ralt: Next you're gonna say d and b have a similar fate? Don't go down that road. 2020-05-24T18:56:39Z flip214: ralt: I'd have said d and p, but who counts individual bits among friends?! 2020-05-24T18:56:56Z orivej joined #lisp 2020-05-24T18:57:31Z flip214: it's interesting which axis of rotation is assumed at first by different people, isn't it? 2020-05-24T18:58:04Z ralt: Certainly 2020-05-24T18:58:10Z ralt: I mean 2020-05-24T18:58:19Z ralt: I don't know if I'd qualify it as "interesting" 2020-05-24T18:59:17Z flip214: there's the story of spatial direction of time among different cultures... ask me at next years ELS if you'd like to hear it 2020-05-24T18:59:51Z ralt: I probably won't be there, but that one does sound fun to hear over a beer 2020-05-24T19:02:52Z random-nick quit (Ping timeout: 256 seconds) 2020-05-24T19:04:04Z shifty quit (Ping timeout: 256 seconds) 2020-05-24T19:05:25Z rogersm quit (Quit: Leaving...) 2020-05-24T19:06:36Z flip214: ralt: short, simple version at https://paste.debian.net/hidden/9abb962e/ 2020-05-24T19:10:47Z lonjil quit (Quit: Quit.) 2020-05-24T19:12:27Z ralt: flip214: uh 2020-05-24T19:12:30Z pjb quit (Ping timeout: 265 seconds) 2020-05-24T19:13:47Z _death: metaphors we live by 2020-05-24T19:14:21Z flip214: ralt: is that an approving "uh"? can't tell from here 2020-05-24T19:16:18Z flip214: I quite like such stories... they provide nice anecdata for sapir-whorf, which I consider proven (for myself) 2020-05-24T19:17:40Z bhartrihari left #lisp 2020-05-24T19:17:58Z ralt: flip214: an intrigued one 2020-05-24T19:17:58Z bhartrihari joined #lisp 2020-05-24T19:19:47Z _death: flip214: do you know it? 2020-05-24T19:21:31Z flip214: https://wiki.c2.com/?SapirWhorfHypothesis 2020-05-24T19:32:02Z hugo1 joined #lisp 2020-05-24T19:32:36Z hugo1 quit (Client Quit) 2020-05-24T19:34:10Z dddddd joined #lisp 2020-05-24T19:35:15Z lonjil joined #lisp 2020-05-24T19:37:40Z lonjil quit (Client Quit) 2020-05-24T19:39:31Z random-nick joined #lisp 2020-05-24T19:39:41Z orivej quit (Read error: Connection reset by peer) 2020-05-24T19:40:03Z orivej joined #lisp 2020-05-24T19:42:41Z karlosz joined #lisp 2020-05-24T19:42:56Z pjb joined #lisp 2020-05-24T19:44:28Z bhartrihari left #lisp 2020-05-24T19:44:41Z bhartrihari joined #lisp 2020-05-24T19:45:25Z rogersm joined #lisp 2020-05-24T19:45:40Z lonjil joined #lisp 2020-05-24T19:46:09Z lonjil quit (Client Quit) 2020-05-24T19:46:22Z lonjil joined #lisp 2020-05-24T19:46:53Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T19:48:13Z orivej joined #lisp 2020-05-24T19:51:52Z dxtr joined #lisp 2020-05-24T19:52:09Z Josh_2: stylewarning: I think I now have the templates compiling into functions, finally got something working 2020-05-24T19:53:54Z lonjil quit (Quit: Quit.) 2020-05-24T19:54:04Z lonjil joined #lisp 2020-05-24T19:54:50Z rogersm quit 2020-05-24T19:56:17Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T19:56:23Z orivej_ joined #lisp 2020-05-24T20:01:40Z TwoNotes: I'm pretty sure the Sapir Shorf hypothesis has been debunked 2020-05-24T20:01:49Z TwoNotes: Whorf 2020-05-24T20:03:05Z _death: surely not the weak form 2020-05-24T20:04:32Z rogersm joined #lisp 2020-05-24T20:08:15Z rogersm quit (Remote host closed the connection) 2020-05-24T20:08:35Z rogersm joined #lisp 2020-05-24T20:09:03Z rogersm quit (Remote host closed the connection) 2020-05-24T20:10:44Z Bike: i mean it's a hypothesis about human cognition relating to national groups formulated in 1930s America, be appropriately skeptical 2020-05-24T20:11:27Z phoe: Online Lisp Meeting #2 has just been announced (by me) - https://www.reddit.com/r/lisp/comments/gpwfyf/ 2020-05-24T20:12:02Z _death: if C doesn't have an oddp predicate, is it any wonder that a & 1 is the idiomatic way to test for it? 2020-05-24T20:13:13Z bhartrihari left #lisp 2020-05-24T20:13:20Z bhartrihari joined #lisp 2020-05-24T20:15:56Z orivej_ quit (Ping timeout: 272 seconds) 2020-05-24T20:16:02Z orivej joined #lisp 2020-05-24T20:17:17Z ralt: I could fall into that trap 2020-05-24T20:23:36Z Krystof quit (Remote host closed the connection) 2020-05-24T20:23:37Z vibs29 joined #lisp 2020-05-24T20:24:12Z rogersm joined #lisp 2020-05-24T20:24:49Z jeosol quit (Remote host closed the connection) 2020-05-24T20:24:54Z dxtr quit (Quit: Reconnecting) 2020-05-24T20:25:01Z dxtr joined #lisp 2020-05-24T20:29:00Z rogersm quit (Ping timeout: 256 seconds) 2020-05-24T20:31:30Z Krystof joined #lisp 2020-05-24T20:37:22Z oxum joined #lisp 2020-05-24T20:38:44Z heisig quit (Quit: Leaving) 2020-05-24T20:41:25Z pjb: _death: a&1 is not idiomatic, it IS the C oddp predicate. 2020-05-24T20:42:31Z _death: pjb: well, there's also a%2 ;) 2020-05-24T20:43:20Z _death: PG gave the example of BASIC and recursion 2020-05-24T20:45:10Z _death: see here https://sep.yimg.com/ty/cdn/paulgraham/acl1.txt 2020-05-24T20:46:25Z p_l: _death: regarding recursion and BASIC... it hits you hard when you end up working on a platform that does *not* support recursion. or reentrancy 2020-05-24T20:46:48Z _death: good thing you know about stacks :) 2020-05-24T20:46:58Z orivej quit (Ping timeout: 272 seconds) 2020-05-24T20:47:12Z orivej joined #lisp 2020-05-24T20:48:12Z p_l: can't fix it because we're not allowed to program the cpu directly 2020-05-24T20:48:27Z p_l: and as insane as I am, writing a lisp in IEC ST is a bit beyond me 2020-05-24T20:49:18Z SGASAU quit (Remote host closed the connection) 2020-05-24T20:49:29Z _death: you could write lisp to write it for you 2020-05-24T20:49:32Z pjb: p_l: you can always implement your own stack, modulo we're not using turing machines!!! (much less universal turing machines). 2020-05-24T20:50:04Z SGASAU joined #lisp 2020-05-24T20:50:10Z p_l: _death: the problems are limitations of the execution environment even if you somehow get a lisp through 2020-05-24T20:50:10Z phoe: us lambda calculus fanboys don't need no ugly stacks 2020-05-24T20:50:15Z pjb: p_l: LISP was implemented on a machine that didn't support recursion or reentrancy (no stack). 2020-05-24T20:50:44Z emacsomancer: what prefix is sbcl's make-timer under? 2020-05-24T20:50:44Z bitmapper quit (Read error: Connection reset by peer) 2020-05-24T20:50:50Z pjb: p_l: that said, I agree that LISP wasn't implemented using libraries from github! 2020-05-24T20:50:52Z p_l: pjb: if we could program the CPU directly, we wouldn't have an issue 2020-05-24T20:51:10Z _death: emacsomancer: check out the APROPOS operator 2020-05-24T20:51:15Z pjb: p_l: there's always a turtle under. 2020-05-24T20:51:18Z pjb: just ask Intel! 2020-05-24T20:51:36Z p_l: pjb: sometimes the turtle has already been cooked 2020-05-24T20:51:50Z emacsomancer: it works when I just sbcl --load it, but not with ql 2020-05-24T20:52:11Z p_l: pjb: instead my solution for any future project involving similar environment is Lisp running on hardened PC, possibly with a C kernel module to handle realtime network 2020-05-24T20:52:13Z pjb: When we'll have quantum processors, the fun! 2020-05-24T20:52:14Z TwoNotes: emacsomancer, sb-ext. See Chapter 14 2020-05-24T20:52:32Z emacsomancer: thanks _death, TwoNotes 2020-05-24T20:53:16Z p_l: pjb: generally PLCs disappointed me a lot over last few months ;) 2020-05-24T20:53:49Z pjb: actually, my point is that without those numerous layer, directly to the CPU, we could eventualy reach the physical layer. Then things become funny. Early computers had some of that fun… 2020-05-24T20:54:25Z pjb: it doesn't have to be quantum physics, it can be anything the computer is implemented on. 2020-05-24T20:54:29Z bitmappe_ joined #lisp 2020-05-24T20:54:48Z johntalent quit (Quit: leaving) 2020-05-24T20:55:05Z pjb: We should really use legos to implement a lambda calculus on braids of wool… 2020-05-24T20:55:14Z karayan quit (Remote host closed the connection) 2020-05-24T20:55:20Z _death: p_l: by ST do you mean https://en.wikipedia.org/wiki/Structured_text ? 2020-05-24T20:55:27Z p_l: yes 2020-05-24T20:55:36Z _death: ok 2020-05-24T20:58:37Z karayan joined #lisp 2020-05-24T21:01:18Z White_Flame: pjb/phoe: yeah, I was purely looking at disassembly-based optimization options, and how to use the tightest shared access to data (closures) in an extensible way 2020-05-24T21:02:02Z bitmappe_ is now known as bitmapper 2020-05-24T21:02:03Z White_Flame: accessing a slot of a closure is a simple indexing of the function pointer that was entered 2020-05-24T21:02:35Z White_Flame: (in SBCL, speed 3, etc) 2020-05-24T21:03:33Z p_l: White_Flame: beware, speed 3 allows editing function constants :D 2020-05-24T21:03:52Z White_Flame: well yeah, speed 3, safety 0, debug 0, etc 2020-05-24T21:04:02Z p_l: yep 2020-05-24T21:04:03Z White_Flame: with a switch to flip it to fully safe for debugging purposes 2020-05-24T21:04:22Z p_l: I wondered at that time how far I was from simply overwriting the entrypoint 2020-05-24T21:10:44Z oxum quit (Ping timeout: 265 seconds) 2020-05-24T21:13:55Z oxum joined #lisp 2020-05-24T21:16:41Z corpix joined #lisp 2020-05-24T21:18:14Z oxum quit (Ping timeout: 240 seconds) 2020-05-24T21:25:57Z parentheses joined #lisp 2020-05-24T21:26:01Z parentheses: Hello 2020-05-24T21:26:36Z parentheses: are hash tables really important to common lisp, or can i just skip them over on pcl and then come back? 2020-05-24T21:27:16Z zulu-inuoe quit (Read error: Connection reset by peer) 2020-05-24T21:27:20Z TwoNotes: Depends what you are doing. I use them all the time. 2020-05-24T21:27:39Z jeosol joined #lisp 2020-05-24T21:27:57Z parentheses: what do you use lisp for? 2020-05-24T21:28:35Z Josh_2: if I have a function that either returns t or signals a condition should I still use -p or not? 2020-05-24T21:28:40Z seok: Hi guys 2020-05-24T21:28:44Z Josh_2: seok: hi 2020-05-24T21:28:50Z seok: Hi Josh! 2020-05-24T21:29:05Z seok: How do I print and flush output to make stuff like progress bars? 2020-05-24T21:29:09Z TwoNotes: parentheses Speech recognition, natural language parsing, database access 2020-05-24T21:29:23Z Josh_2: parentheses: they aren't that important but certainly worth knowing. They are pretty simple ¯\_(ツ)_/¯ 2020-05-24T21:29:29Z parentheses: thats neat! 2020-05-24T21:29:41Z TwoNotes: seok (finish-output) 2020-05-24T21:29:46Z Josh_2: seok: (finish-output) (force-output) ? 2020-05-24T21:30:05Z seok: hm, is there one I can do with strings? 2020-05-24T21:30:12Z seok: Do I have to make streams first? 2020-05-24T21:30:22Z Josh_2: Well when you "print" those strings are being written to a stream 2020-05-24T21:30:35Z TwoNotes: seok if outputing to the temrinal, just use T for the stream 2020-05-24T21:30:37Z parentheses: when i finish my lisp study and after making some simple software i might try to develop a roguelike, are they important for roguelikes? tho i will explore everything i can do with lisp and find what i like mre 2020-05-24T21:30:58Z Josh_2: parentheses: It's worth just reading about hashtables because there isn't much to them 2020-05-24T21:31:26Z TwoNotes: Hash tables are the primary "associative memory" of Lisp. Just make sure you set the :test properly 2020-05-24T21:31:30Z Josh_2: (make-hash-table) (setf (gethash ..)) (maphash ..) etc 2020-05-24T21:31:37Z seok: like this? https://pastebin.com/EdiBCADZ 2020-05-24T21:31:53Z parentheses: im just having problems with multiple-value-bind 2020-05-24T21:33:02Z seok: Hm, doesn't work like a progressbar on sbcl 2020-05-24T21:33:16Z seok: http://clhs.lisp.se/Body/f_finish.htm seems to be implementation dependent? 2020-05-24T21:33:33Z TwoNotes: seok, that loop runs so fast you probably would not notice 2020-05-24T21:33:45Z seok: just test code 2020-05-24T21:33:52Z seok: I have another loop I want to know progress of 2020-05-24T21:34:08Z seok: I am expecting 10 only, but I am getting 0 1 2 3 .... 2020-05-24T21:34:48Z TwoNotes: If you want to overwrite text on the screen, you need to throw in some escape sequences 2020-05-24T21:36:05Z Josh_2: seok: (loop :for i :from 0 :to 10 :do (format t "~A" i)) this just prints 012345678910 on one line 2020-05-24T21:36:38Z seok: yeah I want to flush outputs from previous loop 2020-05-24T21:37:01Z TwoNotes: You have to reposition the temrinal cursor. Read up on the $[m;nH escape sequnce 2020-05-24T21:37:14Z Josh_2: (loop :for i :from 0 :to 1000 :do (format t "|")(force-output t)) 2020-05-24T21:37:23Z Josh_2: that writes | each iteration 2020-05-24T21:37:53Z ralt: TwoNotes: what would be a more googleable name? 2020-05-24T21:38:21Z TwoNotes: http://ascii-table.com/ansi-escape-sequences-vt-100.php 2020-05-24T21:39:22Z TwoNotes: To emit an escape you need to use (code-char 17) and the ~C format control 2020-05-24T21:39:31Z TwoNotes: oops, (code-char 27) 2020-05-24T21:39:50Z gaqwas quit (Ping timeout: 256 seconds) 2020-05-24T21:40:33Z TwoNotes: When testing, throw a (sleep 1) into the loop so it slows down 2020-05-24T21:40:38Z seok: Ah 2020-05-24T21:40:41Z nwoob joined #lisp 2020-05-24T21:40:42Z seok: this looks good 2020-05-24T21:41:00Z seok: Thank you 2020-05-24T21:41:11Z nwoob: does cl still has advantage over modern languages? 2020-05-24T21:41:23Z seok: nwoob if you ask that here... 2020-05-24T21:41:27Z TwoNotes: lol 2020-05-24T21:41:50Z dale joined #lisp 2020-05-24T21:41:52Z TwoNotes: No, we just prefer chisleing our code on stone tablets for the fun of it 2020-05-24T21:42:10Z seok: nwoob I'm a CL noob, but I cannot use any other language. It feels really bad 2020-05-24T21:42:13Z TwoNotes: But it is the most productive language I have ever used, and I have used a LOT of them 2020-05-24T21:42:18Z seok: I've moved from python 2020-05-24T21:42:52Z seok: I only use other languages when big API's force me to use them 2020-05-24T21:43:37Z nwoob: TwoNotes: could you give examples where you find cl having advantage over the set of languages that you have used 2020-05-24T21:43:50Z TwoNotes: Lisp's elegance appeals to me. Then there is this: https://xkcd.com/224/ 2020-05-24T21:44:04Z TwoNotes: Data is code is data is code 2020-05-24T21:44:22Z seok: Which language are you from nwoob? 2020-05-24T21:44:26Z TwoNotes: It takes me few lines of code to do most things. And it has an extensive library 2020-05-24T21:45:00Z seok: TwoNotes I don't think library availability is an advantage of CL 2020-05-24T21:45:10Z nwoob: seok: mostly js 2020-05-24T21:45:28Z seok: if you want big community and lots of library probs should head to other big languages should you not? 2020-05-24T21:45:55Z ralt: seok: I think TwoNotes meant the standard library. 2020-05-24T21:45:56Z TwoNotes: When all else fails, there is FFI 2020-05-24T21:46:04Z TwoNotes: And quicklisp 2020-05-24T21:46:06Z seok: What kind of library does he mean? 2020-05-24T21:46:08Z nwoob: it takes few lines of code to do things in JS too and it has very vast library 2020-05-24T21:46:30Z TwoNotes: Does JS even have lexical scoping? I cant remember 2020-05-24T21:46:35Z nwoob: yes 2020-05-24T21:46:42Z seok: JS as in node? 2020-05-24T21:46:51Z nwoob: seok: as in vanilla JS 2020-05-24T21:47:02Z seok: JS is not a programming language though 2020-05-24T21:47:12Z nwoob: but yes node too I have enough exp 2020-05-24T21:47:25Z nwoob: seok: and from where did you learn that 2020-05-24T21:47:41Z seok: its a scripting language is it not? and node is the programming version 2020-05-24T21:47:43Z ralt: seok: that's just being pedantic :) 2020-05-24T21:47:46Z seok: xD 2020-05-24T21:48:02Z seok: Idk, I think the difference matters 2020-05-24T21:48:13Z oxum joined #lisp 2020-05-24T21:48:34Z seok: It depends on what you want to get out from programming 2020-05-24T21:48:38Z ralt: and no, it's not a scripting language, that term is not even defined. If you want to be pedantic, at least be correct. The language is ECMAScript. The implementations are: nodejs. v8, etc. 2020-05-24T21:48:44Z ralt: well, not even that 2020-05-24T21:48:46Z seok: If you want a job.. stay away from lisp? 2020-05-24T21:48:49Z ralt: v8 is node's runtime as well 2020-05-24T21:48:53Z Josh_2: CL's incredible metaprogramming abilities is certainly an advantage over basically all other languages 2020-05-24T21:49:02Z Josh_2: while remaining extremely performant 2020-05-24T21:49:06Z nwoob: seok: these type of arguments scripting vs programming attracts shallow arguments 2020-05-24T21:49:13Z TwoNotes: You are not going to be writing raw databases and web servers in JS 2020-05-24T21:49:39Z ralt: you are... 2020-05-24T21:49:42Z seok: ralt I see 2020-05-24T21:50:02Z kpoeck left #lisp 2020-05-24T21:50:02Z seok: nwoob what are you looking for in a language? 2020-05-24T21:50:28Z Josh_2: CL also has much nicer syntax that most other languages, much more consistent, creates elegant code :P 2020-05-24T21:50:29Z ralt: I mean, if y'all want to bash on js, go for it, but at least present good arguments. Josh_2 is the only one who had a good one so far. 2020-05-24T21:50:41Z nwoob: looking to widen my knowledge, looking to learn other paradigms 2020-05-24T21:50:44Z seok: ralt wikipedia says ECMAScripts are scripting langauges tho https://en.wikipedia.org/wiki/ECMAScript 2020-05-24T21:50:54Z TwoNotes quit (Quit: Leaving) 2020-05-24T21:51:09Z ralt: seok: given cl-launch, is Common Lisp a scripting language? 2020-05-24T21:51:10Z Josh_2: Oh right, well I don't think you are gonna find any "new" paradigms in CL, but you will find support for many, and then you can jimmy them together 2020-05-24T21:51:19Z seok: and it says scripting languages are programming languages 2020-05-24T21:51:33Z ralt: "scripting language" is just an ill-defined term those days 2020-05-24T21:51:52Z seok: I guess 2020-05-24T21:52:26Z Josh_2: And if you have no experience with homoiconicity then I think Lisp is a better choice that Julia 2020-05-24T21:52:31Z Josh_2: than Julia* 2020-05-24T21:53:50Z oxum quit (Ping timeout: 260 seconds) 2020-05-24T21:54:09Z seok: lisp is a general purpose language 2020-05-24T21:54:58Z ralt: nwoob: I would recommend Common Lisp because it has all the features of all the other languages since the 80's, plus many more (condition system, CLOS, first-class functions, macros, etc etc). Some of those have been implemented in JS. (Did you know that JS was originally inspired by lisp?) 2020-05-24T21:55:33Z Josh_2: haha yes "inspired" It's also apparently a "scheme" XD 2020-05-24T21:56:55Z pve quit (Quit: leaving) 2020-05-24T21:58:15Z ralt: JS is a mix between java (the C-like syntax), Scheme (e.g. first-class functions, which was one of the few algol-family languages to have it back then), and Self (the whole prototype stuff) 2020-05-24T22:01:01Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-24T22:02:08Z frgo quit (Remote host closed the connection) 2020-05-24T22:02:23Z Yardanico quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2020-05-24T22:02:45Z frgo joined #lisp 2020-05-24T22:03:21Z Yardanico joined #lisp 2020-05-24T22:04:25Z SAL9000 quit (Ping timeout: 246 seconds) 2020-05-24T22:05:30Z whiteline quit (Ping timeout: 272 seconds) 2020-05-24T22:08:07Z aeth: CL has uniform syntax, which means that language extensions don't look any different from language built-ins. So e.g. (:html (:head #| header stuff goes here |#) (:body (:p "Hello, world!"))) can exist in a macro and it can generate an HTML string at compile time. 2020-05-24T22:09:04Z aeth: And you can usually mix in a variable inside that macro like (:body (:p "Hello, " name)) and it will just turn everything surrounding the variable(s) into a constant string 2020-05-24T22:10:16Z parentheses quit (Quit: WeeChat 2.7) 2020-05-24T22:10:55Z nwoob: cool!!! 2020-05-24T22:13:46Z aeth: But trivial macros exist, too. e.g. Someone was complaining about CL not having a simple for loop, but that's just (defmacro for (&rest forms) `(loop for ,@forms)) ; e.g. (for i in (list 1 2 3) do (print i)) 2020-05-24T22:15:46Z nwoob: aeth: and I believe one cannot do that in any other language. right? 2020-05-24T22:16:13Z aeth_ joined #lisp 2020-05-24T22:16:14Z nwoob: extending the langauge like you showed with for loop example 2020-05-24T22:16:25Z MichaelRaskin: Complicated question 2020-05-24T22:16:39Z MichaelRaskin: Lisp family languages mostly support that 2020-05-24T22:16:43Z nicktick joined #lisp 2020-05-24T22:17:10Z whiteline joined #lisp 2020-05-24T22:17:21Z MichaelRaskin: Julia requires prefixing macros with @ (and standard library includes quite a few macros) 2020-05-24T22:17:24Z SAL9000 joined #lisp 2020-05-24T22:18:25Z aeth quit (Disconnected by services) 2020-05-24T22:18:30Z aeth_ is now known as aeth 2020-05-24T22:18:33Z MichaelRaskin: Simple constructs can sometimes be shoehorned into Ruby's block support to look as if they were native 2020-05-24T22:18:42Z MichaelRaskin: There is Metalua… 2020-05-24T22:18:45Z MichaelRaskin: etc. 2020-05-24T22:19:31Z aeth: Most languages want to restrict the power of the programmer, sometimes for performance or sometimes for simplicity. It's often seen as a problem that macros are indistinguishable from functions, although in practice the various conventions make them easy to spot. 2020-05-24T22:21:01Z aeth: Metaprogramming is generally possible but it's usually (1) hard and (2) distinguishable from something built into the language 2020-05-24T22:23:47Z andrei-n quit (Quit: Leaving) 2020-05-24T22:24:52Z rogersm joined #lisp 2020-05-24T22:29:01Z oxum joined #lisp 2020-05-24T22:29:42Z rogersm quit (Ping timeout: 256 seconds) 2020-05-24T22:31:28Z nwoob quit (Ping timeout: 272 seconds) 2020-05-24T22:34:03Z corpix quit (Ping timeout: 240 seconds) 2020-05-24T22:35:02Z corpix joined #lisp 2020-05-24T22:36:28Z lucasb quit (Quit: Connection closed for inactivity) 2020-05-24T22:40:10Z random-nick quit (Ping timeout: 258 seconds) 2020-05-24T22:43:22Z oxum quit (Ping timeout: 256 seconds) 2020-05-24T22:47:20Z orivej quit (Ping timeout: 256 seconds) 2020-05-24T22:47:24Z orivej_ joined #lisp 2020-05-24T22:50:28Z nicktick quit (Ping timeout: 272 seconds) 2020-05-24T22:56:30Z cosimone quit (Quit: Quit.) 2020-05-24T22:57:13Z msk joined #lisp 2020-05-24T22:57:41Z ralt: is there some tutorial about using cffi groveler/wrapper? 2020-05-24T22:59:40Z fe[nl]ix: no 2020-05-24T22:59:43Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-24T23:01:03Z orivej joined #lisp 2020-05-24T23:03:25Z pjb quit (Ping timeout: 272 seconds) 2020-05-24T23:08:06Z ralt: would it be an accepted contribution to the manual? 2020-05-24T23:08:40Z quazimod1 joined #lisp 2020-05-24T23:09:37Z fe[nl]ix: sure 2020-05-24T23:11:00Z ralt: great. I need to write one for myself. 2020-05-24T23:11:05Z quazimodo quit (Ping timeout: 265 seconds) 2020-05-24T23:14:16Z ralt: essentially, the groveller is to write lisp code that goes through C and generates Lisp (the typical use case is being able to grab constants in C macros), whilst the wrapper is to write Lisp code that ends up generated to C and linked as a shared library? What is the typical use case for wrappers? Did I get those correct? 2020-05-24T23:15:52Z rgherdt quit (Ping timeout: 260 seconds) 2020-05-24T23:17:02Z fe[nl]ix: wrappers are needed when you need to expose C entities that are not available as ELF symbols: either macros that execute code or built-in operators 2020-05-24T23:17:23Z ralt: macros executing code makes sense, what are built-in operators? 2020-05-24T23:19:36Z ralt: also; ELF symbols is linux-only, right? what would be a common terminology with windows? or is there not, and we should just use "ABI"? 2020-05-24T23:22:12Z fe[nl]ix: things not exposed thorugh the ABI 2020-05-24T23:24:16Z fe[nl]ix: GCC has lots of built-in operators: start at https://gcc.gnu.org/onlinedocs/gcc/Return-Address.html 2020-05-24T23:27:23Z anticrisis joined #lisp 2020-05-24T23:29:56Z orivej quit (Ping timeout: 265 seconds) 2020-05-24T23:30:13Z orivej joined #lisp 2020-05-24T23:31:48Z ralt: ah, those sort of things 2020-05-24T23:32:37Z ralt: thanks! 2020-05-24T23:34:00Z stereosphere quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2020-05-24T23:36:59Z pjb joined #lisp 2020-05-24T23:38:34Z orivej quit (Ping timeout: 240 seconds) 2020-05-24T23:39:23Z orivej joined #lisp 2020-05-24T23:39:23Z Aurora_v_kosmose quit (Ping timeout: 240 seconds) 2020-05-24T23:40:03Z cantstanya quit (Ping timeout: 240 seconds) 2020-05-24T23:43:07Z jfrancis joined #lisp 2020-05-24T23:43:45Z vibs29 left #lisp 2020-05-24T23:45:19Z cantstanya joined #lisp 2020-05-24T23:53:02Z Aurora_v_kosmose joined #lisp 2020-05-25T00:00:51Z wxie joined #lisp 2020-05-25T00:04:34Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T00:05:02Z orivej joined #lisp 2020-05-25T00:08:13Z nicktick joined #lisp 2020-05-25T00:10:32Z quazimod1 quit (Ping timeout: 265 seconds) 2020-05-25T00:10:49Z quazimodo joined #lisp 2020-05-25T00:11:47Z ralt: fe[nl]ix: I'm available here if you want to discuss the cffi-devel post :) 2020-05-25T00:12:49Z corpix quit (Remote host closed the connection) 2020-05-25T00:12:49Z orivej quit (Ping timeout: 264 seconds) 2020-05-25T00:13:12Z orivej joined #lisp 2020-05-25T00:13:24Z corpix joined #lisp 2020-05-25T00:13:51Z corpix quit (Remote host closed the connection) 2020-05-25T00:19:26Z corpix joined #lisp 2020-05-25T00:20:46Z quazimodo quit (Ping timeout: 256 seconds) 2020-05-25T00:22:38Z quazimodo joined #lisp 2020-05-25T00:25:40Z rogersm joined #lisp 2020-05-25T00:26:06Z orivej quit (Ping timeout: 272 seconds) 2020-05-25T00:26:23Z orivej joined #lisp 2020-05-25T00:30:19Z rogersm quit (Ping timeout: 260 seconds) 2020-05-25T00:31:04Z oxum joined #lisp 2020-05-25T00:40:04Z Lord_of_Life_ joined #lisp 2020-05-25T00:40:13Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-25T00:41:32Z orivej joined #lisp 2020-05-25T00:43:50Z Lord_of_Life quit (Ping timeout: 272 seconds) 2020-05-25T00:43:51Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-25T00:52:22Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-25T00:53:16Z orivej joined #lisp 2020-05-25T00:56:58Z freixo joined #lisp 2020-05-25T00:57:44Z fe[nl]ix: ralt: as far as I can tell, static-program-op on SBCL does not link statically 2020-05-25T01:03:29Z nicktick quit (Quit: Leaving.) 2020-05-25T01:03:44Z nicktick joined #lisp 2020-05-25T01:06:25Z Lycurgus joined #lisp 2020-05-25T01:07:21Z akoana joined #lisp 2020-05-25T01:08:19Z GuerrillaMonkey joined #lisp 2020-05-25T01:10:37Z Jeanne-Kamikaze quit (Ping timeout: 246 seconds) 2020-05-25T01:20:55Z Lycurgus quit (Read error: Connection reset by peer) 2020-05-25T01:22:25Z ldb joined #lisp 2020-05-25T01:23:56Z ldb: good morning everyone 2020-05-25T01:24:13Z Josh_2: Mornin' 2020-05-25T01:34:25Z oxum quit (Ping timeout: 246 seconds) 2020-05-25T01:38:02Z bitmapper quit (Ping timeout: 258 seconds) 2020-05-25T01:41:54Z orivej quit (Ping timeout: 240 seconds) 2020-05-25T01:42:25Z orivej joined #lisp 2020-05-25T01:49:33Z Jeanne-Kamikaze joined #lisp 2020-05-25T01:52:14Z GuerrillaMonkey quit (Ping timeout: 272 seconds) 2020-05-25T01:54:01Z Jeanne-Kamikaze quit (Read error: Connection reset by peer) 2020-05-25T01:54:35Z shifty joined #lisp 2020-05-25T01:56:37Z ldb quit (Ping timeout: 264 seconds) 2020-05-25T02:02:14Z ldb joined #lisp 2020-05-25T02:07:01Z ldb quit (Ping timeout: 265 seconds) 2020-05-25T02:12:30Z orivej quit (Ping timeout: 272 seconds) 2020-05-25T02:12:36Z orivej_ joined #lisp 2020-05-25T02:12:43Z oxum joined #lisp 2020-05-25T02:14:01Z oxum quit (Remote host closed the connection) 2020-05-25T02:16:38Z oxum joined #lisp 2020-05-25T02:22:00Z oxum quit (Ping timeout: 265 seconds) 2020-05-25T02:23:11Z ldb joined #lisp 2020-05-25T02:25:52Z Bike quit (Quit: leaving) 2020-05-25T02:26:25Z rogersm joined #lisp 2020-05-25T02:27:52Z ldb quit (Ping timeout: 258 seconds) 2020-05-25T02:30:31Z pjb quit (Ping timeout: 272 seconds) 2020-05-25T02:30:46Z rogersm quit (Ping timeout: 246 seconds) 2020-05-25T02:31:39Z TwoNotes joined #lisp 2020-05-25T02:32:08Z orivej_ quit (Ping timeout: 272 seconds) 2020-05-25T02:34:13Z oxum joined #lisp 2020-05-25T02:35:04Z lavaflow quit (Ping timeout: 256 seconds) 2020-05-25T02:36:14Z lavaflow joined #lisp 2020-05-25T02:39:03Z orivej joined #lisp 2020-05-25T02:40:50Z lavaflow quit (Ping timeout: 260 seconds) 2020-05-25T02:41:22Z jesse1010 quit (Ping timeout: 256 seconds) 2020-05-25T02:43:16Z ldb joined #lisp 2020-05-25T02:45:43Z freixo quit (Ping timeout: 272 seconds) 2020-05-25T02:47:55Z ldb quit (Ping timeout: 246 seconds) 2020-05-25T02:53:44Z freixo joined #lisp 2020-05-25T02:56:01Z oldtopman quit (Ping timeout: 264 seconds) 2020-05-25T02:56:42Z oldtopman joined #lisp 2020-05-25T02:58:34Z orivej quit (Ping timeout: 240 seconds) 2020-05-25T02:58:43Z orivej_ joined #lisp 2020-05-25T03:00:27Z beach: Good morning everyone! 2020-05-25T03:01:01Z TwoNotes quit (Quit: Leaving) 2020-05-25T03:01:53Z pjb joined #lisp 2020-05-25T03:03:41Z ldb joined #lisp 2020-05-25T03:08:52Z ldb quit (Ping timeout: 272 seconds) 2020-05-25T03:20:53Z fluxwave joined #lisp 2020-05-25T03:24:01Z ldb joined #lisp 2020-05-25T03:27:21Z rogersm joined #lisp 2020-05-25T03:28:54Z ldb quit (Ping timeout: 256 seconds) 2020-05-25T03:29:46Z orivej_ quit (Ping timeout: 272 seconds) 2020-05-25T03:29:52Z orivej joined #lisp 2020-05-25T03:29:58Z akoana quit (Quit: leaving) 2020-05-25T03:31:48Z rogersm quit (Ping timeout: 256 seconds) 2020-05-25T03:32:12Z _jrjsmrtn joined #lisp 2020-05-25T03:32:37Z __jrjsmrtn__ quit (Ping timeout: 264 seconds) 2020-05-25T03:34:34Z dddddd quit (Ping timeout: 258 seconds) 2020-05-25T03:35:01Z wxie quit (Ping timeout: 264 seconds) 2020-05-25T03:35:07Z pjb quit (Ping timeout: 272 seconds) 2020-05-25T03:36:15Z oxum quit (Remote host closed the connection) 2020-05-25T03:39:34Z bhartrihari left #lisp 2020-05-25T03:39:43Z bhartrihari joined #lisp 2020-05-25T03:40:39Z freixo quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2020-05-25T03:44:25Z ldb joined #lisp 2020-05-25T03:45:44Z bhartrihari left #lisp 2020-05-25T03:49:29Z ldb quit (Ping timeout: 265 seconds) 2020-05-25T03:51:31Z slyrus joined #lisp 2020-05-25T03:52:33Z orivej_ joined #lisp 2020-05-25T03:53:38Z wxie joined #lisp 2020-05-25T03:54:49Z orivej quit (Ping timeout: 264 seconds) 2020-05-25T03:57:14Z orivej_ quit (Ping timeout: 240 seconds) 2020-05-25T04:04:52Z ldb joined #lisp 2020-05-25T04:09:28Z ldb quit (Ping timeout: 246 seconds) 2020-05-25T04:10:16Z pjb joined #lisp 2020-05-25T04:17:37Z wxie quit (Ping timeout: 264 seconds) 2020-05-25T04:18:45Z rumbler31 joined #lisp 2020-05-25T04:21:11Z emacsomancer: morning! 2020-05-25T04:21:30Z beach: Hello emacsomancer. 2020-05-25T04:21:55Z emacsomancer: how's tricks? 2020-05-25T04:22:13Z akoana joined #lisp 2020-05-25T04:23:22Z rumbler31 quit (Ping timeout: 256 seconds) 2020-05-25T04:23:27Z beach: Me? I'm working hard on SICL bootstrapping. Right now I am working on some simple arithmetic functions. We have decided (in #sicl) that we will be able to make the arithmetic functions fast enough, even though they are defined as generic functions. 2020-05-25T04:23:46Z beach: emacsomancer: What about you? What are you working on? 2020-05-25T04:25:15Z ldb joined #lisp 2020-05-25T04:25:24Z emacsomancer: beach: much smaller, more trivial sort of thing: a frontend interface for wireguard: https://gitlab.com/emacsomancer/volemad 2020-05-25T04:26:21Z emacsomancer: (or, a subset of wireguard servers rather) 2020-05-25T04:26:28Z beach: I see. 2020-05-25T04:26:49Z markasoftware: How long has SICL been in the works? I've never heard of it before. 2020-05-25T04:27:25Z beach: Several years, maybe six or more. 2020-05-25T04:27:45Z beach: I haven't worked full time on it during all that time. 2020-05-25T04:28:18Z rogersm joined #lisp 2020-05-25T04:29:25Z ech quit (Ping timeout: 246 seconds) 2020-05-25T04:29:44Z bhartrihari joined #lisp 2020-05-25T04:29:58Z beach: If I were better with GIT, I could find out. But I'm not. :( 2020-05-25T04:30:02Z ldb quit (Ping timeout: 260 seconds) 2020-05-25T04:30:50Z markasoftware: git log | tail? 2020-05-25T04:31:07Z beach: Ah, OK. Let me try it. 2020-05-25T04:31:58Z beach: 2010 2020-05-25T04:32:02Z beach: So 10 years. 2020-05-25T04:32:13Z emacsomancer: are portable modules the main goal for SICL? or that more a happy benefit of trying to write things in more portable fashion? 2020-05-25T04:32:55Z markasoftware: damn that's a serious project, I'll check it out some time 2020-05-25T04:32:56Z rogersm quit (Ping timeout: 256 seconds) 2020-05-25T04:33:29Z beach: Portable modules are one goal, but they are actually not that portable, given how most implementations are built. It is mainly a maintainability issue right now. 2020-05-25T04:34:01Z oxum joined #lisp 2020-05-25T04:35:10Z no-defun-allowed: Many of the modules are portable, in the sense that you can run them on an implementation like SBCL or Clozure using their data representations, some not so much. 2020-05-25T04:35:49Z emacsomancer: but the idea is a more common Common Lisp generally? 2020-05-25T04:35:59Z beach: That's true, but some, like LOOP requires the existence of LOOP to compile, so you couldn't replace the native LOOP by SICL LOOP. 2020-05-25T04:36:23Z beach: minion: Please tell emacsomancer about SICL. 2020-05-25T04:36:23Z minion: emacsomancer: SICL: SICL is a (perhaps futile) attempt to re-implement Common Lisp from scratch, hopefully using improved programming and bootstrapping techniques. See https://github.com/robert-strandh/SICL 2020-05-25T04:36:38Z emacsomancer: I see 2020-05-25T04:37:15Z beach: emacsomancer: Most existing Common Lisp implementations started life as pre-ANSI CLtL1 implementations, so the code is different from what we would write these days. 2020-05-25T04:37:51Z beach: emacsomancer: And most of them assume that you must write the core in some low-level language like C or C++. I think that's a bad idea. 2020-05-25T04:38:28Z emacsomancer: that makes sense. it sounds like an exciting project. somehow I wasn't aware of it. (and I certainly don't want to have to write C/C++) 2020-05-25T04:39:11Z emacsomancer: doesn't sbcl have fairly minimal C? 2020-05-25T04:39:26Z beach: It does. 2020-05-25T04:39:40Z beach: But its bootstrapping technique is a bit fishy. 2020-05-25T04:39:45Z beach: Xof wrote a paper about it. 2020-05-25T04:40:09Z emacsomancer: yeah, I remember seeing that paper 2020-05-25T04:40:31Z emacsomancer: (or, at least, a paper about sbcl's bootstrapping) 2020-05-25T04:40:54Z beach: Yeah, "A Sanely Bootstrappable Common Lisp". 2020-05-25T04:41:38Z emacsomancer: yes, that one 2020-05-25T04:42:13Z beach: But I was told (I haven't looked too closely) that the SBCL compiler is written without the use of generic functions and standard classes. That would be very painful to maintain. 2020-05-25T04:42:44Z beach: And our compiler framework can be customized to fit other implementations. 2020-05-25T04:42:53Z beach: minion: Please tell emacsomancer about Cleavir. 2020-05-25T04:42:53Z minion: emacsomancer: Cleavir: A project to create an implementation-independent compilation framework for Common Lisp. Currently Cleavir is part of SICL, but that might change in the future 2020-05-25T04:43:26Z beach: Cleavir is used in SICL, of course, but also by Clasp. And karlosz wrote a Cleavir-based compiler for CLISP. 2020-05-25T04:43:35Z SGASAU quit (Remote host closed the connection) 2020-05-25T04:44:08Z emacsomancer: this all certainly seems like good things to do for ensuring Lisp's long-term future 2020-05-25T04:44:17Z beach: Thanks! 2020-05-25T04:45:54Z ldb joined #lisp 2020-05-25T04:46:25Z emacsomancer: it looks like the repo has a bunch of papers and documentation too 2020-05-25T04:50:37Z ldb quit (Ping timeout: 264 seconds) 2020-05-25T04:56:50Z stereosphere joined #lisp 2020-05-25T04:57:40Z beach: Yeah. 2020-05-25T04:58:17Z beach: Like I said, we have published 15 or so SICL-related papers since 2014. 2020-05-25T05:04:12Z emacsomancer: (yeah, once I figured out I had to install fig2dev, I got all of the papers to compile - a bunch of interesting reading ahead!) 2020-05-25T05:05:33Z beach: Thanks! If you have any questions, feel free to ask. Maybe in #sicl. 2020-05-25T05:06:09Z emacsomancer: thanks! (adding #sicl to my autojoin list) 2020-05-25T05:06:29Z ldb joined #lisp 2020-05-25T05:11:39Z ldb quit (Ping timeout: 265 seconds) 2020-05-25T05:20:12Z shifty quit (Ping timeout: 256 seconds) 2020-05-25T05:20:21Z shifty joined #lisp 2020-05-25T05:21:08Z emys joined #lisp 2020-05-25T05:26:01Z sdumi quit (Ping timeout: 264 seconds) 2020-05-25T05:26:21Z sdumi joined #lisp 2020-05-25T05:26:40Z ldb joined #lisp 2020-05-25T05:29:15Z rogersm joined #lisp 2020-05-25T05:30:11Z SGASAU joined #lisp 2020-05-25T05:31:11Z pjb quit (Remote host closed the connection) 2020-05-25T05:31:22Z ldb quit (Ping timeout: 256 seconds) 2020-05-25T05:32:11Z pjb joined #lisp 2020-05-25T05:33:49Z rogersm quit (Ping timeout: 246 seconds) 2020-05-25T05:35:19Z shifty quit (Ping timeout: 258 seconds) 2020-05-25T05:35:39Z shifty joined #lisp 2020-05-25T05:38:51Z SGASAU quit (Remote host closed the connection) 2020-05-25T05:43:18Z zaquest quit (Ping timeout: 260 seconds) 2020-05-25T05:44:47Z SGASAU` joined #lisp 2020-05-25T05:46:52Z v3ga joined #lisp 2020-05-25T05:47:24Z ldb joined #lisp 2020-05-25T05:49:00Z SGASAU` quit (Remote host closed the connection) 2020-05-25T05:52:10Z ldb quit (Ping timeout: 260 seconds) 2020-05-25T05:54:02Z shifty quit (Ping timeout: 256 seconds) 2020-05-25T05:54:07Z SGASAU joined #lisp 2020-05-25T05:54:49Z shifty joined #lisp 2020-05-25T05:57:20Z twelvemonkeys quit (Ping timeout: 272 seconds) 2020-05-25T05:57:34Z rgherdt joined #lisp 2020-05-25T05:58:51Z twelvemonkeys joined #lisp 2020-05-25T05:58:51Z sdumi quit (Read error: Connection reset by peer) 2020-05-25T05:58:59Z JohnMS_WORK joined #lisp 2020-05-25T05:59:06Z sdumi joined #lisp 2020-05-25T06:04:24Z twelvemonkeys quit (Ping timeout: 256 seconds) 2020-05-25T06:05:17Z twelvemonkeys joined #lisp 2020-05-25T06:05:50Z gravicappa joined #lisp 2020-05-25T06:08:42Z Bit_MCP quit (Read error: Connection reset by peer) 2020-05-25T06:13:09Z SGASAU quit (Remote host closed the connection) 2020-05-25T06:15:39Z andrei-n joined #lisp 2020-05-25T06:17:36Z SGASAU joined #lisp 2020-05-25T06:17:58Z ldb joined #lisp 2020-05-25T06:23:11Z ldb quit (Ping timeout: 265 seconds) 2020-05-25T06:23:50Z Cymew joined #lisp 2020-05-25T06:26:22Z srazzaque joined #lisp 2020-05-25T06:27:39Z varjag joined #lisp 2020-05-25T06:30:11Z rogersm joined #lisp 2020-05-25T06:34:00Z bebop joined #lisp 2020-05-25T06:34:46Z rogersm quit (Ping timeout: 256 seconds) 2020-05-25T06:36:58Z shifty quit (Ping timeout: 260 seconds) 2020-05-25T06:37:11Z SGASAU quit (Remote host closed the connection) 2020-05-25T06:37:51Z random-nick joined #lisp 2020-05-25T06:38:24Z ldb joined #lisp 2020-05-25T06:38:53Z SGASAU joined #lisp 2020-05-25T06:39:38Z va joined #lisp 2020-05-25T06:43:29Z ldb quit (Ping timeout: 265 seconds) 2020-05-25T06:49:46Z FreeBirdLjj joined #lisp 2020-05-25T06:51:46Z Archenoth joined #lisp 2020-05-25T06:54:22Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-25T06:58:46Z ldb joined #lisp 2020-05-25T06:58:59Z nicktick left #lisp 2020-05-25T06:59:04Z nicktick joined #lisp 2020-05-25T06:59:11Z wxie joined #lisp 2020-05-25T07:01:58Z SGASAU quit (Ping timeout: 256 seconds) 2020-05-25T07:02:36Z nicktick: Is there anything in lisp like that of "define f(x) " to substitute "define f(x) {foo } " with C's macro ? 2020-05-25T07:03:19Z beach: Er, you are asking of Common Lisp can provide as stupid macros as C does? 2020-05-25T07:03:30Z beach: You are much better off using Common Lisp macros. 2020-05-25T07:03:40Z ldb quit (Ping timeout: 256 seconds) 2020-05-25T07:03:49Z phoe: if you're asking if Lisp has a macro system: yes, it does 2020-05-25T07:03:50Z no-defun-allowed: What would that transform in Common Lisp? 2020-05-25T07:04:16Z nicktick: (defun f (x) ) .... (defun f (x) (foo)) 2020-05-25T07:04:44Z beach: What would be the purpose of something like that? 2020-05-25T07:04:44Z phoe: I don't understand just yet, where is (foo) supposed to come from? 2020-05-25T07:04:51Z beach: Yeah, that. 2020-05-25T07:04:52Z nicktick: foo is some debug/test code, but I want to not use it after debugging. 2020-05-25T07:04:57Z no-defun-allowed: Well, no, you can't define a macro for a built in...macro. 2020-05-25T07:05:05Z phoe: oooh, now we're talking 2020-05-25T07:05:14Z phoe: you want code that is only compiled in while debugging 2020-05-25T07:05:17Z phoe: correct? 2020-05-25T07:05:21Z nicktick: yes 2020-05-25T07:06:27Z nicktick: I disassemble code using f, there is a call entry for f(x) in caller even (defun f(x)) 2020-05-25T07:06:58Z phoe: https://plaster.tymoon.eu/view/1872#1872 2020-05-25T07:07:11Z phoe: that's a simple compile-time switch that you can flip 2020-05-25T07:08:43Z nicktick: yes! that's what I need, thank you , phoe. 2020-05-25T07:09:33Z phoe: also note that "I need a compile-time debug switch" is a different question than "is there an equivalent of C's #define f(x)" 2020-05-25T07:09:43Z phoe: the issue is known as https://en.wikipedia.org/wiki/XY_problem 2020-05-25T07:12:13Z JohnMS_WORK quit (Read error: Connection reset by peer) 2020-05-25T07:13:36Z nicktick: sure, compiled with C's "#define f(x) ", the code of f(x) will be disappear in binary code. the code becomes more compact and faster. 2020-05-25T07:14:36Z JohnMS_WORK joined #lisp 2020-05-25T07:14:40Z phoe: if that is the question, then no, Lisp has no textual macros 2020-05-25T07:15:51Z phoe: it has structural macros though, which operate on Lisp code, and these macros are expanded before other compilation steps 2020-05-25T07:17:43Z phoe: ...as we've just demonstrated up there 2020-05-25T07:19:12Z nicktick: is it possible that feature implemented in lisp in the future ? 2020-05-25T07:19:25Z beach: Feature? 2020-05-25T07:19:31Z no-defun-allowed: Why would you want that? 2020-05-25T07:19:31Z nicktick: sorry, 2020-05-25T07:19:46Z phoe: what do you mean by a feature 2020-05-25T07:20:28Z nicktick: english isn't my mother tongue. 2020-05-25T07:20:51Z phoe: no worries, we'll somehow understand each other over time 2020-05-25T07:21:03Z beach: C-style macros using textual substitution will luckily never be part of the Common Lisp standard. 2020-05-25T07:22:58Z sugarwren joined #lisp 2020-05-25T07:22:59Z nicktick: how can we get the goal in lisp : compiled like with C's "#define f(x) ", the code of f(x) will be disappear in binary code. the code becomes more compact and faster. 2020-05-25T07:23:19Z phoe: I have just posted it up there 2020-05-25T07:23:46Z phoe: the WITH-DEBUG macro we have defined above makes it possible to achieve that 2020-05-25T07:24:39Z phoe: compare the two disassemblies here: https://plaster.tymoon.eu/view/1873#1873 2020-05-25T07:24:53Z nicktick: but the test code left in binary code. 2020-05-25T07:24:54Z phoe: the first one is compiled with debug mode on, and you can see # which means that the function PRINT is called in there 2020-05-25T07:24:58Z hineios8 joined #lisp 2020-05-25T07:25:12Z phoe: the second one is compiled with debug mode off, and the PRINT call is not present in that function 2020-05-25T07:25:26Z phoe: so, the code becomes more compact and faster 2020-05-25T07:25:38Z phoe: isn't that what you want? 2020-05-25T07:26:24Z nicktick: sounds like yes. 2020-05-25T07:26:45Z gaqwas joined #lisp 2020-05-25T07:26:48Z nicktick reading the disassemble code... 2020-05-25T07:27:16Z pve joined #lisp 2020-05-25T07:27:29Z zaquest joined #lisp 2020-05-25T07:27:42Z orivej joined #lisp 2020-05-25T07:27:51Z nicktick: phoe: that's right ! it's what I want. 2020-05-25T07:28:02Z oxum quit (Remote host closed the connection) 2020-05-25T07:28:10Z phoe: <3 2020-05-25T07:28:29Z nicktick: phoe, thank you again. 2020-05-25T07:28:55Z hineios quit (Ping timeout: 265 seconds) 2020-05-25T07:28:55Z hineios8 is now known as hineios 2020-05-25T07:29:03Z phoe: no problem, enjoy your Lisp time 2020-05-25T07:29:10Z ralt: fe[nl]ix: see the first resolved discussion there https://github.com/cffi/cffi/pull/158 2020-05-25T07:30:20Z ralt: phoe: don't you need an eval-when around your defvar? 2020-05-25T07:30:35Z phoe: ralt: not when I evaluate stuff in the REPL 2020-05-25T07:30:46Z phoe: if that gets put in code, then EVAL-WHEN might be required 2020-05-25T07:33:02Z toorevitimirp joined #lisp 2020-05-25T07:34:32Z ralt: 👍 2020-05-25T07:38:11Z ljavorsk joined #lisp 2020-05-25T07:39:41Z SGASAU joined #lisp 2020-05-25T07:40:20Z beach: phoe: Did I understand it correctly, that you created a PR for the koans and it was merged? 2020-05-25T07:42:14Z phoe: beach: correct, I ended up rewriting them completely. 2020-05-25T07:43:00Z phoe: Like, most of the actual ideas that were in the original koans are still there now, but the code is now mostly bug-free and portable (hopefully) and the style is consistent. 2020-05-25T07:44:05Z oxum joined #lisp 2020-05-25T07:45:06Z beach: Great! Good work! 2020-05-25T07:47:11Z stereosphere quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2020-05-25T07:48:43Z oxum quit (Ping timeout: 258 seconds) 2020-05-25T07:50:27Z nicktick: if there are multi-parts of source code to debug(eg. A/B/C three parts), after debugging A, I start to debug B, but I don't want to run the debug code in A, is there a way that I don't need to remove the debug code in A but only run the debug code in B? questiong: Is *debug-mode-p* way suitable for multi-thread code debugging? 2020-05-25T07:50:51Z phoe: nicktick: *debug-mode-p* has nothing to do with multiple threads 2020-05-25T07:51:09Z phoe: it is a compile-time switch that works only when code is being compiled 2020-05-25T07:51:27Z phoe: if you want to debug only function A, then compile everything with *debug-mode-p* set to NIL 2020-05-25T07:51:29Z nicktick: ah...I see. 2020-05-25T07:51:37Z phoe: then set *debug-mode-p* to T and compile just the function that you want to debug 2020-05-25T07:52:31Z phoe: and then you might want to read up on how to use the Common Lisp debugger instead of writing debug statements inside code - I suspect you are doing printf-style debugging, which isn't optimal for working with Common Lisp 2020-05-25T07:52:33Z nicktick: thx! phoe 2020-05-25T07:52:46Z nicktick: yes 2020-05-25T07:52:52Z orivej_ joined #lisp 2020-05-25T07:52:52Z nicktick: printf-sytle debugging 2020-05-25T07:53:08Z phoe: what is your primary speaking language if it's not English? 2020-05-25T07:53:45Z nicktick: there are lots of msg generated to leave afterward analysing. 2020-05-25T07:54:22Z nicktick: chinese 2020-05-25T07:54:51Z orivej quit (Ping timeout: 258 seconds) 2020-05-25T07:56:02Z phoe: hmmm... I don't know many Chinese Lisp programmers who could help you in that language 2020-05-25T07:56:05Z phoe: lemme take a look 2020-05-25T07:56:59Z phoe: there is https://github.com/xh4/ who, judging by my limited googling skills, might know how to find and get support from other Chinese lispers 2020-05-25T07:57:26Z oxum joined #lisp 2020-05-25T07:57:42Z phoe: that is, if English is a language barrier for you 2020-05-25T07:57:45Z lemoinem is now known as Guest43342 2020-05-25T07:57:46Z Guest43342 quit (Killed (weber.freenode.net (Nickname regained by services))) 2020-05-25T07:57:47Z lemoinem joined #lisp 2020-05-25T08:00:49Z orivej_ quit (Ping timeout: 264 seconds) 2020-05-25T08:01:02Z orivej joined #lisp 2020-05-25T08:02:18Z nicktick: phoe: thank you, have a try to connect him. 2020-05-25T08:04:49Z phoe: there's also people listed in the commit list at https://github.com/acl-translation/acl-chinese/commits/master who might point you to other places who speak Chinese 2020-05-25T08:05:30Z phoe: I don't know any of them, I'm just hoping I'm pointing you at proper people :D 2020-05-25T08:06:46Z rogersm joined #lisp 2020-05-25T08:07:14Z fe[nl]ix: ralt: please don't use standard terms with different meaning 2020-05-25T08:07:37Z fe[nl]ix: whatever cffi-toolchain does (I find the code impenetrable), that's not static linking 2020-05-25T08:07:56Z bhartrihari left #lisp 2020-05-25T08:08:20Z ralt: fe[nl]ix: the whole existing thing is full of standard terms with different meanings :) 2020-05-25T08:08:58Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-25T08:09:23Z ralt: fe[nl]ix: the `ar` call + subsequent `cc` does generate an image where the library is statically linked 2020-05-25T08:09:41Z orivej joined #lisp 2020-05-25T08:11:26Z bhartrihari joined #lisp 2020-05-25T08:12:44Z fe[nl]ix: ralt: I don't believe that's the case 2020-05-25T08:13:06Z fe[nl]ix: I tried it and the resulting binary does not contain the expected symbols 2020-05-25T08:14:57Z ralt: fe[nl]ix: I have been compiling sqlite3.c using c-file, closing the foreign library before dumping, and it is then used at runtime without using dlopen() (or without having sqlite3 installed at all), so I'm pretty sure static linking is working. Or at least some sort of linking where you don't need the shared library at runtime. 2020-05-25T08:15:58Z ralt: I can make a small example with only osicat if you want? 2020-05-25T08:16:09Z fe[nl]ix: sure 2020-05-25T08:16:32Z terpri_ joined #lisp 2020-05-25T08:17:12Z terpri quit (Ping timeout: 260 seconds) 2020-05-25T08:19:05Z terpri joined #lisp 2020-05-25T08:19:37Z bhartrihari left #lisp 2020-05-25T08:20:10Z bhartrihari joined #lisp 2020-05-25T08:20:48Z terpri_ quit (Ping timeout: 256 seconds) 2020-05-25T08:21:03Z shangul joined #lisp 2020-05-25T08:24:09Z ralt: fe[nl]ix: https://gitlab.com/ralt/static-program-op 2020-05-25T08:24:51Z ralt: `strace -s1000 -f ./static-program-op 2>&1 | grep lib` shows it loading libsqlite, but `| grep osicat` shows nothing 2020-05-25T08:25:21Z karlosz quit (Quit: karlosz) 2020-05-25T08:25:26Z ralt: (and you can delete your `~/.cache/common-lisp` to confirm that it still loads, despite osicat.so no longer existing) 2020-05-25T08:25:30Z gaqwas quit (Remote host closed the connection) 2020-05-25T08:27:43Z emys quit (Ping timeout: 272 seconds) 2020-05-25T08:29:48Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T08:29:53Z orivej_ joined #lisp 2020-05-25T08:30:54Z wxie quit (Ping timeout: 240 seconds) 2020-05-25T08:31:52Z emys joined #lisp 2020-05-25T08:33:01Z bhartrihari left #lisp 2020-05-25T08:33:21Z gaqwas joined #lisp 2020-05-25T08:33:47Z bhartrihari joined #lisp 2020-05-25T08:36:18Z srazzaque: Xach: (or anyone else who's online who knows) - do you typically take the latest cut of code for each repo _at the time of preparing the QL release_ ? or at the time of request (i.e. when someone posts a 'please add X' into the quicklisp-projects github repo) 2020-05-25T08:36:42Z emys quit (Ping timeout: 260 seconds) 2020-05-25T08:36:43Z libertyprime joined #lisp 2020-05-25T08:36:43Z phoe: srazzaque: whenever a new dist is made, which is usually monthly 2020-05-25T08:36:57Z phoe: but you can specify which branch, or which release, QL should use 2020-05-25T08:37:14Z emys joined #lisp 2020-05-25T08:37:33Z srazzaque: Thanks phoe - I've requested he pull the master branch, but raised my request 20+ days ago 2020-05-25T08:37:50Z srazzaque: just wondering if, when Xach does the release, it'll get the changes I've done since that point 2020-05-25T08:38:22Z phoe: most likely he'll just grab whatever is at the master branch at the moment of building the dist 2020-05-25T08:38:49Z srazzaque: Yep, that's my hope - thx! 2020-05-25T08:41:56Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-25T08:42:02Z orivej joined #lisp 2020-05-25T08:42:40Z fe[nl]ix: ralt: the asdf:make step errors out here 2020-05-25T08:42:56Z ralt: fe[nl]ix: ugh. What's the error? 2020-05-25T08:43:06Z ralt: and what's your sbcl version? 2020-05-25T08:43:18Z fe[nl]ix: undefined reference to `main' 2020-05-25T08:43:30Z ralt: sbcl 2.0.4? 2020-05-25T08:43:44Z fe[nl]ix: 1.5.9 and 2.0.4 2020-05-25T08:44:22Z ralt: 1.5.9 is because sbcl wasn't compiled with --with-sb-linkable-runtime, and 2.0.4 has a known bug preventing it 2020-05-25T08:44:45Z phoe: hah 2020-05-25T08:44:58Z JohnMS_WORK quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2020-05-25T08:45:45Z ralt: fe[nl]ix: essentially, it's not finding your $SBCL_HOME/sbcl.o file because it's appending "contrib/" to the sbcl automatically-discovered-home folder. Can you try `SBCL_HOME=/usr/local/lib/sbcl make` if you have your sbcl libs there? 2020-05-25T08:48:06Z ralt: I realize this is annoying, sorry. 2020-05-25T08:49:52Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-25T08:51:12Z orivej joined #lisp 2020-05-25T08:52:55Z gaqwas quit (Read error: Connection reset by peer) 2020-05-25T08:53:07Z gaqwas joined #lisp 2020-05-25T08:54:56Z bhartrihari left #lisp 2020-05-25T08:55:52Z fe[nl]ix: ralt: I updated sbcl and recompiled it, still doesn't work 2020-05-25T08:56:12Z ralt: you have this fix? https://github.com/sbcl/sbcl/commit/b399b8f390ca9cf6e0684d08f005b6e55aab7155 2020-05-25T08:59:28Z fe[nl]ix: yes 2020-05-25T08:59:34Z orivej quit (Ping timeout: 240 seconds) 2020-05-25T09:00:39Z ralt: fe[nl]ix: can I see your `$SBCL_HOME/sbcl.mk` file? 2020-05-25T09:00:44Z gaqwas quit (Changing host) 2020-05-25T09:00:44Z gaqwas joined #lisp 2020-05-25T09:00:53Z orivej joined #lisp 2020-05-25T09:02:46Z ralt: I suspect that the sb-linkable-runtime feature is no longer visible, but not enabled by default... 2020-05-25T09:03:01Z fe[nl]ix: I enabled it 2020-05-25T09:04:12Z ralt: my assumption is that it cannot find this file and fails later on with your cryptic main error https://github.com/cffi/cffi/blob/master/toolchain/c-toolchain.lisp#L163 2020-05-25T09:04:48Z msk quit (Ping timeout: 272 seconds) 2020-05-25T09:05:25Z msk joined #lisp 2020-05-25T09:06:34Z wxie joined #lisp 2020-05-25T09:08:21Z bhartrihari joined #lisp 2020-05-25T09:08:46Z fe[nl]ix: ralt: that's probably the case 2020-05-25T09:09:44Z ralt: if you compiled with --sb-linkable-runtime, it should put this sbcl.mk file in /usr/local/lib/sbcl (assuming default prefix), so nudging it by setting SBCL_HOME should work 2020-05-25T09:11:22Z akoana quit (Quit: leaving) 2020-05-25T09:12:50Z orivej quit (Ping timeout: 265 seconds) 2020-05-25T09:13:02Z orivej joined #lisp 2020-05-25T09:13:48Z fe[nl]ix: I'm not installing sbcl 2020-05-25T09:14:01Z fe[nl]ix: I ran it from the source directory using run-sbcl.sh 2020-05-25T09:16:57Z ralt: fe[nl]ix: hm, you need sbcl.mk, sbcl.o (which are in src/runtime) and the contrib/ folder in your SBCL_HOME to make it work 2020-05-25T09:19:54Z emys quit (Ping timeout: 256 seconds) 2020-05-25T09:19:55Z fe[nl]ix: they're all there 2020-05-25T09:20:56Z ralt: fe[nl]ix: alternatively, I can build this binary in CI, and you can download the binary? 2020-05-25T09:21:11Z ralt: in gitlab CI, so you can verify the input 2020-05-25T09:21:38Z fe[nl]ix: that's beyond the point 2020-05-25T09:21:39Z emys joined #lisp 2020-05-25T09:22:44Z fe[nl]ix: it should work with sbcl compiled and executed from a source directory, without installing 2020-05-25T09:25:02Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-25T09:26:12Z orivej joined #lisp 2020-05-25T09:26:14Z SGASAU quit (Remote host closed the connection) 2020-05-25T09:26:34Z ralt: that's not really the original point. I'm trying to discuss how to make static-program-op work correctly, i.e. not load foreign libraries as shared libraries when they're statically linked. (or close them when dumping, given that we can't know at the point we're loading if it's going to be statically linked or not.) 2020-05-25T09:27:04Z SGASAU joined #lisp 2020-05-25T09:27:12Z bhartrihari left #lisp 2020-05-25T09:27:43Z ralt: you can download the appropriate package from there to see a statically compiled sqlite3 (using c-file) https://gitlab.com/ralt/ballish/-/releases/0.0.30 2020-05-25T09:28:06Z Krystof quit (Remote host closed the connection) 2020-05-25T09:28:49Z Grauwolf quit (Quit: WeeChat 2.7.1) 2020-05-25T09:28:58Z Grauwolf joined #lisp 2020-05-25T09:29:39Z ralt: I can make all of that work for me. That's not the problem. The problem as I see it, is that static-program-op, as currently is, is broken whenever (grovel or c-file) foreign libraries are involved. So I'm trying to make it work for everyone else. 2020-05-25T09:29:54Z nicktick quit (Ping timeout: 240 seconds) 2020-05-25T09:35:56Z anticrisis quit (Read error: Connection reset by peer) 2020-05-25T09:36:57Z fe[nl]ix: since it doesn't work for me, I can't help you 2020-05-25T09:39:27Z ralt: are you at least willing to discuss further improvements assuming that cffi-toolchain is doing static linking? 2020-05-25T09:43:17Z slyrus quit (Ping timeout: 265 seconds) 2020-05-25T09:44:06Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T09:44:22Z orivej joined #lisp 2020-05-25T09:46:39Z slyrus joined #lisp 2020-05-25T09:46:45Z bhartrihari joined #lisp 2020-05-25T09:46:52Z rogersm quit (Quit: Leaving...) 2020-05-25T09:49:43Z jesse1010 joined #lisp 2020-05-25T09:51:07Z oxum quit (Remote host closed the connection) 2020-05-25T09:53:03Z oxum joined #lisp 2020-05-25T09:55:27Z oxum quit (Remote host closed the connection) 2020-05-25T09:55:43Z oxum joined #lisp 2020-05-25T09:58:11Z phoe: three mails later: Pearson still did not answer me regarding the re-issue of Sonja's CLOS book 2020-05-25T09:58:14Z phoe: sigh 2020-05-25T09:58:26Z phoe: do I really need to write my own or something 2020-05-25T09:58:47Z beach: I have been working on something like that. 2020-05-25T09:58:54Z beach: I forget how far I got. 2020-05-25T09:59:36Z phoe: beach: mind showing me? I'd gladly (eventually) contribute, since we don't have a good modern CLOS resource. 2020-05-25T09:59:54Z beach: Let me check... 2020-05-25T10:02:07Z frgo quit (Remote host closed the connection) 2020-05-25T10:02:40Z frgo joined #lisp 2020-05-25T10:02:52Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-25T10:04:01Z ravndal quit (Quit: WeeChat 2.8) 2020-05-25T10:04:01Z orivej joined #lisp 2020-05-25T10:06:16Z dale quit (Quit: My computer has gone to sleep) 2020-05-25T10:11:01Z wxie quit (Ping timeout: 264 seconds) 2020-05-25T10:11:06Z xof joined #lisp 2020-05-25T10:11:48Z gigetoo quit (Ping timeout: 265 seconds) 2020-05-25T10:12:20Z phoe: (let ((me 'check)) ...) 2020-05-25T10:12:41Z gigetoo joined #lisp 2020-05-25T10:16:41Z cosimone joined #lisp 2020-05-25T10:18:54Z rogersm joined #lisp 2020-05-25T10:20:35Z xof quit (Remote host closed the connection) 2020-05-25T10:22:12Z dtman34 joined #lisp 2020-05-25T10:22:21Z Krystof joined #lisp 2020-05-25T10:22:38Z gigetoo_ joined #lisp 2020-05-25T10:26:01Z gigetoo quit (Ping timeout: 264 seconds) 2020-05-25T10:26:07Z gigetoo_ is now known as gigetoo 2020-05-25T10:28:08Z wxie joined #lisp 2020-05-25T10:29:37Z eta: oh are people trying to get static-program-op to work? 2020-05-25T10:29:46Z eta has always wanted to do that 2020-05-25T10:30:04Z dtman34 quit (Remote host closed the connection) 2020-05-25T10:31:55Z jmercouris: it will happen... 2020-05-25T10:32:05Z jmercouris: I'm personally really excited by the prospect 2020-05-25T10:32:17Z jmercouris: I think it'll be revolutionary for ease of distribution and packaging 2020-05-25T10:32:20Z eta: yeah, same 2020-05-25T10:32:55Z flip214: phoe: (let 's (list quote s)) 2020-05-25T10:33:08Z phoe: flip214: yes 2020-05-25T10:34:05Z flip214: phoe: sadly (nil nil), but that might be a kind of smilie 2020-05-25T10:37:46Z dtman34 joined #lisp 2020-05-25T10:38:10Z dtman34 quit (Remote host closed the connection) 2020-05-25T10:39:26Z ralt: eta: jmercouris: fwiw it's working perfectly for me, albeit with a couple of patches. 2020-05-25T10:39:42Z jmercouris: :-) 2020-05-25T10:39:53Z eta: ralt: mine failed with that linkable runtime error last I tried 2020-05-25T10:40:09Z oxum quit (Remote host closed the connection) 2020-05-25T10:46:35Z oxum joined #lisp 2020-05-25T10:49:44Z beach: phoe: Nah, there is not a lot of material. There's a lot of blabla that I might suggest you include some day. 2020-05-25T10:50:31Z phoe: beach: I could take a look at that and then digest and include it, sure. Something is always better than nothing. 2020-05-25T10:50:51Z beach: No problem. But right now I am taking a break. No rush I guess. 2020-05-25T10:51:06Z phoe: There's little rush in general in the Lisp world~ 2020-05-25T10:51:13Z oxum quit (Ping timeout: 264 seconds) 2020-05-25T10:51:55Z phoe: still, it's a bad situation that the most recent book about CLOS in particular happened thirty years ago, has no modern ebook formats, and the non-portable parts of its code have bitrotted 2020-05-25T10:52:13Z beach: I totally agree. 2020-05-25T10:52:20Z phoe: if I fail at my quest to get Pearson to mail me back, we might need to construct new learning material from scratch 2020-05-25T10:52:25Z jmercouris: woah, speak for yourself 2020-05-25T10:52:31Z jmercouris: I'm rushing to release 2.0 of Next :-D 2020-05-25T10:52:38Z phoe: jmercouris: point taken 2020-05-25T10:52:52Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-25T10:53:01Z beach: phoe: I'm off for a long-ish break. Talk to you later. 2020-05-25T10:53:09Z phoe: See you! 2020-05-25T10:53:11Z jmercouris: goodbye Robert 2020-05-25T10:53:29Z aeth: phoe: Back then, OOP was new and exciting and no one knew where it would go. These days, I bet the main thing people use CLOS for is polymorphism, which is actually kind of boring. 2020-05-25T10:53:47Z phoe: aeth: that's kind of the principle behind my current book about the condition system 2020-05-25T10:53:53Z phoe: try/catch is kinda boring too 2020-05-25T10:54:00Z aeth: Using CLOS just for polymorphism is kind of like using a racecar to buy groceries. 2020-05-25T10:54:07Z jmercouris: however, it does cover 99.99% of cases without much problem 2020-05-25T10:54:11Z orivej joined #lisp 2020-05-25T10:54:30Z jmercouris: i've very rarely wished for Lisps' condition system in other languages 2020-05-25T10:54:31Z Krystof quit (Read error: Connection reset by peer) 2020-05-25T10:54:48Z phoe: jmercouris: if the 99.99% of your cases include monstrosities like Java dependency injection frameworks then I don't want to think of these use cases 2020-05-25T10:54:51Z aeth: phoe: And, yeah, conditions are the same thing... people just treat them like any language's exception system, if they even use them. I wouldn't be surprised if half the people just do (error "An error.") instead of bothering to define a condition for that, too. 2020-05-25T10:55:02Z jmercouris: don't get me started on dependency injection 2020-05-25T10:55:10Z jmercouris: i will become inconsolable 2020-05-25T10:55:12Z Krystof joined #lisp 2020-05-25T10:55:39Z jmercouris: sometimes though (error "an error") is enough 2020-05-25T10:55:47Z jmercouris: lots of times there is nothing you can really do about it 2020-05-25T10:55:59Z phoe: jmercouris: so much for the "polymorphism alone does cover 99.99% of cases without much problem" approach 2020-05-25T10:56:13Z jmercouris: phoe: I was talking about try/catch with the 99.99 2020-05-25T10:56:19Z aeth: jmercouris: Importantly, (error "an error") is a good starting point. It's easy to grep for "error" much later on in the library's life and it's an easy thing to procrastinate until later 2020-05-25T10:56:30Z phoe: oh, *that*, sure - if your program is not meant to be extensible 2020-05-25T10:56:48Z aeth: And if you ever get stuck and want to add dozens of lines, name your errors later on :-p 2020-05-25T10:56:48Z igemnace joined #lisp 2020-05-25T10:56:54Z phoe: or programmable from the outside by providing hooks and callbacks and recovery strategies 2020-05-25T10:57:02Z phoe: and, in truth, most programs are like that 2020-05-25T10:57:12Z phoe: the condition system is for when your program shouldn't be like that 2020-05-25T10:57:15Z jmercouris: most programs are not extensible at all 2020-05-25T10:57:25Z phoe: uh, that's what I meant 2020-05-25T10:57:28Z jmercouris: extension is usually an after thought when some PM adds requirements 2020-05-25T10:57:31Z phoe: most programs are not meant to be programmable or extensible 2020-05-25T10:57:51Z phoe: but, that's already kinda getting off-topic 2020-05-25T10:58:22Z jmercouris: except for Next 2020-05-25T10:58:31Z jmercouris: Next is the infinitely extensible browser™ 2020-05-25T10:58:36Z aeth: You kind of have to build in extensibility from the start if you want it, and it's harder than not caring. It's sort of like when a game designs itself so that the game itself is a mod, which is really the way you want it to be if you want to make it moddable. 2020-05-25T10:59:41Z phoe: is there any way I could contact Sonja E. Keene? 2020-05-25T11:00:13Z Krystof quit (Remote host closed the connection) 2020-05-25T11:01:53Z Krystof joined #lisp 2020-05-25T11:02:06Z rogersm quit (Ping timeout: 240 seconds) 2020-05-25T11:02:47Z jmercouris: it is Sonya Keene 2020-05-25T11:03:24Z phoe: Thanks - it seems their last name is misspelled in some places 2020-05-25T11:03:53Z jmercouris: Sonya is a first name 2020-05-25T11:04:00Z phoe: oweruiouignfg 2020-05-25T11:04:02Z dtman34 joined #lisp 2020-05-25T11:04:02Z phoe: first name, yes 2020-05-25T11:05:04Z jmercouris: anywys, I don't see an easy way to contact her 2020-05-25T11:05:25Z mood: Huh, my printed copy says Sonja 2020-05-25T11:05:38Z phoe: mood: the plot thickens 2020-05-25T11:05:38Z bhartrihari left #lisp 2020-05-25T11:05:43Z dtman34 quit (Remote host closed the connection) 2020-05-25T11:05:45Z bhartrihari joined #lisp 2020-05-25T11:05:48Z jmercouris: maybe she changed the spelling of her name 2020-05-25T11:06:54Z emys quit (Ping timeout: 258 seconds) 2020-05-25T11:07:36Z emys joined #lisp 2020-05-25T11:09:33Z heisig joined #lisp 2020-05-25T11:10:36Z mood: I'd suggest contacting Symbolics Press, but that's probably not going to be possible 2020-05-25T11:10:44Z phoe: it doesn't exist anymore 2020-05-25T11:10:54Z mood: On a very different note: https://link.joram.io/wf.txt 2020-05-25T11:11:15Z phoe: the publisher of the original book is Addison-Wesley which seems to be a part of Pearson now, and they don't answer my mail 2020-05-25T11:11:26Z phoe: mood: wait wait WAIT WHAT 2020-05-25T11:11:39Z mood: :) 2020-05-25T11:11:44Z phoe: who did this? where's that patch? 2020-05-25T11:11:46Z phoe: I want to review it 2020-05-25T11:11:58Z mood: I have some stuff to clean up, but then I'll open an MR on the GitLab repo 2020-05-25T11:12:04Z phoe: this is amazing news!!! 2020-05-25T11:12:06Z no-defun-allowed: I can't seem to get that page to load. 2020-05-25T11:12:21Z phoe: no-defun-allowed: https://plaster.tymoon.eu/view/1875#1875 2020-05-25T11:12:26Z mood: I probably did everything wrong regarding mutexes, so don't expect this to be ready too soon 2020-05-25T11:12:45Z no-defun-allowed: Congratulations! 2020-05-25T11:13:05Z no-defun-allowed: Well done mood 2020-05-25T11:13:18Z phoe: I am literally grinning right now 2020-05-25T11:13:45Z phoe: this means that PLNs have become successfully adopted across all of the Lisp world - we'll only be waiting for LispWorks to release 7.2 2020-05-25T11:14:29Z mood: I'm LOADing the file because QL doesn't seem to work in my development build, but perhaps that's just because I'm running straight from the source directory 2020-05-25T11:15:02Z phoe: mood: where can I throw money at you 2020-05-25T11:15:04Z scymtym quit (Ping timeout: 246 seconds) 2020-05-25T11:17:14Z mood: phoe: Haha, wait until it's done :) 2020-05-25T11:17:59Z phoe: mood: please don't make me wait too long 2020-05-25T11:18:52Z mood: I hope to have things cleaned up tonight, but then it needs some thorough review. I'm not at all familiar enough with the codebase to know what I'm doing 2020-05-25T11:19:08Z wonderer joined #lisp 2020-05-25T11:19:14Z phoe: mood: neither do I, but I can try to review it once it's there 2020-05-25T11:19:37Z wonderer left #lisp 2020-05-25T11:19:37Z emys quit (Ping timeout: 246 seconds) 2020-05-25T11:20:10Z phoe: once that lands in, there absolutely should be a 2.50 release 2020-05-25T11:23:00Z davsebam1e joined #lisp 2020-05-25T11:24:19Z oxum joined #lisp 2020-05-25T11:25:55Z davsebamse quit (Ping timeout: 246 seconds) 2020-05-25T11:26:03Z emys joined #lisp 2020-05-25T11:30:14Z oxum quit (Ping timeout: 256 seconds) 2020-05-25T11:30:42Z oxum joined #lisp 2020-05-25T11:31:25Z Bike joined #lisp 2020-05-25T11:31:36Z scymtym joined #lisp 2020-05-25T11:31:38Z pfdietz joined #lisp 2020-05-25T11:32:29Z pfdietz: "Well, no, you can't define a macro for a built in...macro" 2020-05-25T11:32:47Z pfdietz: Ah, but you can override it with *macroexpand-hook* 2020-05-25T11:32:57Z phoe: pfdietz: for the love of god please no 2020-05-25T11:33:36Z pfdietz: It's becoming a favorite trick of mine for instrumenting code. Not for a regular build of the code, though. 2020-05-25T11:33:43Z axion: It wouldn't be a day without pfdietz praising *macroexpand-hook* :) 2020-05-25T11:34:02Z emys quit (Ping timeout: 260 seconds) 2020-05-25T11:34:20Z pfdietz: :) 2020-05-25T11:34:27Z Bike: bring 👏 back 👏 evalhook 👏 2020-05-25T11:36:03Z axion: In other news, I forgot that CLISP is intentionally not conforming with its arbitrary precision floats. 2020-05-25T11:36:11Z kpoeck joined #lisp 2020-05-25T11:37:34Z MichaelRaskin: pfdietz: we have to say «please no» every time, otherwise people might use *macroexpand-hook* for something except temporary instrumentation, and then it gets unusable even as temporary instrumentation 2020-05-25T11:37:52Z pfdietz: Fair 2020-05-25T11:37:53Z emys joined #lisp 2020-05-25T11:38:38Z gaqwas quit (Quit: Leaving) 2020-05-25T11:39:08Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T11:39:23Z orivej joined #lisp 2020-05-25T11:40:22Z dddddd joined #lisp 2020-05-25T11:40:44Z wxie quit (Ping timeout: 265 seconds) 2020-05-25T11:41:52Z ljavorsk quit (Ping timeout: 272 seconds) 2020-05-25T11:42:02Z phoe: minion: tell phoe about *macroexpand-hook* 2020-05-25T11:42:02Z minion: phoe: *macroexpand-hook*: please do not use it in production code, even when pfdietz advertises it to you 2020-05-25T11:42:12Z phoe: MichaelRaskin: there 2020-05-25T11:43:10Z no-defun-allowed: pfdietz: Please don't encourage someone who thought the C textual replacement system was a feature. 2020-05-25T11:45:47Z emys quit (Ping timeout: 240 seconds) 2020-05-25T11:48:06Z jmercouris: C textual replacement system? 2020-05-25T11:48:13Z flip214: #define 2020-05-25T11:48:16Z jmercouris: what do you mean? c macros? 2020-05-25T11:48:21Z jmercouris: ah, c macros 2020-05-25T11:48:33Z orivej_ joined #lisp 2020-05-25T11:48:38Z orivej quit (Ping timeout: 260 seconds) 2020-05-25T11:48:44Z gaqwas joined #lisp 2020-05-25T11:49:01Z jmercouris: i don't see how that isn't a feature, but OK 2020-05-25T11:51:13Z shangul quit (Ping timeout: 264 seconds) 2020-05-25T11:52:41Z jdz: jmercouris: It's a misfeature because people use them instead of enums. 2020-05-25T11:54:08Z jdz: C is everywhere, and when getting a result from a function it's impossible to tell which "constant" it corresponds to. Not exactly #define's fault, and off topic, anyway. 2020-05-25T11:55:15Z emys joined #lisp 2020-05-25T11:55:54Z orivej_ quit (Ping timeout: 240 seconds) 2020-05-25T11:55:58Z Bike: i think in context it was function-like macros and their textual substitution basis that was the issue? 2020-05-25T11:56:14Z jmercouris: i think it is a misnomer to call them macros 2020-05-25T11:56:25Z jmercouris: maybe thats what no-defun-allowed meant 2020-05-25T11:56:41Z orivej joined #lisp 2020-05-25T11:56:48Z phoe: in context it was that in C you can write { foo(1); bar(1); baz(1); } and if you "#define foo(x) " then this causes foo(1) to disappear from the resulting code that is fed to the compiler 2020-05-25T11:56:57Z phoe: because foo(1) is replaced with an empty string 2020-05-25T11:58:14Z wxie joined #lisp 2020-05-25T11:58:26Z jdz: Ouch. 2020-05-25T11:58:40Z phoe: which is therefore a poor man's debug switch 2020-05-25T11:59:34Z Bike: i've done #-debug (defmacro foo (&rest args)) a few times, because i am destitute 2020-05-25T11:59:53Z pjb quit (Ping timeout: 272 seconds) 2020-05-25T12:01:46Z phoe: that's also an option, but removing :debug from *features* is kinda eh 2020-05-25T12:02:26Z phoe: unless we are, like, (let ((*features* (cons :debug *features*))) (asdf:load-system :foo)) 2020-05-25T12:02:35Z phoe: preferably with :force t, too 2020-05-25T12:02:57Z wxie quit (Ping timeout: 260 seconds) 2020-05-25T12:03:43Z Bike: well i mean it would actually be debug-whatever 2020-05-25T12:06:58Z toorevitimirp quit (Read error: Connection reset by peer) 2020-05-25T12:07:02Z Balooga quit (Ping timeout: 260 seconds) 2020-05-25T12:07:17Z toorevitimirp joined #lisp 2020-05-25T12:07:25Z emys quit (Ping timeout: 264 seconds) 2020-05-25T12:07:37Z sz0 quit (Ping timeout: 260 seconds) 2020-05-25T12:07:37Z terrorjack quit (Ping timeout: 260 seconds) 2020-05-25T12:08:01Z orivej quit (Ping timeout: 264 seconds) 2020-05-25T12:08:22Z orivej joined #lisp 2020-05-25T12:09:39Z lerax quit (Remote host closed the connection) 2020-05-25T12:09:48Z shangul joined #lisp 2020-05-25T12:09:51Z Balooga joined #lisp 2020-05-25T12:10:32Z pent quit (Ping timeout: 260 seconds) 2020-05-25T12:11:05Z sz0 joined #lisp 2020-05-25T12:11:15Z EvW joined #lisp 2020-05-25T12:11:58Z terrorjack joined #lisp 2020-05-25T12:13:28Z pent joined #lisp 2020-05-25T12:14:04Z gko joined #lisp 2020-05-25T12:15:03Z gxt__ quit (Ping timeout: 240 seconds) 2020-05-25T12:15:23Z shifty joined #lisp 2020-05-25T12:17:22Z shangul quit (Ping timeout: 246 seconds) 2020-05-25T12:18:39Z rogersm joined #lisp 2020-05-25T12:20:23Z bhartrihari left #lisp 2020-05-25T12:20:24Z emys joined #lisp 2020-05-25T12:20:40Z bhartrihari joined #lisp 2020-05-25T12:29:04Z bhartrihari left #lisp 2020-05-25T12:29:10Z bhartrihari joined #lisp 2020-05-25T12:29:15Z pjb joined #lisp 2020-05-25T12:30:35Z jmercouris: you can just use log4cl and set the config to debug or not 2020-05-25T12:30:44Z jmercouris: i guess if you don't want to load it, i get it 2020-05-25T12:33:10Z emys quit (Ping timeout: 272 seconds) 2020-05-25T12:35:04Z Lord_Nightmare quit (Ping timeout: 258 seconds) 2020-05-25T12:36:54Z Lord_Nightmare joined #lisp 2020-05-25T12:39:22Z jonatack quit (Ping timeout: 260 seconds) 2020-05-25T12:39:50Z rozenglass joined #lisp 2020-05-25T12:41:59Z Lord_of_Life_ joined #lisp 2020-05-25T12:43:22Z rozenglass quit (Client Quit) 2020-05-25T12:44:18Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-25T12:44:19Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-25T12:46:54Z lavaflow joined #lisp 2020-05-25T12:47:01Z rogersm quit (Quit: Leaving...) 2020-05-25T12:48:26Z orivej quit (Read error: Connection reset by peer) 2020-05-25T12:48:32Z orivej_ joined #lisp 2020-05-25T12:49:51Z emys joined #lisp 2020-05-25T12:52:27Z rozenglass joined #lisp 2020-05-25T12:56:18Z shangul joined #lisp 2020-05-25T12:57:44Z bhartrihari left #lisp 2020-05-25T12:57:50Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-25T12:58:20Z antaoiseach joined #lisp 2020-05-25T12:58:29Z antaoiseach quit (Client Quit) 2020-05-25T12:58:38Z emys quit (Ping timeout: 256 seconds) 2020-05-25T12:58:40Z antaoiseach joined #lisp 2020-05-25T12:58:41Z orivej joined #lisp 2020-05-25T12:59:48Z jonatack joined #lisp 2020-05-25T13:00:11Z SGASAU quit (Remote host closed the connection) 2020-05-25T13:00:53Z SGASAU joined #lisp 2020-05-25T13:02:18Z emys joined #lisp 2020-05-25T13:02:35Z pjb quit (Ping timeout: 272 seconds) 2020-05-25T13:04:04Z jonatack quit (Ping timeout: 244 seconds) 2020-05-25T13:06:15Z ech joined #lisp 2020-05-25T13:06:20Z jonatack joined #lisp 2020-05-25T13:10:31Z libertyprime quit (Remote host closed the connection) 2020-05-25T13:10:36Z gaqwas quit (Quit: Leaving) 2020-05-25T13:15:09Z gaqwas joined #lisp 2020-05-25T13:16:25Z oxum quit (Remote host closed the connection) 2020-05-25T13:17:35Z bitmapper joined #lisp 2020-05-25T13:18:46Z orivej quit (Ping timeout: 272 seconds) 2020-05-25T13:18:54Z orivej_ joined #lisp 2020-05-25T13:19:37Z emys quit (Ping timeout: 260 seconds) 2020-05-25T13:27:27Z oxum joined #lisp 2020-05-25T13:29:30Z fluxwave quit (Ping timeout: 260 seconds) 2020-05-25T13:31:23Z pjb joined #lisp 2020-05-25T13:31:25Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-25T13:31:31Z orivej joined #lisp 2020-05-25T13:32:18Z oxum quit (Ping timeout: 260 seconds) 2020-05-25T13:32:54Z oxum joined #lisp 2020-05-25T13:39:16Z orivej quit (Ping timeout: 246 seconds) 2020-05-25T13:39:42Z orivej joined #lisp 2020-05-25T13:39:52Z gaqwas quit (Remote host closed the connection) 2020-05-25T13:42:01Z emys joined #lisp 2020-05-25T13:50:01Z emys quit (Ping timeout: 264 seconds) 2020-05-25T13:52:49Z Cymew quit (Quit: Konversation terminated!) 2020-05-25T13:53:10Z Cymew joined #lisp 2020-05-25T13:53:16Z shifty quit (Ping timeout: 246 seconds) 2020-05-25T13:53:29Z shifty joined #lisp 2020-05-25T13:59:21Z splittist: phoe: would folks at LispWorks or Global Graphics be able to pass a message on to Son[jy]a? 2020-05-25T14:00:17Z phoe: splittist: I don't know, I haven't asked. I guess I can try. 2020-05-25T14:02:03Z phoe: I don't know who to ask at Global Graphics though. 2020-05-25T14:02:25Z antaoiseach left #lisp 2020-05-25T14:03:32Z igemnace quit (Quit: WeeChat 2.8) 2020-05-25T14:07:05Z emys joined #lisp 2020-05-25T14:11:49Z gko quit (Ping timeout: 246 seconds) 2020-05-25T14:14:25Z splittist: phoe: in the absence of a better idea, you could try Jill Taylor, the Corporate Communications Director. At least her 'no, don't care' will be polite. I don't have an email, though. (LinkedIn /jill-taylor-0802793/ ) If you do write, you could congratulate GG on their sale of URW. 2020-05-25T14:22:18Z phoe: splittist: thanks, will do in a moment. 2020-05-25T14:24:22Z emys quit (Ping timeout: 260 seconds) 2020-05-25T14:25:25Z samlamamma joined #lisp 2020-05-25T14:26:59Z kpoeck quit (Remote host closed the connection) 2020-05-25T14:31:45Z oxum quit (Remote host closed the connection) 2020-05-25T14:32:32Z oxum joined #lisp 2020-05-25T14:35:40Z emys joined #lisp 2020-05-25T14:37:48Z oxum quit (Ping timeout: 256 seconds) 2020-05-25T14:42:57Z srazzaque quit (Ping timeout: 265 seconds) 2020-05-25T14:48:17Z emys quit (Ping timeout: 260 seconds) 2020-05-25T14:48:49Z Bit_MCP joined #lisp 2020-05-25T14:48:59Z pjb quit (Ping timeout: 272 seconds) 2020-05-25T14:51:09Z emys joined #lisp 2020-05-25T14:54:04Z bfig joined #lisp 2020-05-25T14:54:32Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-25T14:55:34Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-25T14:55:52Z orivej joined #lisp 2020-05-25T14:56:38Z bfig: hello, I'm trying to get started w/ lisp and I'm testing LFE (lisp flavored erlang) and having some issues w/ syntax. I am trying to extract the parameters from a quoted lambda function through pattern matching: (defun getparams (((quote (lambda . rest))) (car rest))). Any ideas for what's wrong? 2020-05-25T14:57:13Z bfig: ohh this is a common lisp channel... probably not the right place to ask 2020-05-25T14:57:25Z beach: Probably not. That syntax looks very strange. 2020-05-25T14:57:54Z beach: What does your lambda list look like? 2020-05-25T14:58:01Z bfig: lambda list? 2020-05-25T14:58:22Z beach: Parameter list. 2020-05-25T14:58:45Z bfig: i'm trying to use it on the following function: '(lambda (x y z) (+ x y z)) 2020-05-25T14:59:09Z Bike: this kind of pattern matching doesn't look like the kinds common lisp has. you are in the wrong place. 2020-05-25T14:59:16Z arpunk: bfig: No, that won't work, you get *erlang* pattern matching. 2020-05-25T14:59:20Z Bike: there's ##lisp, i think. 2020-05-25T14:59:23Z nicktick joined #lisp 2020-05-25T14:59:28Z Bike: and probably an erlang channel 2020-05-25T14:59:32Z arpunk: bfig: #erlang-lisp is what you want 2020-05-25T14:59:50Z Bit_MCP quit (Quit: Leaving) 2020-05-25T14:59:50Z Bit_MCP1 joined #lisp 2020-05-25T14:59:50Z Bit_MCP1 quit (Client Quit) 2020-05-25T14:59:54Z bfig: I'm there, there's like 3 people 2020-05-25T15:00:07Z Bike: but they'll probably be more helpful than we can be. 2020-05-25T15:00:18Z arpunk: bfig: Yea, I stopped LFE a few years ago 2020-05-25T15:00:59Z Bit_MCP joined #lisp 2020-05-25T15:00:59Z Bit_MCP1 joined #lisp 2020-05-25T15:01:18Z bfig: arpunk: what do you mean you stopped LFE? 2020-05-25T15:01:19Z Josh_2 quit (Ping timeout: 265 seconds) 2020-05-25T15:01:58Z arpunk: bfig: Is just Erlang on a Lisp disguise, single developer, etc. 2020-05-25T15:02:00Z karswell joined #lisp 2020-05-25T15:02:17Z Bit_MCP quit (Client Quit) 2020-05-25T15:02:20Z arpunk: stopped writing* 2020-05-25T15:02:35Z Bit_MCP1 quit (Client Quit) 2020-05-25T15:02:48Z bfig: for a second I thought maybe you were rvirding in disguise 2020-05-25T15:03:08Z Bit_MCP joined #lisp 2020-05-25T15:03:48Z emys quit (Ping timeout: 258 seconds) 2020-05-25T15:05:34Z rippa joined #lisp 2020-05-25T15:05:50Z Lycurgus joined #lisp 2020-05-25T15:05:54Z shifty quit (Ping timeout: 256 seconds) 2020-05-25T15:06:44Z shifty joined #lisp 2020-05-25T15:07:48Z emys joined #lisp 2020-05-25T15:08:31Z oxum joined #lisp 2020-05-25T15:09:41Z phantomics_ quit (Quit: Ex-Chat) 2020-05-25T15:11:18Z beach: Maybe people should choose what programming language to use according to the helpfulness and the number of participants of the corresponding IRC channel. 2020-05-25T15:12:14Z emys quit (Ping timeout: 240 seconds) 2020-05-25T15:13:03Z beach: It seems we frequently see phrases such as "yes, I know I am not using Common Lisp, but the IRC channel for my problem is dead, so I came here instead". 2020-05-25T15:13:53Z ralt: well stop being helpful! 2020-05-25T15:14:13Z beach: Hmm, that would be a bit radical. 2020-05-25T15:14:32Z beach: Oh, to people with unrelated problems? 2020-05-25T15:14:34Z beach: Sure. 2020-05-25T15:14:37Z oxum quit (Ping timeout: 264 seconds) 2020-05-25T15:16:04Z orivej quit (Ping timeout: 258 seconds) 2020-05-25T15:16:29Z emys joined #lisp 2020-05-25T15:16:41Z orivej joined #lisp 2020-05-25T15:21:20Z oxum joined #lisp 2020-05-25T15:21:32Z samlamamma quit (Ping timeout: 260 seconds) 2020-05-25T15:24:16Z emys quit (Ping timeout: 246 seconds) 2020-05-25T15:24:46Z gaqwas joined #lisp 2020-05-25T15:25:00Z pjb joined #lisp 2020-05-25T15:25:17Z samlamamma joined #lisp 2020-05-25T15:27:14Z orivej quit (Ping timeout: 240 seconds) 2020-05-25T15:27:51Z orivej joined #lisp 2020-05-25T15:27:58Z SGASAU quit (Remote host closed the connection) 2020-05-25T15:28:06Z Blukunfando joined #lisp 2020-05-25T15:28:39Z SGASAU joined #lisp 2020-05-25T15:29:15Z emys joined #lisp 2020-05-25T15:40:09Z Lycurgus quit (Remote host closed the connection) 2020-05-25T15:41:36Z shifty quit (Ping timeout: 256 seconds) 2020-05-25T15:41:47Z flip214: wasn't the CL community known for their notority 20 years ago or so? seems to have changed. +1 to beach for welcoming newbies! 2020-05-25T15:41:50Z sdumi quit (Ping timeout: 256 seconds) 2020-05-25T15:42:05Z shifty joined #lisp 2020-05-25T15:43:43Z Josh_2 joined #lisp 2020-05-25T15:43:51Z beach: notority? 2020-05-25T15:45:09Z beach: I think the friendliness of this channel goes way further back than that. 2020-05-25T15:45:38Z emys quit (Ping timeout: 256 seconds) 2020-05-25T15:46:59Z bfig: beach: you have a good point but I am just getting started here. I started looking at LFE because I'm buliding things in elixir and I need a single component that will require lisp as I'll do a lot of AST manipulation. LFE seems like the right choice but it's unusable in it's current state for somebody like me 2020-05-25T15:47:29Z beach: Aha, so you might be interested in Common Lisp after all. 2020-05-25T15:47:58Z beach: Then the solution to your problem is (second '(lambda (x y z) ...)) 2020-05-25T15:48:07Z bfig: maybe, if I can do what I need. I basically want to manipulate an AST, I will interpret it using a persisted workflow management system, but I want to describe the workflows and the transformations using lisp 2020-05-25T15:48:34Z beach: What kind of AST are we talking about? 2020-05-25T15:49:09Z bfig: its' going to be just a simple DSL, but I will have to be able to perform some special functions on it and also allow for some 'nonsense' to happen 2020-05-25T15:51:19Z bfig: so I want to represent workflows as a dsl and then represent other workflows as transformations, combinations and alterations of the same DSL. To have as much power as possible I will want to combine them in ways that are super flexible, ie, i want to parametrize pieces of them through functions 2020-05-25T15:51:45Z rogersm joined #lisp 2020-05-25T15:51:49Z sdumi joined #lisp 2020-05-25T15:52:36Z beach: I believe you, but I don't understand much of what you are describing. Lack of domain knowledge, I presume. 2020-05-25T15:53:10Z flip214: well, I can only judge what I've seen in the Naggum article archive... perhaps that's a bad sample 2020-05-25T15:53:53Z beach: flip214: I just don't know the word you were using. 2020-05-25T15:54:16Z samlamamma: bfig:Perhaps you can implement it in Elixir using other means? Such as higher-order functions 2020-05-25T15:54:48Z emys joined #lisp 2020-05-25T15:55:00Z bfig: samlamamma: so for example, you could have a valid dsl piece: '(lambda (a b) (step (components (produce a b))), and that will be combined in place with other stuff, but I have to represent the new DSL piece as a combination of variables of the subpieces 2020-05-25T15:56:00Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T15:56:08Z bfig: so i want to combine several small pieces like this and 'hoist' the variables. I use apostrophes cause I am not sure the definition of hoist applies here, but imagine part of the DSL is alterations of the underlying structure, like converting something fixed/shadowing an element into a free variable 2020-05-25T15:56:31Z orivej joined #lisp 2020-05-25T15:57:40Z phoe: bfig: the issue is that this channel is about Common Lisp, not LFE or Erlang, so what you describe sounds a little bit off-topic unless you want to add a CL runtime to the mix and use e.g. CLERIC to communicate between CL the and Erlang worlds 2020-05-25T15:58:07Z phoe: sadly, LFE has gone stalled as of late; I don't see much new development happening there, which is a sad thing 2020-05-25T15:58:13Z phoe: s/gone// 2020-05-25T15:58:48Z bfig: phoe: this sounds great, I am starting to think about alternatives, will look at this in more detail 2020-05-25T15:59:53Z samlamamma: If I needed to implement a DSL where I had to determine the lexical environment of variables and so on then the macro would only be there to quote my code and I'd implement an interpreter for my DSL language. 2020-05-25T15:59:56Z flip214: beach: a quick example is https://www.xach.com/naggum/articles/3124184876945775@naggum.no.html, but there are many much more heated ones 2020-05-25T16:00:39Z beach: flip214: I still do not know a word such as "notority". 2020-05-25T16:00:48Z phoe: s/notority/notoriety/ 2020-05-25T16:01:08Z phoe: ;; "s" in the above regex stands for "spellcheck" 2020-05-25T16:01:12Z bfig: samlamamma: i will implement the interp in elixir as I need to do a lot of distributed stuff, but the DSL management in elixir sounds like the worst possible thing to do. I just need to format it into something that makes sense so I don't have to rewrite the wheel in elixir 2020-05-25T16:01:21Z beach: phoe: Ah thanks. 2020-05-25T16:01:50Z phoe: bfig: once upon a time, I was thinking of a swank server in LFE. 2020-05-25T16:01:58Z flip214: phoe: thanks 2020-05-25T16:02:24Z phoe: That would allow Common Lisp and LFE to exchange code via S-expressions; you could even send them from LFE, manipulate the lists in CL, and send them back to LFE for evaluation. 2020-05-25T16:02:28Z samlamamma: bfig: The Haskell guys has decent work in supporting eDSLs utilizing standard language features such as ADTs, have you looked into that for Elixir? 2020-05-25T16:02:42Z emys quit (Ping timeout: 260 seconds) 2020-05-25T16:03:49Z efm quit (Ping timeout: 264 seconds) 2020-05-25T16:05:47Z flazh quit (Quit: flazh) 2020-05-25T16:05:57Z bfig: samlamamma: i don't think i can do what I need with haskell, how would I work around the types? the idea is allowing the user to define functions at any point and combine them by hoisting the variables 2020-05-25T16:06:13Z phoe: bfig: what do you mean, hoisting? 2020-05-25T16:06:25Z bfig: the following code is nonsense: 2020-05-25T16:06:30Z phoe: bfig: please use a pastebin 2020-05-25T16:06:38Z phoe: ...saying that just in case 2020-05-25T16:06:52Z bfig: ok, sorry, just got used to discord by now 2020-05-25T16:06:59Z phoe whew 2020-05-25T16:07:03Z emys joined #lisp 2020-05-25T16:07:34Z ravndal joined #lisp 2020-05-25T16:12:01Z flazh joined #lisp 2020-05-25T16:12:39Z ebrasca joined #lisp 2020-05-25T16:13:18Z bfig: phoe: https://paste.jvnv.net/view/uzjAm 2020-05-25T16:13:23Z rogersm quit (Quit: Leaving...) 2020-05-25T16:14:32Z karswell quit (Remote host closed the connection) 2020-05-25T16:15:14Z karswell joined #lisp 2020-05-25T16:18:09Z phoe: bfig: other than the very weird indentation, it looks OK 2020-05-25T16:18:38Z phoe: I mean, I don't know what the symbols STEP, COMPONENTS, PRODUCE, TRANSPORT, and BANANAS do 2020-05-25T16:18:40Z efm joined #lisp 2020-05-25T16:19:22Z phoe: but the lambda seems okay overall 2020-05-25T16:21:05Z bfig: phoe: they are symbols that the interp will understand. I need to provide an html/js interface for the values, at the time of interpretation all those functions need to be executed with the right variables 2020-05-25T16:21:38Z phoe: ouch, where does the HTML/JS come from 2020-05-25T16:21:42Z bfig: so the interface for the DSL i just showed will be two fields which the inter should know are locations that you can pick from your list of locations 2020-05-25T16:21:54Z phoe: your problem just became more complex to understand 2020-05-25T16:22:02Z bebop quit (Ping timeout: 265 seconds) 2020-05-25T16:22:18Z samlamamma: bfig:http://okmij.org/ftp/tagless-final/ If you care about eDSLs in Haskell 2020-05-25T16:23:14Z bfig: ok let's just talk about the core. The core of the system is a dsl that will represent value streams with free variables. Those free variables need to be completed, and then you have a DSL for an executable sequence of actions that an inter will use to interface with different systems (inventory, production, etc) 2020-05-25T16:24:03Z EvW quit (Ping timeout: 252 seconds) 2020-05-25T16:24:03Z phoe: OK, I can understand this so far. Are X and Y the free variables in your example? That you bind with a LAMBDA form? 2020-05-25T16:24:40Z bfig: yes. It doesn't need to be lambda, it could be anything, it just needs to be something that can be used to denote that they are free variables 2020-05-25T16:24:46Z bfig: i mean the whole thing will be quoted anyway 2020-05-25T16:24:54Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T16:25:05Z samlamamma: Technically they're bound variables inside of the lambda 2020-05-25T16:25:09Z bfig: samlamamma: will review a bit more in detail but I'm pretty sure that I'll have to deal with the problem I want to avoid 2020-05-25T16:25:10Z orivej joined #lisp 2020-05-25T16:25:22Z bfig: sorry I'm misusing the terms 2020-05-25T16:25:28Z phoe: samlamamma: correct; I asked because they'd be free without the encompassing lambda 2020-05-25T16:25:57Z samlamamma: bfig:Have you considered writing a grammar for your language? 2020-05-25T16:26:33Z bfig: imagine if what I had were terms with free variables, i just want to compose them without having to care, and then at the end I want to do typechecking (based on an interpretation of the argument position of the DSL) and just gathering everything so I can generate an interface for the user to complete 2020-05-25T16:27:01Z bfig: the interface would be be just variables to be bound to the free terms 2020-05-25T16:27:16Z phoe: bfig: OK, you can do that with just list manipulations. If you compiled this in CL, then the compiler would tell you which variables were unbound; I imagine LFE has something similar. 2020-05-25T16:28:28Z aindilis quit (Read error: Connection reset by peer) 2020-05-25T16:29:10Z bfig: samlamamma: i already have a basic grammar to start: wf = (wf . steps), steps = step | (cons step step), step = (step . components) ... 2020-05-25T16:29:41Z pjb quit (Ping timeout: 272 seconds) 2020-05-25T16:31:16Z dtman34 joined #lisp 2020-05-25T16:31:24Z bfig: the idea is that I can extend this grammar with components (as in entity component systems), so for typechecking purposes I will have a runtime that could gather the information necessary to figure out the types. I don't intend to do crazy stuff 2020-05-25T16:31:56Z bfig: (ie, my first components that I already have programmed are elixir apps that do inventory management and production) 2020-05-25T16:32:50Z emys quit (Ping timeout: 256 seconds) 2020-05-25T16:33:34Z aindilis joined #lisp 2020-05-25T16:33:47Z dtman34 quit (Remote host closed the connection) 2020-05-25T16:34:17Z dtman34 joined #lisp 2020-05-25T16:35:12Z dtman34 quit (Remote host closed the connection) 2020-05-25T16:35:42Z Jeanne-Kamikaze joined #lisp 2020-05-25T16:36:08Z bfig is looking at GRAIL 2020-05-25T16:40:38Z bitmapper quit (Remote host closed the connection) 2020-05-25T16:41:46Z bfig: you know this CLERIC thing actually is all i need I think 2020-05-25T16:46:03Z bfig: phoe: do you know if this has OTP support so I can add it to my supervision tree_ 2020-05-25T16:46:14Z ech quit (Ping timeout: 240 seconds) 2020-05-25T16:46:16Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T16:46:22Z orivej_ joined #lisp 2020-05-25T16:47:24Z bitmapper joined #lisp 2020-05-25T16:47:58Z phoe: bfig: it doesn't. All it does is causes a Lisp image to advertise itself as a node on the Erlang network. 2020-05-25T16:48:11Z phoe: It does not implement any Erlang VM instructions, so it cannot execute Erlang code or funs. 2020-05-25T16:49:21Z bfig: mmm :/ 2020-05-25T16:49:46Z phoe: It implements the wire protocol, so it allows one to receive and send messages. 2020-05-25T16:49:56Z phoe: this includes Erlang code as black-box data that cannot be executed. 2020-05-25T16:50:06Z emys joined #lisp 2020-05-25T16:50:47Z phoe: it allows you to send Erlang data for processing in CL and vice versa. 2020-05-25T16:51:24Z bfig: yeah but if I can't make it work in an OTP supervision tree i have to build that on my own :/ 2020-05-25T16:51:35Z X-Scale` joined #lisp 2020-05-25T16:52:26Z X-Scale quit (Ping timeout: 256 seconds) 2020-05-25T16:52:31Z X-Scale` is now known as X-Scale 2020-05-25T16:54:42Z emys quit (Ping timeout: 256 seconds) 2020-05-25T16:56:30Z orivej_ quit (Ping timeout: 258 seconds) 2020-05-25T16:57:00Z orivej joined #lisp 2020-05-25T16:57:48Z phoe: splittist: Dave Moon forwarded my mail to Sonya! I got a response. 2020-05-25T16:59:29Z ChoHag quit (Remote host closed the connection) 2020-05-25T16:59:37Z pjb joined #lisp 2020-05-25T17:02:27Z ech joined #lisp 2020-05-25T17:03:32Z splittist: phoe: wow! 2020-05-25T17:03:40Z EvW1 joined #lisp 2020-05-25T17:05:11Z orivej_ joined #lisp 2020-05-25T17:05:15Z splittist: phoe: I don't know what technical book contracts were like in the 80's, but I would imagine the copyright has reverted to her since it hasn't been reprinted in so long. 2020-05-25T17:05:30Z orivej quit (Ping timeout: 272 seconds) 2020-05-25T17:06:06Z scymtym_ joined #lisp 2020-05-25T17:08:17Z scymtym quit (Ping timeout: 260 seconds) 2020-05-25T17:08:49Z pfdietz quit (Ping timeout: 245 seconds) 2020-05-25T17:09:53Z Bit_MCP quit (Ping timeout: 265 seconds) 2020-05-25T17:10:12Z slyrus quit (Quit: Leaving) 2020-05-25T17:11:12Z scymtym_ quit (Ping timeout: 260 seconds) 2020-05-25T17:12:09Z phoe: splittist: I've asked her about that. Let's see how it works; I'm glad to know that she's alive and well, and also curious about the Lisp platform I use. :) 2020-05-25T17:12:56Z epony quit (Quit: upgrades) 2020-05-25T17:14:11Z karswell quit (Remote host closed the connection) 2020-05-25T17:14:58Z karswell joined #lisp 2020-05-25T17:17:43Z jackdaniel: what is the context here? (I can't find it in the backlog) 2020-05-25T17:17:56Z phoe: jackdaniel: you mean my stuff? 2020-05-25T17:18:00Z jackdaniel: yes 2020-05-25T17:18:08Z phoe: I'm basically looking at what can be done related to modernizing Sonya's CLOS book from 1989 2020-05-25T17:18:15Z _death: just don't mention that ORDERED-LOCK-MIXIN bug :D 2020-05-25T17:18:20Z jackdaniel: ah 2020-05-25T17:18:29Z jackdaniel: thanks 2020-05-25T17:18:48Z phoe: _death: what is it? I might be able to fix it if^Wwhen the book is re-released 2020-05-25T17:20:22Z _death: in seize :before method specialized on ordered-lock-mixin I have commented the check-for-mylock form and remarked "ORDERED-LOCK-MIXIN should not assume an owner." 2020-05-25T17:20:23Z _death: 2020-05-25T17:20:54Z phoe adds it to the idea bin for CLOSbook fixes 2020-05-25T17:22:14Z epony joined #lisp 2020-05-25T17:23:04Z oxum quit (Remote host closed the connection) 2020-05-25T17:23:19Z _death: I'm not sure I found the code useful in any way, just played with it when I read the book more than a decade ago.. so may be wrong 2020-05-25T17:24:01Z oxum joined #lisp 2020-05-25T17:25:51Z orivej joined #lisp 2020-05-25T17:25:56Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-25T17:29:01Z oxum quit (Ping timeout: 264 seconds) 2020-05-25T17:31:21Z tsrt^ joined #lisp 2020-05-25T17:32:17Z pjb quit (Ping timeout: 246 seconds) 2020-05-25T17:33:05Z efm quit (Ping timeout: 265 seconds) 2020-05-25T17:34:34Z jw4 quit (Read error: Connection reset by peer) 2020-05-25T17:36:37Z jw4 joined #lisp 2020-05-25T17:38:44Z bhartrihari joined #lisp 2020-05-25T17:40:40Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T17:41:00Z orivej joined #lisp 2020-05-25T17:41:27Z theseb joined #lisp 2020-05-25T17:41:32Z theseb quit (Remote host closed the connection) 2020-05-25T17:41:37Z rogersm joined #lisp 2020-05-25T17:42:16Z ArthurStrong quit (Ping timeout: 265 seconds) 2020-05-25T17:42:31Z shifty quit (Ping timeout: 246 seconds) 2020-05-25T17:43:11Z shifty joined #lisp 2020-05-25T17:50:10Z scymtym joined #lisp 2020-05-25T17:53:21Z madnificent joined #lisp 2020-05-25T17:58:54Z jmercouris: hello 2020-05-25T17:59:32Z jmercouris: let's say I have a list (list "salmon" "fish" "mollusk"), I want to loop, first iter: "salmon" "fish" "mollusk", second iter: "fish" "mollusk" 2020-05-25T17:59:38Z jmercouris: basically I'd like to do by :pop or something 2020-05-25T17:59:41Z jmercouris: best way? 2020-05-25T17:59:45Z jmercouris: OK to do that? 2020-05-25T18:00:25Z cosimone quit (Read error: Connection reset by peer) 2020-05-25T18:00:37Z Bike: (loop for sublist on list ...) 2020-05-25T18:00:45Z jmercouris: that will just work? 2020-05-25T18:00:52Z cosimone joined #lisp 2020-05-25T18:00:55Z Bike: yeah, that's what "on" means 2020-05-25T18:01:00Z Bike: instead of "in" which takes each element 2020-05-25T18:01:38Z beach: (loop for sublist on list do (loop for element in sublist do ...)) 2020-05-25T18:01:46Z jmercouris: ah, indeed indeed 2020-05-25T18:01:46Z orivej quit (Ping timeout: 246 seconds) 2020-05-25T18:01:51Z jmercouris: thanks 2020-05-25T18:01:54Z Bike: there's also mapl, maplist, mapcon 2020-05-25T18:01:57Z jmercouris: today I learned about what the "on" keword really does 2020-05-25T18:02:05Z jmercouris: I'd been using it like an automaton :-D 2020-05-25T18:02:05Z stoneglass joined #lisp 2020-05-25T18:02:10Z orivej joined #lisp 2020-05-25T18:02:13Z jmercouris: I've been avoiding really getting into LOOP if I am honest 2020-05-25T18:02:32Z oxum joined #lisp 2020-05-25T18:03:17Z kamid quit (Quit: WeeChat 2.7.1) 2020-05-25T18:04:08Z pjb joined #lisp 2020-05-25T18:04:59Z gxt__ joined #lisp 2020-05-25T18:06:34Z Bit_MCP joined #lisp 2020-05-25T18:08:50Z oxum quit (Ping timeout: 272 seconds) 2020-05-25T18:09:05Z jmercouris: ON actually does the reverse of what I want 2020-05-25T18:09:11Z jmercouris: I would have to reverse the list or instead POP through it 2020-05-25T18:12:48Z Bike: er, what? 2020-05-25T18:12:57Z Bike: you said first you wanted the whole list, then all elements but the first, etc 2020-05-25T18:13:11Z jmercouris: ah, damnit you are right I did 2020-05-25T18:13:28Z jmercouris: I guess I need to reverse no matter what 2020-05-25T18:13:37Z jmercouris: Bike: this works, http://dpaste.com/0VE5YTE 2020-05-25T18:13:40Z jmercouris: what do you think of it? 2020-05-25T18:13:49Z jmercouris: given "libgio-2.0.0.dylib" -> ("libgio-2.0.0.dylib" "libgio-2.0.dylib" "libgio-2.dylib") 2020-05-25T18:15:20Z Bike: it might go a bit faster if you generated them forward and then reversed at the end, but it does'nt seem like you're going to use this in a tight loop anyway 2020-05-25T18:15:36Z jmercouris: other than that, looks OK? 2020-05-25T18:16:25Z Bike: sure, it's fine. maybe i'd move the format into a separate implode function 2020-05-25T18:17:47Z jmercouris: thanks for the fe3db4ck 2020-05-25T18:29:49Z lain` joined #lisp 2020-05-25T18:30:32Z Bit_MCP quit (Ping timeout: 256 seconds) 2020-05-25T18:30:52Z midre quit (Ping timeout: 260 seconds) 2020-05-25T18:32:21Z midre joined #lisp 2020-05-25T18:32:44Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T18:32:51Z orivej_ joined #lisp 2020-05-25T18:35:09Z Bit_MCP joined #lisp 2020-05-25T18:36:48Z pjb quit (Ping timeout: 244 seconds) 2020-05-25T18:40:14Z Archenoth quit (Quit: Leaving) 2020-05-25T18:42:27Z lain` left #lisp 2020-05-25T18:43:22Z EvW1 quit (Ping timeout: 260 seconds) 2020-05-25T18:44:06Z bhartrihari left #lisp 2020-05-25T18:44:14Z bhartrihari joined #lisp 2020-05-25T18:48:21Z slyrus joined #lisp 2020-05-25T18:57:01Z SAL9000 quit (Remote host closed the connection) 2020-05-25T19:00:14Z stoneglass quit (Quit: stoneglass) 2020-05-25T19:01:26Z SAL9000 joined #lisp 2020-05-25T19:04:12Z rogersm quit (Quit: Leaving...) 2020-05-25T19:06:36Z karswell quit (Remote host closed the connection) 2020-05-25T19:09:39Z SAL9000 quit (Quit: WeeChat 2.7.1) 2020-05-25T19:12:48Z shangul quit (Ping timeout: 272 seconds) 2020-05-25T19:14:10Z pjb joined #lisp 2020-05-25T19:17:01Z orivej joined #lisp 2020-05-25T19:17:01Z orivej_ quit (Ping timeout: 264 seconds) 2020-05-25T19:18:22Z karlosz joined #lisp 2020-05-25T19:21:36Z even4void joined #lisp 2020-05-25T19:22:07Z even4void quit (Remote host closed the connection) 2020-05-25T19:22:14Z SGASAU quit (Remote host closed the connection) 2020-05-25T19:22:56Z SGASAU joined #lisp 2020-05-25T19:24:50Z sugarwren quit (Quit: Leaving) 2020-05-25T19:25:08Z theseb joined #lisp 2020-05-25T19:25:59Z even4void joined #lisp 2020-05-25T19:26:10Z even4void quit (Remote host closed the connection) 2020-05-25T19:28:07Z even4void joined #lisp 2020-05-25T19:31:31Z karswell joined #lisp 2020-05-25T19:31:32Z even4void quit (Remote host closed the connection) 2020-05-25T19:31:49Z theseb: Can at least a big subset of C and Python be compiled to lisp? 2020-05-25T19:32:13Z samlamamma: theseb: Nope, impossible :-) 2020-05-25T19:32:54Z Bike: you can compile anything to anything. 2020-05-25T19:33:14Z madnificent wonders if these are jokes 2020-05-25T19:33:49Z jason_m joined #lisp 2020-05-25T19:33:52Z theseb: seems lisp would make a good intermediate representation for compilers....just convert everything to it 2020-05-25T19:34:09Z samlamamma: In many ways not really 2020-05-25T19:34:10Z theseb: no need to reinvent the code to convert to assembly or machine code 2020-05-25T19:34:20Z theseb: just do it for lisp 2020-05-25T19:34:32Z theseb: everything else just convert to lisp! 2020-05-25T19:34:36Z samlamamma: Naaaaah 2020-05-25T19:34:46Z theseb: samlamamma: why not? 2020-05-25T19:34:50Z Bike: common lisp would not be a very good ir 2020-05-25T19:34:51Z samlamamma: Sorry guys, I shouldn't write such silly messages. I'm really tired haha :-) 2020-05-25T19:35:04Z Bike: most IRs don't have textual syntax anyway 2020-05-25T19:35:18Z Bike: since they only exist in the compiler 2020-05-25T19:35:30Z theseb: Bike: CL has too much goodies...an subset of CL/Scheme seems nicer 2020-05-25T19:35:36Z theseb: many* 2020-05-25T19:35:41Z samlamamma: theseb: Look at WebAssembly :-) 2020-05-25T19:35:50Z Bike: it wouldn't really be a subset 2020-05-25T19:36:04Z Bike: for example there's no arithmetic on machine integers in either language, and you probably want that 2020-05-25T19:36:12Z Bike: you can do that with declarations, but then it's hardly an IR 2020-05-25T19:36:14Z theseb: samlamamma: i have high hopes for WebAssembly 2020-05-25T19:37:12Z theseb: Bike: in that case you'd probably want to ditch CL and create a half-baked lisp like lang strongly tied to your processor of choice for this 2020-05-25T19:37:39Z Bike: it wouldn't be half baked, it would just be a language for a different purpose 2020-05-25T19:37:58Z Bike: and, again, it probably wouldn't have a character syntax, or at least that syntax wouldn't be the most common way to use it 2020-05-25T19:38:03Z Bike: so no parens 2020-05-25T19:38:12Z samlamamma: ^- what's happening in WASM 2020-05-25T19:43:13Z theseb: Bike: what do you mean why you say it wouldn't have a character syntax? Do you mean 2020-05-25T19:43:23Z theseb: it would be binary instead of ASCII? 2020-05-25T19:43:50Z Bike: when you write a compiler, you parse the language into internal data structures, and make an IR of internal data structures 2020-05-25T19:44:10Z theseb: yes i agree 2020-05-25T19:44:10Z phoe: (IR = intermediate representation) 2020-05-25T19:44:14Z Bike: for example, in Cleavir, AST (abstract syntax tree) nodes are represented with ASTs, which are standard-objects 2020-05-25T19:44:18Z Bike: so, there's no text 2020-05-25T19:45:56Z mood: phoe: https://gitlab.com/gnu-clisp/clisp/-/merge_requests/3 2020-05-25T19:46:10Z theseb: Bike: yes complex structures like with OOP would be a pain...but at least for the basics of C and python....defining variables, defining/using functions, doing arithmetic...i can see easily how it could be translated into s expressions 2020-05-25T19:46:15Z phoe: mood: reviewing this now 2020-05-25T19:46:27Z Bike: but they wouldn't be s expressions, they would just be data structures. 2020-05-25T19:46:42Z Bike: there's no need for the IR to be written out to a file at all except maybe for debugging. 2020-05-25T19:46:46Z samlamamma: You don't want S-expressions. 2020-05-25T19:46:55Z samlamamma: You probably want to attach info to the nodes 2020-05-25T19:47:09Z pjb quit (Ping timeout: 265 seconds) 2020-05-25T19:47:21Z theseb: Bike: yes! debugging...that is what I was thinking about too 2020-05-25T19:47:40Z samlamamma: theseb:You're not wrong in that what you're saying can be done, but it's completely unnecessary to do so and impractical because of the work that compilers have to do 2020-05-25T19:48:13Z samlamamma: theseb: Read all of this: https://docs.racket-lang.org/redex/ 2020-05-25T19:48:48Z younder joined #lisp 2020-05-25T19:49:03Z theseb: Bike: let me come clean...I want to build a compiler for a subset of C and Python for a learning project...the idea of just parsing both to a lispy IR and then just focusing on the IR to asm conversion in one swipe sounds delicious 2020-05-25T19:49:18Z Bike: just build up an IR the usual way 2020-05-25T19:49:33Z Bike: i recommend using clos or structures or something, not conses 2020-05-25T19:49:41Z theseb: i'm good at parsing....so C, Python, ... ...each new lang "just" adds another parsing component 2020-05-25T19:50:02Z Bike: it's more than parsing. 2020-05-25T19:50:10Z samlamamma: Have you ever written a compiler before? 2020-05-25T19:50:39Z younder: samlamamma, who are you asking? 2020-05-25T19:51:07Z samlamamma: theseb: 2020-05-25T19:51:09Z samlamamma: Sorry, good point 2020-05-25T19:51:21Z Bike: seems pretty obvious from context 2020-05-25T19:51:26Z samlamamma: Oh, sorry. younder: Sorry, good point 2020-05-25T19:51:27Z samlamamma: ;-) 2020-05-25T19:51:48Z theseb: samlamamma: i've done the parsing...that's it 2020-05-25T19:52:16Z samlamamma: theseb:Okay, how did you do the parsing? 2020-05-25T19:52:34Z theseb: samlamamma: i wrong a recursive descent parser generator 2020-05-25T19:52:49Z theseb: then i just wrote separate recursive descent parsers 2020-05-25T19:53:16Z samlamamma: Okay, nice. If you parse let's say "def foo(x): return x" then what do you get back? 2020-05-25T19:53:56Z theseb: samlamamma: i haven't done python yet...but clearly you'd get a lambda function bound to foo with 1 argument x ....etc. 2020-05-25T19:54:22Z Bike: samlamamma is asking what kind of values your parsing function returns. 2020-05-25T19:54:33Z Bike: your parser probably doesn't return an actual lisp function 2020-05-25T19:55:03Z theseb: correct 2020-05-25T19:55:09Z samlamamma: So what does it return? 2020-05-25T19:56:10Z theseb: samlamamma: trying to remember..just a sec...been a while.....see github.com/cseberino/pgen 2020-05-25T19:56:36Z bhartrihari left #lisp 2020-05-25T19:56:45Z bhartrihari joined #lisp 2020-05-25T19:57:18Z even4void joined #lisp 2020-05-25T19:57:27Z gravicappa quit (Ping timeout: 260 seconds) 2020-05-25T19:57:58Z theseb: samlamamma: it emits the abstract syntax tree...in a huge s-expression 2020-05-25T19:58:05Z ven4voide joined #lisp 2020-05-25T19:58:07Z pjb joined #lisp 2020-05-25T19:58:16Z Bike: so it actually returns a string? 2020-05-25T19:58:34Z phoe: mood: reviewed. 2020-05-25T20:00:03Z Bike: (the answer is probably "no", but i don't see where things are defined) 2020-05-25T20:00:38Z even4void quit (Remote host closed the connection) 2020-05-25T20:00:45Z TwoNotes joined #lisp 2020-05-25T20:00:58Z samlamamma: theseb:Okay, replace the s-expressions with instances of abstract data types, then you have a typical first AST. Now you can compile that AST directly, or you can do re-write passes from that AST to other intermediate representations (like SSA). 2020-05-25T20:01:03Z samlamamma: Then emit code. 2020-05-25T20:01:22Z samlamamma: Anyway, it's late, I have to go home. 2020-05-25T20:01:46Z phoe: mood: also posted on Reddit in hope anyone else is able to review that code. 2020-05-25T20:04:11Z orivej_ joined #lisp 2020-05-25T20:04:49Z phoe: mood: also posted to a Planet Lisp-indexed block in hope it reaches more people. 2020-05-25T20:05:15Z orivej quit (Read error: Connection reset by peer) 2020-05-25T20:05:40Z ven4voide quit (Remote host closed the connection) 2020-05-25T20:08:32Z samlamamma quit (Ping timeout: 260 seconds) 2020-05-25T20:08:40Z theseb: Bike: a string representation of s expressions 2020-05-25T20:09:30Z phoe: so it returns an AST serialized into a string?... 2020-05-25T20:09:35Z theseb: yes 2020-05-25T20:10:10Z hiroaki quit (Ping timeout: 265 seconds) 2020-05-25T20:10:24Z Bike: so if you want to actually work with it, you have to parse the string? 2020-05-25T20:10:32Z phoe: sounds like it 2020-05-25T20:11:48Z pjb: prin1-to-string and read-from-string 2020-05-25T20:12:16Z mood: phoe: Thanks! 2020-05-25T20:12:47Z heisig quit (Quit: Leaving) 2020-05-25T20:13:05Z theseb: Bike: well i'm going to do more work on it...that's old code...i'm thinking compile C down to s-expressions....then write something to compile s expressions 2020-05-25T20:13:08Z theseb: to assembly 2020-05-25T20:13:21Z theseb: Bike: how does that sound? 2020-05-25T20:13:27Z younder: ahem. I'm a bit rusty, but won't parsing stuff as a string make it exactly a if you had written it in something else like C? I'd go for a quoted SEXP if i could. 2020-05-25T20:13:37Z Bike: i mean, you have some code 2020-05-25T20:13:40Z Bike: you parse it and output a string 2020-05-25T20:13:42Z theseb: Bike: and i ready have my working lisp subset....See github.com/cseberino/crux for debugging! 2020-05-25T20:13:43Z Bike: then you parse that string 2020-05-25T20:13:46Z Bike: it's dumb. 2020-05-25T20:14:05Z phoe: you now need to parse that string again, even if just by reading it 2020-05-25T20:14:14Z Bike: just parse directly to whatever your internal structures are. your AST nodes. 2020-05-25T20:14:27Z theseb: Bike: i'm going to skip the string stage...just go from C source to s expressions 2020-05-25T20:14:39Z even4void joined #lisp 2020-05-25T20:14:39Z bfig quit (Read error: Connection reset by peer) 2020-05-25T20:14:42Z Bike: what do you think an s expression is 2020-05-25T20:14:55Z bfig joined #lisp 2020-05-25T20:15:10Z theseb: Bike: welll i'm literally going to convert my c source to working lisp code 2020-05-25T20:15:26Z Bike: s expressions are textual syntax. that's what i've been talking about. 2020-05-25T20:15:31Z Bike: if you're doing something else, great 2020-05-25T20:15:38Z theseb: Bike: oh....maybe i'm using the wrong language 2020-05-25T20:15:41Z theseb: terminology 2020-05-25T20:15:42Z defaultxr joined #lisp 2020-05-25T20:16:01Z theseb: sorry 2020-05-25T20:16:57Z theseb: Bike: it just seems so beautiful because i can immediately run my intermediate lisp code to make sure the c parser is 100% correct 2020-05-25T20:17:06Z theseb: all the immediate feedback will be motivating 2020-05-25T20:17:46Z theseb: i'm not a professional compiler write but presumably i'm not the 1st person that has thought of this 2020-05-25T20:17:56Z theseb: .....executable IRs you can test and debug 2020-05-25T20:18:18Z Bike: no, it's pretty common. 2020-05-25T20:18:20Z theseb: that's why lisp seems so perfect here 2020-05-25T20:18:21Z younder: theseb, C to lisp.. you might well be the first 2020-05-25T20:18:30Z theseb: because you can implement a mini lisp so quickly 2020-05-25T20:18:34Z Bike: IRs shared by multiple language frontends are also common. That's how LLVM works. 2020-05-25T20:19:16Z Bike: i think poplog too, for a lisp example, but i'm not sure 2020-05-25T20:20:02Z grewal joined #lisp 2020-05-25T20:21:46Z grewal: Are there any libraries that implement elliptic curve pairings? 2020-05-25T20:21:57Z hiroaki joined #lisp 2020-05-25T20:22:06Z slyrus quit (Quit: Leaving) 2020-05-25T20:24:12Z younder: I found a couple using google. 2020-05-25T20:24:13Z shifty quit (Ping timeout: 246 seconds) 2020-05-25T20:26:23Z grewal: I have to work on my search skills. I couldn't (and still can't) find any 2020-05-25T20:26:47Z even4void_ joined #lisp 2020-05-25T20:26:56Z _death: grewal: may want to check out emotiq 2020-05-25T20:27:12Z younder: Seems more of a Haskell thing really. They are more mathematically inclined. In NSA stuff at least. 2020-05-25T20:27:54Z even4void_ quit (Client Quit) 2020-05-25T20:28:22Z _paul0 quit (Ping timeout: 260 seconds) 2020-05-25T20:33:14Z rozenglass quit (Ping timeout: 272 seconds) 2020-05-25T20:33:26Z even4void quit (Remote host closed the connection) 2020-05-25T20:33:40Z orivej_ quit (Ping timeout: 246 seconds) 2020-05-25T20:33:52Z orivej joined #lisp 2020-05-25T20:34:04Z grewal: _death: thanks, that helped 2020-05-25T20:34:23Z rumbler31 joined #lisp 2020-05-25T20:34:32Z karswell quit (Read error: Connection reset by peer) 2020-05-25T20:38:34Z rumbler31 quit (Ping timeout: 246 seconds) 2020-05-25T20:55:14Z karayan quit (Remote host closed the connection) 2020-05-25T20:56:44Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T20:57:02Z orivej joined #lisp 2020-05-25T20:57:57Z ChoHag joined #lisp 2020-05-25T20:58:13Z ChoHag: What does &whole do in a lambda list? 2020-05-25T20:58:59Z random-nick quit (Ping timeout: 265 seconds) 2020-05-25T21:05:15Z _death: clhs 3.4.4 2020-05-25T21:05:15Z specbot: Macro Lambda Lists: http://www.lispworks.com/reference/HyperSpec/Body/03_dd.htm 2020-05-25T21:05:40Z rozenglass joined #lisp 2020-05-25T21:05:45Z choegusung joined #lisp 2020-05-25T21:05:45Z choegusung quit (Client Quit) 2020-05-25T21:05:50Z mood: ChoHag: It binds the given variable to the entire macro invocation form. For example, when you call this macro (defmacro foo (&whole whole a b c) `(print ',whole)) like this: (foo 1 2 3), it expands to (print '(foo 1 2 3)) 2020-05-25T21:06:27Z TwoNotes quit (Quit: Leaving) 2020-05-25T21:06:51Z bhartrihari left #lisp 2020-05-25T21:06:58Z bhartrihari joined #lisp 2020-05-25T21:10:21Z karayan joined #lisp 2020-05-25T21:11:51Z SAL9000 joined #lisp 2020-05-25T21:18:19Z jonatack quit (Ping timeout: 258 seconds) 2020-05-25T21:20:01Z jonatack joined #lisp 2020-05-25T21:20:21Z Jesin quit (Quit: Leaving) 2020-05-25T21:28:07Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-25T21:35:24Z zmt00 quit (Quit: Leaving) 2020-05-25T21:37:50Z pve quit (Quit: leaving) 2020-05-25T21:37:58Z zmt00 joined #lisp 2020-05-25T21:38:17Z Archenoth joined #lisp 2020-05-25T21:50:00Z anticrisis joined #lisp 2020-05-25T21:56:14Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T21:56:41Z orivej joined #lisp 2020-05-25T22:00:01Z marusich quit (Quit: Leaving) 2020-05-25T22:00:06Z andrei-n quit (Quit: Leaving) 2020-05-25T22:01:02Z frgo quit (Remote host closed the connection) 2020-05-25T22:01:34Z Guest4 joined #lisp 2020-05-25T22:01:39Z frgo joined #lisp 2020-05-25T22:02:17Z dale joined #lisp 2020-05-25T22:04:53Z milanj joined #lisp 2020-05-25T22:05:38Z corpix_ joined #lisp 2020-05-25T22:05:43Z corpix quit (Ping timeout: 240 seconds) 2020-05-25T22:09:12Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T22:09:22Z orivej_ joined #lisp 2020-05-25T22:10:08Z milanj quit (Ping timeout: 272 seconds) 2020-05-25T22:10:43Z marusich joined #lisp 2020-05-25T22:12:50Z milanj joined #lisp 2020-05-25T22:23:16Z ArthurStrong joined #lisp 2020-05-25T22:27:50Z marusich quit (Read error: Connection reset by peer) 2020-05-25T22:30:53Z marusich joined #lisp 2020-05-25T22:36:32Z Jesin joined #lisp 2020-05-25T22:36:49Z orivej_ quit (Ping timeout: 264 seconds) 2020-05-25T22:37:07Z orivej joined #lisp 2020-05-25T22:40:56Z marusich quit (Read error: Connection reset by peer) 2020-05-25T22:42:40Z marusich joined #lisp 2020-05-25T22:47:36Z Lord_of_Life_ joined #lisp 2020-05-25T22:48:24Z Lord_of_Life quit (Ping timeout: 258 seconds) 2020-05-25T22:48:56Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-25T22:52:36Z Jesin quit (Quit: Leaving) 2020-05-25T22:55:14Z wxie joined #lisp 2020-05-25T22:56:07Z Jesin joined #lisp 2020-05-25T22:57:08Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-25T22:58:10Z sdumi quit (Ping timeout: 256 seconds) 2020-05-25T22:58:17Z orivej joined #lisp 2020-05-25T23:01:11Z cosimone_ joined #lisp 2020-05-25T23:02:21Z libertyprime joined #lisp 2020-05-25T23:03:13Z ArthurStrong quit (Read error: Connection reset by peer) 2020-05-25T23:04:43Z cosimone quit (Ping timeout: 260 seconds) 2020-05-25T23:05:01Z cosimone_ is now known as cosimone 2020-05-25T23:05:52Z eta quit (Ping timeout: 256 seconds) 2020-05-25T23:06:13Z orivej quit (Ping timeout: 264 seconds) 2020-05-25T23:06:27Z orivej joined #lisp 2020-05-25T23:07:48Z froggey quit (Ping timeout: 256 seconds) 2020-05-25T23:08:00Z sdumi joined #lisp 2020-05-25T23:09:11Z ArthurStrong joined #lisp 2020-05-25T23:10:28Z nicktick quit (Ping timeout: 256 seconds) 2020-05-25T23:14:47Z orivej quit (Read error: Connection reset by peer) 2020-05-25T23:15:08Z orivej joined #lisp 2020-05-25T23:16:45Z froggey joined #lisp 2020-05-25T23:23:01Z Bit_MCP quit (Ping timeout: 264 seconds) 2020-05-25T23:23:05Z igemnace joined #lisp 2020-05-25T23:27:26Z delial joined #lisp 2020-05-25T23:31:02Z orivej quit (Ping timeout: 256 seconds) 2020-05-25T23:31:48Z orivej joined #lisp 2020-05-25T23:33:49Z delial quit (Quit: delial) 2020-05-25T23:34:40Z cosimone_ joined #lisp 2020-05-25T23:35:15Z cosimone quit (Read error: Connection reset by peer) 2020-05-25T23:40:31Z orivej quit (Ping timeout: 260 seconds) 2020-05-25T23:40:58Z orivej joined #lisp 2020-05-25T23:43:34Z Necktwi quit (Ping timeout: 240 seconds) 2020-05-25T23:43:45Z Necktwi joined #lisp 2020-05-25T23:45:32Z rgherdt quit (Ping timeout: 260 seconds) 2020-05-25T23:51:18Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-25T23:52:18Z seok quit (Remote host closed the connection) 2020-05-25T23:52:38Z orivej joined #lisp 2020-05-25T23:54:06Z dmiles quit (Read error: Connection reset by peer) 2020-05-25T23:57:30Z cosimone_ is now known as cosimone 2020-05-25T23:58:08Z dmiles joined #lisp 2020-05-26T00:01:58Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-26T00:03:17Z orivej joined #lisp 2020-05-26T00:11:14Z nicktick joined #lisp 2020-05-26T00:15:48Z delial joined #lisp 2020-05-26T00:32:27Z oxum joined #lisp 2020-05-26T00:34:52Z mikecheck joined #lisp 2020-05-26T00:34:54Z rumbler31 joined #lisp 2020-05-26T00:34:55Z Lycurgus joined #lisp 2020-05-26T00:39:01Z rumbler31 quit (Ping timeout: 246 seconds) 2020-05-26T00:49:04Z jprajzne quit (Ping timeout: 256 seconds) 2020-05-26T00:56:22Z emys joined #lisp 2020-05-26T01:00:27Z jprajzne joined #lisp 2020-05-26T01:04:34Z bitmapper quit (Ping timeout: 240 seconds) 2020-05-26T01:05:22Z wxie quit (Quit: wxie) 2020-05-26T01:05:36Z wxie joined #lisp 2020-05-26T01:08:25Z emys quit (Ping timeout: 246 seconds) 2020-05-26T01:11:40Z orivej quit (Ping timeout: 256 seconds) 2020-05-26T01:12:19Z milanj quit (Quit: This computer has gone to sleep) 2020-05-26T01:13:01Z emys joined #lisp 2020-05-26T01:28:04Z emys quit (Ping timeout: 244 seconds) 2020-05-26T01:29:55Z fluxwave joined #lisp 2020-05-26T01:30:44Z fluxwave quit (Client Quit) 2020-05-26T01:31:22Z fluxwave joined #lisp 2020-05-26T01:32:27Z emys joined #lisp 2020-05-26T01:33:50Z oxum quit (Ping timeout: 256 seconds) 2020-05-26T01:36:55Z cosimone quit (Quit: Quit.) 2020-05-26T01:39:22Z toorevitimirp quit (Ping timeout: 258 seconds) 2020-05-26T01:40:24Z ArthurStrong quit (Ping timeout: 272 seconds) 2020-05-26T01:41:19Z Necktwi quit (Ping timeout: 246 seconds) 2020-05-26T01:49:16Z emys quit (Read error: Connection timed out) 2020-05-26T01:57:04Z Lycurgus quit (Remote host closed the connection) 2020-05-26T01:58:27Z Necktwi joined #lisp 2020-05-26T02:07:56Z emys joined #lisp 2020-05-26T02:08:56Z zaquest quit (Quit: Leaving) 2020-05-26T02:18:53Z zaquest joined #lisp 2020-05-26T02:20:00Z emys quit (Ping timeout: 258 seconds) 2020-05-26T02:24:13Z emys joined #lisp 2020-05-26T02:32:01Z ArthurStrong joined #lisp 2020-05-26T02:32:34Z emys quit (Ping timeout: 260 seconds) 2020-05-26T02:32:42Z shangul joined #lisp 2020-05-26T02:36:11Z emys joined #lisp 2020-05-26T02:36:29Z ArthurStrong quit (Ping timeout: 258 seconds) 2020-05-26T02:37:23Z ArthurStrong joined #lisp 2020-05-26T02:41:52Z wxie quit (Ping timeout: 246 seconds) 2020-05-26T02:42:30Z wxie joined #lisp 2020-05-26T02:44:37Z emys quit (Ping timeout: 260 seconds) 2020-05-26T02:46:56Z Bike quit (Quit: leaving) 2020-05-26T02:48:38Z jesse1010 quit (Ping timeout: 256 seconds) 2020-05-26T02:48:50Z emys joined #lisp 2020-05-26T02:49:53Z ArthurStrong quit (Ping timeout: 265 seconds) 2020-05-26T02:50:14Z jprajzne quit (Quit: jprajzne) 2020-05-26T02:51:26Z ArthurStrong joined #lisp 2020-05-26T02:53:20Z gaqwas quit (Ping timeout: 256 seconds) 2020-05-26T02:53:37Z gaqwas joined #lisp 2020-05-26T02:55:11Z oxum joined #lisp 2020-05-26T02:55:20Z jprajzne joined #lisp 2020-05-26T02:57:18Z Jeanne-Kamikaze quit (Quit: Leaving) 2020-05-26T02:58:43Z beach: 2020-05-26T02:58:43Z beach: Good morning everyone! 2020-05-26T03:00:13Z jprajzne quit (Quit: jprajzne) 2020-05-26T03:01:24Z emys quit (Ping timeout: 258 seconds) 2020-05-26T03:02:34Z dawgmatix joined #lisp 2020-05-26T03:08:09Z emys joined #lisp 2020-05-26T03:10:09Z jprajzne joined #lisp 2020-05-26T03:13:16Z ArthurStrong: beach: indeed 2020-05-26T03:13:29Z ArthurStrong: beach: I can't resist replying you 2020-05-26T03:13:32Z ArthurStrong: sorry 2020-05-26T03:14:58Z beach: It's fine. 2020-05-26T03:21:34Z emys quit (Ping timeout: 260 seconds) 2020-05-26T03:24:56Z emys joined #lisp 2020-05-26T03:27:12Z mikecheck quit (Remote host closed the connection) 2020-05-26T03:28:18Z eta joined #lisp 2020-05-26T03:30:11Z jprajzne quit (Quit: jprajzne) 2020-05-26T03:30:34Z jprajzne joined #lisp 2020-05-26T03:32:55Z emys quit (Ping timeout: 260 seconds) 2020-05-26T03:34:45Z jprajzne quit (Client Quit) 2020-05-26T03:35:11Z jprajzne joined #lisp 2020-05-26T03:36:52Z wxie quit (Ping timeout: 260 seconds) 2020-05-26T03:37:03Z emys joined #lisp 2020-05-26T03:37:11Z Bit_MCP joined #lisp 2020-05-26T03:40:48Z Aurora_v_kosmose quit (Quit: brb) 2020-05-26T03:45:22Z emys quit (Ping timeout: 260 seconds) 2020-05-26T03:48:33Z ArthurStrong quit (Ping timeout: 258 seconds) 2020-05-26T03:50:38Z Aurora_v_kosmose joined #lisp 2020-05-26T03:52:10Z emys joined #lisp 2020-05-26T03:56:38Z emys quit (Ping timeout: 256 seconds) 2020-05-26T04:00:25Z emys joined #lisp 2020-05-26T04:01:34Z jfrancis_ joined #lisp 2020-05-26T04:04:22Z Bit_MCP quit (Quit: Leaving) 2020-05-26T04:05:07Z jfrancis quit (Ping timeout: 260 seconds) 2020-05-26T04:08:04Z madnificent quit (Remote host closed the connection) 2020-05-26T04:13:04Z theseb quit (Quit: Leaving) 2020-05-26T04:13:22Z slyrus joined #lisp 2020-05-26T04:15:11Z jprajzne quit (Quit: jprajzne) 2020-05-26T04:15:36Z jprajzne joined #lisp 2020-05-26T04:15:37Z emys quit (Ping timeout: 260 seconds) 2020-05-26T04:15:42Z Codaraxis quit (Remote host closed the connection) 2020-05-26T04:16:34Z Codaraxis joined #lisp 2020-05-26T04:17:42Z Codaraxis quit (Remote host closed the connection) 2020-05-26T04:18:02Z shifty joined #lisp 2020-05-26T04:18:18Z Codaraxis joined #lisp 2020-05-26T04:19:45Z jprajzne quit (Client Quit) 2020-05-26T04:19:45Z emys joined #lisp 2020-05-26T04:20:11Z jprajzne joined #lisp 2020-05-26T04:23:38Z ech quit (Ping timeout: 260 seconds) 2020-05-26T04:27:13Z sdumi quit (Ping timeout: 264 seconds) 2020-05-26T04:27:39Z emys quit (Ping timeout: 258 seconds) 2020-05-26T04:29:31Z sdumi joined #lisp 2020-05-26T04:31:06Z bhartrihari left #lisp 2020-05-26T04:31:35Z bhartrihari joined #lisp 2020-05-26T04:31:53Z emys joined #lisp 2020-05-26T04:33:47Z emacsomancer: using osicat-posix:stat - for atime, mtime, ctime - what format does it return in? it doesn't look like universal time 2020-05-26T04:37:01Z wxie joined #lisp 2020-05-26T04:40:12Z emys quit (Ping timeout: 256 seconds) 2020-05-26T04:44:32Z emys joined #lisp 2020-05-26T04:50:57Z pjb: emacsomancer: it's a unix epoch-based time. 2020-05-26T04:51:11Z pjb: man 2 stat 2020-05-26T04:51:23Z emacsomancer: pjb: shouldn't it be the same time format as (get-universal-time) returns? 2020-05-26T04:51:29Z pjb: No. 2020-05-26T04:51:36Z emacsomancer: ah 2020-05-26T04:51:56Z pjb: or even, struct stat.st_atimespec is a struct timespec. 2020-05-26T04:52:10Z _Ark_ joined #lisp 2020-05-26T04:52:49Z emacsomancer: so I probably want cl-epoch or something to convert 2020-05-26T04:53:26Z pjb: or not convert. Depends on what you want to do. 2020-05-26T04:53:46Z emacsomancer: right - or just grab current epoch time or whatever 2020-05-26T04:55:55Z Blukunfando quit 2020-05-26T04:59:59Z beach` joined #lisp 2020-05-26T05:04:37Z beach quit (Ping timeout: 272 seconds) 2020-05-26T05:04:44Z beach` is now known as beach 2020-05-26T05:05:14Z jprajzne quit (Quit: jprajzne) 2020-05-26T05:05:37Z jprajzne joined #lisp 2020-05-26T05:07:54Z sdumi quit (Ping timeout: 258 seconds) 2020-05-26T05:09:45Z jprajzne quit (Client Quit) 2020-05-26T05:10:11Z jprajzne joined #lisp 2020-05-26T05:11:21Z wxie quit (Ping timeout: 258 seconds) 2020-05-26T05:13:41Z ramenbytes joined #lisp 2020-05-26T05:14:39Z ramenbytes left #lisp 2020-05-26T05:20:26Z easye: clear 2020-05-26T05:20:40Z easye: excuse me. Good morning, Europe. 2020-05-26T05:20:48Z beach: Hello easye. 2020-05-26T05:21:23Z ramenbytes joined #lisp 2020-05-26T05:22:12Z ramenbytes quit (Remote host closed the connection) 2020-05-26T05:24:19Z no-defun-allowed: Good morning easye 2020-05-26T05:25:14Z jprajzne quit (Quit: jprajzne) 2020-05-26T05:25:45Z jprajzne joined #lisp 2020-05-26T05:26:18Z easye waves to all. 2020-05-26T05:27:35Z ramenbytes joined #lisp 2020-05-26T05:28:08Z ebrasca quit (Remote host closed the connection) 2020-05-26T05:29:45Z jprajzne quit (Client Quit) 2020-05-26T05:30:09Z jprajzne joined #lisp 2020-05-26T05:32:02Z dddddd quit (Ping timeout: 260 seconds) 2020-05-26T05:32:56Z ramenbytes quit (Quit: ramenbytes) 2020-05-26T05:33:17Z no-defun-allowed: \o 2020-05-26T05:38:27Z emacsomancer: if I have 2 separate CL processes, where one is a daemonised process that's already been launched and 'listening', what would be the best way of getting the 2nd process (launched 2nd) to be able to talk to it? 2020-05-26T05:39:52Z no-defun-allowed: Maybe have the daemon listening on a named pipe (on Un*x), then have the new process write to that named pipe? 2020-05-26T05:40:57Z easye: emacsomancer: depends on what you wanna speak. A named pipe as no-defun-allowed is pretty efficient, will allow you to CL:READ/CL:WRITE objects. If speed isn't an issue, you could just establish a REST API over HTTP. 2020-05-26T05:43:28Z emacsomancer: probably the unix pipe would be best then (I'll have to look into how to talk to unix pipes) 2020-05-26T05:45:39Z easye: I find myself in need of some benchmarks for operations on Common Lisp sequence types. I am nearing completion of an overhaul of ABCL's use of arrays of primitive types with that of java.nio.ByteBuffer. Now I need to compare the two implementation strategies, and could use some sort of timing benchmark that gives the use of arrays a workout. 2020-05-26T05:46:38Z easye: CL-BENCH is the only cross-implementation test suite I really know of. 2020-05-26T05:52:52Z dawgmatix quit (Quit: My Mac Mini has gone to sleep. ZZZzzz…) 2020-05-26T05:58:21Z sdumi joined #lisp 2020-05-26T06:00:11Z beach: easye: Maybe you should talk to heisig. He has recently finished a complete re-implementation of the sequence functions using his novel technique of sealing. His code is entirely portable, and the performance is comparable to, or sometimes better than, that of SBCL as I understand it. 2020-05-26T06:02:22Z oxum_ joined #lisp 2020-05-26T06:03:05Z easye: beach: my work is a little more basic than CLOS dealing with how byte arrays are laid out and addressed in JVM memory, but Marco is certainly the right person to ask about optimal implementation measurement. Thanks! 2020-05-26T06:03:33Z beach: Sure. Good luck. 2020-05-26T06:04:41Z antaoiseach joined #lisp 2020-05-26T06:05:02Z emys quit (Ping timeout: 260 seconds) 2020-05-26T06:05:02Z antaoiseach left #lisp 2020-05-26T06:05:50Z oxum quit (Ping timeout: 260 seconds) 2020-05-26T06:08:35Z slyrus_ joined #lisp 2020-05-26T06:11:00Z phoe: emacsomancer: swank-crew 2020-05-26T06:11:08Z emys joined #lisp 2020-05-26T06:11:14Z slyrus quit (Ping timeout: 240 seconds) 2020-05-26T06:11:15Z phoe: let them talk to each other via the swank protocol. 2020-05-26T06:12:22Z emacsomancer: phoe: doesn't that depend on emacs? 2020-05-26T06:13:28Z flip214: emacsomancer: no, swank is independent of emacs. vlime and slimv (for vim) use that protocol as well. 2020-05-26T06:13:41Z phoe: emacsomancer: slime depends on emacs, swank is 100% CL 2020-05-26T06:13:45Z emacsomancer: ok 2020-05-26T06:13:50Z phoe: slime is the client, swank is the server. 2020-05-26T06:14:12Z bhartrihari left #lisp 2020-05-26T06:14:22Z bhartrihari joined #lisp 2020-05-26T06:14:22Z emacsomancer: if I'm trying to distribute CL binaries, would swank still make sense 2020-05-26T06:14:45Z phoe: are your binaries going to talk to each other? 2020-05-26T06:14:51Z emacsomancer: yes 2020-05-26T06:14:57Z phoe: then, sure! 2020-05-26T06:15:19Z phoe: note there's no security in swank, so it needs to be secured from the outside if communication is over a network. 2020-05-26T06:15:41Z emacsomancer: would swank be more/less overhead than dealing with named unix pipes? 2020-05-26T06:15:46Z engblom joined #lisp 2020-05-26T06:16:07Z phoe: slightly more, since it automatically reads/prints S-expressions. 2020-05-26T06:16:19Z marusich quit (Quit: Leaving) 2020-05-26T06:16:39Z phoe: if you need to dump binary data instead of Lisp commands, then you'll prefer unix pipes with optionally swank for controlling that. 2020-05-26T06:16:40Z emacsomancer: swank does seem appealing - I just wonder if it wouldn't be overkill for what I need 2020-05-26T06:17:26Z emacsomancer: I essentially need one piece to be running as root to execute a single command (with arguments) that needs to be run as root and then other piece (as non-root) for everything else 2020-05-26T06:18:33Z engblom: Because setuid can not be used on scripts and because I have for a long time been considering to learn CL, I want to convert a simple bash script to CL. I do have Clojure background and in Clojure I would use (slurp "filename") for getting all content of a file. Is there something as simple for reading files in CL? The examples I have found by googling seems to require a lot more lines of code and it 2020-05-26T06:18:35Z phoe: isn't that just sudo? 2020-05-26T06:18:40Z engblom: becomes a bit of hazzle if you read and write to several files. 2020-05-26T06:18:54Z phoe: engblom: alexandria:read-file-into-string 2020-05-26T06:18:59Z flip214: emacsomancer: perhaps use dbus then? 2020-05-26T06:19:05Z engblom: phoe: Thanks! 2020-05-26T06:19:12Z phoe: alexandria:write-string-into-file 2020-05-26T06:19:12Z wxie joined #lisp 2020-05-26T06:19:21Z emys quit (Ping timeout: 265 seconds) 2020-05-26T06:19:24Z phoe: same with s/string/byte-vector/ for binary data 2020-05-26T06:19:59Z emacsomancer: flip214: well, I suppose two potential reasons against dbus: (1) it would then require users to run dbus; (2) it would require me to figure out how dbus works 2020-05-26T06:20:04Z emys joined #lisp 2020-05-26T06:20:52Z bhartrihari left #lisp 2020-05-26T06:21:01Z bhartrihari joined #lisp 2020-05-26T06:21:17Z engblom: I have also one question more: what security problems might appear from making a CL binary program setuid? As I have understood it includes the whole lisp. Is it possible to break into a repl and run arbitary commands as root if you have used setuid? 2020-05-26T06:21:17Z jprajzne quit (Quit: jprajzne) 2020-05-26T06:21:34Z phoe: engblom: if someone has access to a REPL, they own the image. 2020-05-26T06:22:00Z engblom: phoe: But will they own it as root? 2020-05-26T06:22:04Z phoe: a Lisp REPL is equivalent to a bash shell. 2020-05-26T06:22:08Z phoe: yes 2020-05-26T06:22:12Z no-defun-allowed: Yes, that is how setuid works. 2020-05-26T06:22:25Z no-defun-allowed: What do you need root for? 2020-05-26T06:22:34Z lerax joined #lisp 2020-05-26T06:22:34Z phoe: if the Lisp image is owned by root, then the process has root privileges and can e.g. spawn a root bash shell, which ends the proof. 2020-05-26T06:22:57Z no-defun-allowed: If you can, give one user the special permissions you want, then setuid the image and have that user own the Lisp image. 2020-05-26T06:23:16Z engblom: phoe: So how do you reach a REPL from a compiled lisp program? 2020-05-26T06:23:50Z no-defun-allowed: Usually Control-C in the terminal will send an interrupt signal and it'll break into the debugger. 2020-05-26T06:24:04Z no-defun-allowed: Debuggers often are REPLs with some extra debugging commands. 2020-05-26T06:24:10Z dale quit (Quit: My computer has gone to sleep) 2020-05-26T06:24:29Z phoe: engblom: that's a non-trivial thing. Does your Lisp image expose a swank server anywhere? Is it run in a tmux where people can use its REPL? Is it run in any sort of interactive environment where a Ctrl+C signal can invoke a debugger, as no-defun-allowed said? 2020-05-26T06:24:44Z phoe: Does your code use EVAL or COMPILE anywhere? 2020-05-26T06:25:01Z phoe: or LOAD, or COMPILE-FILE? 2020-05-26T06:25:47Z selwyn: wouldn't this approach require a slime client written in common lisp? does such a thing exist? 2020-05-26T06:26:00Z engblom: phoe: I do not have any code written yet. I found this tutorial someone with also Clojure background wrote: https://pvik.github.io/blog/clojure-to-common-lisp-part-2-projects/ 2020-05-26T06:26:10Z engblom: phoe: I would compile it as in this tutorial 2020-05-26T06:26:19Z phoe: selwyn: yes, it's called swank-client 2020-05-26T06:26:20Z phoe: https://github.com/brown/swank-client 2020-05-26T06:26:52Z phoe: engblom: it's possible to safeguard a Common Lisp process against these things, I just still don't know why you'd need one running as root 2020-05-26T06:27:28Z selwyn: oh cool didn't know that 2020-05-26T06:27:50Z bebop joined #lisp 2020-05-26T06:28:15Z phoe: I think it is used by swank-crew 2020-05-26T06:28:21Z engblom: phoe: I could solve it without setuid by writing udev rules, that is true 2020-05-26T06:28:25Z jprajzne joined #lisp 2020-05-26T06:28:29Z varjag joined #lisp 2020-05-26T06:28:34Z engblom: phoe: The script will read and write from files under /sys 2020-05-26T06:28:57Z emys quit (Ping timeout: 260 seconds) 2020-05-26T06:29:21Z engblom: To make it more simple I would prefer to just setuid so then all I need to do is moving the binary to any system I want without also creating udev rules. 2020-05-26T06:29:51Z phoe: engblom: how should the script receive its input/output? 2020-05-26T06:29:54Z random-nick joined #lisp 2020-05-26T06:30:27Z engblom: phoe: one input will be an argument to the script, the rest will come from files under /sys 2020-05-26T06:30:45Z phoe: you don't any kind of interactivity for it then 2020-05-26T06:30:52Z engblom: and the output will be written to /sys files 2020-05-26T06:31:08Z engblom: No, no interactivity is needed. 2020-05-26T06:31:15Z andrei-n joined #lisp 2020-05-26T06:31:54Z phoe: install a SIGINT handler for it that will gracefully shut down the process instead of entering the debugger and/or disable the Lisp debugger inside the image 2020-05-26T06:32:20Z phoe: then the binary should be safe to be SETUID'd 2020-05-26T06:32:35Z engblom: How do I disable the debugger? 2020-05-26T06:32:44Z phoe: depends on the implementation you're using 2020-05-26T06:32:50Z engblom: sbcl 2020-05-26T06:32:53Z phoe: http://www.sbcl.org/manual/#Enabling-and-Disabling-the-Debugger 2020-05-26T06:34:23Z engblom: What happens if someone presses ctrl-c before the command for disabling the debugger is run? 2020-05-26T06:34:39Z phoe: disable the debugger before deploying the image 2020-05-26T06:34:44Z dale joined #lisp 2020-05-26T06:35:49Z dawgmatix joined #lisp 2020-05-26T06:37:00Z engblom: In this tutorial a line like this was added to the asd file: :entry-point "first-app:hello-world" 2020-05-26T06:37:22Z selwyn: use the --non-interactive switch to sbcl to disable the debugger on startup 2020-05-26T06:37:22Z engblom: Will arguments passed to the binary automatically also be passed to the entry-point function? 2020-05-26T06:37:46Z emys joined #lisp 2020-05-26T06:38:13Z phoe: engblom: you can use uiop:*command-line-arguments* for fetching those 2020-05-26T06:38:37Z engblom: Thanks! 2020-05-26T06:38:39Z phoe: selwyn: they will copy a binary around, one would need a safer solution than remembering to run the binary with a command-line argument 2020-05-26T06:39:51Z selwyn: fair enough 2020-05-26T06:42:44Z younder quit (Quit: Leaving) 2020-05-26T06:43:45Z oxum joined #lisp 2020-05-26T06:45:14Z karstensrage quit (Quit: ZNC - http://znc.in) 2020-05-26T06:45:27Z oxum_ quit (Read error: Connection reset by peer) 2020-05-26T06:45:34Z emys quit (Ping timeout: 240 seconds) 2020-05-26T06:46:07Z emys joined #lisp 2020-05-26T06:49:16Z kalogik joined #lisp 2020-05-26T06:49:23Z kalogik quit (Client Quit) 2020-05-26T06:50:49Z flip214: engblom: why not run the binary _once_ with setuid and it installs the needed udev scripts? 2020-05-26T06:50:57Z nikkal joined #lisp 2020-05-26T06:53:10Z even4void joined #lisp 2020-05-26T06:54:24Z nikkal is now known as nikka 2020-05-26T06:59:17Z emys quit (Ping timeout: 260 seconds) 2020-05-26T07:02:44Z even4void quit (Remote host closed the connection) 2020-05-26T07:03:26Z emys joined #lisp 2020-05-26T07:05:10Z oxum quit (Remote host closed the connection) 2020-05-26T07:17:17Z oxum joined #lisp 2020-05-26T07:18:50Z pve joined #lisp 2020-05-26T07:19:26Z rogersm joined #lisp 2020-05-26T07:22:03Z oxum quit (Ping timeout: 260 seconds) 2020-05-26T07:22:19Z dale quit (Quit: My computer has gone to sleep) 2020-05-26T07:27:07Z emys quit (Ping timeout: 272 seconds) 2020-05-26T07:27:29Z heisig joined #lisp 2020-05-26T07:28:54Z hineios quit (Ping timeout: 260 seconds) 2020-05-26T07:31:16Z shifty quit (Ping timeout: 258 seconds) 2020-05-26T07:32:35Z dawgmatix quit (Read error: Connection reset by peer) 2020-05-26T07:33:59Z emys joined #lisp 2020-05-26T07:34:43Z nikka quit (Ping timeout: 258 seconds) 2020-05-26T07:36:39Z gravicappa joined #lisp 2020-05-26T07:37:49Z oxum joined #lisp 2020-05-26T07:42:13Z emys quit (Ping timeout: 264 seconds) 2020-05-26T07:42:49Z oxum quit (Ping timeout: 264 seconds) 2020-05-26T07:43:51Z bhartrihari left #lisp 2020-05-26T07:43:58Z bhartrihari joined #lisp 2020-05-26T07:44:46Z wxie quit (Ping timeout: 260 seconds) 2020-05-26T07:45:07Z defaultxr quit (Quit: WeeChat 2.8) 2020-05-26T07:45:39Z wxie joined #lisp 2020-05-26T07:49:30Z emys joined #lisp 2020-05-26T08:02:18Z emys quit (Ping timeout: 272 seconds) 2020-05-26T08:08:06Z emys joined #lisp 2020-05-26T08:14:06Z oxum joined #lisp 2020-05-26T08:14:57Z rogersm quit (Quit: Leaving...) 2020-05-26T08:16:09Z bhartrihari left #lisp 2020-05-26T08:16:16Z bhartrihari joined #lisp 2020-05-26T08:17:31Z bfig_ joined #lisp 2020-05-26T08:20:58Z bfig quit (Ping timeout: 265 seconds) 2020-05-26T08:22:03Z hineios joined #lisp 2020-05-26T08:22:06Z kidejunto joined #lisp 2020-05-26T08:23:25Z kidejunto: hello 2020-05-26T08:23:30Z gaqwas quit (Changing host) 2020-05-26T08:23:30Z gaqwas joined #lisp 2020-05-26T08:23:33Z beach: Hello kidejunto. 2020-05-26T08:24:00Z kidejunto: @beach can I make money with common lisp? 2020-05-26T08:24:32Z beach: Sure, if you want. 2020-05-26T08:24:44Z kidejunto: how can I do that? 2020-05-26T08:25:06Z beach: Just like you can with any other programming language, if you do something that people are willing to pay for. 2020-05-26T08:25:37Z gaqwas quit (Remote host closed the connection) 2020-05-26T08:25:54Z no-defun-allowed: (defstruct money) (make-money) 2020-05-26T08:26:09Z kidejunto: how do you make money to live? 2020-05-26T08:26:23Z kidejunto: freelance or ... something ? 2020-05-26T08:26:26Z beach: kidejunto: I think those questions are too general for this channel. 2020-05-26T08:26:31Z flip214: no-defun-allowed: without a denomination, where's the value in it? 2020-05-26T08:26:48Z flip214: kidejunto: there are also companies seeking Common Lisp developers. 2020-05-26T08:27:07Z kidejunto: ok 2020-05-26T08:27:18Z no-defun-allowed: Can you live off money? In school we learnt you needed food and water and shelter and some other things to live, but I haven't heard of any species living off money. 2020-05-26T08:27:36Z flip214: no-defun-allowed: don't get too meta 2020-05-26T08:27:44Z Cymew: ...and if you write the next "twitter", who cares what language you are using? Feel free to do that in CL. 2020-05-26T08:28:20Z beach: kidejunto: Now if you would like to learn Common Lisp, feel free to ask questions about it here, or in #clschool. 2020-05-26T08:28:26Z no-defun-allowed: flip214: Fine. (defstruct money amount currency) (make-money :amount most-positive-double-float :currency :aud) 2020-05-26T08:28:42Z no-defun-allowed: (Remember to optimize for (speed 3) to make money fast.) 2020-05-26T08:29:13Z Cymew: :) 2020-05-26T08:30:15Z kidejunto quit (Remote host closed the connection) 2020-05-26T08:30:20Z oxum quit (Ping timeout: 256 seconds) 2020-05-26T08:30:44Z gaqwas joined #lisp 2020-05-26T08:31:09Z kidejunto_asm joined #lisp 2020-05-26T08:33:33Z kidejunto_asm: is something new here? 2020-05-26T08:33:46Z phoe: what do you mean, something new 2020-05-26T08:34:10Z beach: I am starting to think that kidejunto is a troll. 2020-05-26T08:34:12Z phoe: the only new thing I can see is the instance of 'money that no-defun-allowed just created 2020-05-26T08:36:04Z no-defun-allowed thinks she'll buy herself a football team. 2020-05-26T08:36:33Z no-defun-allowed: Well, in the past 10 minutes, you got a few answers to your question(s). 2020-05-26T08:36:47Z kidejunto_asm: is #clschool live? 2020-05-26T08:36:58Z phoe: what do you mean, live 2020-05-26T08:37:07Z no-defun-allowed: It's not dead. 2020-05-26T08:37:07Z phoe: there is people there, and people talk there 2020-05-26T08:37:23Z kidejunto_asm: I can't go in that channel 2020-05-26T08:37:23Z phoe: you'd see it if only you didn't leave that channel 2020-05-26T08:37:44Z phoe: huh? 2020-05-26T08:37:48Z phoe: 10:35 -!- kidejunto_asm [7b12bca0@123.18.188.160] has joined #clschool 2020-05-26T08:37:48Z phoe: 10:35 -!- kidejunto_asm [7b12bca0@123.18.188.160] has left #clschool [] 2020-05-26T08:37:55Z phoe: that's from #clschool logs 2020-05-26T08:38:18Z kidejunto_asm: oh, I can't send anything to that channel 2020-05-26T08:38:33Z phoe: you might need to identify with nickserv before sending stuff 2020-05-26T08:38:49Z kidejunto_asm: ok 2020-05-26T08:38:49Z phoe: we've had bot attacks some time in the day and this was done to protect the channel from spam 2020-05-26T08:39:14Z kidejunto_asm quit (Remote host closed the connection) 2020-05-26T08:39:18Z phoe: s/some time in the day/some time ago/ 2020-05-26T08:39:52Z ghard quit (Ping timeout: 260 seconds) 2020-05-26T08:41:03Z SGASAU quit (Remote host closed the connection) 2020-05-26T08:42:37Z flip214: no-defun-allowed: you're too greedy... when converting to other types of currency, you'll overflow to +inf, and that means NaN for taxes and similar problems ;) 2020-05-26T08:43:07Z SGASAU joined #lisp 2020-05-26T08:44:03Z no-defun-allowed: flip214: Really? Maybe in 2014 it would have been a problem, but now the Australian dollar is pretty weak. Let's hope the economy runs on CLISP long-floats then. 2020-05-26T08:44:30Z jonatack quit (Ping timeout: 260 seconds) 2020-05-26T08:44:32Z emys quit (Ping timeout: 260 seconds) 2020-05-26T08:46:26Z jonatack joined #lisp 2020-05-26T08:47:14Z pve: Good morning! SBCL offers sb-introspect:function-lambda-list to get at the lambda list of a function, i.e. (sb-introspect:function-lambda-list (lambda (x y) nil)) => (x y). Do you guys happen to know if other implementations provide similar functions? 2020-05-26T08:47:15Z SGASAU` joined #lisp 2020-05-26T08:48:06Z emys joined #lisp 2020-05-26T08:48:07Z flip214: no-defun-allowed: I get 100AUD == 7112 Japanese Yen... 2020-05-26T08:50:14Z SGASAU quit (Ping timeout: 240 seconds) 2020-05-26T08:52:56Z gaqwas quit (Remote host closed the connection) 2020-05-26T08:53:07Z gaqwas joined #lisp 2020-05-26T08:53:12Z gaqwas quit (Changing host) 2020-05-26T08:53:12Z gaqwas joined #lisp 2020-05-26T08:54:07Z beach: clhs function-lambda-expression 2020-05-26T08:54:08Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_fn_lam.htm 2020-05-26T08:54:20Z phoe: pve: https://github.com/Shinmera/trivial-arguments/ 2020-05-26T08:54:37Z no-defun-allowed: (second (function-lambda-expression )) 2020-05-26T08:55:30Z no-defun-allowed: trivial-arguments would likely work better. 2020-05-26T08:55:59Z pve: ah yess thank you 2020-05-26T08:56:35Z phoe: f-l-a is allowed to return NIL at any time 2020-05-26T08:56:40Z phoe: and is therefore less reliable 2020-05-26T09:05:03Z emys quit (Ping timeout: 252 seconds) 2020-05-26T09:08:21Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-26T09:09:02Z SGASAU joined #lisp 2020-05-26T09:09:23Z emys joined #lisp 2020-05-26T09:10:08Z toorevitimirp joined #lisp 2020-05-26T09:10:14Z bhartrihari left #lisp 2020-05-26T09:10:24Z bhartrihari joined #lisp 2020-05-26T09:14:05Z pve: phoe: btw, follow-up to the restart discussion from earlier: I found that I can use a function similar to your call-with-restart to build a hashtable that associates restart names with functions that funcall a thunk with the restart established. 2020-05-26T09:14:36Z pve: So the compiler needs to be invoked only once per restart, for example by "declaring" it beforehand. I'm ok with this solution. 2020-05-26T09:17:14Z jonatack quit (Ping timeout: 240 seconds) 2020-05-26T09:19:04Z phoe: pve: nice! 2020-05-26T09:19:51Z jonatack joined #lisp 2020-05-26T09:20:18Z phoe: mind sharing the code? 2020-05-26T09:20:53Z pve: not at all, just a moment 2020-05-26T09:25:00Z vutral quit (Ping timeout: 246 seconds) 2020-05-26T09:30:13Z nicktick quit (Ping timeout: 264 seconds) 2020-05-26T09:31:32Z wxie quit (Ping timeout: 260 seconds) 2020-05-26T09:33:14Z rogersm joined #lisp 2020-05-26T09:33:14Z emys quit (Ping timeout: 256 seconds) 2020-05-26T09:34:28Z bhartrihari left #lisp 2020-05-26T09:34:36Z bhartrihari joined #lisp 2020-05-26T09:36:38Z emys joined #lisp 2020-05-26T09:37:27Z pve: phoe: i had to modify it a bit, but hopefully you get the idea 2020-05-26T09:37:29Z pve: https://plaster.tymoon.eu/view/1876# 2020-05-26T09:38:11Z phoe: sure, I understand it 2020-05-26T09:38:37Z phoe: nice trick with caching the results! I haven't thought of that 2020-05-26T09:42:36Z anticrisis quit (Read error: Connection reset by peer) 2020-05-26T09:43:34Z jesse1010 joined #lisp 2020-05-26T09:45:22Z libertyprime quit (Ping timeout: 246 seconds) 2020-05-26T09:45:48Z oxum joined #lisp 2020-05-26T09:52:28Z pve: thanks 2020-05-26T10:00:04Z frgo quit (Remote host closed the connection) 2020-05-26T10:00:08Z phoe: pve: how should I add you to my book's Hall of Fame? 2020-05-26T10:00:50Z frgo joined #lisp 2020-05-26T10:05:54Z pve: phoe: there's really no need, but if you want to then it's "Peter von Etter" 2020-05-26T10:08:39Z sdumi quit (Ping timeout: 260 seconds) 2020-05-26T10:10:05Z pve: I assume the same trick could be applied to handler-case, handler-bind etc 2020-05-26T10:11:59Z sdumi joined #lisp 2020-05-26T10:12:29Z _jrjsmrtn quit (Quit: Bye !) 2020-05-26T10:18:27Z __jrjsmrtn__ joined #lisp 2020-05-26T10:18:27Z emys quit (Ping timeout: 260 seconds) 2020-05-26T10:19:04Z cosimone joined #lisp 2020-05-26T10:24:51Z emys joined #lisp 2020-05-26T10:28:28Z orivej joined #lisp 2020-05-26T10:34:05Z cosimone quit (Remote host closed the connection) 2020-05-26T10:34:34Z cosimone joined #lisp 2020-05-26T10:37:27Z shifty joined #lisp 2020-05-26T10:39:37Z phoe: pve: it can 2020-05-26T10:39:49Z phoe: ignore-errors and handler-case are implemented via handler-bind 2020-05-26T10:39:57Z phoe: with-simple-restarts and restart-case are implemented via restart-bind 2020-05-26T10:40:46Z milanj joined #lisp 2020-05-26T10:42:22Z rogersm quit (Quit: Leaving...) 2020-05-26T10:46:53Z Lord_of_Life_ joined #lisp 2020-05-26T10:49:20Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-26T10:49:41Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-26T10:57:49Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-26T10:59:10Z orivej joined #lisp 2020-05-26T10:59:24Z igemnace quit (Quit: WeeChat 2.8) 2020-05-26T10:59:37Z emys quit (Ping timeout: 260 seconds) 2020-05-26T10:59:55Z emys joined #lisp 2020-05-26T11:00:46Z engblom: I am trying to follow this tutorial: https://pvik.github.io/blog/clojure-to-common-lisp-part-2-projects/ 2020-05-26T11:01:17Z engblom: Why am I always ending up in the debugger when I try to do (require "project-name") 2020-05-26T11:01:23Z engblom: ? 2020-05-26T11:01:30Z phoe: engblom: what's the error? (please use a pastebin) 2020-05-26T11:01:54Z no-defun-allowed: Try (ql:quickload :application-name) or (asdf:load-system :application-name) 2020-05-26T11:03:17Z no-defun-allowed: Those would probably provide a better description of what went wrong. 2020-05-26T11:03:52Z engblom: The error is System "project-name" not found 2020-05-26T11:04:07Z no-defun-allowed: What is your project called? 2020-05-26T11:04:30Z engblom: no-defun-allowed: I have several that I have tried. One is called "hello" 2020-05-26T11:05:15Z bebop quit (Remote host closed the connection) 2020-05-26T11:05:27Z phoe: engblom: where are these projects located? ~/common-lisp/? 2020-05-26T11:05:50Z engblom: phoe: They are located under ~/lisp. That is where I did differ from the tutorial. 2020-05-26T11:05:50Z no-defun-allowed: What's the value of asdf:*central-registry* 2020-05-26T11:06:05Z engblom: no-defun-allowed: How do i check that? 2020-05-26T11:06:17Z no-defun-allowed: Evaluate that in the REPL. 2020-05-26T11:06:38Z engblom: (#P"/home/lars/quicklisp/quicklisp/") 2020-05-26T11:07:04Z no-defun-allowed: That would be a list of pathnames ASDF searches in, but it's deprecated and I need to find the new one. 2020-05-26T11:07:12Z phoe: try putting the project in ~/quicklisp/local-projects/ 2020-05-26T11:07:37Z engblom: phoe: Is a symlink ok? 2020-05-26T11:07:48Z phoe: engblom: I think so, yes 2020-05-26T11:08:00Z no-defun-allowed: Admittedly, I don't think that cl-project sets up things very nicely. But it should work if you put it in ~/quicklisp/local-projects/. 2020-05-26T11:09:45Z Bourne joined #lisp 2020-05-26T11:10:05Z engblom: That worked! 2020-05-26T11:10:19Z engblom: no-defun-allowed: What do you recommend instead of cl-project? 2020-05-26T11:11:19Z no-defun-allowed: Usually an ASDF system and directory materialises when I work on a project for long enough, but that's not a very good answer. 2020-05-26T11:11:45Z phoe: I personally use quickproject 2020-05-26T11:11:48Z ralt: engblom: "~/common-lisp/" is actually a magic path 2020-05-26T11:11:55Z phoe: it's tiny, but works for me 2020-05-26T11:12:16Z no-defun-allowed reads the tutorial series. 2020-05-26T11:12:27Z orivej quit (Read error: Connection reset by peer) 2020-05-26T11:12:31Z engblom: ralt: OK! Then I should maybe rename my lisp folder 2020-05-26T11:12:39Z no-defun-allowed: "Common lisp is a set of specification and no language called common lisp itself exists" Everyone, pack it up, we've been bamboozled about the existence of Common Lisp. 2020-05-26T11:12:42Z emys quit (Ping timeout: 260 seconds) 2020-05-26T11:12:48Z orivej joined #lisp 2020-05-26T11:12:56Z phoe: no-defun-allowed: wait what 2020-05-26T11:13:34Z no-defun-allowed: https://pvik.github.io/blog/clojure-to-common-lisp-part-1-getting-started/#what-is-common-lisp 2020-05-26T11:15:40Z sdumi quit (Read error: Connection reset by peer) 2020-05-26T11:15:54Z phoe: why should I care about stupid stuff that random people say on the Internet 2020-05-26T11:16:29Z pjb: As programmers, our job is to debug bugs… 2020-05-26T11:16:49Z no-defun-allowed: I don't know. You probably shouldn't, but I thought it was funny. 2020-05-26T11:16:49Z pjb: But of course, debugging idiots is an infinite task. 2020-05-26T11:17:07Z Inline joined #lisp 2020-05-26T11:17:47Z engblom: ralt: You are right. Now I am able to use require on my projects without adding a symlink to quicklisp 2020-05-26T11:18:39Z phoe: sigh, https://github.com/pvik/pvik.github.io/issues/1 2020-05-26T11:19:06Z no-defun-allowed: engblom: You probably should use QL:QUICKLOAD, because it has some more options that REQUIRE doesn't have, and will signal actually useful errors if something goes wrong. 2020-05-26T11:19:16Z sdumi joined #lisp 2020-05-26T11:19:37Z engblom: no-defun-allowed: Thanks, will do that! 2020-05-26T11:19:42Z no-defun-allowed: phoe: Thanks, but please don't feel pressured to do anything if you think it's stupid stuff random people say. 2020-05-26T11:19:58Z ralt: Ignorance is not idiocy :) 2020-05-26T11:20:13Z phoe: (incf ralt) 2020-05-26T11:20:37Z phoe: no-defun-allowed: I don't feel pressured to do it; every little bit of cleanup that we do is another little bit of cleanup for the wider CL community as a whole. 2020-05-26T11:20:38Z random-nick: I have a CLOS question: if a class implements some protocol, what would be the best way to make a class which contains multiple of those classes but also implements the protocol, such that it decides use one of the contained classes to "forward" all the generic function calls? 2020-05-26T11:20:54Z no-defun-allowed: Sure. 2020-05-26T11:20:58Z phoe: random-nick: "contains" - so you mean composition instead of inheritance? 2020-05-26T11:21:03Z random-nick: phoe: yes 2020-05-26T11:21:08Z random-nick: as in a list in a slot 2020-05-26T11:21:14Z ralt: random-nick: I feel like your answer is call-next-method 2020-05-26T11:21:28Z phoe: ralt: that won't work without inheritance. 2020-05-26T11:21:31Z random-nick: ralt: that'd require I subcalss it 2020-05-26T11:21:46Z jeosol quit (Remote host closed the connection) 2020-05-26T11:22:07Z phoe: random-nick: define all methods on the function of that protocol in the following way: (defgeneric operate ((thing my-thing) ...) (operate (subthing-of thing) ...)) 2020-05-26T11:22:12Z phoe: s/defgeneric/defmethod/ 2020-05-26T11:22:26Z orivej quit (Ping timeout: 272 seconds) 2020-05-26T11:22:30Z orivej_ joined #lisp 2020-05-26T11:22:43Z ghard joined #lisp 2020-05-26T11:23:17Z random-nick: I guess I could make a macro that does it for gf names and lambda lists I give it 2020-05-26T11:26:02Z dddddd joined #lisp 2020-05-26T11:26:36Z phoe: sure, that'll work 2020-05-26T11:26:59Z phoe: you will need to have some means of associating which GF should go to which sub-things though 2020-05-26T11:28:11Z scymtym_ joined #lisp 2020-05-26T11:29:02Z scymtym quit (Read error: Connection reset by peer) 2020-05-26T11:29:40Z ralt: ah, my bad 2020-05-26T11:29:50Z scymtym_ quit (Remote host closed the connection) 2020-05-26T11:30:03Z phoe: random-nick: and that only works if your protocol is simple and you don't do e.g. multiple dispatch 2020-05-26T11:30:33Z scymtym joined #lisp 2020-05-26T11:30:34Z phoe: and might also be tricky depending on where the thing is located on the lambda list 2020-05-26T11:32:19Z phoe: so, doable, but possibly tricky 2020-05-26T11:47:31Z Lycurgus joined #lisp 2020-05-26T11:48:19Z shifty quit (Ping timeout: 265 seconds) 2020-05-26T11:48:44Z shifty joined #lisp 2020-05-26T11:50:17Z FreeBirdLjj joined #lisp 2020-05-26T11:52:20Z phoe: Is there any prior work to caching anonymous functions in weak hash tables? 2020-05-26T11:53:46Z phoe: More context: I'd like an anonymous function to stay live if at least one other piece of code refers directly to it. The question is of how to refer to it, since it's anonymous, and function objects cannot be dumped into FASLs so I cannot do read-eval trickery. 2020-05-26T11:54:23Z ralt: phoe: uuuh I do it all the time, whenever I make like a defcommand macro, it stores the lambda in a hashtable and the code calling a command just funcall on the hash table value 2020-05-26T11:54:58Z phoe: Like, ideally, if at least one live function contains a (gethash 'foo *cache*), I'd like the function that is stored in *cache* with key 'foo to stay live. If no function contains such a call, I'd like it to get collected. 2020-05-26T11:55:02Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-26T11:55:22Z phoe: ralt: I know how to do that without hash table weakness. I don't know if it's doable while also permitting automatic GC. 2020-05-26T11:55:44Z ralt: Ah, I missed the "weak" bit in your question. 2020-05-26T11:55:45Z flip214 thinks about reference counting.... and immediately ducks 2020-05-26T11:56:45Z engblom: Is this possible (like ready made tools existing): I wish to have a separate REPL running outside of the editor (vim in my case) and then connect the editor to it so I can send functions and stuff to it. 2020-05-26T11:56:57Z phoe: engblom: yes, it's called slimv/vlime 2020-05-26T11:57:05Z phoe: and it's the normal way of developing Lisp 2020-05-26T11:58:03Z engblom: phoe: Isn 2020-05-26T11:58:13Z dxtr quit (Ping timeout: 260 seconds) 2020-05-26T11:58:29Z phoe: end of file on # 2020-05-26T11:58:34Z engblom: phoe: Isn't those integrating the repl into the editor itself rather than the repl running as a service outside of the editor? 2020-05-26T11:58:54Z dxtr joined #lisp 2020-05-26T11:59:12Z phoe: engblom: you don't have to use that utility that way! you can run a swank server separately, and slime-connect to a running image. 2020-05-26T11:59:34Z engblom: phoe: Thanks! I have to look into that. 2020-05-26T11:59:45Z phoe: your REPL can be e.g. in a Lisp terminal, and you can use vlime to e.g. only tell the Lisp image to compile/load some files. 2020-05-26T11:59:50Z phoe: or for syntax highlighting 2020-05-26T12:00:48Z engblom: phoe: So I could add the loading of swank to my sbclrc and then connect with those vlime to it? 2020-05-26T12:01:01Z engblom: s/those// 2020-05-26T12:01:02Z phoe: yes 2020-05-26T12:01:56Z va_ joined #lisp 2020-05-26T12:02:07Z flip214: engblom: vlime will run sbcl with options that load swank and the CL side of vlime for you. 2020-05-26T12:02:17Z orivej_ quit (Ping timeout: 258 seconds) 2020-05-26T12:02:35Z engblom: flip214: But if I want it in a separate terminal? 2020-05-26T12:02:38Z orivej joined #lisp 2020-05-26T12:03:12Z amerlyq joined #lisp 2020-05-26T12:03:34Z va quit (Ping timeout: 256 seconds) 2020-05-26T12:03:39Z SGASAU quit (Remote host closed the connection) 2020-05-26T12:03:47Z dxtr quit (Ping timeout: 260 seconds) 2020-05-26T12:04:01Z dxtr joined #lisp 2020-05-26T12:04:22Z SGASAU joined #lisp 2020-05-26T12:07:54Z ArthurStrong joined #lisp 2020-05-26T12:09:50Z cmatei quit (Ping timeout: 260 seconds) 2020-05-26T12:10:16Z cmatei joined #lisp 2020-05-26T12:10:59Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-26T12:12:18Z orivej joined #lisp 2020-05-26T12:15:14Z cmatei quit (Ping timeout: 256 seconds) 2020-05-26T12:18:01Z flip214: engblom: you can also run sbcl manually, start the vlime repl, and connect to the given TCP port. 2020-05-26T12:18:21Z flip214: via SSH and portforwarding, locally, or whatever you need/want. 2020-05-26T12:18:22Z X-Scale` joined #lisp 2020-05-26T12:18:48Z X-Scale quit (Ping timeout: 272 seconds) 2020-05-26T12:19:27Z X-Scale` is now known as X-Scale 2020-05-26T12:22:36Z orivej quit (Ping timeout: 256 seconds) 2020-05-26T12:22:59Z orivej joined #lisp 2020-05-26T12:26:00Z ghard: Heh. I'm just writing some elisp to automate running tunnels and connecting SLIME to my docker containers running lisp images at DigitalOcean to clean up my .ssh/config of all the pesky LocalForward configs. 2020-05-26T12:27:33Z cmatei joined #lisp 2020-05-26T12:28:03Z ghard: Final result should be able to use org mode to view system status and connect running image with slime if necessary with a single command. 2020-05-26T12:28:41Z ralt: ghard: I have this thing in pretty much every lisp server I deploy https://pastebin.com/DXn6xvaQ 2020-05-26T12:29:39Z emys joined #lisp 2020-05-26T12:30:59Z ghard: ralt: yes I have it run optionally depending of whether it's a development or production system. It's all baked in the makefiles that produce the executables with xach's buildapp and then dockerise. 2020-05-26T12:31:57Z ghard: I must admit I'm naughty and run swank on some production systems, too. 2020-05-26T12:34:40Z toorevitimirp quit (Remote host closed the connection) 2020-05-26T12:34:42Z emys quit (Ping timeout: 260 seconds) 2020-05-26T12:35:10Z toorevitimirp joined #lisp 2020-05-26T12:35:23Z ghard: But with several systems it gets tedious to remember which local port maps to which remote. So now I'll have a proplist in my init.el with hostnames, ports, etc. and then should be able to invoke the tunnel and connect automagically. 2020-05-26T12:35:48Z ghard: Makes remote debugging much quicker 2020-05-26T12:36:21Z ghard: And less dangerous too :) 2020-05-26T12:37:45Z oxum quit (Remote host closed the connection) 2020-05-26T12:38:31Z oxum joined #lisp 2020-05-26T12:39:02Z ghard: (I admit I should probably try to customise TRAMP for that instead) 2020-05-26T12:40:11Z emys joined #lisp 2020-05-26T12:41:58Z cmatei quit (Ping timeout: 265 seconds) 2020-05-26T12:43:26Z oxum quit (Ping timeout: 260 seconds) 2020-05-26T12:44:23Z EvW joined #lisp 2020-05-26T12:44:37Z shifty quit (Ping timeout: 264 seconds) 2020-05-26T12:44:45Z kole joined #lisp 2020-05-26T12:45:36Z shifty joined #lisp 2020-05-26T12:46:40Z ft quit (Ping timeout: 272 seconds) 2020-05-26T12:48:15Z ft joined #lisp 2020-05-26T12:48:33Z vaporatorius quit (Read error: Connection reset by peer) 2020-05-26T12:48:54Z vaporatorius joined #lisp 2020-05-26T12:52:33Z choegusung joined #lisp 2020-05-26T12:52:33Z choegusung quit (Client Quit) 2020-05-26T12:52:37Z oxum joined #lisp 2020-05-26T12:53:07Z Bike joined #lisp 2020-05-26T12:54:24Z cmatei joined #lisp 2020-05-26T12:54:52Z phoe: (defun foo (&key (bar nil bar-p)) ...) 2020-05-26T12:54:58Z phoe: Can I depend on BAR-P being of type BOOLEAN? 2020-05-26T12:55:55Z phoe: ...I can't 2020-05-26T12:55:59Z phoe: siiiiiigh 2020-05-26T12:56:09Z ArthurStrong quit (Quit: leaving) 2020-05-26T12:57:29Z emys quit (Ping timeout: 258 seconds) 2020-05-26T12:58:04Z phoe: generalized booleans strike again! 2020-05-26T12:58:22Z phoe adds this fixing to the idea bin for the Hypothetical Future Revision™ 2020-05-26T12:59:05Z Bike: what's the problem with it not being t? 2020-05-26T13:00:22Z kole quit (Remote host closed the connection) 2020-05-26T13:00:24Z phoe: I wish I could use this value directly as a part of an #'EQUAL hash table key 2020-05-26T13:00:34Z phoe: instead of needing to do (and bar-p t) 2020-05-26T13:02:04Z ldb joined #lisp 2020-05-26T13:02:32Z ldb quit (Read error: Connection reset by peer) 2020-05-26T13:03:00Z ppp joined #lisp 2020-05-26T13:03:01Z emys joined #lisp 2020-05-26T13:05:26Z flip214: phoe: but if you restrict the value to T or NIL anyway, why use EQUAL and not EQ? or rather, why not convert to 1 or 0 and use that as an index? 2020-05-26T13:05:34Z cmatei quit (Ping timeout: 246 seconds) 2020-05-26T13:06:02Z cmatei joined #lisp 2020-05-26T13:06:34Z phoe: flip214: as a *part* of an EQUAL key 2020-05-26T13:06:48Z shifty quit (Ping timeout: 256 seconds) 2020-05-26T13:06:50Z phoe: I have a list key that is composed of a symbol and three booleans 2020-05-26T13:07:18Z phoe: the booleans need to be T or NIL because I won't get a hash table hit for (FOO T T T) when I send in a (FOO T T 42) 2020-05-26T13:07:22Z ldb joined #lisp 2020-05-26T13:07:53Z shifty joined #lisp 2020-05-26T13:11:05Z gko joined #lisp 2020-05-26T13:11:27Z cmatei_ joined #lisp 2020-05-26T13:12:54Z cmatei quit (Ping timeout: 265 seconds) 2020-05-26T13:13:25Z Lycurgus quit (Ping timeout: 264 seconds) 2020-05-26T13:16:26Z shifty quit (Ping timeout: 272 seconds) 2020-05-26T13:17:01Z shifty joined #lisp 2020-05-26T13:17:12Z ppp quit (Remote host closed the connection) 2020-05-26T13:20:09Z emys quit (Ping timeout: 265 seconds) 2020-05-26T13:20:16Z ech joined #lisp 2020-05-26T13:22:46Z seok joined #lisp 2020-05-26T13:22:51Z seok: Hi guys 2020-05-26T13:23:16Z seok: How would I write a macro to change (:|ts| 1388620802822 :|ask| 0.88926 :|bid| 0.88917) in to (:ts ... :ask ... :bid) ? 2020-05-26T13:23:29Z seok: bit annoying to write || 2020-05-26T13:23:31Z phoe: seok: no need to write a macro for that 2020-05-26T13:23:41Z seok: a function can do it? 2020-05-26T13:23:45Z pjb: Of course. 2020-05-26T13:24:01Z lemoinem quit (Ping timeout: 265 seconds) 2020-05-26T13:24:06Z APic quit (Ping timeout: 240 seconds) 2020-05-26T13:24:10Z pjb: seok: what is :|ts|? what is :ts? 2020-05-26T13:24:17Z seok: a key? 2020-05-26T13:24:19Z phoe: (loop for (key value) on '(:|foo| 42 :|bar| 24) by #'cddr collect (intern (string-upcase key) :keyword) collect value) 2020-05-26T13:24:24Z phoe: obviously 2020-05-26T13:24:28Z phoe: this is just Lisp data 2020-05-26T13:24:30Z pjb: seok: hint: (inspect ':|ts|) (inspect ':ts) 2020-05-26T13:24:40Z phoe: ;=> (:FOO 42 :BAR 24) 2020-05-26T13:24:55Z emys joined #lisp 2020-05-26T13:25:22Z seok: someone told me not to write interns 2020-05-26T13:25:30Z seok: is this fine to use for many rows? 2020-05-26T13:25:30Z phoe: seok: okay then 2020-05-26T13:25:35Z lemoinem joined #lisp 2020-05-26T13:25:55Z Bike: intern is how you do this. 2020-05-26T13:26:01Z phoe: (loop for (key value) on '(:|foo| 42 :|bar| 24) by #'cddr collect (alexandria:make-keyword (string-upcase key)) collect value) 2020-05-26T13:26:04Z Bike: if you don't want to use intern, avoid having this problem. 2020-05-26T13:26:20Z seok: What is wrong with using intern? 2020-05-26T13:26:20Z phoe: also, you already have interned a lot of symbols into the KEYWORD package 2020-05-26T13:26:26Z seok: Why did he tell me not to use intern 2020-05-26T13:26:31Z phoe: like :|ts|, :|ask|, :|bid|, ... 2020-05-26T13:26:38Z Bike: it's tough to say, if you don't remember anything else 2020-05-26T13:26:40Z phoe: seok: who were they and in which context was it said 2020-05-26T13:26:47Z ldb quit (Quit: leaving) 2020-05-26T13:26:57Z Bike: usually something along the lines of that interning data from users is bad since the system could be overwhelmed 2020-05-26T13:27:11Z seok: yeah 2020-05-26T13:27:17Z phoe: and that is correct, if you are parsing untrusted JSON 2020-05-26T13:27:20Z seok: something about memory leak 2020-05-26T13:27:23Z phoe: that's correct 2020-05-26T13:27:51Z seok: why does it cause memory leak? 2020-05-26T13:27:52Z phoe: if users send you { "ksjdfkskshgksghsggfgfgdfgddhfgh": 42 }, you now have a keyword :|ksjdfkskshgksghsggfgfgdfgddhfgh| in your system that is going to stay there more or less forever 2020-05-26T13:28:08Z phoe: now imagine someone who sends you thousands or millions of these... 2020-05-26T13:28:14Z seok: if I use it for same keyword is it fine? 2020-05-26T13:28:20Z seok: or same symbol 2020-05-26T13:28:21Z APic joined #lisp 2020-05-26T13:28:26Z phoe: yes, if you trust your JSON input 2020-05-26T13:28:30Z seok: cool 2020-05-26T13:28:45Z phoe: then INTERN finds the previous symbol with the same name in the KEYWORD package; that symbol is then returned 2020-05-26T13:29:02Z seok: does unintern reverse intern? 2020-05-26T13:29:06Z phoe: if there's any possibility of leakage, though, keep in mind that you can get your heap exhausted by people who are not very nice 2020-05-26T13:29:09Z phoe: seok: correct 2020-05-26T13:29:18Z seok: so if you unintern that is also fine 2020-05-26T13:29:24Z phoe: but you do not really which keywords are safe to remove from :KEYWORD 2020-05-26T13:29:28Z phoe: { "TEST": 42 } 2020-05-26T13:29:42Z phoe: you really, *really* do not want to (unintern :test :keyword) 2020-05-26T13:29:57Z phoe: since that will cause Common Lisp to break horribly 2020-05-26T13:31:08Z seok: why is that? isn't it safe as long as you don't unintern from CL package? 2020-05-26T13:31:59Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-26T13:32:03Z phoe: https://plaster.tymoon.eu/view/1877#1877 2020-05-26T13:32:08Z seok: Thank you for the function btw, it works (of course itdoes) 2020-05-26T13:32:45Z phoe: ;; the "of course" part doesn't always hold true - I sort of wish it would, but, y'know 2020-05-26T13:32:46Z seok: ah 2020-05-26T13:32:52Z seok: hahaha! 2020-05-26T13:33:09Z orivej joined #lisp 2020-05-26T13:33:14Z phoe: you cannot provide :test anymore because you just kicked out the :test symbol 2020-05-26T13:33:27Z phoe: as someone once said in SBCL source, "Congratulations!" 2020-05-26T13:33:40Z seok: right, it's easy to oversee some keywords 2020-05-26T13:34:12Z phoe: and you generally cannot know which keywords were used as keyword arguments to functions 2020-05-26T13:34:29Z seok: yes 2020-05-26T13:34:34Z phoe: which is why uninterning from KEYWORD is a bad idea™ in general 2020-05-26T13:35:26Z seok: i remember hearing that you can fix uninterned symbols without restarting 2020-05-26T13:35:36Z seok: if you unintern CL symbols 2020-05-26T13:35:39Z seok: is that true? 2020-05-26T13:35:49Z phoe: uninterning from CL is undefined behaviour 2020-05-26T13:36:04Z phoe: so, if you manage to fix it, I guess you're lucky or something 2020-05-26T13:36:09Z seok: https://www.youtube.com/watch?v=OyfBQmvr2Hc this dude said it 2020-05-26T13:36:10Z APic quit (Ping timeout: 260 seconds) 2020-05-26T13:36:13Z seok: he is using scheme though 2020-05-26T13:36:27Z Bike: scheme doesn't have intern or unintern or a CL package. 2020-05-26T13:36:37Z phoe shrug 2020-05-26T13:36:59Z phoe: the standard explicitly says that if you do it, you're on your own 2020-05-26T13:37:05Z seok: well, more specifically he overwrote a function or something 2020-05-26T13:37:08Z phoe: an implementation might define such behaviour, but it's up to the implementation 2020-05-26T13:37:16Z phoe: overwriting CL functions doesn't need to work either 2020-05-26T13:37:36Z seok: Well that's interesting 2020-05-26T13:37:46Z milanj quit (Quit: This computer has gone to sleep) 2020-05-26T13:37:51Z lukego: hey speaking of undefined behaviour, is there a practical way to detect when a quoted value is modified? I've always had the vague feeling that this happens often in my image and just by luck doesn't cause troubles that I notice. 2020-05-26T13:37:57Z phoe: lukego: nope. 2020-05-26T13:38:02Z shifty quit (Ping timeout: 256 seconds) 2020-05-26T13:38:09Z seok: Bike phoe I feel like you are here 24/7. are you the guardians of CL? 2020-05-26T13:38:15Z phoe: at least nothing I am aware of 2020-05-26T13:38:18Z shifty joined #lisp 2020-05-26T13:38:23Z phoe: seok: nah, we're just nerds 2020-05-26T13:38:31Z lukego: maybe one could make a debug build in which conses created by quote have a separate tag bit that faults on update 2020-05-26T13:38:32Z emys quit (Ping timeout: 256 seconds) 2020-05-26T13:38:35Z phoe: my beard isn't even gray yet 2020-05-26T13:39:04Z phoe: lukego: and strings, and vectors, and arrays, and class instances 2020-05-26T13:39:09Z emys joined #lisp 2020-05-26T13:39:17Z phoe: there's a lot of literals possible, that's the issue 2020-05-26T13:39:36Z phoe: I mean, it could be done - I don't think anyone's ever done it though 2020-05-26T13:39:50Z phoe: not in the contemporary Lisp implementations 2020-05-26T13:40:19Z Bike: you could have an implementation where literal data is stored on pages with no write access, so if you try to modify them the system traps 2020-05-26T13:42:05Z phoe: that's another way, yes 2020-05-26T13:42:11Z phoe: but I don't know if anyone does that 2020-05-26T13:43:43Z _death: it would also be nice to implement operators so that they do maximum sharing of structure and use literals if they can (looking in the direction of backquote) 2020-05-26T13:44:02Z phoe: again, implementation-dependent stuff I guess 2020-05-26T13:47:16Z oxum quit (Remote host closed the connection) 2020-05-26T13:48:45Z APic joined #lisp 2020-05-26T13:49:00Z Kundry_Wag joined #lisp 2020-05-26T13:49:39Z oxum joined #lisp 2020-05-26T13:52:57Z even4void joined #lisp 2020-05-26T13:54:42Z even4void: blist 2020-05-26T13:55:22Z orivej quit (Ping timeout: 258 seconds) 2020-05-26T13:55:26Z phoe: huh? 2020-05-26T13:55:48Z orivej joined #lisp 2020-05-26T13:55:49Z even4void: wrong Emacs buffer ;-) 2020-05-26T14:00:26Z heisig quit (Quit: Leaving) 2020-05-26T14:05:06Z emys quit (Ping timeout: 265 seconds) 2020-05-26T14:05:20Z milanj joined #lisp 2020-05-26T14:05:51Z shka_ joined #lisp 2020-05-26T14:05:54Z sjl_ joined #lisp 2020-05-26T14:06:56Z bitmapper joined #lisp 2020-05-26T14:09:51Z emys joined #lisp 2020-05-26T14:13:06Z orivej quit (Ping timeout: 256 seconds) 2020-05-26T14:13:29Z orivej joined #lisp 2020-05-26T14:14:42Z emys quit (Ping timeout: 260 seconds) 2020-05-26T14:16:47Z even4void quit (Ping timeout: 260 seconds) 2020-05-26T14:17:52Z shka_ quit (Ping timeout: 272 seconds) 2020-05-26T14:18:34Z emys joined #lisp 2020-05-26T14:18:50Z cosimone quit (Remote host closed the connection) 2020-05-26T14:19:33Z cosimone joined #lisp 2020-05-26T14:19:36Z shifty quit (Ping timeout: 265 seconds) 2020-05-26T14:20:51Z shifty joined #lisp 2020-05-26T14:23:56Z orivej quit (Ping timeout: 256 seconds) 2020-05-26T14:24:08Z orivej joined #lisp 2020-05-26T14:24:42Z liberliver1 joined #lisp 2020-05-26T14:25:38Z liberliver quit (Ping timeout: 260 seconds) 2020-05-26T14:25:55Z liberliver1 is now known as liberliver 2020-05-26T14:29:22Z oxum quit (Remote host closed the connection) 2020-05-26T14:32:34Z oxum joined #lisp 2020-05-26T14:32:46Z antaoiseach joined #lisp 2020-05-26T14:32:56Z liberliver quit (Ping timeout: 256 seconds) 2020-05-26T14:33:35Z bhartrihari left #lisp 2020-05-26T14:33:40Z bhartrihari joined #lisp 2020-05-26T14:33:51Z liberliver joined #lisp 2020-05-26T14:36:35Z Bit_MCP joined #lisp 2020-05-26T14:37:08Z oxum quit (Ping timeout: 256 seconds) 2020-05-26T14:37:54Z antaoiseach left #lisp 2020-05-26T14:38:35Z shka_ joined #lisp 2020-05-26T14:46:34Z bhartrihari left #lisp 2020-05-26T14:46:37Z bhartrihari joined #lisp 2020-05-26T14:46:54Z ft quit (Ping timeout: 240 seconds) 2020-05-26T14:46:56Z rippa joined #lisp 2020-05-26T14:49:55Z liberliver1 joined #lisp 2020-05-26T14:51:59Z liberliver quit (Ping timeout: 265 seconds) 2020-05-26T14:51:59Z liberliver1 is now known as liberliver 2020-05-26T14:52:16Z shifty quit (Ping timeout: 256 seconds) 2020-05-26T14:52:20Z orivej_ joined #lisp 2020-05-26T14:52:25Z orivej quit (Ping timeout: 264 seconds) 2020-05-26T14:52:41Z shifty joined #lisp 2020-05-26T14:53:48Z even4void joined #lisp 2020-05-26T14:54:29Z even4void quit (Remote host closed the connection) 2020-05-26T14:55:20Z ahungry joined #lisp 2020-05-26T14:56:53Z Kevslinger joined #lisp 2020-05-26T14:57:25Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-26T15:01:25Z emys quit (Ping timeout: 264 seconds) 2020-05-26T15:02:07Z Inline quit (Ping timeout: 246 seconds) 2020-05-26T15:02:26Z bhartrihari left #lisp 2020-05-26T15:02:33Z bhartrihari joined #lisp 2020-05-26T15:03:35Z shifty quit (Ping timeout: 260 seconds) 2020-05-26T15:04:17Z EvW quit (Ping timeout: 260 seconds) 2020-05-26T15:04:39Z shifty joined #lisp 2020-05-26T15:04:51Z jackdaniel quit (Remote host closed the connection) 2020-05-26T15:05:13Z emys joined #lisp 2020-05-26T15:05:32Z jeosol joined #lisp 2020-05-26T15:07:48Z jackdaniel joined #lisp 2020-05-26T15:08:34Z orivej_ quit (Ping timeout: 260 seconds) 2020-05-26T15:08:56Z oxum joined #lisp 2020-05-26T15:08:58Z orivej joined #lisp 2020-05-26T15:09:49Z gaqwas quit (Quit: Leaving) 2020-05-26T15:11:03Z sdumi quit (Ping timeout: 260 seconds) 2020-05-26T15:13:02Z jackdaniel quit (Remote host closed the connection) 2020-05-26T15:13:08Z gaqwas joined #lisp 2020-05-26T15:13:15Z pjb quit (Ping timeout: 272 seconds) 2020-05-26T15:13:48Z oxum quit (Ping timeout: 256 seconds) 2020-05-26T15:14:22Z shifty quit (Ping timeout: 246 seconds) 2020-05-26T15:14:56Z shifty joined #lisp 2020-05-26T15:15:23Z toorevitimirp quit (Remote host closed the connection) 2020-05-26T15:15:55Z toorevitimirp joined #lisp 2020-05-26T15:17:31Z orivej quit (Ping timeout: 246 seconds) 2020-05-26T15:18:09Z orivej joined #lisp 2020-05-26T15:18:17Z emys quit (Ping timeout: 260 seconds) 2020-05-26T15:18:35Z emys joined #lisp 2020-05-26T15:22:04Z shymega quit (Quit: Adiós!) 2020-05-26T15:22:28Z oxum joined #lisp 2020-05-26T15:23:58Z emys quit (Ping timeout: 260 seconds) 2020-05-26T15:26:48Z toorevitimirp quit (Remote host closed the connection) 2020-05-26T15:27:46Z emys joined #lisp 2020-05-26T15:28:47Z orivej quit (Ping timeout: 260 seconds) 2020-05-26T15:28:49Z orivej_ joined #lisp 2020-05-26T15:29:20Z shymega joined #lisp 2020-05-26T15:32:49Z emys quit (Ping timeout: 244 seconds) 2020-05-26T15:32:50Z _jrjsmrtn joined #lisp 2020-05-26T15:34:16Z __jrjsmrtn__ quit (Ping timeout: 258 seconds) 2020-05-26T15:36:19Z emys joined #lisp 2020-05-26T15:39:46Z scymtym_ joined #lisp 2020-05-26T15:39:54Z scymtym_ quit (Remote host closed the connection) 2020-05-26T15:40:34Z scymtym quit (Ping timeout: 240 seconds) 2020-05-26T15:42:19Z scymtym joined #lisp 2020-05-26T15:43:14Z liberliver quit (Ping timeout: 240 seconds) 2020-05-26T15:44:34Z emys quit (Ping timeout: 240 seconds) 2020-05-26T15:47:00Z orivej joined #lisp 2020-05-26T15:47:10Z orivej_ quit (Ping timeout: 272 seconds) 2020-05-26T15:49:46Z emys joined #lisp 2020-05-26T15:53:29Z ft joined #lisp 2020-05-26T15:54:42Z ebrasca joined #lisp 2020-05-26T15:54:54Z jonatack quit (Ping timeout: 240 seconds) 2020-05-26T15:54:59Z dale_ joined #lisp 2020-05-26T15:55:24Z dale_ is now known as dale 2020-05-26T15:55:31Z jonatack joined #lisp 2020-05-26T16:02:41Z dtman34 joined #lisp 2020-05-26T16:03:29Z dtman34 quit (Remote host closed the connection) 2020-05-26T16:04:15Z dtman34 joined #lisp 2020-05-26T16:05:20Z dtman34 quit (Remote host closed the connection) 2020-05-26T16:05:37Z shifty quit (Ping timeout: 264 seconds) 2020-05-26T16:06:12Z shifty joined #lisp 2020-05-26T16:10:14Z shifty quit (Ping timeout: 240 seconds) 2020-05-26T16:10:55Z shifty joined #lisp 2020-05-26T16:11:14Z nullniverse joined #lisp 2020-05-26T16:11:14Z nullniverse quit (Changing host) 2020-05-26T16:11:14Z nullniverse joined #lisp 2020-05-26T16:12:41Z pjb joined #lisp 2020-05-26T16:13:57Z sdumi joined #lisp 2020-05-26T16:21:24Z Bit_MCP quit (Ping timeout: 256 seconds) 2020-05-26T16:21:29Z oxum quit (Remote host closed the connection) 2020-05-26T16:23:28Z dyelar joined #lisp 2020-05-26T16:26:16Z paul0 joined #lisp 2020-05-26T16:27:10Z orivej_ joined #lisp 2020-05-26T16:27:12Z orivej quit (Ping timeout: 265 seconds) 2020-05-26T16:30:02Z Lycurgus joined #lisp 2020-05-26T16:32:46Z shifty quit (Ping timeout: 272 seconds) 2020-05-26T16:33:13Z shifty joined #lisp 2020-05-26T16:33:23Z jackdaniel joined #lisp 2020-05-26T16:35:00Z Lycurgus quit (Remote host closed the connection) 2020-05-26T16:38:47Z emys quit (Ping timeout: 260 seconds) 2020-05-26T16:42:03Z orivej_ quit (Ping timeout: 260 seconds) 2020-05-26T16:42:18Z orivej joined #lisp 2020-05-26T16:42:44Z notzmv quit (Read error: Connection reset by peer) 2020-05-26T16:42:57Z emys joined #lisp 2020-05-26T16:44:00Z efm joined #lisp 2020-05-26T16:44:44Z oxum joined #lisp 2020-05-26T16:47:12Z pjb quit (Ping timeout: 265 seconds) 2020-05-26T16:47:20Z kbtr quit (Ping timeout: 272 seconds) 2020-05-26T16:47:58Z kbtr joined #lisp 2020-05-26T16:48:21Z marusich joined #lisp 2020-05-26T16:50:09Z teej quit (Ping timeout: 272 seconds) 2020-05-26T16:50:47Z CEnnis91 quit (Ping timeout: 272 seconds) 2020-05-26T16:53:08Z fowlduck quit (Ping timeout: 256 seconds) 2020-05-26T16:53:19Z jlpeters quit (Ping timeout: 272 seconds) 2020-05-26T16:54:49Z orivej quit (Ping timeout: 246 seconds) 2020-05-26T16:54:52Z drmeister quit (Ping timeout: 260 seconds) 2020-05-26T16:55:07Z fowlduck joined #lisp 2020-05-26T16:55:28Z orivej joined #lisp 2020-05-26T16:56:29Z avicenna quit (Ping timeout: 272 seconds) 2020-05-26T16:56:45Z drmeister joined #lisp 2020-05-26T16:57:53Z jlpeters joined #lisp 2020-05-26T16:58:10Z CEnnis91 joined #lisp 2020-05-26T16:58:22Z physpi quit (Ping timeout: 260 seconds) 2020-05-26T16:59:11Z fowlduck quit (Max SendQ exceeded) 2020-05-26T17:00:04Z gko quit (Ping timeout: 246 seconds) 2020-05-26T17:00:42Z Kaisyu quit (Ping timeout: 260 seconds) 2020-05-26T17:01:33Z Kemwer_ quit (Ping timeout: 272 seconds) 2020-05-26T17:01:37Z avicenna joined #lisp 2020-05-26T17:01:44Z bytesighs quit (Read error: Connection reset by peer) 2020-05-26T17:04:47Z CEnnis91 quit (Ping timeout: 244 seconds) 2020-05-26T17:06:13Z Kevslinger quit (Ping timeout: 260 seconds) 2020-05-26T17:06:51Z Kevslinger joined #lisp 2020-05-26T17:07:15Z avicenna quit (Ping timeout: 272 seconds) 2020-05-26T17:07:44Z bytesighs joined #lisp 2020-05-26T17:08:42Z Kemwer_ joined #lisp 2020-05-26T17:10:09Z avicenna joined #lisp 2020-05-26T17:11:16Z shifty quit (Ping timeout: 246 seconds) 2020-05-26T17:11:36Z ech quit (Ping timeout: 256 seconds) 2020-05-26T17:12:22Z physpi joined #lisp 2020-05-26T17:12:28Z ech joined #lisp 2020-05-26T17:15:10Z physpi quit (Max SendQ exceeded) 2020-05-26T17:15:52Z pjb joined #lisp 2020-05-26T17:16:33Z Guest91294 joined #lisp 2020-05-26T17:17:46Z jlpeters quit (Ping timeout: 258 seconds) 2020-05-26T17:17:59Z sdumi quit (Ping timeout: 260 seconds) 2020-05-26T17:20:12Z avicenna quit (Ping timeout: 260 seconds) 2020-05-26T17:20:59Z jlpeters joined #lisp 2020-05-26T17:20:59Z fowlduck joined #lisp 2020-05-26T17:21:43Z physpi joined #lisp 2020-05-26T17:21:57Z teej joined #lisp 2020-05-26T17:22:38Z avicenna joined #lisp 2020-05-26T17:23:00Z sdumi joined #lisp 2020-05-26T17:24:53Z terpri quit (Remote host closed the connection) 2020-05-26T17:25:16Z terpri joined #lisp 2020-05-26T17:25:49Z shangul quit (Ping timeout: 258 seconds) 2020-05-26T17:27:36Z orivej quit (Read error: Connection reset by peer) 2020-05-26T17:27:41Z orivej_ joined #lisp 2020-05-26T17:27:49Z Bourne quit (Remote host closed the connection) 2020-05-26T17:28:02Z oxum quit (Remote host closed the connection) 2020-05-26T17:28:32Z Kaisyu joined #lisp 2020-05-26T17:28:57Z oxum joined #lisp 2020-05-26T17:29:45Z rgherdt joined #lisp 2020-05-26T17:33:14Z oxum quit (Ping timeout: 240 seconds) 2020-05-26T17:34:39Z jw4 quit (Read error: Connection reset by peer) 2020-05-26T17:36:50Z jw4 joined #lisp 2020-05-26T17:38:55Z snits joined #lisp 2020-05-26T17:40:11Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-26T17:44:04Z cmack joined #lisp 2020-05-26T17:44:35Z Bourne joined #lisp 2020-05-26T17:45:51Z shangul joined #lisp 2020-05-26T17:47:07Z EvW1 joined #lisp 2020-05-26T17:48:31Z karswell joined #lisp 2020-05-26T17:49:03Z pjb quit (Ping timeout: 272 seconds) 2020-05-26T17:49:20Z doomlist3 joined #lisp 2020-05-26T17:49:28Z doomlist3: clhs dolist 2020-05-26T17:49:29Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_dolist.htm 2020-05-26T17:50:34Z jackdaniel: (doomlist (v '(1 23)) (print v)) ; 1 23 2020-05-26T17:50:58Z loli quit (Ping timeout: 260 seconds) 2020-05-26T17:51:04Z doomlist3: can dolist iterate over plist 2020-05-26T17:51:30Z shangul quit (Ping timeout: 258 seconds) 2020-05-26T17:51:40Z dlowe: yes, but it won't give you keys and values seperately 2020-05-26T17:51:48Z dlowe: it'll just iterate over it like any other list 2020-05-26T17:52:03Z doomlist3: format t "~{~a can ~a~% ~}" plist ; dolist says too few args 2020-05-26T17:52:15Z doomlist3: then it's iteration over list not plist 2020-05-26T17:52:20Z loli joined #lisp 2020-05-26T17:53:35Z dlowe: alexandria:doplist will do what you want 2020-05-26T17:53:40Z dlowe: if you use the alexandria library 2020-05-26T17:54:04Z dlowe: otherwise you can use loop deconstruction like (loop for (k v) on plist by 'cddr do ...) 2020-05-26T17:55:26Z doomlist3: cl is fine , but with all the strangeness it's too bloated unlike python 2020-05-26T17:55:48Z doomlist3: and it's features too r bloated 2020-05-26T17:56:16Z dlowe: the strangeness is just 50 years of divergent evolution 2020-05-26T17:56:25Z jackdaniel: you may think about most of that "bloat" as a standard library which you may ignore 2020-05-26T17:56:50Z doomlist3: loop too is strange as while,for is enough 2020-05-26T17:56:52Z dlowe: well, like the standard library in python you can't actually ignore it when reading code 2020-05-26T17:57:35Z jackdaniel: (defmacro while (test &rest body) `(loop while ,test do (progn ,@body))) ; voila 2020-05-26T17:58:08Z jackdaniel: you are right, but by the time you read others code it is not bloat to you anymore 2020-05-26T17:58:17Z jackdaniel: (I think) 2020-05-26T17:58:29Z dlowe: nothing prevents you from doing it the hard way with TAGBODY, GO, IF, and SETF 2020-05-26T18:01:06Z _death: you can always define a doomlist3-lisp package with just the operators you consider essential 2020-05-26T18:01:58Z jackdaniel: don't forget about the doomlist3-lisp-user package! :) 2020-05-26T18:01:58Z frgo quit 2020-05-26T18:01:59Z nullniverse quit (Quit: Leaving) 2020-05-26T18:03:29Z Demosthenex: jackdaniel: man! love the new terminal post! 2020-05-26T18:04:00Z oxum joined #lisp 2020-05-26T18:07:01Z jackdaniel: Demosthenex: thanks! I'm glad you've liked it 2020-05-26T18:07:02Z shifty joined #lisp 2020-05-26T18:07:07Z slyrus_ quit (Remote host closed the connection) 2020-05-26T18:07:27Z emys quit (Ping timeout: 260 seconds) 2020-05-26T18:07:38Z orivej joined #lisp 2020-05-26T18:07:48Z slyrus_ joined #lisp 2020-05-26T18:08:22Z Demosthenex: i'm all about terminals and TUIs, though i have little code to show... i read your prior cl-charms and enjoyed it, this is even more encouraging 2020-05-26T18:08:35Z milanj quit (Quit: This computer has gone to sleep) 2020-05-26T18:09:38Z grewal quit (Ping timeout: 260 seconds) 2020-05-26T18:09:53Z grewal joined #lisp 2020-05-26T18:10:38Z oxum quit (Ping timeout: 265 seconds) 2020-05-26T18:11:31Z emys joined #lisp 2020-05-26T18:11:50Z sauvin quit (Read error: Connection reset by peer) 2020-05-26T18:12:23Z bhartrihari left #lisp 2020-05-26T18:12:35Z bhartrihari joined #lisp 2020-05-26T18:13:03Z noobineer joined #lisp 2020-05-26T18:15:07Z frgo joined #lisp 2020-05-26T18:18:54Z emys quit (Ping timeout: 240 seconds) 2020-05-26T18:19:43Z Demosthenex: wow! immediate mode too. 2020-05-26T18:19:57Z jackdaniel: that's more POC code, but since you've asked 2020-05-26T18:20:05Z Demosthenex: sure, i understand. 2020-05-26T18:20:13Z jackdaniel: _death wrote bindings for imgui in ecl 2020-05-26T18:20:27Z jackdaniel: very cool project 2020-05-26T18:20:30Z Demosthenex: nice. 2020-05-26T18:20:50Z Demosthenex: i focus strongly on terminal application due in part to input latency. 2020-05-26T18:21:06Z jackdaniel: https://github.com/death/imcl ← 2020-05-26T18:21:21Z Demosthenex: most of my code doesn't have UI, i always write backend stuff or just solve a problem with a script... but i've frequently wanted some simple UI tools that didn't suck 2020-05-26T18:21:46Z Demosthenex: if more gui apps were immediate, i might actually use them ;] 2020-05-26T18:22:06Z ebrasca quit (Remote host closed the connection) 2020-05-26T18:22:51Z orivej_ joined #lisp 2020-05-26T18:22:55Z emys joined #lisp 2020-05-26T18:22:58Z orivej quit (Ping timeout: 272 seconds) 2020-05-26T18:23:55Z Demosthenex: i've written several POCs for tiny DB's with simple input forms and tables in a few languages, and never found a style or TUI i liked :P 2020-05-26T18:24:52Z pjb joined #lisp 2020-05-26T18:25:37Z jackdaniel: heh 2020-05-26T18:25:50Z shifty quit (Ping timeout: 256 seconds) 2020-05-26T18:25:52Z jackdaniel: I need to go to spend some time with my family, thanks for encouraging words! :) 2020-05-26T18:26:30Z shifty joined #lisp 2020-05-26T18:32:03Z ChoHag: Demosthenex: UIs, G and T alike, have universally sucked since Acorn and Amiga died in the 90s. 2020-05-26T18:32:23Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-26T18:32:29Z orivej joined #lisp 2020-05-26T18:36:26Z bhartrihari left #lisp 2020-05-26T18:36:44Z oxum joined #lisp 2020-05-26T18:39:28Z shifty quit (Ping timeout: 246 seconds) 2020-05-26T18:40:19Z shifty joined #lisp 2020-05-26T18:41:42Z oxum quit (Ping timeout: 256 seconds) 2020-05-26T18:41:50Z jprajzne quit (Ping timeout: 260 seconds) 2020-05-26T18:42:16Z orivej quit (Ping timeout: 246 seconds) 2020-05-26T18:42:18Z Bit_MCP joined #lisp 2020-05-26T18:42:40Z orivej joined #lisp 2020-05-26T18:43:03Z Bit_MCP quit (Client Quit) 2020-05-26T18:47:03Z shangul joined #lisp 2020-05-26T18:49:04Z shifty quit (Ping timeout: 256 seconds) 2020-05-26T18:49:37Z shifty joined #lisp 2020-05-26T18:52:32Z shangul quit (Ping timeout: 256 seconds) 2020-05-26T18:55:21Z slyrus_ quit (Quit: Leaving) 2020-05-26T18:56:33Z shifty quit (Ping timeout: 265 seconds) 2020-05-26T18:57:24Z shifty joined #lisp 2020-05-26T19:03:38Z Demosthenex: ChoHag: quite likely 2020-05-26T19:03:51Z Demosthenex: i just want some basic mainframe style forms for basic crap via ssh 2020-05-26T19:04:19Z orivej quit (Ping timeout: 246 seconds) 2020-05-26T19:04:42Z efm quit (Ping timeout: 260 seconds) 2020-05-26T19:04:49Z orivej joined #lisp 2020-05-26T19:07:09Z rogersm joined #lisp 2020-05-26T19:07:22Z davsebamse joined #lisp 2020-05-26T19:07:37Z davsebam1e quit (Read error: Connection reset by peer) 2020-05-26T19:10:50Z shifty quit (Ping timeout: 256 seconds) 2020-05-26T19:11:53Z oxum joined #lisp 2020-05-26T19:13:54Z Lycurgus joined #lisp 2020-05-26T19:17:58Z oxum quit (Ping timeout: 256 seconds) 2020-05-26T19:18:57Z rogersm quit (Remote host closed the connection) 2020-05-26T19:19:31Z shifty joined #lisp 2020-05-26T19:21:44Z ChoHag: Is there a standard idiom for 'evaluate to the first item of the list for which (test item) is true'? 2020-05-26T19:22:19Z Bike: clhs some 2020-05-26T19:22:20Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_everyc.htm 2020-05-26T19:22:24Z Bike: or do you mean something else 2020-05-26T19:22:54Z phoe: clhs find-if 2020-05-26T19:22:55Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_find_.htm 2020-05-26T19:23:57Z ChoHag: So the answer is "No, there are several" :) 2020-05-26T19:24:20Z phoe: depends on what exactly you want to do 2020-05-26T19:24:55Z phoe: or rather, what message you want to pass to the programmer who reads your code 2020-05-26T19:24:57Z rogersm joined #lisp 2020-05-26T19:25:22Z phoe: myself, I'd be somewhat surprised if someone used the return value of #'SOME in a non-boolean context 2020-05-26T19:25:32Z ChoHag: I want to pass the message that the expression 'evaluate[s] to the first item of the list for which (test item) is true'. 2020-05-26T19:25:32Z phoe: I'd expect FIND-IF in such position 2020-05-26T19:26:07Z _death: some would return the predicate's value, not the list item 2020-05-26T19:26:57Z rogersm quit (Client Quit) 2020-05-26T19:27:07Z lucasb joined #lisp 2020-05-26T19:27:17Z rogersm joined #lisp 2020-05-26T19:27:19Z phoe: oh right! 2020-05-26T19:27:36Z phoe: that's why I would be surprised by it 2020-05-26T19:27:46Z anticrisis joined #lisp 2020-05-26T19:37:19Z rogersm quit 2020-05-26T19:37:20Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-26T19:38:29Z orivej joined #lisp 2020-05-26T19:40:16Z Josh_2: evenin' 2020-05-26T19:47:17Z oxum joined #lisp 2020-05-26T19:47:56Z rogersm joined #lisp 2020-05-26T19:49:46Z rozenglass quit (Ping timeout: 256 seconds) 2020-05-26T20:01:43Z ChoHag: How can I load a module from ~/src that began its life in quicklisp's storage area? 2020-05-26T20:01:54Z rozenglass joined #lisp 2020-05-26T20:04:03Z Josh_2: symlink in local-projects to ~/src ? 2020-05-26T20:04:17Z ChoHag: I was hoping for something less hacky. 2020-05-26T20:04:43Z Josh_2: That's what you have to do if you want quicklisp to pick up projects outside of local-projects 2020-05-26T20:05:11Z ChoHag: It can't take a one-off absolute path? Or be bypassed by something that can? 2020-05-26T20:05:15Z rogersm quit (Remote host closed the connection) 2020-05-26T20:06:59Z rogersm joined #lisp 2020-05-26T20:15:44Z cosimone quit (Quit: Quit.) 2020-05-26T20:16:24Z ArthurStrong joined #lisp 2020-05-26T20:19:12Z bfig joined #lisp 2020-05-26T20:21:24Z oxum quit (Ping timeout: 272 seconds) 2020-05-26T20:22:47Z bfig_ quit (Ping timeout: 260 seconds) 2020-05-26T20:24:31Z shka_ quit (Ping timeout: 265 seconds) 2020-05-26T20:24:40Z Kundry_W_ joined #lisp 2020-05-26T20:24:47Z oxum joined #lisp 2020-05-26T20:27:01Z ArthurStrong quit (Quit: leaving) 2020-05-26T20:28:19Z Kundry_Wag quit (Ping timeout: 246 seconds) 2020-05-26T20:29:21Z oxum quit (Ping timeout: 265 seconds) 2020-05-26T20:29:22Z ArthurStrong joined #lisp 2020-05-26T20:31:22Z ralt: luis: when should I remind you guys of open PRs? there's one open 4 days ago, don't wanna be a bother, also don't wanna get it forgotten :) let me know how often, even if it's "don't", I should send a friendly reminder. 2020-05-26T20:32:34Z ralt: I know that being an open source maintainer is a pain etc etc. so it's really a "let me know" kinda thing. 2020-05-26T20:33:00Z jackdaniel: since we are at it :) 2020-05-26T20:33:07Z jackdaniel: fe[nl]ix: ping about mailboxes :) 2020-05-26T20:33:26Z orivej quit (Ping timeout: 272 seconds) 2020-05-26T20:33:40Z orivej joined #lisp 2020-05-26T20:35:17Z cmack` joined #lisp 2020-05-26T20:37:57Z cmack quit (Ping timeout: 260 seconds) 2020-05-26T20:42:21Z orivej_ joined #lisp 2020-05-26T20:42:24Z orivej quit (Ping timeout: 265 seconds) 2020-05-26T20:43:06Z Lycurgus quit (Remote host closed the connection) 2020-05-26T20:48:42Z elflng quit (Quit: leaving) 2020-05-26T20:49:22Z rogersm quit (Remote host closed the connection) 2020-05-26T20:51:58Z Jesin quit (Quit: Leaving) 2020-05-26T20:54:31Z efm joined #lisp 2020-05-26T20:55:18Z karayan quit (Remote host closed the connection) 2020-05-26T20:58:39Z karayan joined #lisp 2020-05-26T20:59:31Z dyelar quit (Quit: Leaving.) 2020-05-26T20:59:41Z pjb quit (Ping timeout: 272 seconds) 2020-05-26T21:00:58Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-26T21:03:00Z Jesin joined #lisp 2020-05-26T21:03:23Z phoe: Xach: beep boop 2020-05-26T21:03:48Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-26T21:03:58Z orivej joined #lisp 2020-05-26T21:12:54Z rumbler31 joined #lisp 2020-05-26T21:17:27Z seok: What is the most performant way of removing the last item in a list? 2020-05-26T21:17:59Z phoe: how often are you going to do that? 2020-05-26T21:18:17Z ralt: seok: BUTLAST? 2020-05-26T21:18:22Z seok: bout 3 million times 2020-05-26T21:18:22Z doomlist3 quit (Ping timeout: 246 seconds) 2020-05-26T21:18:35Z phoe: use a doubly linked list 2020-05-26T21:18:38Z jonatack quit (Ping timeout: 260 seconds) 2020-05-26T21:18:43Z seok: What is that? 2020-05-26T21:18:46Z ralt: probably don't use a normal linked list if performance matters to you 2020-05-26T21:19:07Z phoe: a list in which each node holds references to both its successor and predecessor 2020-05-26T21:19:15Z shifty quit (Ping timeout: 260 seconds) 2020-05-26T21:19:20Z phoe: unlike a standard singly linked list, which only refers to the next cell 2020-05-26T21:19:25Z seok: Is there a tutorial on it? 2020-05-26T21:19:34Z seok: or perhaps a library? 2020-05-26T21:19:37Z phoe: with such a list, you usually have pointers to the first and last element, and you can pop from either side 2020-05-26T21:19:47Z phoe: axion: I got a customer for ya 2020-05-26T21:19:53Z jonatack joined #lisp 2020-05-26T21:20:02Z seok: 3 2020-05-26T21:20:03Z dmiserak joined #lisp 2020-05-26T21:20:22Z seok: 3 million should be fine with just normal list, but I want to learn techniques as I code : ) 2020-05-26T21:20:35Z seok: ralt 2020-05-26T21:20:49Z phoe: what is your algorithm and why do you need to pop stuff so often 2020-05-26T21:20:55Z White_Flame: could you switch to arrays? 2020-05-26T21:21:04Z phoe: seok: (ql:quickload :doubly-linked-list) 2020-05-26T21:21:08Z White_Flame: could you hold your list reversed, so that you only pop the head? 2020-05-26T21:21:11Z seok: Ah yes I could use arrays since the size remains constant 2020-05-26T21:21:18Z phoe: seok: wait a second 2020-05-26T21:21:26Z phoe: how can it remain constant if you pop stuff 2020-05-26T21:21:29Z seok: I need to shift items just as many times though 2020-05-26T21:21:33Z seok: I add one to the front 2020-05-26T21:21:40Z seok: FILO? 2020-05-26T21:21:46Z phoe: oh! so a queue 2020-05-26T21:21:47Z seok: FOLI? more like 2020-05-26T21:21:49Z seok: yes 2020-05-26T21:21:52Z ahungry quit (Remote host closed the connection) 2020-05-26T21:21:58Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-26T21:22:02Z seok: you are right it is a queue 2020-05-26T21:22:12Z phoe: seok: (ql:quickload :doubly-linked-list) 2020-05-26T21:22:27Z seok: that's good for queues too? 2020-05-26T21:22:33Z White_Flame: the most performant way to write queues of unbounded size is to use multiple buffers 2020-05-26T21:22:49Z phoe: it'll work, I don't know how performant it will be 2020-05-26T21:22:50Z seok: the size is bound 2020-05-26T21:22:58Z seok: size will remain constant 2020-05-26T21:23:08Z orivej joined #lisp 2020-05-26T21:23:19Z White_Flame: an easy but still performant way is to use 2 lists: the input list conses to the head. When you want to read, reverse the list once and pop items from the head, writing to a new input list 2020-05-26T21:23:24Z seok: definitely faster than standard list though right phoe? 2020-05-26T21:23:48Z phoe: popping the last element is linear instead of quadratic 2020-05-26T21:23:51Z phoe: so, yeah, I guess 2020-05-26T21:23:57Z phoe: I mean, uhhhh 2020-05-26T21:24:00Z phoe: constant instead of linear 2020-05-26T21:24:02Z ghard quit (Ping timeout: 260 seconds) 2020-05-26T21:24:06Z seok: White_Flame I need to read and write the same 3 million times, would that still be ok? 2020-05-26T21:24:11Z White_Flame: popping the last element of the list also causes GC pressure (on plain cons lists) as the rest of it needs to be copied 2020-05-26T21:24:26Z phoe: White_Flame: not if you mutate the list 2020-05-26T21:24:31Z White_Flame: true 2020-05-26T21:25:01Z phoe: copying 3M conses on each pop would be unbearable 2020-05-26T21:25:14Z White_Flame: ah, nbutlast does exist 2020-05-26T21:25:29Z seok: yes, but I am not sure if it is performant 2020-05-26T21:25:41Z White_Flame: but still, the two-list scheme that I mentioned would perform the occasional NREVERSE 2020-05-26T21:25:42Z seok: I know CL list is not good at looking up last item 2020-05-26T21:25:48Z White_Flame: and the rest is single-cons head operations 2020-05-26T21:26:08Z phoe: I suggest you use doubly linked lists and check if that is good enough for you 2020-05-26T21:26:14Z phoe: if yes, all's good 2020-05-26T21:26:16Z phoe: if no, optimize further 2020-05-26T21:26:17Z seok: Yeah I am reading the manual atm 2020-05-26T21:26:23Z seok: thank you 2020-05-26T21:26:59Z sth_ left #lisp 2020-05-26T21:27:20Z seok: There are queue libraries, are they any good? 2020-05-26T21:27:22Z seok: https://quickref.common-lisp.net/queues.html like this one 2020-05-26T21:27:42Z seok: https://github.com/massung/queue or this 2020-05-26T21:28:02Z White_Flame: I would hope that anybody who actually has published a queue library would use a reasonable algorithm 2020-05-26T21:28:13Z seok: me too : D 2020-05-26T21:28:53Z White_Flame: however, you need to be familiar with how the various implementation schemes actually work to make a valid judgement of how applicable it is to your specific problem, or just start testing random ones 2020-05-26T21:29:50Z White_Flame: for basic use, the two-list scheme is easy and fast 2020-05-26T21:33:00Z ChoHag: White_Flame: Which internet are you on then? 2020-05-26T21:33:39Z White_Flame: huh? 2020-05-26T21:33:53Z ralt: the 7th one. 2020-05-26T21:34:26Z ChoHag: This internet of yours where people occasionally consider writing good code. 2020-05-26T21:34:34Z White_Flame: ah, heh 2020-05-26T21:34:57Z pjb joined #lisp 2020-05-26T21:35:25Z White_Flame: the smaller the library, the more justification it needs to be worth being a library. (Unless you're using javascript, enjoy your left_pad) 2020-05-26T21:37:40Z White_Flame: and that's certainly part of lisp culture, it's so easy to write code, that doing something specific to your project is easy enough to describe, vs creating, maintaining, and pointing people to libraries 2020-05-26T21:37:58Z White_Flame: for little bits & bobs like this 2020-05-26T21:38:08Z ChoHag: What part of that is lisp-specific? 2020-05-26T21:38:24Z ChoHag: Nothing does NIH like the software industry. 2020-05-26T21:38:24Z White_Flame: implementation specifics of a queue in lisp? 2020-05-26T21:38:43Z White_Flame: and the scope of roll-little-utility-yourself is larger in lisp than in most other languages 2020-05-26T21:39:15Z ChoHag: You may be affected by confirmation bias there. 2020-05-26T21:39:18Z gravicappa quit (Ping timeout: 272 seconds) 2020-05-26T21:39:34Z orivej quit (Ping timeout: 240 seconds) 2020-05-26T21:40:17Z orivej joined #lisp 2020-05-26T21:40:26Z White_Flame: I believe I have enough languages under my belt to have a good sense of Lisp's standing in that 2020-05-26T21:42:49Z random-nick quit (Ping timeout: 264 seconds) 2020-05-26T21:43:25Z White_Flame: but it certainly is also a language community culture that affects that as well; JS is fairly easy to write little bits & bobs in, but you still end up with leftpad and if you're tied up in frameworks then your "small utilities" have to play along with larger infrastructure, which inflates the size of utilities 2020-05-26T21:47:08Z pve quit (Quit: leaving) 2020-05-26T21:49:30Z phoe: Xach: I'd like you to comment on https://gitlab.common-lisp.net/asdf/asdf/-/issues/32#note_6387 2020-05-26T21:51:17Z phoe: tl;dr of the issue: we would like ASDF to warn if a library pollutes the global readtable, and this most likely requires scanning the Quicklisp world for libraries which do so and fixing them up. 2020-05-26T21:51:31Z phoe: And we'll need your help with that! 2020-05-26T21:52:24Z ralt: you can't run quicklisp on your own? 2020-05-26T21:53:16Z phoe: I guess I could, but I don't have the machine to load every Quicklisp library available. 2020-05-26T21:53:51Z ralt: you need a special one for this? 2020-05-26T21:53:52Z phoe: AFAIR there's no public code that allows one to create a Linux+SBCL VM that mimics the environment Quicklisp uses for performing its tests. 2020-05-26T21:54:03Z phoe: ralt: yes, one with all the foreign libraries installed 2020-05-26T21:54:04Z ralt: I guess I only tried to download all of them, not load them 2020-05-26T21:54:09Z ralt: ah, I see 2020-05-26T21:54:15Z phoe: downloading is easy; loading them isn't 2020-05-26T21:54:45Z ralt: yup, makes sense 2020-05-26T21:56:03Z random-nick joined #lisp 2020-05-26T22:00:08Z frgo quit (Remote host closed the connection) 2020-05-26T22:00:51Z frgo joined #lisp 2020-05-26T22:03:54Z hiroaki quit (Ping timeout: 260 seconds) 2020-05-26T22:04:20Z hineios quit (Quit: The Lounge - https://thelounge.chat) 2020-05-26T22:05:02Z hineios joined #lisp 2020-05-26T22:06:54Z noobineer quit (Ping timeout: 256 seconds) 2020-05-26T22:08:06Z andrei-n quit (Quit: Leaving) 2020-05-26T22:09:53Z terpri quit (Remote host closed the connection) 2020-05-26T22:10:21Z terpri joined #lisp 2020-05-26T22:14:01Z orivej quit (Ping timeout: 246 seconds) 2020-05-26T22:14:40Z orivej joined #lisp 2020-05-26T22:20:01Z bhartrihari joined #lisp 2020-05-26T22:20:32Z amerlyq quit (Quit: amerlyq) 2020-05-26T22:27:54Z sjl_ quit (Ping timeout: 240 seconds) 2020-05-26T22:35:17Z rgherdt quit (Ping timeout: 246 seconds) 2020-05-26T22:41:59Z tsrt^ quit (Read error: Connection reset by peer) 2020-05-26T22:46:58Z Lord_of_Life_ joined #lisp 2020-05-26T22:49:21Z Lord_of_Life quit (Ping timeout: 258 seconds) 2020-05-26T22:49:48Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-26T22:54:55Z random-nick quit (Ping timeout: 260 seconds) 2020-05-26T22:58:28Z grewal quit (Ping timeout: 256 seconds) 2020-05-26T22:58:37Z grewal joined #lisp 2020-05-26T22:59:09Z frgo quit (Remote host closed the connection) 2020-05-26T22:59:44Z frgo joined #lisp 2020-05-26T23:02:29Z noobineer joined #lisp 2020-05-26T23:06:05Z dmiserak quit (Quit: Leaving) 2020-05-26T23:07:34Z cmack` quit (Ping timeout: 246 seconds) 2020-05-26T23:11:06Z orivej quit (Ping timeout: 260 seconds) 2020-05-26T23:11:53Z orivej joined #lisp 2020-05-26T23:17:22Z dawgmatix joined #lisp 2020-05-26T23:21:06Z wxie joined #lisp 2020-05-26T23:21:33Z karstensrage joined #lisp 2020-05-26T23:21:55Z Kundry_W_ quit (Ping timeout: 246 seconds) 2020-05-26T23:32:26Z igemnace joined #lisp 2020-05-26T23:38:43Z akoana joined #lisp 2020-05-26T23:39:28Z anticrisis quit (Read error: Connection reset by peer) 2020-05-26T23:42:23Z Aurora_v_kosmose quit (Remote host closed the connection) 2020-05-26T23:51:19Z emys quit (Ping timeout: 272 seconds) 2020-05-26T23:54:57Z emys joined #lisp 2020-05-26T23:56:59Z Aurora_v_kosmose joined #lisp 2020-05-26T23:58:01Z Kundry_Wag joined #lisp 2020-05-26T23:58:46Z nicktick joined #lisp 2020-05-26T23:58:52Z jonatack_ joined #lisp 2020-05-27T00:01:54Z jonatack quit (Ping timeout: 240 seconds) 2020-05-27T00:02:40Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-27T00:03:21Z EvW1 quit (Ping timeout: 272 seconds) 2020-05-27T00:08:01Z emys quit (Ping timeout: 264 seconds) 2020-05-27T00:16:36Z hineios: phoe I don't know about a VM but I've stumbled across at least one docker image that claimed (although I didn't test it) that it contained all the necessary foreign libraries to load all of quicklisp. 2020-05-27T00:17:37Z midre quit (Ping timeout: 260 seconds) 2020-05-27T00:17:53Z midre joined #lisp 2020-05-27T00:18:29Z hineios2 joined #lisp 2020-05-27T00:19:11Z hineios2 quit (Client Quit) 2020-05-27T00:19:44Z hineios5 joined #lisp 2020-05-27T00:20:41Z hineios5: I'm on my phone right now and I can't find it... 2020-05-27T00:21:21Z hineios quit (Ping timeout: 265 seconds) 2020-05-27T00:21:21Z hineios5 is now known as hineios 2020-05-27T00:21:49Z hineios: Either way, this seems like a reasonable starting point for that approach: https://github.com/daewok/docker-sbcl/blob/master/README.org 2020-05-27T00:21:50Z wxie quit (Ping timeout: 265 seconds) 2020-05-27T00:22:17Z notzmv joined #lisp 2020-05-27T00:26:35Z sz0 quit (Quit: Connection closed for inactivity) 2020-05-27T00:27:31Z papachan_ joined #lisp 2020-05-27T00:28:10Z grewal quit (Ping timeout: 256 seconds) 2020-05-27T00:29:11Z papachan quit (Read error: Connection reset by peer) 2020-05-27T00:29:48Z grewal joined #lisp 2020-05-27T00:42:16Z emys joined #lisp 2020-05-27T00:46:53Z lucasb quit (Quit: Connection closed for inactivity) 2020-05-27T00:49:00Z jfrancis joined #lisp 2020-05-27T00:51:29Z ahungry joined #lisp 2020-05-27T00:52:02Z jfrancis_ quit (Ping timeout: 260 seconds) 2020-05-27T01:01:54Z Kundry_Wag joined #lisp 2020-05-27T01:11:25Z SGASAU quit (Remote host closed the connection) 2020-05-27T01:12:17Z SGASAU joined #lisp 2020-05-27T01:13:39Z emys quit (Ping timeout: 272 seconds) 2020-05-27T01:16:49Z pjb quit (Ping timeout: 272 seconds) 2020-05-27T01:18:04Z emys joined #lisp 2020-05-27T01:22:03Z v3ga quit (Ping timeout: 260 seconds) 2020-05-27T01:22:27Z v3ga joined #lisp 2020-05-27T01:36:23Z bitmapper quit (Ping timeout: 260 seconds) 2020-05-27T01:36:53Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-27T01:38:03Z orivej joined #lisp 2020-05-27T01:40:25Z emys quit (Ping timeout: 264 seconds) 2020-05-27T01:41:43Z ArthurStrong quit (Read error: Connection reset by peer) 2020-05-27T01:44:26Z emys joined #lisp 2020-05-27T01:47:04Z pjb joined #lisp 2020-05-27T01:56:08Z oxum joined #lisp 2020-05-27T01:56:42Z gravicappa joined #lisp 2020-05-27T01:58:08Z jfrancis_ joined #lisp 2020-05-27T02:00:15Z dawgmatix quit (Ping timeout: 258 seconds) 2020-05-27T02:01:27Z jfrancis quit (Ping timeout: 260 seconds) 2020-05-27T02:05:19Z emys quit (Ping timeout: 260 seconds) 2020-05-27T02:06:07Z emys joined #lisp 2020-05-27T02:15:27Z emys quit (Ping timeout: 260 seconds) 2020-05-27T02:17:27Z frgo quit (Ping timeout: 260 seconds) 2020-05-27T02:18:56Z oxum_ joined #lisp 2020-05-27T02:19:10Z emys joined #lisp 2020-05-27T02:22:27Z oxum quit (Ping timeout: 260 seconds) 2020-05-27T02:26:41Z jacks2 joined #lisp 2020-05-27T02:27:05Z emys quit (Ping timeout: 258 seconds) 2020-05-27T02:27:06Z Getgle joined #lisp 2020-05-27T02:27:26Z jesse1010 quit (Ping timeout: 246 seconds) 2020-05-27T02:31:52Z frgo joined #lisp 2020-05-27T02:35:12Z FreeBirdLjj joined #lisp 2020-05-27T02:39:40Z emys joined #lisp 2020-05-27T02:39:57Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-27T02:40:53Z shangul joined #lisp 2020-05-27T02:51:37Z emys quit (Ping timeout: 260 seconds) 2020-05-27T02:52:07Z emys joined #lisp 2020-05-27T02:52:09Z gaqwas quit (Ping timeout: 265 seconds) 2020-05-27T02:53:05Z gaqwas joined #lisp 2020-05-27T03:09:41Z emys quit (Ping timeout: 246 seconds) 2020-05-27T03:13:08Z beach: Good morning everyone! 2020-05-27T03:13:35Z ober: morning 2020-05-27T03:13:53Z emys joined #lisp 2020-05-27T03:16:29Z Getgle: hey 2020-05-27T03:16:42Z Getgle: whats better scheme or common lisp 2020-05-27T03:17:08Z beach: Getgle: This channel is dedicated to Common Lisp. So you won't gen an unbiased answer. 2020-05-27T03:17:27Z beach: Getgle: Try ##lisp instead for such comparisons. 2020-05-27T03:17:46Z beach: Getgle: But if you would like to learn Common Lisp, we will be happy to help you. 2020-05-27T03:18:36Z Bit_MCP joined #lisp 2020-05-27T03:18:40Z Getgle: they all look really cool tbh 2020-05-27T03:18:56Z beach: All what? 2020-05-27T03:18:59Z Getgle: the answer may be biased but why did you guys specificially choose common lisp over racket/scheme/clojure etc 2020-05-27T03:19:02Z Getgle: all of the lisp languages 2020-05-27T03:19:08Z Getgle: i want to pick one 2020-05-27T03:19:56Z beach: There is no widely agreed-upon definition on "Lisp". That's why we dedicate this channel to Common Lisp, which *is* well defined. 2020-05-27T03:20:17Z beach: Language comparisons like that are unfortunately off topic here. 2020-05-27T03:20:51Z pjb: perhaps in ##lisp 2020-05-27T03:20:59Z Bike quit (Quit: leaving) 2020-05-27T03:21:08Z pjb: Getgle: just use Common Lisp. 2020-05-27T03:21:10Z aindilis quit (Remote host closed the connection) 2020-05-27T03:21:16Z beach: Getgle: I can tell you why I ended up with Common Lisp... 2020-05-27T03:21:24Z Kundry_Wag quit (Read error: Connection reset by peer) 2020-05-27T03:21:26Z beach: Getgle: It has a stable, independent standard. 2020-05-27T03:22:08Z beach: Getgle: Which I emphasize in my talks to industry. A project manager who chooses a language with a single implementation or a language that is controlled by a single person or organization should be fired. 2020-05-27T03:22:48Z beach: Getgle: Common Lisp also has the absolute best condition system around (called exception system in other languages), and the best object-oriented facility as well. 2020-05-27T03:27:18Z emys quit (Ping timeout: 260 seconds) 2020-05-27T03:29:29Z Getgle: i see 2020-05-27T03:30:24Z emys joined #lisp 2020-05-27T03:32:47Z beach: Here is another piece of information that might help with your choice: Common Lisp is a multi-paradigm language. If you are into strict functional programming, there are other languages that might be preferable to you. Common Lisp supports functional programming, but it has strong support for imperative and object-oriented programming as well. 2020-05-27T03:33:09Z beach: For example, recursion is not recommended where iteration is practical. 2020-05-27T03:37:26Z beach: One more piece of information: I often hear that this channel is very good with giving people advice, and also very tolerant with newbies. And there are always lots of participants around to help. 2020-05-27T03:37:55Z beach: In fact, some people who desperately need help with other languages regularly show up here, just because the participants here are often very smart and very knowledgeable. Those people are, of course, kindly told to go elsewhere with their questions. 2020-05-27T03:38:20Z oxum_ quit (Remote host closed the connection) 2020-05-27T03:38:39Z beach: So, lately, I have consider "IRC helpfulness" as a possible factor when a language is to be chosen. 2020-05-27T03:39:22Z aindilis joined #lisp 2020-05-27T03:40:37Z Getgle: i see 2020-05-27T03:40:44Z Getgle: im gonna go common lisp then 2020-05-27T03:41:10Z beach: Sounds good. If you need help, there is also #clschool for truly trivial questions. 2020-05-27T03:41:21Z oxum joined #lisp 2020-05-27T03:41:37Z beach: I don't know your background, so I don't know how familiar you are with Lisp concepts. 2020-05-27T03:41:52Z marusich quit (Quit: Leaving) 2020-05-27T03:43:00Z shifty joined #lisp 2020-05-27T03:43:12Z emys quit (Ping timeout: 260 seconds) 2020-05-27T03:47:24Z emys joined #lisp 2020-05-27T03:47:24Z SGASAU quit (Remote host closed the connection) 2020-05-27T03:48:05Z SGASAU joined #lisp 2020-05-27T03:51:01Z ArthurStrong joined #lisp 2020-05-27T03:52:34Z emys quit (Ping timeout: 256 seconds) 2020-05-27T03:55:53Z emys joined #lisp 2020-05-27T03:57:10Z Kundry_Wag joined #lisp 2020-05-27T04:01:45Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-27T04:03:50Z emys quit (Ping timeout: 256 seconds) 2020-05-27T04:04:10Z emys joined #lisp 2020-05-27T04:04:11Z shka_ joined #lisp 2020-05-27T04:04:48Z oxum quit (Remote host closed the connection) 2020-05-27T04:05:27Z oxum joined #lisp 2020-05-27T04:08:14Z nicktick quit (Ping timeout: 240 seconds) 2020-05-27T04:10:14Z oxum quit (Ping timeout: 260 seconds) 2020-05-27T04:13:02Z emys quit (Ping timeout: 246 seconds) 2020-05-27T04:13:35Z emys joined #lisp 2020-05-27T04:17:16Z ljavorsk joined #lisp 2020-05-27T04:24:40Z sdumi quit (Ping timeout: 246 seconds) 2020-05-27T04:25:40Z sdumi joined #lisp 2020-05-27T04:26:53Z zaquest quit (Quit: Leaving) 2020-05-27T04:28:52Z ljavorsk quit (Ping timeout: 246 seconds) 2020-05-27T04:31:52Z veiny_juicer joined #lisp 2020-05-27T04:32:14Z emys quit (Ping timeout: 272 seconds) 2020-05-27T04:32:36Z oxum joined #lisp 2020-05-27T04:35:45Z emys joined #lisp 2020-05-27T04:44:52Z ech quit (Ping timeout: 256 seconds) 2020-05-27T04:45:40Z terpri_ joined #lisp 2020-05-27T04:45:45Z terpri quit (Remote host closed the connection) 2020-05-27T04:51:26Z karlosz quit (Ping timeout: 256 seconds) 2020-05-27T04:51:59Z karlosz joined #lisp 2020-05-27T04:54:43Z emys quit (Ping timeout: 260 seconds) 2020-05-27T04:55:05Z zaquest joined #lisp 2020-05-27T04:56:32Z sdumi quit (Ping timeout: 256 seconds) 2020-05-27T04:58:02Z emys joined #lisp 2020-05-27T04:59:20Z gko joined #lisp 2020-05-27T05:09:49Z gko quit (Ping timeout: 246 seconds) 2020-05-27T05:10:35Z oxum quit (Remote host closed the connection) 2020-05-27T05:12:36Z karlosz_ joined #lisp 2020-05-27T05:15:28Z karlosz quit (Ping timeout: 256 seconds) 2020-05-27T05:15:29Z karlosz_ is now known as karlosz 2020-05-27T05:19:58Z ArthurStrong quit (Ping timeout: 246 seconds) 2020-05-27T05:21:52Z ahungry quit (Remote host closed the connection) 2020-05-27T05:23:49Z emys quit (Ping timeout: 246 seconds) 2020-05-27T05:32:09Z phoe: hineios: oh! nice 2020-05-27T05:32:17Z emys joined #lisp 2020-05-27T05:34:44Z Bit_MCP quit (Read error: Connection reset by peer) 2020-05-27T05:36:48Z sdumi joined #lisp 2020-05-27T05:40:38Z emys quit (Ping timeout: 272 seconds) 2020-05-27T05:40:45Z sdumi quit (Read error: Connection reset by peer) 2020-05-27T05:41:06Z sdumi joined #lisp 2020-05-27T05:43:06Z dddddd quit (Ping timeout: 260 seconds) 2020-05-27T05:46:25Z notzmv quit (Ping timeout: 264 seconds) 2020-05-27T05:47:37Z emys joined #lisp 2020-05-27T05:48:20Z nicktick joined #lisp 2020-05-27T05:52:55Z oxum joined #lisp 2020-05-27T05:56:45Z emys quit (Ping timeout: 272 seconds) 2020-05-27T05:58:46Z Kundry_Wag joined #lisp 2020-05-27T06:03:24Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-27T06:04:09Z emys joined #lisp 2020-05-27T06:04:49Z sauvin joined #lisp 2020-05-27T06:11:37Z Getgle quit (Read error: Connection reset by peer) 2020-05-27T06:14:12Z andrei-n joined #lisp 2020-05-27T06:17:06Z space_otter joined #lisp 2020-05-27T06:20:37Z emys quit (Ping timeout: 264 seconds) 2020-05-27T06:23:13Z veiny_juicer quit (Remote host closed the connection) 2020-05-27T06:25:34Z varjag joined #lisp 2020-05-27T06:27:09Z emys joined #lisp 2020-05-27T06:31:39Z emys quit (Ping timeout: 258 seconds) 2020-05-27T06:31:57Z space_otter quit (Remote host closed the connection) 2020-05-27T06:33:06Z space_otter joined #lisp 2020-05-27T06:36:10Z Aurora_v_kosmose quit (Remote host closed the connection) 2020-05-27T06:36:47Z Aurora_v_kosmose joined #lisp 2020-05-27T06:38:56Z dale quit (Quit: My computer has gone to sleep) 2020-05-27T06:39:03Z random-nick joined #lisp 2020-05-27T06:41:15Z orivej quit (Ping timeout: 265 seconds) 2020-05-27T06:41:42Z orivej joined #lisp 2020-05-27T06:43:40Z anticrisis joined #lisp 2020-05-27T06:47:03Z hiroaki joined #lisp 2020-05-27T06:47:18Z bhartrihari left #lisp 2020-05-27T06:47:46Z bhartrihari joined #lisp 2020-05-27T06:52:49Z bhartrihari left #lisp 2020-05-27T06:52:53Z oxum quit (Remote host closed the connection) 2020-05-27T06:52:58Z bhartrihari joined #lisp 2020-05-27T06:53:09Z antaoiseach joined #lisp 2020-05-27T06:54:44Z boeg: I have an asdf:defsystem :next/darwin/gtk-application and :next/gtk-application and it looks to me that if I call asdf:make :next/gtk-application, it chooses :next/darwin/gtk-application instead of :next/gtk-application. If I comment out the defsystem of :next/darwin/gtk-application, then :next/gtk-application is chosen, but else its :next/darwin/gtk-application. Does that make any sense? Why is it doing that? Am I reading it 2020-05-27T06:54:44Z boeg: wrong? 2020-05-27T06:54:45Z boeg: Shouldn't asdf:make :next/gtk-application make :next/gtk-application and not :next/darwin/gtk-application ? 2020-05-27T06:55:22Z hiroaki quit (Ping timeout: 272 seconds) 2020-05-27T06:58:00Z oxum joined #lisp 2020-05-27T06:59:48Z oxum quit (Remote host closed the connection) 2020-05-27T07:00:04Z oxum joined #lisp 2020-05-27T07:01:41Z pve joined #lisp 2020-05-27T07:03:05Z boeg: ah, my bad- the problem isn't that it chooses the wrong system, but that the wrong system has a dependency, and when the systems are defined, it looks for the dependency and fails, even though its not the system that is used 2020-05-27T07:10:20Z orivej quit (Ping timeout: 256 seconds) 2020-05-27T07:10:23Z orivej_ joined #lisp 2020-05-27T07:11:13Z heisig joined #lisp 2020-05-27T07:11:39Z SGASAU quit (Remote host closed the connection) 2020-05-27T07:12:39Z SGASAU joined #lisp 2020-05-27T07:12:40Z jonatack_ quit (Ping timeout: 246 seconds) 2020-05-27T07:13:16Z jonatack_ joined #lisp 2020-05-27T07:17:30Z gaqwas quit (Changing host) 2020-05-27T07:17:30Z gaqwas joined #lisp 2020-05-27T07:22:48Z liberliver joined #lisp 2020-05-27T07:25:45Z SGASAU quit (Remote host closed the connection) 2020-05-27T07:25:46Z shifty quit (Ping timeout: 260 seconds) 2020-05-27T07:26:36Z sz0 joined #lisp 2020-05-27T07:26:51Z SGASAU joined #lisp 2020-05-27T07:28:17Z bhartrihari left #lisp 2020-05-27T07:28:24Z bhartrihari joined #lisp 2020-05-27T07:32:38Z bhartrihari left #lisp 2020-05-27T07:32:43Z bhartrihari joined #lisp 2020-05-27T07:37:33Z orivej joined #lisp 2020-05-27T07:37:42Z bhartrihari left #lisp 2020-05-27T07:37:44Z bhartrihari joined #lisp 2020-05-27T07:37:48Z orivej_ quit (Ping timeout: 272 seconds) 2020-05-27T07:40:45Z seok quit (Remote host closed the connection) 2020-05-27T07:43:11Z orivej quit (Ping timeout: 260 seconds) 2020-05-27T07:43:14Z orivej_ joined #lisp 2020-05-27T07:47:14Z hineios3 joined #lisp 2020-05-27T07:49:12Z orivej_ quit (Ping timeout: 272 seconds) 2020-05-27T07:50:30Z hineios quit (Ping timeout: 260 seconds) 2020-05-27T07:50:30Z hineios3 is now known as hineios 2020-05-27T07:53:42Z ChoHag: What data type can I use to hold on to a blob of undecoded binary data? 2020-05-27T07:53:49Z jonatack_ quit (Quit: jonatack_) 2020-05-27T07:54:06Z ChoHag: Some equivalent of scheme's bytevector perhaps. 2020-05-27T07:54:12Z beach: (vector (unsigned-byte 8)) probably. 2020-05-27T07:57:52Z space_otter quit (Remote host closed the connection) 2020-05-27T07:58:28Z jonatack joined #lisp 2020-05-27T07:58:58Z space_otter joined #lisp 2020-05-27T08:00:44Z Kundry_Wag joined #lisp 2020-05-27T08:01:00Z SGASAU quit (Remote host closed the connection) 2020-05-27T08:01:31Z beach: ChoHag: Did you faint? 2020-05-27T08:02:35Z SGASAU joined #lisp 2020-05-27T08:03:57Z ChoHag: No, wading through some of this so-called documentation. 2020-05-27T08:07:10Z no-defun-allowed: What documentation? 2020-05-27T08:07:17Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-27T08:07:27Z ChoHag: Quite. 2020-05-27T08:08:43Z no-defun-allowed: What documentation? 2020-05-27T08:09:40Z gaqwas quit (Remote host closed the connection) 2020-05-27T08:09:43Z antaoiseach left #lisp 2020-05-27T08:09:48Z doomlist3 joined #lisp 2020-05-27T08:10:08Z liberliver1 joined #lisp 2020-05-27T08:11:07Z liberliver quit (Ping timeout: 246 seconds) 2020-05-27T08:11:08Z liberliver1 is now known as liberliver 2020-05-27T08:11:24Z ChoHag: A concise description of type specifiers would be nice. 2020-05-27T08:12:03Z beach: ChoHag: It is customary to at least acknowledge that you saw the advice that was given to you. 2020-05-27T08:12:11Z no-defun-allowed: What document are you expecting to have a concise description of type specifiers? 2020-05-27T08:12:33Z ChoHag: beach: It is not. Welcome to IRC. Enjoy your stay. 2020-05-27T08:12:47Z beach: I see. 2020-05-27T08:12:55Z splittist_ joined #lisp 2020-05-27T08:12:56Z rutabaga_ joined #lisp 2020-05-27T08:12:56Z lukego_ joined #lisp 2020-05-27T08:12:57Z abbe_ joined #lisp 2020-05-27T08:13:03Z creat_ joined #lisp 2020-05-27T08:13:59Z ChoHag: It is equally customary (you mean "polite" by the way) to not get stroppy when acknowledgements are not immediately forthcoming, especially on an asynchronous medium. 2020-05-27T08:15:25Z ChoHag: If you must know I am in the process of reading the (scant) documentation to expand on the knowledge you gave in order to find out if it helps, how much, and (if I were to have not forgotten and/or the conversation moved on by that time) thank the original source appropriate to its usefulness. 2020-05-27T08:15:35Z beach: I will take that advice into account. 2020-05-27T08:16:03Z no-defun-allowed: What document are you reading? 2020-05-27T08:16:22Z ChoHag: At the moment I'm sidetracked reading a semi-rant about tulpes vs. lists. 2020-05-27T08:17:14Z aeth: ChoHag: What I literally do in my Scheme is essentially: (deftype octet () `(unsigned-byte 8)) (deftype bytevector () `(simple-array octet)) 2020-05-27T08:17:52Z ChoHag: (Which is partly why I haven't got around to fawning over beach yet) 2020-05-27T08:18:28Z aeth: ChoHag: CL types are basically like C types except instead of hardcoding the number, it's programmable. (unsigned-byte 8) instead of uint8_t, (signed-byte 8) instead of int8_t... 2020-05-27T08:18:35Z ChoHag: aeth: As in, that is how bytevector is defined rather than as a type of its own? 2020-05-27T08:18:56Z aeth: ChoHag: Correct, that's how you define a Scheme bytevector in CL to the best of my knowledge. 2020-05-27T08:20:06Z creat quit (*.net *.split) 2020-05-27T08:20:07Z rutabaga quit (*.net *.split) 2020-05-27T08:20:07Z deselby quit (*.net *.split) 2020-05-27T08:20:09Z lukego quit (*.net *.split) 2020-05-27T08:20:09Z splittist quit (*.net *.split) 2020-05-27T08:20:09Z abbe quit (*.net *.split) 2020-05-27T08:20:09Z rutabaga_ is now known as rutabaga 2020-05-27T08:20:10Z lukego_ is now known as lukego 2020-05-27T08:20:13Z splittist_ is now known as splittist 2020-05-27T08:20:42Z jacks2 quit (Quit: http://www.okay.uz/ (Session timeout)) 2020-05-27T08:20:50Z aeth: ChoHag: My bad, this includes multidimensional arrays, so you might want to further restrict it to (*) which says any size as long as it's 1D 2020-05-27T08:20:57Z aeth: then that's (simple-array octet (*)) 2020-05-27T08:21:07Z no-defun-allowed: aeth: Should it be (simple-array octet (*)) for a vector? 2020-05-27T08:21:47Z bfig_ joined #lisp 2020-05-27T08:21:56Z pjb: ChoHag: note that beach's been on irc for more than 25 years, and available online using one protocol or another for at least 40 years. 2020-05-27T08:22:22Z oxum quit (Remote host closed the connection) 2020-05-27T08:22:50Z ChoHag: He beats me by a decade or so then. 2020-05-27T08:23:30Z ChoHag: You'd think that after so many years, 7 minutes no longer seems such a long time. 2020-05-27T08:23:38Z pjb: ChoHag: that's the magic of lisp channels: whatever your age, you'll find older people more experienced than you. 2020-05-27T08:24:28Z KawJe joined #lisp 2020-05-27T08:24:29Z beach: pjb: Thanks, but don't bother. I got the point. 2020-05-27T08:24:36Z ChoHag: Also perhaps he'd be aware that there are such things as timezones? I'm not even halfway through coffee number 1 over here. 2020-05-27T08:24:39Z KawJe quit (Remote host closed the connection) 2020-05-27T08:24:55Z pjb: LOL. beach + timezones :-) 2020-05-27T08:25:02Z bfig quit (Ping timeout: 260 seconds) 2020-05-27T08:25:17Z pjb: ChoHag: Hint: this channel is logged. You may want to browse the history. 2020-05-27T08:25:27Z KawJe joined #lisp 2020-05-27T08:26:33Z aeth: ChoHag: The only way you can get "a type of its own" is by using OOP, such as defclass or defstruct, so it's much more efficient (and you get to keep using language built-ins) to just use DEFTYPE for arrays and numbers, or in this case arrays of numbers. 2020-05-27T08:26:54Z ChoHag: That's basically what the rant is 'complaining' about. 2020-05-27T08:27:22Z ChoHag: Basically that it's fantastically useful to represent tuples as typeless lists, except when it breaks and/or confuses things. 2020-05-27T08:28:27Z deselby joined #lisp 2020-05-27T08:29:10Z aeth: ChoHag: For lists, you can define your own out of your own conses with DEFSTRUCT at the cost of about 30% performance (at least for my custom ones) and not being able to use built-in functions (unless it's a rare implementation that supports trivial-extensible-sequences). https://github.com/Shinmera/trivial-extensible-sequences/ 2020-05-27T08:29:22Z space_otter quit (Remote host closed the connection) 2020-05-27T08:29:32Z aeth: Custom array-like things are more difficult, potentially impossible (portably) depending on what you want to do. 2020-05-27T08:29:35Z ChoHag: That seems quite a lot of overhead. 2020-05-27T08:30:05Z aeth: Well, the overhead was probably the typechecking, since I defined a :type for the contents. 2020-05-27T08:30:18Z ChoHag: Even so. 2020-05-27T08:30:23Z aeth: Some of it might also be using naive cons-based list algorithms rather than SBCL's optimized ones, too 2020-05-27T08:30:44Z space_otter joined #lisp 2020-05-27T08:33:01Z aeth: But, yes, custom collections (not just sequences, also things like custom hash tables) are often fairly expensive and there isn't a rich set in the standard library (at least by the standards of something like C++ or Java). 2020-05-27T08:33:31Z space_otter quit (Remote host closed the connection) 2020-05-27T08:34:00Z aeth: And if you want a convenient API, most implementations have a fairly expensive generic dispatch vs. regular function calls. 2020-05-27T08:34:35Z beach: aeth: Let's hope that will change in the not-too-distant future. 2020-05-27T08:34:44Z mangul joined #lisp 2020-05-27T08:35:21Z aeth: beach: I don't think method calls are normally inlined even when the type is inferred/declared, which could help a bit with this sort of thing. 2020-05-27T08:35:43Z aeth: Even if the dynamic semantics means that it still might have to do some small lookup (to check for e.g. a :before?), maybe this would help. 2020-05-27T08:35:46Z phoe: aeth: method calls? you mean method-function calls? 2020-05-27T08:35:48Z beach: But we are currently discussing a technique that would allow that. 2020-05-27T08:35:49Z phoe: or GF calls? 2020-05-27T08:36:19Z shangul quit (Ping timeout: 246 seconds) 2020-05-27T08:36:25Z aeth: phoe: GF, yes. They're defined with defmethod (okay, they're not, but they kind of are, since you can implicitly create a defgeneric from a defmethod) 2020-05-27T08:36:46Z phoe: aeth: see Marco Heisig's work on that matter 2020-05-27T08:36:47Z beach: aeth: Er, no, the effective-method-function would already contain the auxiliary methods that are applicable. There is no "lookup" at run time. 2020-05-27T08:37:39Z phoe: in general, however, it's impossible to avoid runtime checks of any kind because GFs are extensible at runtime. that's why his technique explicitly shuts off any further extensibility of the sealed GFs 2020-05-27T08:37:54Z beach: phoe: Better yet, we are currently sketching a technique that would do most of those optimizations automatically. 2020-05-27T08:38:22Z doomlist3 quit (Quit: not part but quit) 2020-05-27T08:38:23Z corpix_ quit (Remote host closed the connection) 2020-05-27T08:38:27Z phoe: beach: very nice 2020-05-27T08:38:37Z shka_ quit (Ping timeout: 264 seconds) 2020-05-27T08:38:47Z beach: We hope so. We are quite excited about this possibility. 2020-05-27T08:38:49Z corpix joined #lisp 2020-05-27T08:39:05Z beach: We have some thread-safety issues to resolve though. 2020-05-27T08:39:47Z anticrisis quit (Read error: Connection reset by peer) 2020-05-27T08:42:05Z aeth: IMO what CL is generally lacking, at least in common use, is efficient, immutable, and typed-element variations of sequences/hash-tables/etc. like one might expect in other programming languages. 2020-05-27T08:42:07Z Kundry_Wag joined #lisp 2020-05-27T08:42:25Z beach: Here we go again. 2020-05-27T08:43:02Z beach: Yeah, we need a new standard, decided upon by the participants of #lisp. 2020-05-27T08:43:06Z aeth: And somewhat relatedly, "memory-dense" struct pseudo-arrays for C/C++-like code. At the moment, a struct of numerical arrays is trivial as long as the implementation supports the types, while an array of structs is inefficient. The distinction is that the semantics are incompatible so you couldn't just (make-array 42 :element-type your-struct) 2020-05-27T08:43:13Z aeth: beach: None of this requires a new standard. 2020-05-27T08:43:34Z aeth: It just requires a handful of extensions, and then libraries on top of that. 2020-05-27T08:44:10Z aeth: Although I guess arrayable structs could violate standard semantics a bit if done poorly. 2020-05-27T08:44:12Z beach: Those "dense arrays" pose a serious problem with object identity. 2020-05-27T08:44:26Z beach: I can't see anyway it can be done right. 2020-05-27T08:45:19Z ChoHag: That's no reason not throw a cascade of teenagers with no attention span at it. 2020-05-27T08:45:37Z aeth: beach: They couldn't be done as arrays, they would have to be done as their own thing. I think that they would have to be immutable vector-like sequences with mutable contents. So (setf (fooref foo 42) 1234) or even (setf (fooref foo 42) (make-whatever)) would be impossible 2020-05-27T08:46:03Z phoe: that's no longer standard structs though 2020-05-27T08:46:04Z aeth: beach: But (setf (foobar (fooref foo 42)) 37) would be possible 2020-05-27T08:46:39Z luis: ralt: pinging is the way to go. There's fierce competition in the things-to-do-outside-work space :) Just merged one of the PRs. BTW, the Git gospel prescribes that the subject line shouldn't end with a period 2020-05-27T08:46:50Z aeth: phoe: No, it's no longer standard vectors/arrays. It could be standard structs, but you might need/want a way to forbid inheritance. 2020-05-27T08:46:58Z Kundry_Wag quit (Ping timeout: 260 seconds) 2020-05-27T08:47:23Z aeth: phoe: Of course, if the implementation doesn't support :type in struct slots or it isn't an optimized type, then the "dense" part would effectively just be pointers. 2020-05-27T08:48:49Z heisig: aeth: You can always submit a pull request to your implementation of choice :) 2020-05-27T08:49:25Z aeth: heisig: Potentially, but if not done right it'd just be another thing like SBCL's multiple precision library 2020-05-27T08:50:06Z aeth: It also afaik would require (1) generic sequences to be more acceptable and (2) immutable generic sequences to in some sense be expected. 2020-05-27T08:50:50Z oxum joined #lisp 2020-05-27T08:51:16Z heisig: I am working on (1). 2020-05-27T08:51:21Z phoe: aeth: if I understand you correctly, then your "dense struct arrays" would not preserve identity of individual structs. It's more like a collection of densely packed places. 2020-05-27T08:51:21Z aeth: The idea would be that if you have a simple type, a specialized array, one of these pseudo-arrays, or a struct (but inheritance interferes with this, but you could make it a length-1 pseudo-array)... then you could put it in a :type'd slot in a struct in a pseudo-array, potentially recursively, and now you have a way to potentially direct-port a lot of C++-ish efficient code, avoiding FFI 2020-05-27T08:53:36Z aeth: phoe: No, it should preserve the identity of individual structs. You could (fooref foo 42) [or (elt foo 42) if generic] to get the 43rd struct from the foovector, but you couldn't (setf (fooref foo 42) (make-whatever-struct)) because the foovector is immutable. The main complication is that you'd consider the struct allocated in the foovector, not on its own in the heap. 2020-05-27T08:53:42Z beach: heisig: We should just go ahead an implement "dense arrays" for SICL. :) 2020-05-27T08:54:13Z aeth: phoe: Now, the complication would be GC as described since a reference to the 43rd struct from the foovector could be kept after every other reference to the foovector is gone, which kind of defeats a big advantage of specialized arrays. 2020-05-27T08:54:40Z phoe: aeth: how would you implement that? you'd need a Lisp object, and there's no real Lisp object in such a vector 2020-05-27T08:55:24Z oxum quit (Ping timeout: 258 seconds) 2020-05-27T08:55:57Z aeth: phoe: It's a real Lisp object, it's just allocated into the foovector instead of on the heap (without the type tag, to save space? honestly, I wouldn't mind wasting the RAM that much), which when used recursively to build elaborate data structures could allow direct porting of many C/C++ data structure concepts. 2020-05-27T08:56:19Z heisig: beach: Yes, we'd need that anyway for good C++ interoperability :) 2020-05-27T08:56:23Z phoe: aeth: OK. 2020-05-27T08:56:38Z aeth: That is a foovector of structs of foovectors of structs of (unsigned-byte 8) arrays or whatever gives you things that are fairly similar to what you might see in C. 2020-05-27T08:56:44Z beach: heisig: Exactly! 2020-05-27T08:57:31Z beach: We already have immobile code for that very purpose. 2020-05-27T08:58:06Z aeth: phoe: Every time I bring this up, I adapt it to further criticism and I guess pretty soon I'll wind up with a CDR out of it (if those are still a thing) 2020-05-27T08:58:16Z phoe: aeth: in theory, they are. 2020-05-27T08:59:00Z aeth: Oh, and if you make the foovector "static" then you could even use this to replace static-vectors/etc. with a more robust FFI-friendly thing (at least when using FFI-friendly types). 2020-05-27T08:59:12Z aeth: Of course, you wouldn't normally want this, only when FFIing 2020-05-27T08:59:22Z oxum joined #lisp 2020-05-27T08:59:59Z aeth: I guess you could call them struct-vectors? 2020-05-27T09:00:17Z aeth: It has the disadvantage that "svref" is already taken. 2020-05-27T09:00:53Z phoe: aeth: vector-structs! 2020-05-27T09:01:02Z phoe: #'vsref will totally not confuse anyone 2020-05-27T09:01:15Z aeth: You could call them struct-arrays and allow them to be multidimensional and a svarray of size '() is essentially just a special, potentially-more-FFI-friendly struct. 2020-05-27T09:01:38Z aeth: You probably wouldn't want to FFI anything that's not size () or (*) though 2020-05-27T09:02:06Z aeth: Also, then they wouldn't always be sequences. 2020-05-27T09:03:54Z liberliver quit (Ping timeout: 240 seconds) 2020-05-27T09:05:39Z mangul is now known as shangul 2020-05-27T09:06:10Z aeth: phoe: One potential complicating factor is that you might want one layer of indirection. That is, if you have [A|B|C|D|...] and want to "delete" B, then you might want to do it by copying D into B (manually, of course... the data structure wouldn't know how to do this), but then you have [A|D|C|...] and any reference to D is now wrong and any reference to B is now D. So these might be most useful if there's some kind of locative. 2020-05-27T09:06:44Z aeth: (Would "locative" be the correct concept? Not sure.) 2020-05-27T09:07:20Z aeth: But it would still be pretty useful even if it's just the simple form of memory-dense struct-arrays 2020-05-27T09:07:48Z terpri_ quit (Remote host closed the connection) 2020-05-27T09:08:22Z terpri_ joined #lisp 2020-05-27T09:10:49Z aeth: (In my example, I also didn't say if the "..." is there and treated as unused or if it's actually growing/shrinking like e.g. vector-push/vector-push-extend) 2020-05-27T09:11:18Z aeth: heisig: What do you think? 2020-05-27T09:11:34Z Necktwi quit (Ping timeout: 265 seconds) 2020-05-27T09:12:24Z liberliver joined #lisp 2020-05-27T09:13:47Z phoe: aeth: you have problems with object identity if you delete elements like that. For all purposes, you don't delete B; you just overwrite all of its slots with values taken from D, so B is still B, it just has different contents. 2020-05-27T09:14:15Z phoe: this also means that D is likely still there, just inaccessible, if we use the fill pointer analogy. 2020-05-27T09:15:22Z phoe: that is, unless you use some sort of locatives which preserve identity, but then the locatives become the actual structs and the vector simply becomes external storage for them. bam, we've reinvented displaced vectors, in a way. 2020-05-27T09:16:22Z phoe: I therefore don't think deleting stuff from such a vector is a meaningful operation, not unless you want to copy the vector in the process. 2020-05-27T09:17:14Z bhartrihari left #lisp 2020-05-27T09:17:19Z bhartrihari joined #lisp 2020-05-27T09:18:28Z heisig: aeth: Whenever I really care that much about the memory footprint of structs, I use a single struct with specialized arrays for each 'slot'. 2020-05-27T09:19:54Z heisig: I am also not sure about the capabilities of CFFI. It could be that such vectors are already supported. 2020-05-27T09:20:01Z aeth: heisig: Yes, that's what I've been doing in my game engine, just making structs of arrays. 2020-05-27T09:21:49Z aeth: phoe: Right. In this case, I think that the perfect (maintaining object identity even in the case of my example) is probably the enemy of the good (having struct-arrays in the first place).r 2020-05-27T09:22:10Z aeth: s/.r// 2020-05-27T09:23:37Z RedMallet joined #lisp 2020-05-27T09:26:52Z aeth: phoe: Similarly not being immutable and doing something like e.g. (setf (saref foo 42) (saref foo 43)) to copy elt-43 into elt-42 would be nice to have, but would probably be too complicated since (1) (setf (saref foo 42) (make-barfoo)) would copy-into which isn't what you'd expect and (2) now you'd need a way to define copy-into for every struct, and is it deep vs. shallow, etc., and now you enter into the mess of what C/C++ has to deal wi 2020-05-27T09:27:49Z nicktick quit (Ping timeout: 264 seconds) 2020-05-27T09:28:15Z aeth: And those are the two main drawbacks I can think of 2020-05-27T09:30:39Z phoe: aeth: 1) stems from the fact that such vectors naturally wouldn't preserve identity, and 2) is solvable by "shallow copies by default, write your own SETF function if you want more" 2020-05-27T09:38:53Z Grisha joined #lisp 2020-05-27T09:41:14Z Grisha: hello everyone, I'm trying to build an s-expr parser using Java CUP ( = bison/yacc counterpart) and JLex. It all goes quite well, but I'm struggling with how to handle single quotes, should it be performed during the lexing or parsing stage. I think I need to do it during the parse pass, since quoting a non-atom should be able to consume the whole quoted expression (can be of an arbitrary depth), but how 2020-05-27T09:41:20Z Grisha: would I ensure that there is no space between the quote itself and the thing being quoted? 2020-05-27T09:41:42Z phoe: Grisha: `' ( 1 2 3 )` 2020-05-27T09:41:47Z phoe: this is equivalent to '(1 2 3) 2020-05-27T09:41:55Z Grisha: is it? 2020-05-27T09:41:58Z phoe: yes! 2020-05-27T09:42:05Z phoe: try it in the CL REPL 2020-05-27T09:42:44Z Grisha: hmm, not in elisp 2020-05-27T09:43:02Z phoe: ELISP> ' (1 2 3) 2020-05-27T09:43:02Z phoe: (1 2 3) 2020-05-27T09:43:06Z phoe: works for me in IELM 2020-05-27T09:43:46Z phoe: also, Lisp is not traditinally parsed or lexed - it is read 2020-05-27T09:43:47Z phoe: clhs 2.2 2020-05-27T09:43:47Z specbot: Reader Algorithm: http://www.lispworks.com/reference/HyperSpec/Body/02_b.htm 2020-05-27T09:43:50Z Grisha: trying to evaluate "' (a b c)" in *scratch* throws an error 2020-05-27T09:44:01Z phoe: Grisha: M-x ielm 2020-05-27T09:44:19Z Grisha: yeah, I'm aware of the luxury of using lisp to read in lisp expressions, thank you 2020-05-27T09:44:19Z phoe: but, that's already slightly off-topic - #lisp is a Common Lisp place 2020-05-27T09:44:54Z Grisha: yeah, sbcl is fine with a space between the quote and the quoted object 2020-05-27T09:44:56Z Grisha: thanks a lot! 2020-05-27T09:45:00Z phoe: one can implement a Lisp reader in a non-Lisp, too, though 2020-05-27T09:45:25Z phoe: the algorithm is rather clean and non-dependent on Lisp; I think that ABCL has its reader written in Java 2020-05-27T09:45:26Z beach: That's very difficult. 2020-05-27T09:45:39Z phoe: or is that the stream class?... one second 2020-05-27T09:45:57Z beach: #. will be very difficult to implement. 2020-05-27T09:45:58Z phoe: https://github.com/armedbear/abcl/blob/master/src/org/armedbear/lisp/LispReader.java 2020-05-27T09:46:08Z phoe: obviously, you can't have read-eval without a Lisp evaluator 2020-05-27T09:46:34Z phoe: but I guess that if Grisha is implementing a sexp reader without Lisp then they won't bother with read-eval 2020-05-27T09:46:49Z no-defun-allowed: If one has an implementation of a stream, they are already more prepared than most people to try to read (a subset of) Common Lisp expressions. 2020-05-27T09:47:37Z beach: So then the question becomes: What subset of READ is still acceptable for it to be called a "Lisp reader?" 2020-05-27T09:47:53Z Grisha: I'm doing this (s-expr lexer/parser) as a preparatory example before going to a larger grammar 2020-05-27T09:48:03Z Grisha: just to have something simple and with a well-defined scope 2020-05-27T09:48:24Z phoe: beach: I don't think Grisha is trying to read Common Lisp code, just some whatever subset of s-expressions 2020-05-27T09:48:34Z beach: Sure. 2020-05-27T09:48:48Z Grisha: exactly, just a small subset of s-exprs 2020-05-27T09:50:00Z jesse1010 joined #lisp 2020-05-27T09:54:17Z paul0 quit (Ping timeout: 246 seconds) 2020-05-27T09:54:40Z pjb: Grisha: the C-x C-e command in *scratch* works by moving the cursor using text-based operations. 2020-05-27T09:54:45Z phoe: Grisha: the *scratch* error is likely because emacs attempts to evaluate either (a b c) or ' alone from the other part 2020-05-27T09:54:51Z phoe: oh right, what pjb just said 2020-05-27T09:54:53Z pjb: Grisha: basically, it uses backward-sexp. 2020-05-27T09:55:14Z Grisha: pjb: oh yeah, makes sense 2020-05-27T09:55:22Z pjb: Grisha: ' (1 2 3)| M-x backward-sexp gives ' |(1 2 3) not |' (1 2 3) 2020-05-27T09:55:30Z Grisha: I somehow assumed that C-j would eval the whole line 2020-05-27T09:55:34Z Grisha: you're correct 2020-05-27T09:56:16Z Grisha: folks, you've been most helpful, thank you everyone 2020-05-27T09:56:22Z phoe: Grisha: <3 2020-05-27T09:56:31Z pjb: Grisha: otherwise, a lot of reader macros and dispatching reader macros work by reading a sexp after having read the macro character or the argument, options and dispatching macro character. This means that any whitespaces can be inserted between the later and the former. 2020-05-27T09:57:14Z Grisha: yeah, it would mean that I can handle the single quote (or the backtick or whatever similar construct) by a parser rule 2020-05-27T09:57:22Z Grisha: having single quote as a terminal 2020-05-27T09:57:24Z pjb: Or even, that you can use other reader macros there, such as #. ! 2020-05-27T09:58:13Z pjb: (quote (#P "foo" #' foo ' foo #2A #.(read-from-string "( ( 1 2 3) (a b c) (dx dy dz))"))) #| --> (#P"foo" #'foo 'foo #2A((1 2 3) (a b c) (dx dy dz))) |# 2020-05-27T09:58:14Z phoe: Xach: beep boop 2020-05-27T09:58:29Z amerlyq joined #lisp 2020-05-27T09:59:23Z pjb: Grisha: I don't know what you mean by "handle the single quote", but if you are implementing a Common Lisp reader, you must use the Common Lisp reader algorithm that is specified in chapter 2. Note that this is the ONLY algorithm that is specified in CLHS!!! 2020-05-27T10:00:13Z phoe: pjb: they are *not* implementing a Common Lisp reader, which we have established twelve minutes ago. 2020-05-27T10:00:50Z pjb: Grisha: also, have a look at Rivest SEXPS, Expired November 4, 1997 RFC S-Expressions draft-rivest-sexp-00.txt 2020-05-27T10:01:49Z Grisha: pjb: thank you 2020-05-27T10:02:02Z Grisha: my initial plan was to stick to quite a limited subset of s-exprs 2020-05-27T10:02:19Z phoe: what's your final plan? 2020-05-27T10:02:22Z Grisha: it's just an exercise for me to get used to parsing/lexing using my tools 2020-05-27T10:03:00Z Grisha: my final plan is to introduce the notion of the single quote to my parser, call it a day and continue with a larger grammar 2020-05-27T10:03:26Z Grisha: I'm going through the Stanford's cs143 compilers course 2020-05-27T10:04:00Z phoe: Grisha: if your tools allow this, you might want to use the identity 'foo == (quote foo) somewhere 2020-05-27T10:04:44Z Grisha: that sounds great, at the same time I'm a bit skeptical if the transformations like this should be part of parsing 2020-05-27T10:05:01Z phoe: that's how the quote reader macro works in Lisp 2020-05-27T10:05:02Z Grisha: what you're talking about is manipulating the AST 2020-05-27T10:05:30Z Grisha: right now I'm interested in just generating it from input 2020-05-27T10:07:00Z phoe: I guess you can lex `'foo` as `# foo` and then, during the parsing step, for each `# x` encountered in the syntax, instead collect `(quote x)` 2020-05-27T10:07:05Z Grisha: in this Java CUP tool, you specify your grammar by saying "an s-expr is either an atom or a list", "an atom is either a number, a string, or a symbol", "a list is an open paren followed by zero or more s-exprs followed by a closing paren" and so on 2020-05-27T10:07:13Z phoe: definitely not the Lisp way, but if we must use lexers and parsers... 2020-05-27T10:08:10Z Grisha: doing the quote during the lex pass is difficult becauase if the quoted s-expr a list, we don't really know how nested it is 2020-05-27T10:08:12Z shangul quit (Ping timeout: 256 seconds) 2020-05-27T10:08:44Z Grisha: all a lexer can do is just simple pattern matching by regexes 2020-05-27T10:08:48Z axion: an atom is either what now? 2020-05-27T10:09:39Z Grisha: number, string, or symbol (plus many things I'm missing like characters and so on) 2020-05-27T10:09:47Z phoe: Grisha: you don't need to care about that in the lexing stage; if you have (1 2 '(3 4)) just read that as a four-element list where the third element is a loose quote. 2020-05-27T10:09:58Z phoe: you can fix that up in the parsing stage. 2020-05-27T10:10:14Z Grisha: is then "'(3" going to be a token?? 2020-05-27T10:10:28Z Grisha: a single token? 2020-05-27T10:10:35Z phoe: is "(3" going to be a single token? 2020-05-27T10:10:55Z Grisha: it's not how I understood lexing 2020-05-27T10:11:10Z phoe: let's take that to #lispcafe - it's getting off-topic 2020-05-27T10:15:18Z Grisha quit (Quit: Lost terminal) 2020-05-27T10:17:52Z oxum quit (Remote host closed the connection) 2020-05-27T10:22:57Z oxum joined #lisp 2020-05-27T10:25:15Z Bourne quit (Read error: Connection reset by peer) 2020-05-27T10:27:28Z oxum quit (Ping timeout: 256 seconds) 2020-05-27T10:32:03Z cantstanya quit (Ping timeout: 240 seconds) 2020-05-27T10:34:50Z cantstanya joined #lisp 2020-05-27T10:35:41Z SGASAU quit (Remote host closed the connection) 2020-05-27T10:35:48Z hineios: phoe found it: https://github.com/daewok/lisp-devel-docker 2020-05-27T10:36:12Z hineios: there is a ql build that contains all the necessary dependencies. 2020-05-27T10:36:27Z SGASAU joined #lisp 2020-05-27T10:39:34Z phoe: hineios: ! 2020-05-27T10:39:36Z phoe: thank you! 2020-05-27T10:40:06Z jonatack quit (Quit: jonatack) 2020-05-27T10:40:28Z FreeBirdLjj joined #lisp 2020-05-27T10:42:54Z Kundry_Wag joined #lisp 2020-05-27T10:44:01Z oxum joined #lisp 2020-05-27T10:44:27Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2020-05-27T10:46:29Z jonatack joined #lisp 2020-05-27T10:47:37Z Kundry_Wag quit (Ping timeout: 264 seconds) 2020-05-27T10:48:03Z Bourne joined #lisp 2020-05-27T10:49:37Z Lord_of_Life_ joined #lisp 2020-05-27T10:49:52Z cosimone joined #lisp 2020-05-27T10:50:37Z Lord_of_Life quit (Ping timeout: 264 seconds) 2020-05-27T10:50:57Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-27T10:51:09Z monokrom joined #lisp 2020-05-27T10:57:07Z orivej joined #lisp 2020-05-27T10:59:19Z karlosz quit (Quit: karlosz) 2020-05-27T10:59:52Z karlosz joined #lisp 2020-05-27T10:59:57Z karlosz quit (Remote host closed the connection) 2020-05-27T11:04:16Z beach: axion: Anything but a CONS is an atom. 2020-05-27T11:05:15Z SGASAU quit (Remote host closed the connection) 2020-05-27T11:05:17Z SGASAU` joined #lisp 2020-05-27T11:07:16Z milanj joined #lisp 2020-05-27T11:10:03Z oxum quit (Remote host closed the connection) 2020-05-27T11:10:51Z oxum joined #lisp 2020-05-27T11:11:10Z scymtym quit (Ping timeout: 260 seconds) 2020-05-27T11:11:24Z axion: beach: Of course. That is why I was alarmed at his comment. 2020-05-27T11:11:47Z jonatack quit (Ping timeout: 240 seconds) 2020-05-27T11:12:48Z beach: Ah, sorry. 2020-05-27T11:13:59Z jonatack joined #lisp 2020-05-27T11:15:38Z oxum quit (Ping timeout: 256 seconds) 2020-05-27T11:25:38Z Bike joined #lisp 2020-05-27T11:27:26Z shifty joined #lisp 2020-05-27T11:31:00Z KawJe quit (Ping timeout: 256 seconds) 2020-05-27T11:35:31Z scymtym joined #lisp 2020-05-27T11:35:43Z RedMallet quit (Quit: WeeChat 2.8) 2020-05-27T11:35:57Z oxum joined #lisp 2020-05-27T11:37:07Z KawJe joined #lisp 2020-05-27T11:39:01Z nikka joined #lisp 2020-05-27T11:41:43Z KawJe quit (Ping timeout: 256 seconds) 2020-05-27T11:43:08Z papachan_ is now known as papachan 2020-05-27T11:48:02Z igemnace quit (Remote host closed the connection) 2020-05-27T11:52:08Z grewal quit (Ping timeout: 256 seconds) 2020-05-27T11:52:16Z grewal joined #lisp 2020-05-27T11:52:56Z cosimone quit (Quit: Quit.) 2020-05-27T11:56:16Z wxie joined #lisp 2020-05-27T11:57:13Z grewal quit (Ping timeout: 264 seconds) 2020-05-27T11:59:05Z grewal joined #lisp 2020-05-27T11:59:12Z EvW joined #lisp 2020-05-27T12:13:09Z Xach: phoe: was ist los? 2020-05-27T12:13:34Z Xach: (i have not been at the computer much lately, so email might work better than IRC for contact) 2020-05-27T12:17:43Z X-Scale` joined #lisp 2020-05-27T12:18:54Z X-Scale quit (Ping timeout: 240 seconds) 2020-05-27T12:18:54Z X-Scale` is now known as X-Scale 2020-05-27T12:20:05Z oxum quit (Remote host closed the connection) 2020-05-27T12:20:18Z twelvemonkeys quit (Ping timeout: 256 seconds) 2020-05-27T12:20:46Z oxum joined #lisp 2020-05-27T12:21:22Z orivej quit (Ping timeout: 246 seconds) 2020-05-27T12:21:47Z orivej joined #lisp 2020-05-27T12:21:56Z twelvemonkeys joined #lisp 2020-05-27T12:22:02Z phoe: Xach: OK - where should I send mail? 2020-05-27T12:22:17Z jmercouris: there is one on his GitHub i believe 2020-05-27T12:22:38Z phoe: OK, will use that one. 2020-05-27T12:24:42Z jmercouris: anything but a cons is an atom? 2020-05-27T12:24:50Z jmercouris: is a class an atom? 2020-05-27T12:24:52Z Bike: uhhuh. 2020-05-27T12:24:56Z phoe: yes 2020-05-27T12:25:04Z jmercouris: a class is an atom? 2020-05-27T12:25:04Z phoe: http://clhs.lisp.se/Body/t_atom.htm 2020-05-27T12:25:07Z phoe: jmercouris: yes 2020-05-27T12:25:13Z Bike: (deftype atom () '(not cons)) 2020-05-27T12:25:14Z oxum quit (Remote host closed the connection) 2020-05-27T12:25:19Z jmercouris: ah that 2020-05-27T12:25:22Z jmercouris: ah OK 2020-05-27T12:25:27Z oxum joined #lisp 2020-05-27T12:25:28Z jmercouris: sorry, yes then 2020-05-27T12:25:34Z wxie quit (Ping timeout: 256 seconds) 2020-05-27T12:25:41Z jmercouris: I was thinking of a different lisp implementation 2020-05-27T12:25:56Z jmercouris: it was a book i read on how to make your own lisp in C 2020-05-27T12:26:20Z jmercouris: why is a cons not an atom? 2020-05-27T12:26:31Z phoe: that's the axiom 2020-05-27T12:26:41Z jmercouris: OK 2020-05-27T12:33:39Z jmercouris: any common lisp imap libraries? any luck in porting the allegro one? 2020-05-27T12:33:57Z phoe: jmercouris: you could try https://github.com/xach/zacl 2020-05-27T12:35:53Z jmercouris: hm, that could work 2020-05-27T12:36:15Z gko joined #lisp 2020-05-27T12:36:25Z bitmapper joined #lisp 2020-05-27T12:45:49Z Kundry_Wag joined #lisp 2020-05-27T12:46:38Z paul0 joined #lisp 2020-05-27T12:46:38Z sdumi quit (Read error: Connection reset by peer) 2020-05-27T12:47:45Z sdumi joined #lisp 2020-05-27T12:51:21Z ech joined #lisp 2020-05-27T12:52:07Z bhartrihari left #lisp 2020-05-27T12:52:12Z bhartrihari joined #lisp 2020-05-27T12:53:53Z shangul joined #lisp 2020-05-27T12:55:06Z Lord_of_Life quit (Read error: Connection reset by peer) 2020-05-27T12:57:09Z Lord_of_Life joined #lisp 2020-05-27T13:00:55Z orivej quit (Ping timeout: 246 seconds) 2020-05-27T13:01:28Z orivej joined #lisp 2020-05-27T13:02:10Z Bourne quit (Ping timeout: 256 seconds) 2020-05-27T13:02:42Z shifty quit (Ping timeout: 272 seconds) 2020-05-27T13:03:09Z ArthurStrong joined #lisp 2020-05-27T13:03:18Z shifty joined #lisp 2020-05-27T13:04:57Z pjb quit (Ping timeout: 260 seconds) 2020-05-27T13:05:41Z dddddd joined #lisp 2020-05-27T13:06:15Z andrei_n joined #lisp 2020-05-27T13:06:42Z andrei-n quit (Ping timeout: 256 seconds) 2020-05-27T13:12:50Z Kundry_Wag quit (Remote host closed the connection) 2020-05-27T13:13:06Z Kundry_Wag joined #lisp 2020-05-27T13:14:05Z cosimone joined #lisp 2020-05-27T13:20:26Z beach: jmercouris: Was that "LISP System Implementation" by any chance? 2020-05-27T13:23:48Z rogersm joined #lisp 2020-05-27T13:28:28Z shifty quit (Ping timeout: 256 seconds) 2020-05-27T13:30:49Z SGASAU` quit (Remote host closed the connection) 2020-05-27T13:31:34Z SGASAU` joined #lisp 2020-05-27T13:32:01Z shifty joined #lisp 2020-05-27T13:33:03Z andrei_n quit (Quit: Leaving) 2020-05-27T13:36:58Z orivej quit (Ping timeout: 256 seconds) 2020-05-27T13:39:53Z cmatei_ quit (Quit: Leaving) 2020-05-27T13:41:17Z pjb joined #lisp 2020-05-27T13:41:49Z shka_ joined #lisp 2020-05-27T13:49:51Z rogersm quit (Remote host closed the connection) 2020-05-27T13:50:54Z joast quit (Quit: Leaving.) 2020-05-27T13:53:34Z Josh_2 quit (Ping timeout: 260 seconds) 2020-05-27T13:54:59Z milanj quit (Quit: This computer has gone to sleep) 2020-05-27T13:55:27Z orivej joined #lisp 2020-05-27T13:55:42Z T3ns0r quit (Ping timeout: 260 seconds) 2020-05-27T13:59:31Z jfrancis joined #lisp 2020-05-27T14:00:58Z shifty quit (Ping timeout: 272 seconds) 2020-05-27T14:01:05Z joast joined #lisp 2020-05-27T14:01:26Z shifty joined #lisp 2020-05-27T14:01:45Z Guest91294 quit (Ping timeout: 256 seconds) 2020-05-27T14:02:14Z jfrancis_ quit (Ping timeout: 272 seconds) 2020-05-27T14:02:37Z Guest91294 joined #lisp 2020-05-27T14:04:34Z orivej quit (Ping timeout: 256 seconds) 2020-05-27T14:04:38Z orivej_ joined #lisp 2020-05-27T14:05:38Z Aurora_v_kosmose quit (Quit: brb) 2020-05-27T14:11:03Z Aurora_v_kosmose joined #lisp 2020-05-27T14:15:11Z pjb quit (Ping timeout: 272 seconds) 2020-05-27T14:24:14Z antaoiseach joined #lisp 2020-05-27T14:24:15Z antaoiseach quit (Client Quit) 2020-05-27T14:24:40Z dtman34 joined #lisp 2020-05-27T14:25:40Z gaqwas joined #lisp 2020-05-27T14:25:44Z dyelar joined #lisp 2020-05-27T14:25:47Z dtman34 quit (Remote host closed the connection) 2020-05-27T14:29:44Z dyelar quit (Client Quit) 2020-05-27T14:30:43Z EvW quit (Ping timeout: 260 seconds) 2020-05-27T14:31:06Z oxum_ joined #lisp 2020-05-27T14:34:38Z oxum quit (Ping timeout: 260 seconds) 2020-05-27T14:37:32Z EvW joined #lisp 2020-05-27T14:38:29Z dyelar joined #lisp 2020-05-27T14:39:18Z sdumi quit (Ping timeout: 260 seconds) 2020-05-27T14:40:06Z Josh_2 joined #lisp 2020-05-27T14:42:19Z dlowe: Xach: quicklisp is filing errors on local-time because it can't build slime on sbcl due to missing sb-bsd-sockets 2020-05-27T14:42:30Z oxum joined #lisp 2020-05-27T14:42:31Z phoe: ...due to missing sb-bsd-sockets? 2020-05-27T14:42:59Z dlowe: oh, wait. it looks like maybe my test framework loads swank. wtf 2020-05-27T14:43:16Z phoe: I was about to ask about the link between local-time and swank 2020-05-27T14:44:27Z dlowe: oh, stefil depends on swank 2020-05-27T14:44:37Z dtman34 joined #lisp 2020-05-27T14:45:16Z phoe: https://hub.darcs.net/hu.dwim/hu.dwim.stefil it seems so, yes 2020-05-27T14:45:35Z phoe: a fork, fiasco, seems to not depend on swank 2020-05-27T14:45:52Z oxum_ quit (Ping timeout: 260 seconds) 2020-05-27T14:45:59Z dtman34 quit (Remote host closed the connection) 2020-05-27T14:47:08Z phoe: mood: there's a comment at https://www.reddit.com/r/Common_Lisp/comments/gqhv3g/clisp_merge_request_implement_packagelocal/ you might want to read 2020-05-27T14:47:23Z dlowe: why can't it require sb-bsd-sockets, though? 2020-05-27T14:49:27Z pjb joined #lisp 2020-05-27T14:51:23Z mood: phoe: Thank you 2020-05-27T14:52:19Z Guest91294 is now known as CEnnis91 2020-05-27T14:52:25Z CEnnis91 quit (Changing host) 2020-05-27T14:52:25Z CEnnis91 joined #lisp 2020-05-27T14:52:25Z CEnnis91 quit (Changing host) 2020-05-27T14:52:25Z CEnnis91 joined #lisp 2020-05-27T14:54:28Z X-Scale` joined #lisp 2020-05-27T14:54:51Z smazga joined #lisp 2020-05-27T14:55:10Z X-Scale quit (Ping timeout: 260 seconds) 2020-05-27T14:55:27Z X-Scale` is now known as X-Scale 2020-05-27T14:56:03Z sjl_ joined #lisp 2020-05-27T14:56:17Z phoe: mood: no problem! I don't think I can help much in that area since I am not a C programmer 2020-05-27T14:57:39Z orivej_ quit (Ping timeout: 260 seconds) 2020-05-27T14:57:46Z orivej joined #lisp 2020-05-27T15:00:15Z devon joined #lisp 2020-05-27T15:00:33Z rippa joined #lisp 2020-05-27T15:01:58Z mood: phoe: Yeah, I'm not really sure what not tripping up the garbage collector would entail, but I'll look at it tonight 2020-05-27T15:02:53Z devon: G'day all. 2020-05-27T15:03:07Z devon: FORMAT can left-pad and right-pad, can it center? 2020-05-27T15:04:41Z dlowe: no. I wrote something that will center using format once. 2020-05-27T15:04:41Z milanj joined #lisp 2020-05-27T15:05:47Z dlowe: https://github.com/TempusMUD/cl-tempus/blob/master/src/textui/nanny.lisp#L269 2020-05-27T15:05:52Z dlowe: not that nice 2020-05-27T15:07:10Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-27T15:09:49Z devon: (format t "|~9A|" (format nil "~6<~A~>" "abc")) ; lol, best I can find 2020-05-27T15:10:34Z oxum quit (Remote host closed the connection) 2020-05-27T15:11:26Z shangul quit (Ping timeout: 256 seconds) 2020-05-27T15:22:46Z ech quit (Ping timeout: 256 seconds) 2020-05-27T15:22:57Z pjb quit (Ping timeout: 272 seconds) 2020-05-27T15:24:10Z rogersm joined #lisp 2020-05-27T15:24:14Z bhartrihari left #lisp 2020-05-27T15:24:24Z ech joined #lisp 2020-05-27T15:26:52Z rogersm: Quick question about macros... what is the workaround if the macro contains a comma 2020-05-27T15:27:13Z rogersm: I'm getting a comma cannot be inside a backquote 2020-05-27T15:27:30Z dlowe: rogersm: er, commas only have meaning inside backquoted expressions 2020-05-27T15:27:35Z Josh_2: use a backquote? 2020-05-27T15:27:45Z beach: rogersm: What does it mean for the macro to contain a comma? 2020-05-27T15:28:03Z dlowe: rogersm: do you mean you are getting an error that commas must be inside a backquote? 2020-05-27T15:29:36Z bhartrihari joined #lisp 2020-05-27T15:29:38Z phoe: rogersm: 99% of the time, if you get that error, it means that your backquote is incorrect 2020-05-27T15:29:51Z phoe: could you paste your code at https://plaster.tymoon.eu/edit and link it here? 2020-05-27T15:31:57Z rogersm: https://plaster.tymoon.eu/view/1880#1880 2020-05-27T15:32:01Z rogersm: I hope this clarifies 2020-05-27T15:32:14Z phoe: :component named, descriptable 2020-05-27T15:32:15Z phoe: what is that 2020-05-27T15:32:20Z rogersm: :D 2020-05-27T15:32:29Z phoe: a stray comma! that's what it is 2020-05-27T15:32:31Z rogersm: a comma in the macro to expand 2020-05-27T15:32:41Z sdumi joined #lisp 2020-05-27T15:32:59Z phoe: nope, won't work that way. 2020-05-27T15:33:07Z phoe: a comma must always be inside a matching backquote. 2020-05-27T15:33:46Z beach: What does DEFENTITY do? 2020-05-27T15:34:08Z phoe: beach: I think that question may come later, let's get the syntax straightened out first. 2020-05-27T15:34:08Z rogersm: This is part of a definition file that will generate code in C and SQL 2020-05-27T15:34:22Z phoe: rogersm: why is there a lone comma in there 2020-05-27T15:34:26Z rogersm: but the expectation is the syntax no to be too lispy 2020-05-27T15:34:48Z beach: Did you invent this notation? 2020-05-27T15:35:42Z rogersm: if the question is this can be changed, yes it can be 2020-05-27T15:35:49Z beach: If the syntax is not supposed to be Lisp-y, then you can't use the Lisp reader to read it. 2020-05-27T15:36:13Z phoe: rogersm: commas have a special meaning in Lisp syntax, they must not happen in source code on their own. 2020-05-27T15:36:17Z rogersm: this is why I was using macros, so I could escape from the reader (and have no evaluation) 2020-05-27T15:36:22Z phoe: nope 2020-05-27T15:36:26Z phoe: macros cannot escape from the reader 2020-05-27T15:36:38Z beach: rogersm: Macro code is read by the usual reader. 2020-05-27T15:36:44Z rogersm: So then the alternative is a parser, something that we already have in C 2020-05-27T15:37:14Z phoe: I don't understand, what are you trying to do? invent your own Lisp syntax? 2020-05-27T15:37:22Z beach: Usually, the best alternative is to adapt your syntax so that it would be acceptable as Lisp sysntax. 2020-05-27T15:38:01Z rogersm: phoe: remove the complexity of a C program and move it to lisp 2020-05-27T15:38:23Z phoe: rogersm: which Lisp dialect? Is it Common Lisp? 2020-05-27T15:38:28Z beach: Excellent plan. 2020-05-27T15:40:06Z oxum joined #lisp 2020-05-27T15:40:16Z rogersm: yes 2020-05-27T15:40:22Z rogersm: Common Lisp 2020-05-27T15:40:26Z phoe: rogersm: then the lone comma must go 2020-05-27T15:40:59Z phoe: unless you hack the reader to use your own syntax, which is rarely a good idea and even more rarely a necessary thing 2020-05-27T15:42:21Z phoe: do you mean (defentity pc :description "..." :component named :component descriptable :component locatable)? 2020-05-27T15:46:28Z shifty quit (Ping timeout: 246 seconds) 2020-05-27T15:47:31Z shifty joined #lisp 2020-05-27T15:47:42Z easieste joined #lisp 2020-05-27T15:48:51Z easieste quit (Remote host closed the connection) 2020-05-27T15:51:36Z cosimone quit (Remote host closed the connection) 2020-05-27T15:52:06Z cosimone joined #lisp 2020-05-27T15:52:43Z oxum quit (Remote host closed the connection) 2020-05-27T15:54:49Z rogersm: that would be an option 2020-05-27T15:57:40Z dlowe: what about (defentity :component (descriptable locatable) ...)? 2020-05-27T15:58:11Z oxum joined #lisp 2020-05-27T15:58:12Z Kevslinger quit (Quit: Connection closed for inactivity) 2020-05-27T15:58:28Z phoe: that's another way to dress that in s-expressions, sure; I guess that rogersm would be the one to decide which suits his intent the best, since it's his macro 2020-05-27T15:58:29Z pjb joined #lisp 2020-05-27T15:59:21Z rogersm: yes, the main question is completely solved :D 2020-05-27T16:02:55Z shifty quit (Ping timeout: 246 seconds) 2020-05-27T16:03:10Z oxum quit (Ping timeout: 256 seconds) 2020-05-27T16:03:37Z shifty joined #lisp 2020-05-27T16:13:37Z EvW quit (Ping timeout: 272 seconds) 2020-05-27T16:15:54Z xenon- joined #lisp 2020-05-27T16:16:39Z oxum joined #lisp 2020-05-27T16:18:32Z liberliver quit (Ping timeout: 258 seconds) 2020-05-27T16:19:17Z notzmv joined #lisp 2020-05-27T16:26:10Z oxum quit (Ping timeout: 260 seconds) 2020-05-27T16:31:21Z pjb quit (Ping timeout: 272 seconds) 2020-05-27T16:32:26Z whartung_ joined #lisp 2020-05-27T16:34:31Z nikka quit (Read error: Connection reset by peer) 2020-05-27T16:35:00Z nikka joined #lisp 2020-05-27T16:35:51Z Posterdati quit (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) 2020-05-27T16:36:50Z Posterdati joined #lisp 2020-05-27T16:39:26Z ech quit (Ping timeout: 256 seconds) 2020-05-27T16:39:43Z ech joined #lisp 2020-05-27T16:40:25Z cosimone quit (Quit: Quit.) 2020-05-27T16:43:04Z andrei-n joined #lisp 2020-05-27T16:43:16Z akoana left #lisp 2020-05-27T16:47:26Z whartung_ quit (Quit: whartung_) 2020-05-27T16:47:48Z terpri_ quit (Remote host closed the connection) 2020-05-27T16:48:16Z terpri_ joined #lisp 2020-05-27T16:50:25Z gxt__ quit (Remote host closed the connection) 2020-05-27T16:53:26Z terpri joined #lisp 2020-05-27T16:53:58Z rgherdt_ joined #lisp 2020-05-27T16:54:12Z terpri_ quit (Ping timeout: 260 seconds) 2020-05-27T16:55:06Z gxt__ joined #lisp 2020-05-27T16:58:26Z sdumi quit (Read error: Connection reset by peer) 2020-05-27T16:58:48Z sdumi joined #lisp 2020-05-27T17:01:21Z oxum joined #lisp 2020-05-27T17:05:34Z pjb joined #lisp 2020-05-27T17:05:41Z bhartrihari left #lisp 2020-05-27T17:05:52Z bhartrihari joined #lisp 2020-05-27T17:07:37Z scymtym quit (Ping timeout: 260 seconds) 2020-05-27T17:12:14Z sdumi quit (Ping timeout: 240 seconds) 2020-05-27T17:12:30Z emys joined #lisp 2020-05-27T17:13:20Z Kundry_Wag quit (Remote host closed the connection) 2020-05-27T17:13:52Z Kundry_Wag joined #lisp 2020-05-27T17:14:42Z shifty quit (Ping timeout: 260 seconds) 2020-05-27T17:15:20Z shifty joined #lisp 2020-05-27T17:15:59Z random-nick quit (Read error: Connection reset by peer) 2020-05-27T17:16:48Z random-nick joined #lisp 2020-05-27T17:17:45Z dtman34 joined #lisp 2020-05-27T17:18:10Z EvW1 joined #lisp 2020-05-27T17:18:55Z dtman34 quit (Remote host closed the connection) 2020-05-27T17:20:56Z heisig quit (Quit: Leaving) 2020-05-27T17:22:05Z sdumi joined #lisp 2020-05-27T17:25:20Z terpri quit (Remote host closed the connection) 2020-05-27T17:25:27Z scymtym joined #lisp 2020-05-27T17:25:46Z terpri joined #lisp 2020-05-27T17:27:32Z bhartrihari left #lisp 2020-05-27T17:27:37Z bhartrihari joined #lisp 2020-05-27T17:28:35Z emys quit (Ping timeout: 246 seconds) 2020-05-27T17:29:07Z emys joined #lisp 2020-05-27T17:30:09Z dtman34 joined #lisp 2020-05-27T17:32:49Z dtman34 quit (Remote host closed the connection) 2020-05-27T17:34:37Z oxum quit (Ping timeout: 246 seconds) 2020-05-27T17:34:41Z jw4 quit (Read error: Connection reset by peer) 2020-05-27T17:36:35Z jw4 joined #lisp 2020-05-27T17:38:29Z pjb quit (Ping timeout: 272 seconds) 2020-05-27T17:40:04Z gko quit (Ping timeout: 256 seconds) 2020-05-27T17:40:41Z bfig_ is now known as bfig 2020-05-27T17:41:00Z bhartrihari left #lisp 2020-05-27T17:41:18Z bhartrihari joined #lisp 2020-05-27T17:41:37Z tazjin is now known as benry 2020-05-27T17:41:49Z benry is now known as tazjin 2020-05-27T17:44:06Z dtman34 joined #lisp 2020-05-27T17:44:23Z dtman34 quit (Remote host closed the connection) 2020-05-27T17:44:48Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-27T17:45:33Z SGASAU joined #lisp 2020-05-27T17:51:50Z niceplace joined #lisp 2020-05-27T17:52:57Z niceplaces quit (Ping timeout: 256 seconds) 2020-05-27T17:59:44Z dale_ joined #lisp 2020-05-27T18:00:09Z dale_ is now known as dale 2020-05-27T18:01:47Z fountainpen[m] joined #lisp 2020-05-27T18:07:40Z rogersm quit (Quit: Leaving...) 2020-05-27T18:11:18Z oxum joined #lisp 2020-05-27T18:14:02Z pjb joined #lisp 2020-05-27T18:15:02Z orivej quit (Ping timeout: 256 seconds) 2020-05-27T18:15:26Z kpoeck joined #lisp 2020-05-27T18:15:27Z orivej joined #lisp 2020-05-27T18:16:17Z oxum quit (Ping timeout: 265 seconds) 2020-05-27T18:25:48Z xenon- quit (Quit: http://www.okay.uz/ (EOF)) 2020-05-27T18:26:52Z smazga quit (Ping timeout: 256 seconds) 2020-05-27T18:35:02Z orivej quit (Ping timeout: 256 seconds) 2020-05-27T18:35:07Z orivej_ joined #lisp 2020-05-27T18:36:20Z amerlyq quit (Quit: amerlyq) 2020-05-27T18:38:01Z paul0 quit (Ping timeout: 272 seconds) 2020-05-27T18:47:15Z oxum joined #lisp 2020-05-27T18:47:31Z pjb quit (Ping timeout: 272 seconds) 2020-05-27T18:51:17Z liberliver joined #lisp 2020-05-27T18:52:02Z oxum quit (Ping timeout: 256 seconds) 2020-05-27T18:54:48Z milanj quit (Quit: This computer has gone to sleep) 2020-05-27T18:58:00Z orivej_ quit (Ping timeout: 272 seconds) 2020-05-27T18:58:17Z orivej joined #lisp 2020-05-27T19:01:43Z ech quit (Ping timeout: 260 seconds) 2020-05-27T19:03:31Z even4void joined #lisp 2020-05-27T19:03:42Z even4void quit (Remote host closed the connection) 2020-05-27T19:05:15Z smazga joined #lisp 2020-05-27T19:06:35Z msk quit (Remote host closed the connection) 2020-05-27T19:06:53Z msk joined #lisp 2020-05-27T19:07:12Z even4void joined #lisp 2020-05-27T19:07:20Z gendl: Hi, is there a standard way in Slime/Swank, when doing (swank:create-server), to detect whether a port is busy, and if so, try the next one, and the next, etc until an open one is found? 2020-05-27T19:07:36Z even4void quit (Remote host closed the connection) 2020-05-27T19:07:38Z gendl: or, should I just not give the :port argument at all? 2020-05-27T19:08:25Z fluxwave quit (Ping timeout: 246 seconds) 2020-05-27T19:08:33Z even4void joined #lisp 2020-05-27T19:08:33Z gendl: (I having to know what the port number is, at least, because I'm gonna try to connect to it remotely through an ssh tunnel) 2020-05-27T19:08:37Z even4void quit (Remote host closed the connection) 2020-05-27T19:09:32Z even4void joined #lisp 2020-05-27T19:09:33Z even4void quit (Remote host closed the connection) 2020-05-27T19:10:17Z even4void joined #lisp 2020-05-27T19:10:22Z even4void quit (Remote host closed the connection) 2020-05-27T19:11:05Z even4void joined #lisp 2020-05-27T19:11:32Z xristos: gendl: you can implement the try-port-if-busy-try-another logic yourself outside of create-server 2020-05-27T19:12:37Z even4void quit (Remote host closed the connection) 2020-05-27T19:12:54Z francogrex joined #lisp 2020-05-27T19:13:48Z orivej quit (Ping timeout: 265 seconds) 2020-05-27T19:13:57Z orivej_ joined #lisp 2020-05-27T19:18:45Z pjb joined #lisp 2020-05-27T19:19:25Z efm quit (Ping timeout: 264 seconds) 2020-05-27T19:19:30Z gendl: xristos: How does it normally pick a port? 2020-05-27T19:20:47Z xristos: gendl: type (swank:create-server in a SLIME buffer and hit M-. to jump to the source 2020-05-27T19:21:27Z xristos: well you don't even need to do that, just look at the argument 2020-05-27T19:21:29Z xristos: (defun create-server (&key (port default-server-port) 2020-05-27T19:22:03Z xristos: so it will use the port you provide and if you don't provide one, default-server-port 2020-05-27T19:26:34Z SGASAU quit (Remote host closed the connection) 2020-05-27T19:27:09Z kpoeck quit (Ping timeout: 245 seconds) 2020-05-27T19:27:14Z SGASAU joined #lisp 2020-05-27T19:27:57Z francogrex quit (Quit: Leaving) 2020-05-27T19:29:02Z liberliver quit (Ping timeout: 272 seconds) 2020-05-27T19:29:18Z phoe: gendl: * (swank:create-server :port 0) 2020-05-27T19:29:20Z phoe: ;; Swank started at port: 46675. 2020-05-27T19:29:32Z shangul joined #lisp 2020-05-27T19:34:18Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-27T19:34:37Z orivej joined #lisp 2020-05-27T19:36:54Z bhartrihari left #lisp 2020-05-27T19:37:11Z bhartrihari joined #lisp 2020-05-27T19:39:07Z cosimone joined #lisp 2020-05-27T19:41:50Z grewal quit (Ping timeout: 265 seconds) 2020-05-27T19:41:57Z grewal joined #lisp 2020-05-27T19:42:28Z karlosz joined #lisp 2020-05-27T19:43:45Z lucasb joined #lisp 2020-05-27T19:44:46Z shangul quit (Ping timeout: 258 seconds) 2020-05-27T19:50:48Z grewal quit (Ping timeout: 256 seconds) 2020-05-27T19:52:07Z pjb quit (Ping timeout: 272 seconds) 2020-05-27T19:52:49Z grewal joined #lisp 2020-05-27T19:52:59Z ahungry joined #lisp 2020-05-27T19:53:55Z gendl: phoe: aha. 2020-05-27T19:54:38Z gendl: Looks like it's doing some manner of try-port-if-busy-try-another already... i'll check the code, should have done that first, thanks. 2020-05-27T19:58:42Z izh_ joined #lisp 2020-05-27T19:59:05Z flip214: gendl: port 0 asks the OS to choose a free port. 2020-05-27T20:00:38Z gendl: flip214: ah - is that without any extra work on Swank's part? That's an os-level feature with port 0? 2020-05-27T20:01:22Z phoe: yes 2020-05-27T20:01:55Z orivej quit (Ping timeout: 260 seconds) 2020-05-27T20:02:16Z orivej joined #lisp 2020-05-27T20:03:22Z shifty quit (Ping timeout: 246 seconds) 2020-05-27T20:04:12Z shifty joined #lisp 2020-05-27T20:06:47Z oxum joined #lisp 2020-05-27T20:08:01Z emys quit (Ping timeout: 264 seconds) 2020-05-27T20:10:33Z zulu-inuoe joined #lisp 2020-05-27T20:14:37Z emys joined #lisp 2020-05-27T20:19:39Z emys quit (Ping timeout: 260 seconds) 2020-05-27T20:19:43Z cosimone quit (Quit: Quit.) 2020-05-27T20:20:00Z izh_ quit (Quit: Leaving) 2020-05-27T20:20:18Z emys joined #lisp 2020-05-27T20:21:21Z pjb joined #lisp 2020-05-27T20:22:10Z cosimone joined #lisp 2020-05-27T20:23:32Z bfig_ joined #lisp 2020-05-27T20:23:32Z bfig quit (Read error: Connection reset by peer) 2020-05-27T20:27:10Z jonatack quit (Ping timeout: 246 seconds) 2020-05-27T20:29:22Z jonatack joined #lisp 2020-05-27T20:33:48Z bhartrihari left #lisp 2020-05-27T20:33:54Z shifty quit (Ping timeout: 240 seconds) 2020-05-27T20:33:57Z bhartrihari joined #lisp 2020-05-27T20:37:47Z voidlily quit (Remote host closed the connection) 2020-05-27T20:40:17Z voidlily joined #lisp 2020-05-27T20:41:52Z oxum quit (Ping timeout: 272 seconds) 2020-05-27T20:54:08Z msk quit (Read error: Connection reset by peer) 2020-05-27T20:54:22Z msk joined #lisp 2020-05-27T20:54:49Z pjb quit (Ping timeout: 272 seconds) 2020-05-27T20:56:58Z karayan quit (Remote host closed the connection) 2020-05-27T20:58:41Z ech joined #lisp 2020-05-27T20:59:08Z jeosol quit (Remote host closed the connection) 2020-05-27T21:00:52Z defaultxr joined #lisp 2020-05-27T21:04:27Z bfig_ is now known as bfig 2020-05-27T21:05:37Z voidlily quit (Ping timeout: 260 seconds) 2020-05-27T21:06:10Z grewal quit (Ping timeout: 256 seconds) 2020-05-27T21:06:26Z grewal joined #lisp 2020-05-27T21:12:05Z karayan joined #lisp 2020-05-27T21:13:13Z defaultxr: hi. i'm working on a macro that wraps defun along these lines: (defmacro foo (name args) `(defun ,name ,args (apply other-func (list ,@args)))) . this works for stuff like (foo blah (arg1 arg2)) and similar, but if i include &optional or &key arguments, i.e. (foo blah (arg1 &optional (arg2 :hello))) then the APPLY in that case ends up being (apply other-func (list arg1 &optional (arg2 :hello))) when 2020-05-27T21:13:15Z defaultxr: what i really want is just (apply other-func (list arg1 arg2)) . i could try to clean up the args manually in my macro, but is there a better/recommended way to do this? 2020-05-27T21:14:13Z ahungry quit (Remote host closed the connection) 2020-05-27T21:14:38Z Bike: usually you'd stick with &rest args for that. 2020-05-27T21:14:54Z Bike: like `(defun ,name (&rest rest) (apply other-func rest)) 2020-05-27T21:16:25Z defaultxr: yeah but then the function signature would just be "&rest rest" of course, which isn't very informative... 2020-05-27T21:17:37Z Bike: yeah. hard to deal with that without parsing the lambda list. 2020-05-27T21:17:47Z Bike: of course you can do (setf (fdefinition name) other-func) as well 2020-05-27T21:18:16Z voidlily joined #lisp 2020-05-27T21:20:13Z defaultxr: i guess i should've included that it actually is a wrapper macro, and it does have a &body section to it, so just (setf (fdefinition ...) ...) wouldn't really do what i want either 2020-05-27T21:20:37Z defaultxr: i know i could also do something like (defmethod swank::compute-enriched-decoded-arglist ...) to make it show up correctly in swank but that feels hacky and like it shouldn't be necessary (plus then that only affects swank ofc) 2020-05-27T21:20:59Z defaultxr: if there's nothing in standard CL, i wonder if anyone knows of a decent library for this functionality that's already out there 2020-05-27T21:22:26Z Bike: what does the body section like do, though 2020-05-27T21:23:10Z gravicappa quit (Ping timeout: 256 seconds) 2020-05-27T21:23:59Z pjb joined #lisp 2020-05-27T21:25:41Z defaultxr: basically the macro makes a funcallable object instance that contains a function slot, then a function (defun) with the specified name that calls that funcallable object 2020-05-27T21:26:48Z defaultxr: now that i think of it, in this case i guess i could do it the other way around, and have the funcallable object just call the function with itself as an argument. though i have other similar macros where i wouldn't be able to do it that way 2020-05-27T21:26:56Z Bike: you mean like a mop funcallable object? 2020-05-27T21:26:56Z mikecheck joined #lisp 2020-05-27T21:27:01Z defaultxr: yes 2020-05-27T21:27:18Z Bike: maybe i'm not following. can you not just do (setf (fdefinition name) funcallable-object)? 2020-05-27T21:28:06Z Bike: though i'm not sure swank will do well at getting the lambda list of a funcallable object to display 2020-05-27T21:28:14Z shka_ quit (Ping timeout: 240 seconds) 2020-05-27T21:29:07Z Bourne joined #lisp 2020-05-27T21:29:39Z defaultxr: hm, actually, that does seem to work in this case 2020-05-27T21:30:42Z defaultxr: i still need to parse the lambda-list for my other similar macros though i think. was just wondering if there was a more standard/obvious way of doing it than that 2020-05-27T21:30:48Z voidlily quit (Ping timeout: 256 seconds) 2020-05-27T21:30:54Z Bike: not really. 2020-05-27T21:30:59Z Bike: alexandria has a lambda list parser you can use. 2020-05-27T21:31:54Z voidlily joined #lisp 2020-05-27T21:33:05Z defaultxr: that looks like it will help a lot actually 2020-05-27T21:33:27Z rgherdt_ quit (Ping timeout: 272 seconds) 2020-05-27T21:33:34Z defaultxr: i figured there was something obvious i was missing... thanks for your help! 2020-05-27T21:36:30Z botanick joined #lisp 2020-05-27T21:39:50Z andrei-n quit (Quit: Leaving) 2020-05-27T21:40:14Z stoneglass joined #lisp 2020-05-27T21:43:52Z voidlily quit (Ping timeout: 260 seconds) 2020-05-27T21:51:42Z karayan quit (Ping timeout: 260 seconds) 2020-05-27T21:56:39Z voidlily joined #lisp 2020-05-27T21:56:47Z ArthurStrong quit (Read error: Connection reset by peer) 2020-05-27T21:57:34Z ArthurStrong joined #lisp 2020-05-27T21:58:09Z emys quit (Ping timeout: 272 seconds) 2020-05-27T22:01:57Z emys joined #lisp 2020-05-27T22:04:31Z Mawile joined #lisp 2020-05-27T22:06:13Z Archenoth quit (Ping timeout: 246 seconds) 2020-05-27T22:06:44Z sjl_ quit (Ping timeout: 256 seconds) 2020-05-27T22:07:05Z pve quit (Quit: leaving) 2020-05-27T22:10:42Z emys quit (Ping timeout: 265 seconds) 2020-05-27T22:14:43Z emys joined #lisp 2020-05-27T22:20:17Z anticrisis joined #lisp 2020-05-27T22:21:10Z orivej quit (Ping timeout: 258 seconds) 2020-05-27T22:21:26Z orivej joined #lisp 2020-05-27T22:23:42Z nikka quit (Quit: Leaving) 2020-05-27T22:25:44Z paul0 joined #lisp 2020-05-27T22:27:56Z random-nick quit (Ping timeout: 256 seconds) 2020-05-27T22:36:15Z SGASAU quit (Remote host closed the connection) 2020-05-27T22:37:18Z SGASAU joined #lisp 2020-05-27T22:40:18Z cosimone quit (Remote host closed the connection) 2020-05-27T22:40:47Z cosimone joined #lisp 2020-05-27T22:43:25Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-27T22:47:55Z igemnace joined #lisp 2020-05-27T22:47:56Z tsrt^ joined #lisp 2020-05-27T22:49:18Z cosimone quit (Quit: Quit.) 2020-05-27T22:50:11Z SGASAU` joined #lisp 2020-05-27T22:51:30Z Lord_of_Life_ joined #lisp 2020-05-27T22:51:44Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-27T22:53:26Z SGASAU quit (Ping timeout: 256 seconds) 2020-05-27T22:54:16Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-27T22:55:57Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-27T22:56:27Z emys quit (Ping timeout: 260 seconds) 2020-05-27T22:57:37Z orivej joined #lisp 2020-05-27T23:01:35Z wxie joined #lisp 2020-05-27T23:06:17Z orivej quit (Ping timeout: 265 seconds) 2020-05-27T23:06:17Z orivej_ joined #lisp 2020-05-27T23:09:19Z jonatack_ joined #lisp 2020-05-27T23:12:28Z chipolux_ quit (Ping timeout: 256 seconds) 2020-05-27T23:12:38Z jonatack quit (Ping timeout: 260 seconds) 2020-05-27T23:15:00Z oxum joined #lisp 2020-05-27T23:15:17Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-27T23:16:26Z orivej joined #lisp 2020-05-27T23:18:44Z anticrisis quit (Read error: Connection reset by peer) 2020-05-27T23:18:50Z Jesin quit (Quit: Leaving) 2020-05-27T23:24:48Z SGASAU` quit (Remote host closed the connection) 2020-05-27T23:25:39Z SGASAU` joined #lisp 2020-05-27T23:26:14Z oxum quit (Ping timeout: 240 seconds) 2020-05-27T23:28:52Z dyelar quit (Quit: Leaving.) 2020-05-27T23:29:56Z emys joined #lisp 2020-05-27T23:30:41Z orivej_ joined #lisp 2020-05-27T23:30:51Z Jesin joined #lisp 2020-05-27T23:31:18Z botanick quit (Ping timeout: 260 seconds) 2020-05-27T23:31:41Z whiteline quit (Read error: Connection reset by peer) 2020-05-27T23:32:04Z whiteline joined #lisp 2020-05-27T23:33:13Z orivej quit (Ping timeout: 264 seconds) 2020-05-27T23:42:32Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-27T23:42:34Z emys quit (Ping timeout: 240 seconds) 2020-05-27T23:42:46Z orivej joined #lisp 2020-05-27T23:45:53Z cracauer quit (Remote host closed the connection) 2020-05-27T23:46:19Z emys joined #lisp 2020-05-27T23:47:49Z oni-on-ion joined #lisp 2020-05-27T23:49:05Z kaftejiman joined #lisp 2020-05-27T23:51:43Z T3ns0r joined #lisp 2020-05-27T23:55:43Z SGASAU` quit (Remote host closed the connection) 2020-05-27T23:56:41Z lemoinem quit (Killed (kornbluth.freenode.net (Nickname regained by services))) 2020-05-27T23:56:42Z lemoinem joined #lisp 2020-05-27T23:56:49Z orivej quit (Ping timeout: 246 seconds) 2020-05-27T23:56:52Z SGASAU` joined #lisp 2020-05-27T23:57:32Z orivej joined #lisp 2020-05-27T23:59:01Z emys quit (Ping timeout: 264 seconds) 2020-05-28T00:03:52Z wxie quit (Ping timeout: 260 seconds) 2020-05-28T00:03:56Z emys joined #lisp 2020-05-28T00:05:58Z ralt: I wonder if taking over a library name in quicklisp is feasible :) 2020-05-28T00:06:13Z orivej quit (Ping timeout: 264 seconds) 2020-05-28T00:06:13Z orivej_ joined #lisp 2020-05-28T00:09:12Z emys quit (Ping timeout: 256 seconds) 2020-05-28T00:10:28Z SGASAU` quit (Remote host closed the connection) 2020-05-28T00:11:20Z SGASAU` joined #lisp 2020-05-28T00:13:09Z emys joined #lisp 2020-05-28T00:19:45Z smazga quit (Ping timeout: 265 seconds) 2020-05-28T00:26:34Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-28T00:26:49Z smazga joined #lisp 2020-05-28T00:27:52Z orivej joined #lisp 2020-05-28T00:28:19Z karswell_ joined #lisp 2020-05-28T00:28:46Z mgsk_ quit (Ping timeout: 272 seconds) 2020-05-28T00:29:07Z sputny[m] quit (Ping timeout: 265 seconds) 2020-05-28T00:29:14Z ChoHag quit (Ping timeout: 272 seconds) 2020-05-28T00:29:25Z karswell quit (Ping timeout: 265 seconds) 2020-05-28T00:30:15Z mgsk_ joined #lisp 2020-05-28T00:30:50Z wxie joined #lisp 2020-05-28T00:31:25Z smazga quit (Ping timeout: 264 seconds) 2020-05-28T00:32:26Z sputny[m] joined #lisp 2020-05-28T00:35:27Z ChoHag joined #lisp 2020-05-28T00:37:28Z ahungry joined #lisp 2020-05-28T00:37:31Z emys quit (Read error: Connection timed out) 2020-05-28T00:38:32Z wxie1 joined #lisp 2020-05-28T00:38:39Z wxie quit (Read error: Connection reset by peer) 2020-05-28T00:39:06Z wxie1 is now known as wxie 2020-05-28T00:43:46Z wxie quit (Ping timeout: 258 seconds) 2020-05-28T00:48:20Z SGASAU` quit (Remote host closed the connection) 2020-05-28T00:50:22Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-28T00:51:32Z orivej joined #lisp 2020-05-28T00:52:32Z EvW1 quit (Ping timeout: 260 seconds) 2020-05-28T00:53:42Z pjb: ralt: quicklisp deals with system names. There's no library name in CL. 2020-05-28T00:57:44Z emys joined #lisp 2020-05-28T01:02:32Z emys quit (Ping timeout: 246 seconds) 2020-05-28T01:03:12Z emys joined #lisp 2020-05-28T01:03:27Z lucasb quit (Quit: Connection closed for inactivity) 2020-05-28T01:03:32Z orivej quit (Ping timeout: 256 seconds) 2020-05-28T01:03:42Z orivej joined #lisp 2020-05-28T01:04:01Z smazga joined #lisp 2020-05-28T01:04:51Z bitmapper quit (Ping timeout: 258 seconds) 2020-05-28T01:08:26Z chipolux joined #lisp 2020-05-28T01:10:25Z frgo quit (Ping timeout: 264 seconds) 2020-05-28T01:11:47Z emys quit (Ping timeout: 260 seconds) 2020-05-28T01:12:46Z monokrom quit (Remote host closed the connection) 2020-05-28T01:17:37Z orivej quit (Ping timeout: 264 seconds) 2020-05-28T01:17:52Z orivej joined #lisp 2020-05-28T01:20:01Z Kundry_W_ joined #lisp 2020-05-28T01:23:11Z chwhelan joined #lisp 2020-05-28T01:23:15Z Kundry_Wag quit (Ping timeout: 258 seconds) 2020-05-28T01:28:48Z emys joined #lisp 2020-05-28T01:31:22Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-28T01:32:33Z orivej joined #lisp 2020-05-28T01:34:28Z dddddd quit (Ping timeout: 272 seconds) 2020-05-28T01:34:41Z FreeBirdLjj joined #lisp 2020-05-28T01:36:08Z emys quit (Ping timeout: 246 seconds) 2020-05-28T01:36:42Z emys joined #lisp 2020-05-28T01:38:56Z FreeBirdLjj quit (Ping timeout: 246 seconds) 2020-05-28T01:46:23Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-28T01:47:43Z orivej joined #lisp 2020-05-28T01:52:42Z mikecheck quit (Ping timeout: 260 seconds) 2020-05-28T01:53:17Z emys quit (Ping timeout: 246 seconds) 2020-05-28T01:54:36Z gigetoo quit (Ping timeout: 256 seconds) 2020-05-28T01:55:20Z jesse1010 quit (Ping timeout: 256 seconds) 2020-05-28T01:57:52Z orivej quit (Read error: Connection reset by peer) 2020-05-28T01:57:53Z orivej_ joined #lisp 2020-05-28T01:58:34Z emys joined #lisp 2020-05-28T01:59:28Z oxum joined #lisp 2020-05-28T02:00:25Z jfrancis_ joined #lisp 2020-05-28T02:02:13Z jfrancis quit (Ping timeout: 265 seconds) 2020-05-28T02:05:52Z gigetoo joined #lisp 2020-05-28T02:06:34Z emys quit (Ping timeout: 240 seconds) 2020-05-28T02:07:18Z emys joined #lisp 2020-05-28T02:07:25Z orivej_ quit (Ping timeout: 264 seconds) 2020-05-28T02:07:34Z orivej joined #lisp 2020-05-28T02:09:45Z jfrancis_ quit (Remote host closed the connection) 2020-05-28T02:16:16Z emys quit (Ping timeout: 272 seconds) 2020-05-28T02:16:54Z bhartrihari left #lisp 2020-05-28T02:17:05Z bhartrihari joined #lisp 2020-05-28T02:17:16Z frgo joined #lisp 2020-05-28T02:23:22Z emys joined #lisp 2020-05-28T02:25:45Z hlisp joined #lisp 2020-05-28T02:28:46Z noobineer quit (Ping timeout: 256 seconds) 2020-05-28T02:29:56Z SGASAU joined #lisp 2020-05-28T02:32:22Z hlisp quit (Read error: Connection reset by peer) 2020-05-28T02:32:24Z hlisp_ joined #lisp 2020-05-28T02:32:30Z SGASAU quit (Remote host closed the connection) 2020-05-28T02:33:24Z SGASAU joined #lisp 2020-05-28T02:37:57Z SGASAU quit (Remote host closed the connection) 2020-05-28T02:38:50Z SGASAU joined #lisp 2020-05-28T02:43:09Z pjb quit (Ping timeout: 272 seconds) 2020-05-28T02:44:11Z emys quit (Ping timeout: 260 seconds) 2020-05-28T02:48:19Z emys joined #lisp 2020-05-28T02:49:14Z karayan joined #lisp 2020-05-28T02:50:39Z gaqwas quit (Ping timeout: 258 seconds) 2020-05-28T02:51:02Z orivej quit (Ping timeout: 265 seconds) 2020-05-28T02:51:13Z orivej joined #lisp 2020-05-28T02:51:21Z oxum quit (Remote host closed the connection) 2020-05-28T02:51:47Z gaqwas joined #lisp 2020-05-28T02:53:28Z emys quit (Ping timeout: 256 seconds) 2020-05-28T02:55:27Z beach: Good morning everyone! 2020-05-28T02:57:32Z emys joined #lisp 2020-05-28T02:59:16Z Rav3n joined #lisp 2020-05-28T02:59:30Z tylerdmace joined #lisp 2020-05-28T03:05:02Z smazga quit (Ping timeout: 246 seconds) 2020-05-28T03:07:47Z oxum joined #lisp 2020-05-28T03:09:02Z oxum quit (Remote host closed the connection) 2020-05-28T03:14:08Z kaftejiman quit (Remote host closed the connection) 2020-05-28T03:16:44Z kaftejiman joined #lisp 2020-05-28T03:17:26Z Kundry_W_ quit (Remote host closed the connection) 2020-05-28T03:17:58Z Kundry_Wag joined #lisp 2020-05-28T03:19:08Z kaftejiman_ joined #lisp 2020-05-28T03:19:17Z kaftejiman quit (Client Quit) 2020-05-28T03:19:20Z kaftejiman_ quit (Client Quit) 2020-05-28T03:19:32Z ech quit (Ping timeout: 256 seconds) 2020-05-28T03:19:46Z kaftejiman joined #lisp 2020-05-28T03:22:11Z Kundry_Wag quit (Ping timeout: 246 seconds) 2020-05-28T03:22:37Z kaftejiman quit (Client Quit) 2020-05-28T03:23:00Z kaftejiman joined #lisp 2020-05-28T03:23:30Z emys quit (Ping timeout: 256 seconds) 2020-05-28T03:24:12Z emys joined #lisp 2020-05-28T03:24:43Z madage quit (Ping timeout: 240 seconds) 2020-05-28T03:25:34Z kaftejiman quit (Client Quit) 2020-05-28T03:25:42Z kaftejiman joined #lisp 2020-05-28T03:26:01Z kaftejiman quit (Client Quit) 2020-05-28T03:26:17Z kaftejiman joined #lisp 2020-05-28T03:28:00Z stoneglass quit (Quit: stoneglass) 2020-05-28T03:28:16Z orivej quit (Ping timeout: 256 seconds) 2020-05-28T03:28:23Z orivej_ joined #lisp 2020-05-28T03:29:25Z anticrisis joined #lisp 2020-05-28T03:33:31Z __jrjsmrtn__ joined #lisp 2020-05-28T03:34:07Z _jrjsmrtn quit (Ping timeout: 260 seconds) 2020-05-28T03:35:02Z ArthurStrong quit (Quit: leaving) 2020-05-28T03:36:13Z pjb joined #lisp 2020-05-28T03:40:24Z oxum joined #lisp 2020-05-28T03:41:07Z emys quit (Ping timeout: 260 seconds) 2020-05-28T03:44:49Z emys joined #lisp 2020-05-28T03:45:05Z oxum quit (Ping timeout: 258 seconds) 2020-05-28T03:46:04Z madage joined #lisp 2020-05-28T03:51:53Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-28T03:53:02Z orivej joined #lisp 2020-05-28T03:54:25Z Bike quit (Quit: leaving) 2020-05-28T04:01:33Z heisig joined #lisp 2020-05-28T04:04:53Z SGASAU quit (Remote host closed the connection) 2020-05-28T04:05:37Z SGASAU joined #lisp 2020-05-28T04:07:12Z orivej quit (Ping timeout: 256 seconds) 2020-05-28T04:07:14Z orivej_ joined #lisp 2020-05-28T04:09:27Z emys quit (Ping timeout: 246 seconds) 2020-05-28T04:09:55Z pjb quit (Ping timeout: 272 seconds) 2020-05-28T04:10:32Z emys joined #lisp 2020-05-28T04:11:08Z abhixec joined #lisp 2020-05-28T04:13:14Z orivej_ quit (Ping timeout: 240 seconds) 2020-05-28T04:15:17Z Kundry_Wag joined #lisp 2020-05-28T04:16:54Z oxum joined #lisp 2020-05-28T04:18:28Z emys quit (Ping timeout: 256 seconds) 2020-05-28T04:21:52Z Kundry_Wag quit (Ping timeout: 256 seconds) 2020-05-28T04:22:23Z oxum quit (Ping timeout: 265 seconds) 2020-05-28T04:22:38Z emys joined #lisp 2020-05-28T04:24:12Z sdumi quit (Ping timeout: 272 seconds) 2020-05-28T04:24:44Z sdumi joined #lisp 2020-05-28T04:25:23Z bhartrihari left #lisp 2020-05-28T04:28:17Z emys quit (Ping timeout: 272 seconds) 2020-05-28T04:29:16Z frgo_ joined #lisp 2020-05-28T04:30:44Z emys joined #lisp 2020-05-28T04:32:02Z remexre: what's the least terrible way to close every fd that's a datagram (i.e. UDP) socket? I've got a long-running service I'd rahter not restart that I just realized is leaking FDs 2020-05-28T04:32:32Z frgo quit (Ping timeout: 246 seconds) 2020-05-28T04:35:13Z fe[nl]ix: remexre: attach Slime to it and close the FDs 2020-05-28T04:35:13Z oxum joined #lisp 2020-05-28T04:35:45Z remexre: fe[nl]ix: I have slime connected; I meant more, is there a convenient/any way to close only UDP sockets 2020-05-28T04:36:10Z remexre: have to admit I'm not sure how to get the protocol of the socket, even w/ cffi 2020-05-28T04:36:19Z pjb joined #lisp 2020-05-28T04:37:34Z fe[nl]ix: remexre: https://stackoverflow.com/questions/3217650/how-can-i-find-the-socket-type-from-the-socket-descriptor 2020-05-28T04:37:45Z bhartrihari joined #lisp 2020-05-28T04:38:01Z remexre: ah, your google-fu is better than mine; thanks 2020-05-28T04:38:31Z fe[nl]ix: I searched "check socket type" and that's the first result 2020-05-28T04:39:34Z oxum quit (Ping timeout: 240 seconds) 2020-05-28T04:39:56Z remexre: I was doing "get protocol from file descriptor," "check protocol of socket posix," etc 2020-05-28T04:40:00Z remexre shrugs 2020-05-28T04:53:23Z shangul joined #lisp 2020-05-28T04:53:42Z Blkt quit (Remote host closed the connection) 2020-05-28T04:53:42Z fe[nl]ix quit (Read error: Connection reset by peer) 2020-05-28T04:58:23Z terpri quit (Remote host closed the connection) 2020-05-28T04:58:38Z Blkt joined #lisp 2020-05-28T04:59:12Z SGASAU quit (Remote host closed the connection) 2020-05-28T04:59:18Z fe[nl]ix joined #lisp 2020-05-28T04:59:18Z ChanServ has set mode +o fe[nl]ix 2020-05-28T04:59:30Z terpri joined #lisp 2020-05-28T04:59:30Z terpri quit (Client Quit) 2020-05-28T04:59:45Z terpri joined #lisp 2020-05-28T04:59:58Z SGASAU joined #lisp 2020-05-28T05:00:06Z Blkt quit (Remote host closed the connection) 2020-05-28T05:00:06Z fe[nl]ix quit (Read error: Connection reset by peer) 2020-05-28T05:01:53Z terpri quit (Excess Flood) 2020-05-28T05:01:56Z sdumi quit (Read error: Connection reset by peer) 2020-05-28T05:02:13Z terpri joined #lisp 2020-05-28T05:02:52Z sdumi joined #lisp 2020-05-28T05:04:48Z ahungry quit (Remote host closed the connection) 2020-05-28T05:06:00Z heisig quit (Ping timeout: 272 seconds) 2020-05-28T05:06:13Z heisig joined #lisp 2020-05-28T05:08:34Z shangul quit (Ping timeout: 256 seconds) 2020-05-28T05:09:32Z sdumi quit (Ping timeout: 256 seconds) 2020-05-28T05:10:35Z oxum joined #lisp 2020-05-28T05:10:51Z Blkt joined #lisp 2020-05-28T05:11:37Z fe[nl]ix joined #lisp 2020-05-28T05:11:37Z ChanServ has set mode +o fe[nl]ix 2020-05-28T05:12:09Z emys quit (Quit: Leaving) 2020-05-28T05:15:05Z zaquest quit (Quit: Leaving) 2020-05-28T05:17:31Z zaquest joined #lisp 2020-05-28T05:20:23Z akoana joined #lisp 2020-05-28T05:24:43Z shifty joined #lisp 2020-05-28T05:28:48Z oxum quit (Remote host closed the connection) 2020-05-28T05:29:04Z oxum joined #lisp 2020-05-28T05:35:31Z hlisp_ quit (Remote host closed the connection) 2020-05-28T05:35:35Z SGASAU quit (Remote host closed the connection) 2020-05-28T05:36:01Z winny quit (Quit: reboot) 2020-05-28T05:36:15Z SGASAU joined #lisp 2020-05-28T05:37:28Z winny joined #lisp 2020-05-28T05:37:48Z bhartrihari left #lisp 2020-05-28T05:37:56Z bhartrihari joined #lisp 2020-05-28T05:38:38Z seok joined #lisp 2020-05-28T05:42:11Z gravicappa joined #lisp 2020-05-28T05:46:32Z terpri quit (Ping timeout: 260 seconds) 2020-05-28T05:48:22Z sdumi joined #lisp 2020-05-28T05:51:07Z terpri joined #lisp 2020-05-28T05:53:14Z |3b| quit (Remote host closed the connection) 2020-05-28T05:54:33Z |3b| joined #lisp 2020-05-28T06:06:13Z corpix_ joined #lisp 2020-05-28T06:06:23Z corpix quit (Ping timeout: 240 seconds) 2020-05-28T06:09:06Z va_ quit (Remote host closed the connection) 2020-05-28T06:11:46Z kaftejiman quit (Remote host closed the connection) 2020-05-28T06:17:19Z nikkal joined #lisp 2020-05-28T06:19:16Z dale quit (Quit: My computer has gone to sleep) 2020-05-28T06:19:20Z SGASAU quit (Remote host closed the connection) 2020-05-28T06:20:13Z SGASAU joined #lisp 2020-05-28T06:21:25Z corpix joined #lisp 2020-05-28T06:21:43Z jprajzne joined #lisp 2020-05-28T06:22:23Z corpix_ quit (Remote host closed the connection) 2020-05-28T06:26:51Z wxie joined #lisp 2020-05-28T06:39:23Z sdumi quit (Ping timeout: 272 seconds) 2020-05-28T06:40:02Z sdumi joined #lisp 2020-05-28T06:41:29Z jeosol joined #lisp 2020-05-28T06:44:55Z random-nick joined #lisp 2020-05-28T06:59:09Z gaqwas quit (Changing host) 2020-05-28T06:59:09Z gaqwas joined #lisp 2020-05-28T07:15:17Z d4ryus1 joined #lisp 2020-05-28T07:16:28Z jonatack_ quit (Ping timeout: 256 seconds) 2020-05-28T07:17:06Z jonatack_ joined #lisp 2020-05-28T07:17:18Z pve joined #lisp 2020-05-28T07:18:13Z d4ryus quit (Ping timeout: 258 seconds) 2020-05-28T07:18:40Z jonatack_ quit (Client Quit) 2020-05-28T07:21:44Z drewc quit (Ping timeout: 256 seconds) 2020-05-28T07:25:29Z drewc joined #lisp 2020-05-28T07:28:55Z jonatack joined #lisp 2020-05-28T07:30:39Z vaporatorius quit (Remote host closed the connection) 2020-05-28T07:31:10Z slyrus joined #lisp 2020-05-28T07:31:22Z wxie quit (Ping timeout: 265 seconds) 2020-05-28T07:34:50Z rivvera joined #lisp 2020-05-28T07:37:56Z Rav3n quit (Ping timeout: 256 seconds) 2020-05-28T07:47:10Z hineios8 joined #lisp 2020-05-28T07:47:23Z d4ryus1 is now known as d4ryus 2020-05-28T07:51:13Z hineios quit (Ping timeout: 264 seconds) 2020-05-28T07:51:14Z hineios8 is now known as hineios 2020-05-28T07:51:49Z quazimodo quit (Ping timeout: 264 seconds) 2020-05-28T07:54:54Z varjag joined #lisp 2020-05-28T07:57:27Z carleos joined #lisp 2020-05-28T07:58:25Z jonatack quit (Ping timeout: 264 seconds) 2020-05-28T07:59:09Z carleos quit (Client Quit) 2020-05-28T08:00:23Z jonatack joined #lisp 2020-05-28T08:03:39Z random-nick quit (Read error: Connection reset by peer) 2020-05-28T08:08:04Z fluxwave joined #lisp 2020-05-28T08:08:18Z shka_ joined #lisp 2020-05-28T08:09:23Z ljavorsk joined #lisp 2020-05-28T08:10:52Z parjanya joined #lisp 2020-05-28T08:15:14Z oxum quit (Remote host closed the connection) 2020-05-28T08:17:10Z oxum joined #lisp 2020-05-28T08:17:28Z vaporatorius joined #lisp 2020-05-28T08:18:50Z oxum quit (Remote host closed the connection) 2020-05-28T08:18:59Z random-nick joined #lisp 2020-05-28T08:19:06Z oxum joined #lisp 2020-05-28T08:23:24Z parjanya left #lisp 2020-05-28T08:23:27Z parjanya joined #lisp 2020-05-28T08:25:15Z bfig_ joined #lisp 2020-05-28T08:25:16Z bfig quit (Read error: Connection reset by peer) 2020-05-28T08:38:10Z jonatack quit (Read error: Connection reset by peer) 2020-05-28T08:38:22Z jonatack_ joined #lisp 2020-05-28T08:41:16Z karswell_ quit (Remote host closed the connection) 2020-05-28T08:42:28Z karswell_ joined #lisp 2020-05-28T08:59:19Z devon quit (Ping timeout: 246 seconds) 2020-05-28T08:59:33Z cosimone joined #lisp 2020-05-28T09:05:27Z pve: Hello! Is a type always a subtype (subtypep) of itself? 2020-05-28T09:05:43Z beach: Yes. 2020-05-28T09:05:51Z pve: thank you 2020-05-28T09:05:54Z beach: But the function SUBTYPEP is fishy. 2020-05-28T09:06:07Z beach: So it may fail to give the correct answer. 2020-05-28T09:06:16Z beach: clhs subtypep 2020-05-28T09:06:16Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_subtpp.htm 2020-05-28T09:08:11Z beach: pve: As you can see, it is allowed to return false and false in situations where the correct answer is true and true. 2020-05-28T09:09:05Z pve: it says 2020-05-28T09:09:21Z pve: "In particular, subtypep returns the values true and true if the arguments are equal and do not involve any of these type specifiers." 2020-05-28T09:09:54Z pve: so if I don't have "and" "eql" etc, then it won't be fishy? 2020-05-28T09:10:02Z phoe: yes, if your type specifiers are simple then you can use SUBTYPEP freely and it'll work 2020-05-28T09:10:06Z pve: rgeat 2020-05-28T09:10:08Z pve: great 2020-05-28T09:10:14Z Misha_B quit (Ping timeout: 240 seconds) 2020-05-28T09:10:19Z phoe: but, other than that, the theoretical answer is "a type is always a subtype of itself" 2020-05-28T09:10:33Z phoe: subce Lisp types are mathematical sets, and a set is its always own subset 2020-05-28T09:11:01Z Bourne quit (Ping timeout: 264 seconds) 2020-05-28T09:11:14Z pve: yep, that was my suspicion, thank you 2020-05-28T09:15:15Z phoe: if we ignore secondary return values of SUBTYPEP, (defun type= (type1 type2) (and (subtypep type1 type2) (subtypep type2 type1))) 2020-05-28T09:15:23Z phoe: that's from the mathematical definition 2020-05-28T09:15:32Z phoe: where type1 and type2 are type specifiers 2020-05-28T09:16:19Z phoe: of course, a proper type= needs a secondary return value to answer whether SUBTYPEP was able to compute the relationship in both cases 2020-05-28T09:17:16Z beach: I recommend Baker's article on SUBTYPEP. 2020-05-28T09:17:51Z beach: There is some fascinating examples of what can be done with it. 2020-05-28T09:18:00Z beach: s/is/are/ 2020-05-28T09:18:59Z phoe: beach: http://www.pipeline.com/~hbaker1/Subtypep.html ? 2020-05-28T09:22:02Z beach: Yeah. 2020-05-28T09:22:36Z beach: There is a PDF version out there as well. Might be nicer to read. 2020-05-28T09:28:12Z dmc00 quit (Ping timeout: 272 seconds) 2020-05-28T09:29:18Z gaqwas quit (Remote host closed the connection) 2020-05-28T09:30:59Z anticrisis quit (Read error: Connection reset by peer) 2020-05-28T09:31:31Z phoe: let me dig in and check if that paper talks about '(OR (REAL * (-3.5D0)) (NOT INTEGER) (REAL (-3.5D0))) 2020-05-28T09:34:10Z phoe: it does mention "touching" intervals 2020-05-28T09:35:20Z beach: Yes, it is very thorough. 2020-05-28T09:35:33Z phoe: still, seems it does not mention this edge case directly 2020-05-28T09:35:38Z shifty quit (Ping timeout: 246 seconds) 2020-05-28T09:35:46Z shifty joined #lisp 2020-05-28T09:35:47Z ghard joined #lisp 2020-05-28T09:36:06Z bhartrihari left #lisp 2020-05-28T09:36:06Z phoe: I'm not (yet) aware of an implementation that correctly simplifies the above into T 2020-05-28T09:36:08Z bhartrihari joined #lisp 2020-05-28T09:36:23Z beach: "simplifies"? 2020-05-28T09:37:16Z phoe: err, that gives (VALUES T T) upon evaluating (subtypep t '(OR (REAL * (-3.5D0)) (NOT INTEGER) (REAL (-3.5D0)))) 2020-05-28T09:37:25Z jonatack_ quit (Quit: jonatack_) 2020-05-28T09:37:31Z beach: I see. 2020-05-28T09:37:47Z FreeBirdLjj joined #lisp 2020-05-28T09:38:34Z beach: According to Baker, most implementations of subtypep are flawed. 2020-05-28T09:39:51Z phoe: that's because (or (real * (-3.5d0)) (real (-3.5d0))) are the whole real domain except -3.5d0; no implementation detects that -3.5d0 is of type (not integer) which would give us (or real (not integer)) 2020-05-28T09:41:03Z beach: I need to read up on what (real (-3.5d0)) means. 2020-05-28T09:41:13Z phoe: all real numbers below -3.5d0 2020-05-28T09:41:38Z phoe: so the range (-inf, -3.5d0) 2020-05-28T09:41:54Z beach: Are you sure about that? 2020-05-28T09:42:12Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-28T09:42:13Z phoe: clhs real 2020-05-28T09:42:13Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_real.htm 2020-05-28T09:42:22Z beach: It says real [lower-limit [upper-limit]] 2020-05-28T09:42:36Z phoe: welp, correct - all real numbers above -3.5d0 2020-05-28T09:42:47Z phoe: (real * (-3.5d0)) is all numbers below 2020-05-28T09:43:03Z beach: Right. 2020-05-28T09:43:56Z jonatack joined #lisp 2020-05-28T09:44:12Z shangul joined #lisp 2020-05-28T09:44:52Z wxie joined #lisp 2020-05-28T09:44:55Z beach: I see, so the descriptor says "all reals below -3.5d0" or "all integers above -3.5d0" or "all non-integers" 2020-05-28T09:45:49Z wxie1 joined #lisp 2020-05-28T09:46:05Z phoe: Yes, and AFAIK no implementation notices "hey, -3.5d0 fits in the «all non-integers» part, let's check if we can use that in these numberic ranges that are nearby" 2020-05-28T09:46:23Z wxie quit (Read error: Connection reset by peer) 2020-05-28T09:46:25Z wxie1 is now known as wxie 2020-05-28T09:47:37Z phoe: the trick I've developed to fix it is: when there is an exclusive range inside an OR, check if the boundary of that range is a member of other types being part of the OR 2020-05-28T09:47:49Z phoe: and, if that's the case, turn the exclusive range into an inclusive one 2020-05-28T09:48:07Z phoe: and try to simplify again 2020-05-28T09:49:33Z seok quit (Remote host closed the connection) 2020-05-28T09:51:57Z beach: I think we should wait for Didier Verna and Jim Newton to finish their implementation of Baker's algorithm. 2020-05-28T09:52:30Z phoe: beach: https://github.com/jimka2001/regular-type-expression/issues/1 :) 2020-05-28T09:52:42Z Bourne joined #lisp 2020-05-28T09:59:14Z Posterdati quit (Ping timeout: 272 seconds) 2020-05-28T10:09:22Z dmiles quit (Read error: Connection reset by peer) 2020-05-28T10:11:37Z andrei-n joined #lisp 2020-05-28T10:13:33Z dmiles joined #lisp 2020-05-28T10:15:06Z frgo_ quit (Remote host closed the connection) 2020-05-28T10:15:44Z frgo joined #lisp 2020-05-28T10:16:37Z pjb quit (Ping timeout: 272 seconds) 2020-05-28T10:22:58Z terpri quit (Remote host closed the connection) 2020-05-28T10:23:37Z wxie quit (Ping timeout: 260 seconds) 2020-05-28T10:23:53Z terpri joined #lisp 2020-05-28T10:25:32Z andrek joined #lisp 2020-05-28T10:27:50Z andrek quit (Remote host closed the connection) 2020-05-28T10:30:50Z smazga joined #lisp 2020-05-28T10:33:50Z pjb joined #lisp 2020-05-28T10:35:37Z smazga quit (Ping timeout: 264 seconds) 2020-05-28T10:36:04Z karlosz quit (Quit: karlosz) 2020-05-28T10:36:47Z shka_ quit (Ping timeout: 258 seconds) 2020-05-28T10:40:27Z cosimone quit (Quit: Quit.) 2020-05-28T10:40:40Z jeosol quit (Remote host closed the connection) 2020-05-28T10:42:53Z cosimone joined #lisp 2020-05-28T10:43:25Z Misha_B joined #lisp 2020-05-28T10:45:28Z shifty quit (Ping timeout: 272 seconds) 2020-05-28T10:45:36Z milanj joined #lisp 2020-05-28T10:47:44Z cosimone quit (Client Quit) 2020-05-28T10:50:18Z Lord_of_Life_ joined #lisp 2020-05-28T10:52:34Z Lord_of_Life quit (Ping timeout: 240 seconds) 2020-05-28T10:52:34Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-28T10:53:08Z oxum quit (Remote host closed the connection) 2020-05-28T10:53:46Z cosimone joined #lisp 2020-05-28T10:54:24Z ghard` joined #lisp 2020-05-28T10:54:58Z ghard quit (Remote host closed the connection) 2020-05-28T10:57:57Z msk_ joined #lisp 2020-05-28T10:58:20Z msk quit (Ping timeout: 246 seconds) 2020-05-28T10:58:45Z Kundry_Wag joined #lisp 2020-05-28T11:00:02Z Bourne quit (Read error: Connection reset by peer) 2020-05-28T11:00:42Z RukiSama quit (Ping timeout: 260 seconds) 2020-05-28T11:00:56Z milanj quit (Quit: This computer has gone to sleep) 2020-05-28T11:03:18Z msk_ quit (Ping timeout: 256 seconds) 2020-05-28T11:04:41Z milanj joined #lisp 2020-05-28T11:05:36Z Kundry_Wag quit (Ping timeout: 246 seconds) 2020-05-28T11:12:26Z jonatack quit (Ping timeout: 258 seconds) 2020-05-28T11:13:00Z bhartrihari left #lisp 2020-05-28T11:14:23Z jonatack joined #lisp 2020-05-28T11:15:10Z oxum joined #lisp 2020-05-28T11:22:51Z ebrasca joined #lisp 2020-05-28T11:24:33Z dmc00 joined #lisp 2020-05-28T11:30:38Z monokrom joined #lisp 2020-05-28T11:36:57Z scymtym_ joined #lisp 2020-05-28T11:37:37Z oni-on-ion quit (Remote host closed the connection) 2020-05-28T11:38:04Z oni-on-ion joined #lisp 2020-05-28T11:38:16Z scymtym quit (Ping timeout: 256 seconds) 2020-05-28T11:39:58Z vaporatorius quit (Read error: Connection reset by peer) 2020-05-28T11:43:43Z cosimone quit (Quit: Quit.) 2020-05-28T11:47:37Z jprajzne quit (Quit: jprajzne) 2020-05-28T11:50:26Z kaftejiman joined #lisp 2020-05-28T11:51:53Z terpri quit (Remote host closed the connection) 2020-05-28T11:53:52Z terpri joined #lisp 2020-05-28T11:54:20Z scymtym_ quit (Remote host closed the connection) 2020-05-28T11:55:39Z scymtym joined #lisp 2020-05-28T11:56:50Z terpri quit (Client Quit) 2020-05-28T11:57:06Z EvW joined #lisp 2020-05-28T11:59:24Z Bike joined #lisp 2020-05-28T12:01:45Z bhartrihari joined #lisp 2020-05-28T12:03:03Z jprajzne joined #lisp 2020-05-28T12:09:48Z orivej joined #lisp 2020-05-28T12:17:14Z orivej quit (Ping timeout: 240 seconds) 2020-05-28T12:17:57Z orivej joined #lisp 2020-05-28T12:23:36Z jonatack quit (Ping timeout: 256 seconds) 2020-05-28T12:26:38Z shifty joined #lisp 2020-05-28T12:27:56Z quazimodo joined #lisp 2020-05-28T12:28:02Z noobineer joined #lisp 2020-05-28T12:31:06Z noobineer quit (Read error: Connection reset by peer) 2020-05-28T12:31:06Z smazga joined #lisp 2020-05-28T12:31:23Z cosimone joined #lisp 2020-05-28T12:31:47Z noobineer joined #lisp 2020-05-28T12:34:17Z oni-on-ion quit (Remote host closed the connection) 2020-05-28T12:35:32Z smazga quit (Ping timeout: 246 seconds) 2020-05-28T12:37:42Z orivej quit (Ping timeout: 256 seconds) 2020-05-28T12:38:07Z orivej joined #lisp 2020-05-28T12:43:48Z Bourne joined #lisp 2020-05-28T12:46:32Z Kundry_Wag joined #lisp 2020-05-28T12:48:36Z jfrancis joined #lisp 2020-05-28T12:56:34Z ech joined #lisp 2020-05-28T12:57:49Z orivej_ joined #lisp 2020-05-28T12:57:50Z orivej quit (Ping timeout: 272 seconds) 2020-05-28T12:57:54Z oxum_ joined #lisp 2020-05-28T12:58:30Z hiroaki joined #lisp 2020-05-28T13:00:31Z pjb quit (Remote host closed the connection) 2020-05-28T13:00:36Z oxum quit (Ping timeout: 256 seconds) 2020-05-28T13:01:10Z RukiSama joined #lisp 2020-05-28T13:01:28Z pjb joined #lisp 2020-05-28T13:03:53Z jonatack joined #lisp 2020-05-28T13:05:18Z oxum joined #lisp 2020-05-28T13:07:19Z Cuccslayer joined #lisp 2020-05-28T13:07:26Z Cuccslayer: Hello 2020-05-28T13:08:17Z Cuccslayer: i am trying to use ltk and i already have ltc/tk installed but it still gives me errors because quicklisp does not recognize i have tlc tk 2020-05-28T13:08:38Z Cuccslayer: tcl/tk* 2020-05-28T13:08:42Z oxum_ quit (Ping timeout: 260 seconds) 2020-05-28T13:08:54Z jonatack quit (Ping timeout: 240 seconds) 2020-05-28T13:09:50Z orivej_ quit (Ping timeout: 246 seconds) 2020-05-28T13:10:27Z orivej joined #lisp 2020-05-28T13:11:00Z jonatack joined #lisp 2020-05-28T13:11:51Z Kundry_Wag quit (Remote host closed the connection) 2020-05-28T13:12:04Z Kundry_Wag joined #lisp 2020-05-28T13:12:08Z Cuccslayer: oof 2020-05-28T13:12:17Z phoe: Cuccslayer: what's the exact error? please use a pastebin 2020-05-28T13:12:21Z Cuccslayer: ok 2020-05-28T13:13:00Z Cuccslayer: https://pastebin.com/dSzGXsGB 2020-05-28T13:13:04Z Cuccslayer: i do have wish 2020-05-28T13:13:17Z phoe: that's not an error though 2020-05-28T13:13:22Z phoe: that's just a Lisp form 2020-05-28T13:13:32Z phoe: what are you evaluating, and what is the error that you get? 2020-05-28T13:14:03Z Cuccslayer: damn i didnt copy the whole thing 2020-05-28T13:14:32Z ghard` quit (Ping timeout: 260 seconds) 2020-05-28T13:14:54Z Cymew quit (Quit: Konversation terminated!) 2020-05-28T13:14:55Z Cuccslayer: https://pastebin.com/4zhHTMDC 2020-05-28T13:16:10Z ralt: what's the english error for "O sistema não conseguiu localizar o ficheiro especificado."? 2020-05-28T13:16:25Z phoe: "the system cannot find the file specified" 2020-05-28T13:16:31Z Cuccslayer: the system could not localize the specified file 2020-05-28T13:16:35Z fengshaun quit (Quit: bibi!) 2020-05-28T13:16:39Z ralt: I guess it's a PATH issue then 2020-05-28T13:16:47Z Cuccslayer: enviroment variables? 2020-05-28T13:16:57Z phoe: wherever you have WISH installed, Lisp is unable to find it 2020-05-28T13:16:59Z ralt: if you use e.g. `"/absolute/path/to/wish"`, does it work? 2020-05-28T13:17:10Z phoe: yes, looks like an issue with the PATH envvar 2020-05-28T13:17:40Z Cuccslayer: ight thanks 2020-05-28T13:22:47Z ljavorsk quit (Ping timeout: 246 seconds) 2020-05-28T13:25:36Z orivej quit (Ping timeout: 246 seconds) 2020-05-28T13:26:39Z orivej joined #lisp 2020-05-28T13:26:53Z Cuccslayer: yeay it works 2020-05-28T13:28:25Z Cuccslayer: i made a button that returns "PRESS ME HARDER" everytime you press it, no regrets 2020-05-28T13:31:40Z Kundry_Wag quit (Remote host closed the connection) 2020-05-28T13:32:19Z Kundry_Wag joined #lisp 2020-05-28T13:36:57Z phoe: sounds like a good and fruitful use of the capabilities provided by modern UI toolkits 2020-05-28T13:37:16Z phoe: good to know that it works for you 2020-05-28T13:41:31Z bhartrihari left #lisp 2020-05-28T13:43:14Z jmercouris: any way to do (setf (osicat:file-permissions my-file) '(:user-read :user-write)) with UIOP instead? 2020-05-28T13:43:58Z jmercouris: or with any other 'built-in' utilities? 2020-05-28T13:44:13Z vaporatorius joined #lisp 2020-05-28T13:44:13Z vaporatorius quit (Changing host) 2020-05-28T13:44:13Z vaporatorius joined #lisp 2020-05-28T13:44:20Z vaporatorius quit (Read error: Connection reset by peer) 2020-05-28T13:44:38Z vaporatorius joined #lisp 2020-05-28T13:44:38Z vaporatorius quit (Changing host) 2020-05-28T13:44:38Z vaporatorius joined #lisp 2020-05-28T13:44:39Z vaporatorius quit (Read error: Connection reset by peer) 2020-05-28T13:44:48Z jonatack quit (Ping timeout: 256 seconds) 2020-05-28T13:45:41Z phoe: UIOP doesn't seem to contain any functionalities for that 2020-05-28T13:45:53Z jmercouris: can you think of a way I may do that without osicat? 2020-05-28T13:46:05Z phoe: sb-posix:chmod, but it is not portable 2020-05-28T13:46:09Z Josh_2: Afternoon all 2020-05-28T13:46:10Z jmercouris: maybe a uiop:run-program... 2020-05-28T13:46:18Z jmercouris: maybe that's the trick 2020-05-28T13:46:19Z phoe: sure, if you want to depend on the unix chmod 2020-05-28T13:46:30Z jmercouris: I don't want to 2020-05-28T13:46:39Z phoe: then why not depend on osicat? 2020-05-28T13:46:42Z jmercouris: do other distributions have a sb-posix compatibility layer? ccl? 2020-05-28T13:46:51Z jmercouris: I believe osicat is causing strange corruption issues in my image 2020-05-28T13:46:54Z phoe: nope, it's non-portable and SBCL-only 2020-05-28T13:47:11Z jmercouris: I didn't mean 'sb-posix' i meant ccl-posix eetc 2020-05-28T13:47:13Z Cuccslayer: why is it called steel bank 2020-05-28T13:47:15Z jmercouris: so I could write a compatibility layer 2020-05-28T13:47:24Z jmercouris: Carnegie Mellon 2020-05-28T13:47:29Z jmercouris: that is why, history 2020-05-28T13:47:59Z phoe: Cuccslayer: it has roots in Carnegie Mellon University; Carnegie was famous for steel and Mellon for banking 2020-05-28T13:48:09Z jmercouris: "The name "Steel Bank Common Lisp" is a reference to Carnegie Mellon University Common Lisp from which SBCL forked: Andrew Carnegie made his fortune in the steel industry and Andrew Mellon was a successful banker." 2020-05-28T13:48:11Z jmercouris: from WikiPedia 2020-05-28T13:48:46Z Cuccslayer: well thats neat, probably won't fit on my brain for long but good lore 2020-05-28T13:48:57Z phoe: jmercouris: I don't think so. 2020-05-28T13:49:06Z jmercouris: son of a potato 2020-05-28T13:49:12Z phoe: french fries? 2020-05-28T13:49:19Z jmercouris: potentially :-) 2020-05-28T13:49:25Z jmercouris: or mashed potatoes, could be anything really 2020-05-28T13:49:40Z ahungry joined #lisp 2020-05-28T13:51:24Z phoe: jmercouris: does osicat have any foreign components?... I can't see any there 2020-05-28T13:51:31Z jmercouris: it does 2020-05-28T13:51:34Z jmercouris: libosicat.dylib 2020-05-28T13:51:47Z jmercouris: it has a problem with dlopen on fresh start in my persisted image 2020-05-28T13:51:48Z phoe: hmmm, let me find it 2020-05-28T13:52:04Z phoe: jmercouris: have you reported it? 2020-05-28T13:52:10Z jmercouris: I've not reported it 2020-05-28T13:52:10Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-28T13:52:19Z orivej_ joined #lisp 2020-05-28T13:52:21Z jmercouris: I don't know if that is a flaw in the software, the fact that it doesn't package right :-) 2020-05-28T13:52:26Z pjb: Cuccslayer: https://termbin.com/b496w 2020-05-28T13:52:38Z Cuccslayer: what 2020-05-28T13:53:09Z jmercouris: link invalid 2020-05-28T13:53:11Z pjb: emacs lisp code to insert a PRESS ME button that becomes a PRESS ME HARDER button when pressed. 2020-05-28T13:53:30Z pjb: link perfectly valid, check your end. 2020-05-28T13:53:35Z Cuccslayer: yeah it opened 2020-05-28T13:53:37Z phoe: jmercouris: oh, I see, it's generated from https://github.com/osicat/osicat/blob/master/posix/wrappers.lisp 2020-05-28T13:53:37Z Cuccslayer: lmao 2020-05-28T13:53:50Z jmercouris: I think it uses grovel or something 2020-05-28T13:53:58Z jmercouris: yes, it does 2020-05-28T13:54:36Z phoe: jmercouris: please file a GitHub issue, it certainly should work after image thawing 2020-05-28T13:54:45Z jmercouris: it works sometimes, in some situations 2020-05-28T13:54:48Z jmercouris: I need to figure out why 2020-05-28T13:54:55Z phoe: what exactly is the dlopen error message? 2020-05-28T13:55:04Z jmercouris: I'm sorry, but I've since killed the terminal 2020-05-28T13:55:08Z jmercouris: and destroyed the image 2020-05-28T13:55:11Z phoe: welp 2020-05-28T13:55:18Z jmercouris: I'll figure out the pattern :-) 2020-05-28T13:55:27Z phoe: well then, no reproducibility, no bugs 2020-05-28T13:55:29Z jmercouris: but it also results in what I believe are image corruption issues 2020-05-28T13:55:48Z jmercouris: since adding it to my image I get a "image compromised" "fingers crossed" message from SBCL 2020-05-28T13:55:52Z jmercouris: it could be a coincidence of course 2020-05-28T13:59:00Z phoe: please report it then! 2020-05-28T13:59:15Z phoe: most of the time, issues get reproduced and fixed because they are reported 2020-05-28T13:59:50Z jmercouris: I will report, don't worry :-) 2020-05-28T13:59:57Z jmercouris: I do not hesitate, I just want to provide some more information 2020-05-28T14:00:04Z jmercouris: I've made many a report already :-) 2020-05-28T14:00:51Z wsinatra joined #lisp 2020-05-28T14:03:58Z ebrasca quit (Read error: No route to host) 2020-05-28T14:04:07Z nikkal quit (Ping timeout: 260 seconds) 2020-05-28T14:04:17Z ebrasca joined #lisp 2020-05-28T14:04:28Z orivej_ quit (Ping timeout: 256 seconds) 2020-05-28T14:04:57Z orivej joined #lisp 2020-05-28T14:13:58Z orivej quit (Ping timeout: 246 seconds) 2020-05-28T14:14:37Z orivej joined #lisp 2020-05-28T14:18:17Z oxum quit (Remote host closed the connection) 2020-05-28T14:18:21Z frgo_ joined #lisp 2020-05-28T14:18:21Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-28T14:18:38Z wsinatra joined #lisp 2020-05-28T14:19:54Z frgo_ quit (Remote host closed the connection) 2020-05-28T14:19:58Z wsinatra quit (Client Quit) 2020-05-28T14:19:59Z oxum joined #lisp 2020-05-28T14:20:16Z wsinatra joined #lisp 2020-05-28T14:20:31Z frgo_ joined #lisp 2020-05-28T14:20:32Z jfrancis quit (Remote host closed the connection) 2020-05-28T14:20:58Z jfrancis joined #lisp 2020-05-28T14:22:21Z frgo quit (Ping timeout: 272 seconds) 2020-05-28T14:25:31Z jfrancis quit (Ping timeout: 272 seconds) 2020-05-28T14:25:35Z Cuccslayer quit (Ping timeout: 265 seconds) 2020-05-28T14:27:19Z sjl_ joined #lisp 2020-05-28T14:30:37Z varjag quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2020-05-28T14:34:10Z Cuccslayer joined #lisp 2020-05-28T14:36:09Z jonatack joined #lisp 2020-05-28T14:41:21Z jw4 quit (Quit: tot siens) 2020-05-28T14:41:28Z bhartrihari joined #lisp 2020-05-28T14:43:03Z jw4 joined #lisp 2020-05-28T14:44:12Z bitmapper joined #lisp 2020-05-28T14:51:28Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-28T14:52:47Z orivej joined #lisp 2020-05-28T14:53:17Z X-Scale` joined #lisp 2020-05-28T14:53:22Z easye: Can an implementation add a keyword argument to MAKE-ARRAY and still be conforming? Allegro adds a :allocation keyword. Is that kosher? 2020-05-28T14:54:20Z beach: As I recall, that's OK, but I can't remember the relevant paragraph right now. 2020-05-28T14:54:20Z X-Scale quit (Ping timeout: 256 seconds) 2020-05-28T14:54:21Z X-Scale` is now known as X-Scale 2020-05-28T14:55:02Z beach: clhs 1.6 2020-05-28T14:55:02Z specbot: Language Extensions: http://www.lispworks.com/reference/HyperSpec/Body/01_f.htm 2020-05-28T14:55:36Z easye: beach: thanks for the gut check. That is my feeling as well, but I haven't dug up the justification yet. 2020-05-28T14:55:49Z phoe: easye: they can do that 2020-05-28T14:56:17Z phoe: e.g. sbcl's make-hash-table has an additional :weakness keyword arg 2020-05-28T14:56:28Z gxt__ is now known as gxt 2020-05-28T14:56:29Z easye: phoe: so does ABCL, so yeah. 2020-05-28T14:56:48Z X-Scale quit (Client Quit) 2020-05-28T14:57:25Z easye: keyword args are good: they really can't break existing code, and have clear semantics for default values. 2020-05-28T14:57:49Z engblom: Is it possible to somehow get values in uiop:*command-line-arguments* when I already got REPL running with a swank server? 2020-05-28T14:58:13Z engblom: I would want to test how it works when there actually will be values there 2020-05-28T14:58:14Z phoe: engblom: what do you want to achieve? 2020-05-28T14:58:25Z phoe: (let ((uiop:*command-line-arguments* ...)) ...) 2020-05-28T14:58:37Z phoe: it's a dynavar, you can rebind it 2020-05-28T14:58:46Z engblom: Ok 2020-05-28T14:58:50Z engblom: Thanks! 2020-05-28T14:59:00Z phoe: (let ((uiop:*command-line-arguments* ...)) (run-my-test)) 2020-05-28T14:59:06Z oxum quit (Remote host closed the connection) 2020-05-28T14:59:13Z easye: Having old functions with &optional args really sucks. No clean way to refactor them. 2020-05-28T14:59:19Z phoe: where #'run-my-test checks that argument 2020-05-28T14:59:34Z phoe: easye: yes, &optional args are ugly like that 2020-05-28T14:59:54Z oxum joined #lisp 2020-05-28T14:59:56Z jmercouris: any reason to ever use &optional instead of &key 2020-05-28T14:59:58Z jmercouris: ? 2020-05-28T15:00:26Z easye: jmercouris: not for me, but I suppose there are very rare cases when it makes sense. 2020-05-28T15:00:36Z easye: Can't produce any at this moment. 2020-05-28T15:01:19Z easye: Hey, we just "rediscoverd" &aux so anythings possible... 2020-05-28T15:01:19Z phoe: jmercouris: (defun foo (bar baz quux) ...) can often be factored into (defun foo (bar &optional baz quux) ...) without breaking the protocol 2020-05-28T15:02:27Z smazga joined #lisp 2020-05-28T15:02:29Z fe[nl]ix: easye: why the question about MAKE-ARRAY ? 2020-05-28T15:02:34Z engblom: Is there something I can use directly for printing a whole list on screen (for debugging purpose)? 2020-05-28T15:02:41Z phoe: engblom: #'PRINT 2020-05-28T15:02:59Z phoe: (print '(1 2 3 :foo "bar" #'car)) 2020-05-28T15:03:08Z easye: fe[nl]ix: need to add a ":direct" allocation for ABCL to tell the GC to not move the memory. 2020-05-28T15:03:28Z easye: This will allow ABCL to mmap() its fasls. 2020-05-28T15:03:40Z easye: Memory's cheap. 2020-05-28T15:04:18Z beach: &OPTIONAL is probably faster than &KEY in case that's an issue. 2020-05-28T15:04:21Z oxum quit (Ping timeout: 258 seconds) 2020-05-28T15:04:24Z Mawile quit (Read error: Connection reset by peer) 2020-05-28T15:04:39Z rippa joined #lisp 2020-05-28T15:04:51Z Mawile joined #lisp 2020-05-28T15:05:43Z phoe: (defun frob (&mandatory foo &recommended bar &optional baz &unnecessary quux &unwanted fred &forbidden firn) ...) 2020-05-28T15:06:16Z easye: phoe: that's a contentious CDR... 2020-05-28T15:06:20Z fe[nl]ix: easye: how are you thinking if implementing that ? 2020-05-28T15:06:30Z easye: Yes, I am implementing that. 2020-05-28T15:06:44Z smazga quit (Ping timeout: 246 seconds) 2020-05-28T15:06:49Z easye: Should allow us to load *much* faster. 2020-05-28T15:07:09Z easye: We currently redo a seek() for every component in the zip archive fasl. Uggh! 2020-05-28T15:07:25Z fe[nl]ix: as an array object where the payload is a foreign pointer ? 2020-05-28T15:07:45Z easye: fe[nl]ix: that will be possible as well. 2020-05-28T15:07:53Z easye: Terrabyte heaps here we come! 2020-05-28T15:07:59Z fe[nl]ix: easye: you can mmap zip files, if they're stored with null compression 2020-05-28T15:08:08Z jmercouris throws pasta 2020-05-28T15:08:21Z jmercouris: wrong channel, sorry 2020-05-28T15:08:21Z fe[nl]ix: so you keep the jar format and still be able to mmap its contents 2020-05-28T15:09:00Z easye: fe[nl]ix: ACK. The point is to avoid the m^n seeks for each fasl. Which is just stupid. 2020-05-28T15:09:29Z easye: err, not exactly M^n, but some sort of summation. 2020-05-28T15:09:50Z phoe: it's O(too much) where it should be O(less) 2020-05-28T15:09:57Z engblom: phoe: I have tried to find any example with #'PRINT but not found anything 2020-05-28T15:10:01Z easye: phoe: heh. exactly. 2020-05-28T15:10:20Z phoe: engblom: what do you mean? (print '(1 2 3)) in the REPL prints stuff onto the screen 2020-05-28T15:10:31Z cantstanya quit (Remote host closed the connection) 2020-05-28T15:10:42Z easye: jmercouris: Yer welcome to throw some pandemic pasta here. 2020-05-28T15:10:43Z engblom: phoe: Ah, that extra # 2020-05-28T15:10:48Z oxum joined #lisp 2020-05-28T15:10:50Z engblom: phoe: Ah, that extra #' confused me 2020-05-28T15:10:56Z phoe: #' is notation for functions 2020-05-28T15:11:02Z phoe: #'print === (function print) 2020-05-28T15:11:14Z phoe: (print '(1 2 3)) === (funcall #'print '(1 2 3)) 2020-05-28T15:11:20Z easye: #' has a distinct semantic for the function location. 2020-05-28T15:11:27Z jmercouris: what about #: 2020-05-28T15:11:36Z jmercouris: why do people do that in package declarations for example 2020-05-28T15:11:44Z jmercouris: instead of just : 2020-05-28T15:11:52Z easye: jmercouris: To avoid the implicit INTERN. 2020-05-28T15:11:57Z phoe: jmercouris: avoids polluting packages) 2020-05-28T15:12:00Z jmercouris: why would you wish to avoid that? 2020-05-28T15:12:04Z easye: There is some room to debate if it is worth it. 2020-05-28T15:12:08Z phoe: ^ 2020-05-28T15:12:16Z jmercouris: I can't imagine the reasoning, but oh well 2020-05-28T15:12:30Z engblom: phoe: Thank you! it does what I want! 2020-05-28T15:12:33Z phoe: : is kiiiinda okay, #: is the most pedantic 2020-05-28T15:12:41Z easye: Well, an INTERN needs to CONS, right? 2020-05-28T15:12:42Z phoe: (defpackage foo ...) is the worst 2020-05-28T15:12:56Z cantstanya joined #lisp 2020-05-28T15:14:07Z oxum quit (Remote host closed the connection) 2020-05-28T15:14:43Z jmercouris: why is that the worst? 2020-05-28T15:14:48Z jmercouris: I use uiop:defpackage 2020-05-28T15:15:10Z phoe: (defpackage foo (:use bar) (:export baz)) interns the symbols FOO, BAR, and BAZ into the current package 2020-05-28T15:15:16Z easye uses keywords liberally RE: instead of just : 2020-05-28T15:15:26Z phoe: and that happens even if you use uiop:defpackage 2020-05-28T15:15:33Z jmercouris: phoe: but why is that a problem? 2020-05-28T15:15:39Z jmercouris: if the symbols are interned what is the consequence? 2020-05-28T15:15:45Z phoe: jmercouris: wasted kilobytes of RAM 2020-05-28T15:15:47Z easye: One can never have enough keywords right? Memory is cheap. 2020-05-28T15:16:17Z phoe: as easye said, it's debatable whether the practical effect is really big 2020-05-28T15:16:23Z easye: All keywords are the same. 2020-05-28T15:16:24Z phoe: or even measurable?... 2020-05-28T15:16:25Z jmercouris: i think it is not big 2020-05-28T15:17:13Z pjb: Use strings, so they can be garbage collected and don't involve the overhead of an uninterned symbol! 2020-05-28T15:17:35Z easye: The #: thing is definitely a hygiene OCD thing as this point. It is probably not measurable on real computation devices at this point. But embedded... 2020-05-28T15:18:34Z Cuccslayer quit (Ping timeout: 240 seconds) 2020-05-28T15:20:12Z jackdaniel: #: is the right thing to do, that's all. no practical example of it breaking things 2020-05-28T15:20:22Z jackdaniel: it is similar to #+(or) vs #+nil debate 2020-05-28T15:20:39Z easye: jackdaniel: agreed. But I often don't patch the other behavior. 2020-05-28T15:20:41Z jackdaniel: (of course for both you may invent artificial examples which break things) 2020-05-28T15:20:55Z phoe: the legendary (push :nil *features*) strikes again 2020-05-28T15:21:07Z jackdaniel: when I see #+nil my eyes itch 2020-05-28T15:21:16Z easye: #+nil is definitely inferior. Just try running your code on the "New Implementation of Lisp" implementation. 2020-05-28T15:22:31Z easye: #+(or) has unequivocally semantic not dependent on the state of *FEATURES*. 2020-05-28T15:22:44Z easye: s/has/has a/ 2020-05-28T15:23:55Z easye: jackdaniel: can you invent an example of #+(or) which breaks things? Interesting. 2020-05-28T15:24:04Z jackdaniel: I mean #+nil can break things 2020-05-28T15:24:09Z easye: ACK 2020-05-28T15:24:10Z jackdaniel: #+(or) is *the right thing to do* 2020-05-28T15:24:14Z Cuccslayer joined #lisp 2020-05-28T15:24:16Z easye: Amen. 2020-05-28T15:24:17Z jackdaniel: similar to #:foo for packages 2020-05-28T15:24:43Z jackdaniel: but in practice it does not, as noted 2020-05-28T15:25:10Z jackdaniel: (i.e nobody pushes #+nil because they know things will horribly [and randomly] break) 2020-05-28T15:25:18Z jackdaniel: s/#+nil/:nil/ 2020-05-28T15:25:55Z easye: Norvig's style guide is a great thing to study and understand. 2020-05-28T15:26:06Z jackdaniel: yes, I've enjoyed it a lot 2020-05-28T15:26:29Z easye: And, dare I pun, INTERN! 2020-05-28T15:26:37Z jackdaniel: :) 2020-05-28T15:26:47Z phoe: oof 2020-05-28T15:26:55Z easye: Worth the CONS... 2020-05-28T15:27:28Z jackdaniel: toss a cons for your easye, o valley of plenty 2020-05-28T15:27:38Z easye: memory is cheap. 2020-05-28T15:27:46Z easye: Ok, back to hacking ABCL. 2020-05-28T15:28:01Z jackdaniel: right, I still need to finish implementing moving windows in the terminal :) 2020-05-28T15:28:11Z jackdaniel: [with a pointer of course] 2020-05-28T15:28:22Z easye: jackdaniel: loved your work without curses. 2020-05-28T15:28:41Z jackdaniel: thank you, it grown bigger than I initially expected, but it is a lot of fun 2020-05-28T15:28:57Z easye: Something satisfying about moving a cursor... 2020-05-28T15:29:39Z phoe: jackdaniel: can I move a CLIM window in terminal by doing SETF CFFI:MEM-REF? 2020-05-28T15:29:41Z White_Flame: an uninterned symbol still needs to be consed into existence, too 2020-05-28T15:29:42Z easye: Not related, but it would be nice to have a CL:FORMAT extension for centering text. 2020-05-28T15:30:20Z easye: (which can be done portably) 2020-05-28T15:30:44Z phoe adds it to the idea bin for the Hypothetical Future Revision™ 2020-05-28T15:31:06Z jackdaniel: phoe: I doubt it, because ffi is used only to configure the terminal in raw mode 2020-05-28T15:31:24Z phoe: jackdaniel: but you said it can be done with a pointer :( 2020-05-28T15:31:27Z jackdaniel: easye: clim's draw-text does have :align-x and :align-y parameters 2020-05-28T15:31:42Z jackdaniel: ah, that's what you mean, I didn't get it :) 2020-05-28T15:32:07Z phoe: jackdaniel: I thought you would enjoy this kind of humor 2020-05-28T15:32:10Z jackdaniel: there is also formatting-output which could be possibly extended to accept that 2020-05-28T15:32:13Z easye: After I get the mmap() stuff working, I'm on the McCLIM trail 2020-05-28T15:32:17Z jackdaniel: I do, and it is funny, I just didn't get it! 2020-05-28T15:32:21Z phoe: :D 2020-05-28T15:32:23Z efm joined #lisp 2020-05-28T15:33:33Z pjb: easye: you can do it with ~/ 2020-05-28T15:34:08Z easye: pjb: interesting. I didn't know. There was a reddit request for this recently. 2020-05-28T15:34:37Z phoe: easye: that thread had a lot of requests, some of them contradictory 2020-05-28T15:34:44Z easye: CL:FORMAT is too big to keep in my swap. 2020-05-28T15:35:00Z phoe: I use CLHS for anything non-trivial in FORMAT 2020-05-28T15:35:03Z easye: phoe: cool. Glad to know there is some movement. 2020-05-28T15:35:38Z p_l: that reminds me... does LW ship physical manuals still? 2020-05-28T15:35:45Z easye: Adding to the cookbook for CL:FORMAT would be good. PCL is great, but could use an index. 2020-05-28T15:35:55Z phoe: easye: file an issue on the cookbook! 2020-05-28T15:36:13Z phoe: there's people who work on it daily, they could use some feedback 2020-05-28T15:36:48Z lukego: How do I add a directory to the ASDF search path? I'm reading the docs but it seems like I need to understand this whole configuration DSL so that I can correctly update whatever the starting value of asdf:*source-repository* is? or is there a simple way along the lines of (push "/dir" *load-paths*) ? 2020-05-28T15:37:35Z easye: phoe: naw, I'll just write it when I get a chance. 2020-05-28T15:37:44Z jackdaniel: lukego: you may push to the asdf:*central-registry* 2020-05-28T15:38:08Z lukego: sounded though like that's not advised and might end up disabling rather than augmenting other config? 2020-05-28T15:38:10Z jackdaniel: it is "deprecated", but that's a way for quick hack from the repl 2020-05-28T15:38:12Z easye: lukego: the easiest way is to hold your nose and push to the registry. 2020-05-28T15:38:13Z _death: lukego: there's also ql:*local-project-directories* 2020-05-28T15:38:35Z fe[nl]ix: lukego: what do you mean by adding a directory ? 2020-05-28T15:38:35Z jackdaniel: and to my knowledge it doesn't break anything 2020-05-28T15:38:58Z jackdaniel: right, there is a tree and a shallow variant 2020-05-28T15:39:01Z lukego: easye: you mean like skip over the :SOURCE-REGISTRY and poke in a path e.g. (setf (cdr asdf:*source-registry*) ...) or something? 2020-05-28T15:39:34Z jackdaniel: pushing to the central registry is imo safer than modifying the source registry 2020-05-28T15:39:43Z lukego: fe[nl]ix: I want ASDF to load systems from $dir in addition to anywhere it was already planning to look 2020-05-28T15:39:46Z easye: loke: I've started CL:WRITE'n asdf files 2020-05-28T15:39:46Z jackdaniel: (from inside the image) 2020-05-28T15:40:17Z lukego: I think that I will just not use ASDF :) thanks for the reality check 2020-05-28T15:40:23Z easye: s/asdf files/asdf configuration files/ 2020-05-28T15:40:27Z fe[nl]ix: lukego: recursively ? 2020-05-28T15:40:41Z lukego: fe[nl]ix: preferably recursively, yeah 2020-05-28T15:40:53Z easye: It seems that the best way to deal with ASDF is to write everything to the filesystem where it can be introspected. 2020-05-28T15:42:14Z lukego: I'm not sure what I'm missing here. Seems like my needs are very generic. The default image will have an ASDF load path, including all the packages that are installed on the machine, and then I want to also load my own code. I thought this would be like the first example in the manual? 2020-05-28T15:43:11Z easye: The ASDF manual could use some love. 2020-05-28T15:43:13Z jackdaniel: just push the directory to a central registry, or write the conf file in dsl 2020-05-28T15:43:33Z fe[nl]ix: lukego: I symlink all .asd files I need into a central directory, and register that 2020-05-28T15:43:57Z easye: symlinks are another option that works well. 2020-05-28T15:44:11Z easye: The central registry is deprecated but still works. 2020-05-28T15:44:15Z shka_ joined #lisp 2020-05-28T15:44:20Z _death: deprecate deprecate 2020-05-28T15:44:21Z jackdaniel: lukego: such conf file could look like this: (:source-registry (:tree "/path/to/the/directory") :inherit-configuration) 2020-05-28T15:44:29Z easye: _death: heh. 2020-05-28T15:44:31Z lukego: fe[nl]ix: OK. Guess my setup is unusual. I have a packaging of SBCL with all my external dependencies that puts them all in a central place. This is already setup when SBCL starts. But now I want to also include the working directory of the code I usually hack on 2020-05-28T15:44:49Z fe[nl]ix: that's the original way of doing things, and IMO it's still the best mechanism because it doesn't require each load to recursively search a potentially very large tree 2020-05-28T15:46:01Z easye: fe[nl]ix: the recursive argument is good. 2020-05-28T15:46:06Z lukego: Thanks again for the tips and commiserations :) 2020-05-28T15:46:44Z easye: lukego: just do another startup to employ us someday, ok? 2020-05-28T15:47:31Z fe[nl]ix: lukego: that sounds reasonable, but I think few Lispers work that way 2020-05-28T15:48:54Z _death: hmm, maybe I'm missing something, but to me it looks like quicklisp setup + a third-party directory (which I push to ql:*local-project-directories* if it's not already there) 2020-05-28T15:49:49Z vaporatorius joined #lisp 2020-05-28T15:49:49Z vaporatorius quit (Changing host) 2020-05-28T15:49:50Z vaporatorius joined #lisp 2020-05-28T15:50:50Z EvW quit (Ping timeout: 246 seconds) 2020-05-28T15:51:13Z engblom: Is there an equivalent of \n for lisp when using (print "....") or do I need to use (format ...)? 2020-05-28T15:51:28Z jackdaniel: you may put a literal newline in the string 2020-05-28T15:51:38Z jackdaniel: or you may use terpri 2020-05-28T15:53:06Z engblom: Thanks! 2020-05-28T15:53:11Z rgherdt joined #lisp 2020-05-28T15:53:43Z _death: you could also define a reader macro.. did you know the bit vector syntax (what is now #*1010) used to be #"1010"? then Pitman suggested the new syntax to make #" available and gave an example of a reader macro that sends to format.. so #"foo~%bar" would do.. he gave an example of it in a docstring to solve the "indentation issue" 2020-05-28T15:55:13Z pjb: easye: https://termbin.com/n813 2020-05-28T15:55:17Z fe[nl]ix: engblom: cl-interpol has a reader macro for c-like strings 2020-05-28T15:56:15Z _death: the proposal is in https://cl-su-ai.cddddr.org/msg03341.html 2020-05-28T15:56:26Z easye: pjb: nice. Is that in somewhere that Quicklisp can pick it up? 2020-05-28T15:57:00Z easye: err. (ql:quickload :split-sequence) is an odd place. Thanks! 2020-05-28T15:57:24Z pjb: easye: it's a dependency! 2020-05-28T15:57:45Z pjb: easye: you can use com.informatimago.common-lisp.cesarum.string:split-string instead. 2020-05-28T15:57:54Z easye: Sorry. Too many buffers in this Eight Megabytes And Constantly Swapping... 2020-05-28T15:58:54Z easye: But, altogether now, "Memory is cheap!" 2020-05-28T15:59:23Z easye: s/altogether/alltogether/\ 2020-05-28T15:59:34Z aeth: CPU cache is the new memory 2020-05-28T15:59:51Z easye: aeth: heh. Definitely for Emacs. 2020-05-28T15:59:51Z jcowan joined #lisp 2020-05-28T15:59:56Z phoe: everybody now, "cpu cache is expensive!" 2020-05-28T16:00:10Z jcowan: Compared to what? 2020-05-28T16:00:36Z White_Flame: threadripper, "how much you want?" 2020-05-28T16:00:44Z jcowan: If your code has to be small enough to fit in registeres only, you have a real problem. 2020-05-28T16:00:50Z aeth: Most desktop Ryzens give you 32-256 MB cache, but they're split so it's less than you think unless you can perfectly parallelize your application. 2020-05-28T16:01:02Z easye: We have a lot of registers these days... 2020-05-28T16:01:04Z jcowan: Question: is it usual to use .lisp as an extension for S-expression data files that aren't code? 2020-05-28T16:01:18Z aeth: I use .sxp 2020-05-28T16:01:19Z jcowan: Oh, you mean expensive in $$$s. 2020-05-28T16:01:37Z easye: jcowan: I've seen "sexp" as the best TYPE, but it has problems with porn filters. 2020-05-28T16:01:46Z phoe: jcowan: I wouldn't do that, too easy to accidentally try to LOAD or COMPILE them. 2020-05-28T16:01:47Z aeth: .sexp is also common, but I prefer .sxp because I don't trust filters, yes 2020-05-28T16:01:55Z _death: sbcl has some .lisp-expr files 2020-05-28T16:02:39Z beach: jmercouris: The #: prefix for uninterned symbols has nothing to do with saving space. It has to do with showing the person reading your code that the package of the symbols has no importance. 2020-05-28T16:03:07Z Kundry_Wag quit (Remote host closed the connection) 2020-05-28T16:03:14Z easye: jcowan: best is probably to add a ASDF class locally to semantically nail what you mean. 2020-05-28T16:03:38Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-28T16:03:44Z White_Flame: if everybody used keywords for package names (since the space is flat anyway), there would be zero memory overhead per use 2020-05-28T16:03:53Z jcowan: I just encountered a claim that people do in fact use .lisp in such circumstances, and I wanted to make sure that if it exists, it is at least not best practice. 2020-05-28T16:04:23Z phoe: jcowan: IMO naming a file .lisp if it doesn't contain Lisp source code is at least an instance of a misnomer 2020-05-28T16:04:33Z jcowan: beach: Surely not. The whole point of #:foo is that it is not eq to another #:foo, which would not be the case for junk::foo. 2020-05-28T16:04:56Z _death: polluting the keyword package with such symbols would be annoying when completing 2020-05-28T16:04:57Z orivej joined #lisp 2020-05-28T16:05:09Z easye: I'm with phoe here. "lisp" should be CL:LOAD'able 2020-05-28T16:05:49Z White_Flame: _death: doesn't SLIME contextually complete keyword parameters by now? 2020-05-28T16:05:56Z easye isn't getting any work done. Damn you #lisp! 2020-05-28T16:06:03Z White_Flame: and that space will get polluted by anything & everything anyway 2020-05-28T16:06:09Z jcowan too, and I'm here yak shaving 2020-05-28T16:06:17Z phoe hides the yak 2020-05-28T16:06:22Z phoe: okay everyone, time to work 2020-05-28T16:06:37Z White_Flame: but it's not like I'm promoting keywords for package name use, but rather if people are making it a memory concern, then that's the cleanest way to contain it 2020-05-28T16:07:03Z jcowan: sometimes I think Zetalisp had the right idea: a hierarchy of packages with each automatically use-ing its parent and the analogue-of-CL package at the top. 2020-05-28T16:07:12Z jcowan: Less flexible, but easier to understand. 2020-05-28T16:07:16Z beach: jcowan: I was talking specifically of its use in DEFPACKAGE. 2020-05-28T16:07:32Z jcowan: Oh, sorry, I didn't have the context 2020-05-28T16:07:51Z jcowan departs, *with* the yak hair 2020-05-28T16:08:00Z jcowan left #lisp 2020-05-28T16:09:15Z _death: White_Flame: what do you mean? while it's not always unambiguous, when I complete :i-f-d-e I often get :if-does-not-exist.. if people started using keywords, it and other scenarios have a better chance of becoming ambiguous 2020-05-28T16:10:03Z White_Flame: uh, the keyword package will contain the union of all &keyword parameters in use across everything, plus any other tagging use. It's already a polluted space 2020-05-28T16:10:04Z Blukunfando joined #lisp 2020-05-28T16:10:16Z White_Flame: s/&keyword/&key/ 2020-05-28T16:11:21Z _death: White_Flame: all I am saying is that stuffing more names there raises the chances of ambiguity 2020-05-28T16:11:52Z _death: so if there's no reason and #:this-works... 2020-05-28T16:12:19Z White_Flame: regarding my SLIME comment, I thought that when you're in the &key portion of a function, the tab completion would look at the available keyword parameters 2020-05-28T16:12:30Z jmercouris: beach: what do you mean by that? 2020-05-28T16:12:31Z _death: gtg 2020-05-28T16:12:41Z White_Flame: but, I guess it's not guaranteed that a list starting wiht a function name is a call to it anyway 2020-05-28T16:13:14Z jmercouris: beach: if the package does not matter, why do they not just do 'symbolxyz? 2020-05-28T16:13:22Z jmercouris: why include the : at all? 2020-05-28T16:13:35Z paul0 quit (Quit: Leaving) 2020-05-28T16:14:19Z dyelar joined #lisp 2020-05-28T16:14:25Z pjb: jmercouris: in defpackage, arguments are STRING designators. packages are named by STRINGS. I don't understand why you want to use symbols. 2020-05-28T16:14:37Z beach: jmercouris: What I mean is, if you give a symbol with a specific package, then the person reading your code might think that it is important that the symbol has that particular package. So by giving a symbol that does not HAVE a package, you clearly show the person reading the code that the package doesn't matter. 2020-05-28T16:15:15Z jmercouris: oh I see 2020-05-28T16:15:17Z White_Flame: pjb: presumably to take care of the case automatically 2020-05-28T16:15:21Z phoe: jmercouris: (defpackage 'foo ...) won't work anyway 2020-05-28T16:15:35Z pjb: White_Flame: I'm an absolutist. 2020-05-28T16:15:43Z pjb: relativism is bad. 2020-05-28T16:15:47Z jmercouris: so you could write (defpackage "foo" ...)? 2020-05-28T16:15:56Z phoe: jmercouris: (defpackage "FOO" ...) 2020-05-28T16:15:58Z pjb: jmercouris: yes. |foo|:bar. 2020-05-28T16:15:59Z White_Flame: and foo:bar syntax in usage uses symbol case 2020-05-28T16:16:02Z phoe: package names are case sensitive 2020-05-28T16:16:11Z jmercouris: interesting 2020-05-28T16:16:15Z jmercouris: why do we not see people using strings? 2020-05-28T16:16:22Z pjb: I do. 2020-05-28T16:16:23Z jmercouris: so that the users case sensitivity does not break things? 2020-05-28T16:16:41Z phoe: it used to be a popular thing, using strings in there 2020-05-28T16:16:41Z easye: jmercouris: because keywords always mean the same thing. By definition. 2020-05-28T16:16:42Z jmercouris: I think you can disable upcasing, so that would break many people's code 2020-05-28T16:16:52Z FreeBirdLjj joined #lisp 2020-05-28T16:16:57Z jmercouris: who assume upcasing environment 2020-05-28T16:17:07Z pjb: who are not conforming. 2020-05-28T16:17:24Z jmercouris: not upcasing is non conforming? 2020-05-28T16:17:27Z easye: pjb: good question. I don't know of any. 2020-05-28T16:17:58Z smazga joined #lisp 2020-05-28T16:17:59Z easye: But there could be... 2020-05-28T16:18:16Z pjb: jmercouris: what would be non conforming, is to expect some setting of the *readtable* (and other variables), since their default values are implementation dependent. 2020-05-28T16:18:37Z White_Flame: pjb: I would expect all your symbol usage in source code to be written in uppercase to fit your absolutism ;) 2020-05-28T16:18:39Z pjb: jmercouris: by this, most quicklisp libraries are non conforming. 2020-05-28T16:18:49Z jmercouris: hm, I see 2020-05-28T16:18:59Z pjb: White_Flame: yes. I only downcase to avoid people shouting at me… 2020-05-28T16:19:11Z jmercouris: YOU DOWNCASE TO PREVENT WHAT? 2020-05-28T16:19:17Z aeth: jmercouris: (symbol-name '#:foo) is the correct way to avoid upcasing issues, or in the case of defpackage, #.(symbol-name '#:foo) 2020-05-28T16:19:23Z pjb: White_Flame: I have lisp-upcase and lisp-downcase emacs commands. 2020-05-28T16:19:23Z nikkal joined #lisp 2020-05-28T16:19:27Z aeth: But in the case of a defpackage you can just use #:foo instead 2020-05-28T16:20:13Z aeth: jmercouris: that being said, only my code wouldn't break if your reader didn't upcase :-) 2020-05-28T16:20:22Z aeth: expect every other library to break 2020-05-28T16:20:39Z aeth: If you want case-sensitivity, do a case inversion 2020-05-28T16:20:51Z easye: There's convention, and there's conformance. 'nuff said. 2020-05-28T16:21:16Z easye: We have a ANSI standard, damnit! And it means something. 2020-05-28T16:21:37Z easye: (not enough, but that's another debate) 2020-05-28T16:21:47Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2020-05-28T16:21:57Z aeth: I was going to say, good luck getting libraries running if you just have ANSI conformance, wtihout things like CFFI or bordeaux-threads 2020-05-28T16:24:24Z aeth: A few others, too, like trivial-features 2020-05-28T16:24:52Z aeth: Although I think in theory you can just implement things exactly in thew ay that trivial-features expects, since that's mostly about making *features* in implementations consistent. 2020-05-28T16:25:04Z easye: aeth: there is a "post-renaissance open implementation conformance" which is the consensus in which we operate. 2020-05-28T16:25:46Z phoe: easye: that conformance is surprisingly often called ASDF and UIOP, to the dismay of surprisingly many lispers 2020-05-28T16:26:18Z easye: ASDF/UIOP is an important part of that conformance, but not the whole story. 2020-05-28T16:26:23Z phoe: yes 2020-05-28T16:27:07Z phoe: we couldn't get the implementers to agree about how cl-ext:quit should work, so we have uiop:quit instead 2020-05-28T16:27:10Z easye: Which is why we need something like the CDR to explain things for posterity. 2020-05-28T16:27:18Z phoe: people still don't agree that this is how it should work, but at least it's there 2020-05-28T16:28:08Z easye: Maybe a HTML5-like "living standard" for Common Lisp. 2020-05-28T16:28:23Z phoe: easye: yes, I plan on reviving UltraSpec as soon as I'm done with my book 2020-05-28T16:29:32Z easye: CL is very "convention" orientated in practice. Especially for the coordination among the open implementations. 2020-05-28T16:29:43Z rivvera quit (Changing host) 2020-05-28T16:29:43Z rivvera joined #lisp 2020-05-28T16:29:49Z rivvera is now known as Rav3n 2020-05-28T16:30:30Z easye: Did y'all notice that CLojure didn't make Stack Overflow's "state of programming" content? 2020-05-28T16:31:15Z Kundry_Wag joined #lisp 2020-05-28T16:31:21Z easye: Arguments have been made that SO is weighting their survey to people who actually use SO. 2020-05-28T16:31:29Z Kundry_Wag quit (Read error: Connection reset by peer) 2020-05-28T16:31:57Z Kundry_Wag joined #lisp 2020-05-28T16:32:02Z engblom: If I want to make sure the result is an integer and not a floating point, is there a better way to round an arbitary floating number than (floor (+ number 0.5))? 2020-05-28T16:32:14Z beach: clhs round 2020-05-28T16:32:14Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_floorc.htm 2020-05-28T16:32:42Z phoe: engblom: FLOOR, CEILING, ROUND, TRUNCATE - choose your poiso^Wrounding algorithm 2020-05-28T16:33:00Z aeth: or write your own, since the second return value of any of those gives you enough to do so 2020-05-28T16:33:13Z beach: engblom: Your idea won't do the right thing. 2020-05-28T16:33:14Z easye apparently isn't going to get much work done. 2020-05-28T16:34:49Z beach: engblom: Try (round 4.5) and (floor (+ 4.5 0.5)) 2020-05-28T16:35:09Z bhartrihari left #lisp 2020-05-28T16:35:12Z engblom: beach: In that case the floor variant does right while the round variant does wrong 2020-05-28T16:35:19Z beach: Not so. 2020-05-28T16:35:20Z engblom: 4.5 should be rounded to 5 2020-05-28T16:35:25Z beach: Nope 2020-05-28T16:35:32Z engblom: beach: Why not? 2020-05-28T16:35:36Z beach: You round to even numbers when you are exactly half. 2020-05-28T16:35:37Z bhartrihari joined #lisp 2020-05-28T16:35:54Z beach: So that statistically you round half of the numbers up and half of the numbers down. 2020-05-28T16:36:13Z beach: So round is doing the right thing and yours is not. 2020-05-28T16:36:36Z scymtym quit (Remote host closed the connection) 2020-05-28T16:36:45Z scymtym joined #lisp 2020-05-28T16:36:53Z engblom: beach: This is the first time I hear this about rounding. I have been learned to always round up when at .5 2020-05-28T16:37:04Z beach: I am sorry to hear that. 2020-05-28T16:37:05Z easye: 2020-05-28T16:41:39Z ArthurStrong joined #lisp 2020-05-28T16:41:53Z dmiles quit (Read error: Connection reset by peer) 2020-05-28T16:45:59Z dmiles joined #lisp 2020-05-28T16:47:06Z luckless quit (Remote host closed the connection) 2020-05-28T16:47:23Z luckless joined #lisp 2020-05-28T16:48:15Z jackdaniel: and this https://en.wikipedia.org/wiki/Rounding 2020-05-28T16:48:54Z jackdaniel: that said I'm sometimes disappointed that CL doesn't round half up, especially when I was writing a function to calculate my taxes :) 2020-05-28T16:49:03Z jackdaniel: but that's easily mitigated with defining a function round* 2020-05-28T16:49:45Z jackdaniel: it is just you always have to break for split second to add this star at the end, probably could be better solved (in my particular case) with shadowing the symbol 2020-05-28T16:50:29Z botanick joined #lisp 2020-05-28T16:52:48Z jeosol joined #lisp 2020-05-28T16:53:04Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-28T16:53:51Z rumbler31 quit (Remote host closed the connection) 2020-05-28T16:55:08Z cosimone quit (Quit: Quit.) 2020-05-28T16:59:01Z orivej quit (Read error: Connection reset by peer) 2020-05-28T16:59:08Z orivej_ joined #lisp 2020-05-28T16:59:45Z phoe: engblom: don't worry, I was taught that way too 2020-05-28T17:00:51Z dddddd joined #lisp 2020-05-28T17:04:54Z phoe: and then I understood that this way of rounding has some meaning when we do (reduce #'+ (mapcar #'round '(0.5 1.5 2.5 3.5 4.5 5.5))) and get 18 which is closer to the non-rounded result than 21 2020-05-28T17:05:09Z oxum joined #lisp 2020-05-28T17:06:59Z EvW1 joined #lisp 2020-05-28T17:07:01Z bhartrihari left #lisp 2020-05-28T17:07:09Z bhartrihari joined #lisp 2020-05-28T17:08:58Z engblom: I have finally written my first common lisp program :) 2020-05-28T17:09:14Z phoe: engblom: share it! https://plaster.tymoon.eu/ 2020-05-28T17:09:56Z oxum quit (Ping timeout: 246 seconds) 2020-05-28T17:10:40Z jackdaniel: congrats 2020-05-28T17:12:22Z engblom: phoe: It is deadugly and I have not formated it properly but here it is: https://plaster.tymoon.eu/view/1881#1881 2020-05-28T17:16:28Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-28T17:17:48Z orivej joined #lisp 2020-05-28T17:18:32Z engblom: phoe: Besides the formating and cleaning up, is there anything that I definitely should have been doing in a different way? 2020-05-28T17:19:19Z phoe: engblom: after a bit of refactoring, it looks like https://plaster.tymoon.eu/view/1882#1882 for me 2020-05-28T17:19:49Z phoe: should work the same as yours; if not, I screwed up 2020-05-28T17:19:54Z engblom: phoe: Thanks! 2020-05-28T17:24:39Z Cuccslayer: lmao i left this window open 2020-05-28T17:24:49Z Cuccslayer: ive been here the whole time 2020-05-28T17:24:58Z phoe: Cuccslayer: same as tens of other people I guess 2020-05-28T17:25:03Z phoe: I leave my IRC connected all the time 2020-05-28T17:25:13Z Cuccslayer: hmm 2020-05-28T17:25:23Z cosimone joined #lisp 2020-05-28T17:25:53Z cosimone quit (Client Quit) 2020-05-28T17:26:20Z Cuccslayer quit (Quit: WeeChat 2.7) 2020-05-28T17:29:26Z engblom: phoe: It works well! 2020-05-28T17:31:02Z phoe: engblom: glad to hear that 2020-05-28T17:31:13Z phoe: so, that's how I'd format and style this code 2020-05-28T17:31:35Z phoe: separating the constants and configuration outside the main body of the function 2020-05-28T17:32:22Z engblom: phoe: Yes, it is looking better like this rather than what I did throw into the file 2020-05-28T17:34:46Z jw4 quit (Read error: Connection reset by peer) 2020-05-28T17:36:44Z jw4 joined #lisp 2020-05-28T17:37:37Z oxum joined #lisp 2020-05-28T17:43:25Z oxum quit (Ping timeout: 264 seconds) 2020-05-28T17:44:23Z pjb quit (Ping timeout: 272 seconds) 2020-05-28T17:46:05Z rumbler31 joined #lisp 2020-05-28T17:47:12Z bhartrihari left #lisp 2020-05-28T17:47:18Z bhartrihari joined #lisp 2020-05-28T17:48:13Z grewal quit (Remote host closed the connection) 2020-05-28T17:51:04Z rumbler31 quit (Ping timeout: 256 seconds) 2020-05-28T17:51:40Z jello_pudding quit (Ping timeout: 265 seconds) 2020-05-28T17:54:08Z heisig quit (Quit: Leaving) 2020-05-28T17:55:49Z SGASAU quit (Remote host closed the connection) 2020-05-28T17:56:27Z SGASAU joined #lisp 2020-05-28T18:00:09Z whartung joined #lisp 2020-05-28T18:02:48Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-28T18:03:58Z orivej joined #lisp 2020-05-28T18:08:09Z bhartrihari left #lisp 2020-05-28T18:08:11Z bhartrihari joined #lisp 2020-05-28T18:10:29Z oxum joined #lisp 2020-05-28T18:11:29Z pjb joined #lisp 2020-05-28T18:11:35Z jello_pudding joined #lisp 2020-05-28T18:13:08Z bitmapper quit (Remote host closed the connection) 2020-05-28T18:13:13Z andrei-n: Hello. Is there a tutorial how to write a x86-64 bootloader in Common Lisp? It's for the "Make Something" part of "A Road to Common Lisp". Thank you! 2020-05-28T18:13:36Z whartung: anyone know of a way to make (find ‘(10 20 30 40) 25 :test ???) return “20”? 2020-05-28T18:13:45Z bitmapper joined #lisp 2020-05-28T18:14:04Z jackdaniel: andrei-n: check out mezzano (there is #mezzano channel) 2020-05-28T18:14:13Z whartung: I’ve tried :test #’<, #’> neither do what I want. 2020-05-28T18:14:14Z jackdaniel: there is also movitz 2020-05-28T18:15:07Z phoe: whartung: (lambda (x y) (or (= x 20) (= y 20))) 2020-05-28T18:15:38Z phoe: I don't think this is what you want even though it will satisfy your requirements 2020-05-28T18:15:58Z whartung: yes, it’s bit pedantic 2020-05-28T18:16:28Z jackdaniel: could you put in words what are the criteria of searching for 25 in this list? 2020-05-28T18:16:31Z phoe: what are you tring to do? 2020-05-28T18:16:40Z whartung: any way to use find to find the element with the maximum key that is <= to the query 2020-05-28T18:16:40Z phoe: also, you got the arguments reversed in FIND 2020-05-28T18:17:11Z whartung: so, 20 for 25, 10 for 15, 40 for 22348234 2020-05-28T18:18:02Z jackdaniel: (max (remove-if-not (lambda (elt) (<= elt query)) sequence)) 2020-05-28T18:18:14Z jackdaniel: isn't that a homework by accident though? 2020-05-28T18:18:33Z bitmapper quit (Ping timeout: 265 seconds) 2020-05-28T18:18:36Z jackdaniel: the specification sounds very artificial 2020-05-28T18:18:41Z bitmapper joined #lisp 2020-05-28T18:19:06Z jackdaniel: or superficial even 2020-05-28T18:19:56Z phoe: jackdaniel: (reduce #'max ...)? 2020-05-28T18:19:57Z whartung: no, its not. Simply I have a table, and I want to look up in that table based on the value. Rather than using ranges (0-10, 11-20, 21-30), I hoped to use implied ranges. 2020-05-28T18:20:49Z jackdaniel: phoe: maybe, it is after 8pm here so I can't honestly answer ;) pozornie looks OK 2020-05-28T18:22:29Z phoe: whartung: my natural instinct is to use a dirty LOOP for that 2020-05-28T18:22:34Z phoe: (loop with limit = 25 with result = 0 for i in '(10 20 30 40) when (<= 0 i limit) do (setf result i) finally (return result)) ;=> 20 2020-05-28T18:23:17Z sauvin quit (Read error: Connection reset by peer) 2020-05-28T18:23:35Z bfig_ is now known as bfig 2020-05-28T18:23:44Z bhartrihari left #lisp 2020-05-28T18:23:48Z bhartrihari joined #lisp 2020-05-28T18:25:37Z orivej quit (Ping timeout: 246 seconds) 2020-05-28T18:26:38Z orivej joined #lisp 2020-05-28T18:27:01Z andrei-n: jackdaniel, Thanks.. There is a lot of files, not sure I'll be able to find it... 2020-05-28T18:27:54Z jackdaniel: I mean that you may try asking there, because froggey wrote such bootloader afaik 2020-05-28T18:29:54Z froggey: mezzano's bootloader is written in C because it reuses a preexisting bootloader. dealing with early PC startup is extremely tedious and I didn't want to deal with it 2020-05-28T18:30:19Z froggey: iirc movitz's bootloader is written in CL, so that would be a better place to look 2020-05-28T18:33:38Z sdumi quit (Ping timeout: 256 seconds) 2020-05-28T18:34:49Z chwhelan quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-28T18:35:08Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-28T18:36:18Z orivej joined #lisp 2020-05-28T18:37:41Z slyrus_ joined #lisp 2020-05-28T18:37:45Z ebrasca quit (Remote host closed the connection) 2020-05-28T18:38:21Z scymtym_ joined #lisp 2020-05-28T18:39:25Z sdumi joined #lisp 2020-05-28T18:39:46Z scymtym quit (Ping timeout: 260 seconds) 2020-05-28T18:40:25Z slyrus quit (Ping timeout: 264 seconds) 2020-05-28T18:41:56Z karlosz joined #lisp 2020-05-28T18:42:06Z engblom: What is the correct way to use sbcl --eval? This is not working: sbcl --eval "(print \"hello\")(quit)" 2020-05-28T18:42:44Z phoe: engblom: read the error text that SBCL gives you 2020-05-28T18:43:06Z phoe: sbcl --eval "(print \"hello\")" --eval "(quit)" 2020-05-28T18:43:16Z Bike: or progn. 2020-05-28T18:44:09Z engblom: Okay, I did not know it was possible to have several --eval 2020-05-28T18:44:16Z oxum quit (Ping timeout: 272 seconds) 2020-05-28T18:44:33Z pjb quit (Ping timeout: 272 seconds) 2020-05-28T18:44:55Z engblom: progn seems to be a sensible solution as I will call sbcl from a script (hoping to be able to evaluate multiline variables). 2020-05-28T18:45:26Z slyrus_ quit (Remote host closed the connection) 2020-05-28T18:45:30Z phoe: engblom: for larger blocks of Lisp, you could try --load 2020-05-28T18:45:40Z phoe: and provide a filename 2020-05-28T18:45:56Z slyrus_ joined #lisp 2020-05-28T18:47:16Z engblom: phoe: What I exatly would want to do is calling sbcl from inside of a bash-script with some lisp code (stored inside of a variable) without having extra files 2020-05-28T18:47:29Z rumbler31 joined #lisp 2020-05-28T18:47:47Z phoe: engblom: ohh, in that case use "(progn ...)" 2020-05-28T18:48:00Z engblom: Yes, progn seems to be the best solution 2020-05-28T18:48:28Z dale_ joined #lisp 2020-05-28T18:48:53Z dale_ is now known as dale 2020-05-28T18:51:14Z lucasb joined #lisp 2020-05-28T18:51:34Z rumbler31 quit (Ping timeout: 240 seconds) 2020-05-28T18:53:39Z loli quit (Quit: WeeChat 2.8) 2020-05-28T18:55:14Z bhartrihari left #lisp 2020-05-28T18:55:39Z bhartrihari joined #lisp 2020-05-28T18:56:23Z loli joined #lisp 2020-05-28T19:02:04Z pve: engblom: I wrote a utility to take away some of the tediousness of shell scripts + sbcl, perhaps you might find it useful? 2020-05-28T19:02:10Z pve: https://github.com/pve1/shell-utility 2020-05-28T19:04:42Z orivej quit (Ping timeout: 258 seconds) 2020-05-28T19:04:57Z orivej joined #lisp 2020-05-28T19:10:34Z rozenglass quit (Read error: Connection reset by peer) 2020-05-28T19:10:35Z andrei-n: froggey, thanks. 2020-05-28T19:14:02Z milanj quit (Quit: This computer has gone to sleep) 2020-05-28T19:15:45Z pjb joined #lisp 2020-05-28T19:22:27Z dale quit (Quit: dale) 2020-05-28T19:22:46Z cyberbanjo joined #lisp 2020-05-28T19:24:02Z slyrus__ joined #lisp 2020-05-28T19:26:14Z slyrus_ quit (Ping timeout: 240 seconds) 2020-05-28T19:29:33Z dale joined #lisp 2020-05-28T19:34:59Z efm quit (Quit: Konversation terminated!) 2020-05-28T19:40:10Z orivej quit (Ping timeout: 246 seconds) 2020-05-28T19:40:37Z orivej joined #lisp 2020-05-28T19:47:23Z Cairn[m] is now known as cairn 2020-05-28T19:49:09Z pjb quit (Ping timeout: 272 seconds) 2020-05-28T19:53:53Z gaqwas joined #lisp 2020-05-28T19:54:39Z mikecheck joined #lisp 2020-05-28T19:58:14Z nymphet joined #lisp 2020-05-28T19:58:14Z stoneglass joined #lisp 2020-05-28T19:58:34Z loli quit (Ping timeout: 240 seconds) 2020-05-28T20:08:17Z cairn left #lisp 2020-05-28T20:16:58Z shka_ quit (Ping timeout: 265 seconds) 2020-05-28T20:17:12Z M1NDSHDWS_ joined #lisp 2020-05-28T20:17:15Z M1NDSHDWS_: Kygo, Zak Abel - Freedom (Lyrics) 2020-05-28T20:17:15Z M1NDSHDWS_: https://youtu.be/LYH1OrKQc0Y 2020-05-28T20:18:27Z M1NDSHDWS_ quit (Remote host closed the connection) 2020-05-28T20:23:32Z pjb joined #lisp 2020-05-28T20:24:56Z efm joined #lisp 2020-05-28T20:27:09Z bfig quit (Read error: Connection reset by peer) 2020-05-28T20:27:59Z bfig joined #lisp 2020-05-28T20:32:35Z shifty quit (Ping timeout: 246 seconds) 2020-05-28T20:33:33Z rogersm joined #lisp 2020-05-28T20:36:36Z rpg joined #lisp 2020-05-28T20:36:53Z rpg wants a common lisp implementation that will signal a STYLE-WARNING if INTERN is called with only one argument. 2020-05-28T20:39:16Z phoe: rpg: I could dig that 2020-05-28T20:39:47Z rpg: Also for messing with the readtable without specifying WHICH readtable! 2020-05-28T20:40:02Z phoe: oh yes I want that 2020-05-28T20:41:48Z rpg: Not super-excited about using `(:shadowing-import-from #:my-fussy-lisp #:intern)` , since I really want this for OTHER PEOPLE's code that I load! 2020-05-28T20:45:27Z ralt: what is a commonly installed C library that you typically need to add a `-l` for? 2020-05-28T20:45:33Z ralt: that is not `-lm` 2020-05-28T20:45:41Z ralt: I mean, besides libmath 2020-05-28T20:45:49Z ralt: nvm 2020-05-28T20:50:21Z cairn joined #lisp 2020-05-28T20:54:25Z karayan quit (Remote host closed the connection) 2020-05-28T20:55:35Z anticrisis joined #lisp 2020-05-28T20:56:55Z pjb quit (Ping timeout: 272 seconds) 2020-05-28T20:58:13Z karayan joined #lisp 2020-05-28T21:04:23Z jesse1010 joined #lisp 2020-05-28T21:09:39Z rogersm quit 2020-05-28T21:14:48Z ahungry quit (Remote host closed the connection) 2020-05-28T21:15:44Z karswell_ quit (Remote host closed the connection) 2020-05-28T21:16:40Z karswell_ joined #lisp 2020-05-28T21:19:15Z gaqwas quit (Remote host closed the connection) 2020-05-28T21:25:41Z pjb joined #lisp 2020-05-28T21:27:55Z ArthurSt1ong joined #lisp 2020-05-28T21:28:03Z ArthurStrong quit (Read error: Connection reset by peer) 2020-05-28T21:31:45Z rgherdt quit (Ping timeout: 246 seconds) 2020-05-28T21:32:40Z gravicappa quit (Ping timeout: 258 seconds) 2020-05-28T21:35:06Z seok joined #lisp 2020-05-28T21:35:14Z seok: Morning' 2020-05-28T21:35:32Z seok: Can I specify utf-8 encoding with with-open-file? 2020-05-28T21:39:13Z phoe: seok: :external-format 2020-05-28T21:39:21Z seok: Thanks phoe 2020-05-28T21:40:21Z Jesin quit (Quit: Leaving) 2020-05-28T21:41:45Z pve quit (Quit: leaving) 2020-05-28T21:51:21Z anticrisis_ joined #lisp 2020-05-28T21:52:05Z Jesin joined #lisp 2020-05-28T21:55:17Z anticrisis quit (Ping timeout: 258 seconds) 2020-05-28T21:57:02Z fengshaun joined #lisp 2020-05-28T21:57:04Z cyberbanjo quit (Read error: Connection reset by peer) 2020-05-28T21:58:59Z pjb quit (Ping timeout: 272 seconds) 2020-05-28T21:59:50Z andrei-n quit (Quit: Leaving) 2020-05-28T22:11:39Z oxum joined #lisp 2020-05-28T22:14:48Z random-nick quit (Ping timeout: 256 seconds) 2020-05-28T22:17:01Z oxum quit (Ping timeout: 264 seconds) 2020-05-28T22:19:54Z buffergn0me joined #lisp 2020-05-28T22:23:54Z whiteline quit (Remote host closed the connection) 2020-05-28T22:25:22Z whiteline joined #lisp 2020-05-28T22:25:45Z whiteline quit (Remote host closed the connection) 2020-05-28T22:26:11Z whiteline joined #lisp 2020-05-28T22:26:56Z bitmapper: hmm 2020-05-28T22:27:01Z bitmapper: cl-permutation doesn't load in CCL 2020-05-28T22:29:29Z SGASAU quit (Remote host closed the connection) 2020-05-28T22:30:07Z SGASAU joined #lisp 2020-05-28T22:32:52Z nikkal quit (Quit: Leaving) 2020-05-28T22:35:08Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-28T22:35:19Z pjb joined #lisp 2020-05-28T22:43:29Z gaqwas joined #lisp 2020-05-28T22:53:12Z Lord_of_Life_ joined #lisp 2020-05-28T22:53:44Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-28T22:54:35Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-28T22:57:18Z orivej_ joined #lisp 2020-05-28T22:57:36Z orivej quit (Ping timeout: 272 seconds) 2020-05-28T22:59:21Z terpri joined #lisp 2020-05-28T23:00:08Z arpunk quit (Remote host closed the connection) 2020-05-28T23:01:55Z wxie joined #lisp 2020-05-28T23:03:56Z sjl_ quit (Ping timeout: 256 seconds) 2020-05-28T23:08:39Z pjb quit (Ping timeout: 272 seconds) 2020-05-28T23:15:04Z orivej_ quit (Ping timeout: 246 seconds) 2020-05-28T23:15:39Z orivej joined #lisp 2020-05-28T23:16:39Z nightfly quit (Quit: WeeChat 1.9.1) 2020-05-28T23:18:09Z nightfly joined #lisp 2020-05-28T23:21:54Z akoana left #lisp 2020-05-28T23:24:50Z karswell_ quit (Ping timeout: 272 seconds) 2020-05-28T23:32:39Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-28T23:35:03Z botanick quit (Quit: leaving) 2020-05-28T23:37:52Z rumbler31 joined #lisp 2020-05-28T23:40:12Z orivej quit (Ping timeout: 246 seconds) 2020-05-28T23:40:38Z orivej joined #lisp 2020-05-28T23:40:59Z lucasb quit (Quit: Connection closed for inactivity) 2020-05-28T23:41:25Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-28T23:44:05Z nightfly quit (Quit: WeeChat 1.9.1) 2020-05-28T23:44:27Z pjb joined #lisp 2020-05-28T23:44:50Z nightfly joined #lisp 2020-05-28T23:45:16Z nightfly quit (Client Quit) 2020-05-28T23:45:47Z nightfly joined #lisp 2020-05-28T23:46:16Z nightfly quit (Client Quit) 2020-05-28T23:46:45Z nightfly joined #lisp 2020-05-28T23:47:09Z hineios6 joined #lisp 2020-05-28T23:51:05Z hineios quit (Ping timeout: 265 seconds) 2020-05-28T23:51:05Z hineios6 is now known as hineios 2020-05-28T23:57:51Z stoneglass quit (Remote host closed the connection) 2020-05-29T00:01:25Z noobineer quit (Ping timeout: 264 seconds) 2020-05-29T00:05:03Z X-Scale joined #lisp 2020-05-29T00:09:47Z Jeanne-Kamikaze joined #lisp 2020-05-29T00:12:52Z oxum joined #lisp 2020-05-29T00:13:03Z Kundry_Wag joined #lisp 2020-05-29T00:14:17Z EvW1 quit (Ping timeout: 260 seconds) 2020-05-29T00:17:10Z orivej quit (Ping timeout: 260 seconds) 2020-05-29T00:17:19Z orivej_ joined #lisp 2020-05-29T00:17:37Z Kundry_Wag quit (Ping timeout: 264 seconds) 2020-05-29T00:17:41Z pjb quit (Ping timeout: 272 seconds) 2020-05-29T00:23:43Z ahungry joined #lisp 2020-05-29T00:26:22Z wxie quit (Ping timeout: 265 seconds) 2020-05-29T00:26:36Z karlosz quit (Quit: karlosz) 2020-05-29T00:34:47Z pjb joined #lisp 2020-05-29T00:35:00Z ldb joined #lisp 2020-05-29T00:35:08Z ldb: good morning. 2020-05-29T00:36:32Z orivej_ quit (Ping timeout: 246 seconds) 2020-05-29T00:36:56Z wxie joined #lisp 2020-05-29T00:36:58Z orivej joined #lisp 2020-05-29T00:39:32Z ldb: bitmapper: it's simple, the author just doesn't know that CCL won't eval defstruct at compile time. 2020-05-29T00:40:34Z Kundry_Wag joined #lisp 2020-05-29T00:44:08Z karlosz joined #lisp 2020-05-29T00:46:20Z ldb_ joined #lisp 2020-05-29T00:46:38Z ldb quit (Ping timeout: 258 seconds) 2020-05-29T00:47:07Z oxum quit (Ping timeout: 246 seconds) 2020-05-29T00:54:41Z orivej quit (Ping timeout: 258 seconds) 2020-05-29T00:55:07Z orivej joined #lisp 2020-05-29T00:57:02Z noobineer joined #lisp 2020-05-29T00:59:29Z parjanya` joined #lisp 2020-05-29T01:03:29Z parjanya quit (Ping timeout: 246 seconds) 2020-05-29T01:04:53Z bitmapper quit (Ping timeout: 246 seconds) 2020-05-29T01:07:28Z ldb_ quit (Ping timeout: 256 seconds) 2020-05-29T01:11:11Z tsrt^ quit 2020-05-29T01:20:38Z shangul quit (Ping timeout: 260 seconds) 2020-05-29T01:20:48Z wxie quit (Ping timeout: 260 seconds) 2020-05-29T01:28:31Z ralt quit (Quit: Connection closed for inactivity) 2020-05-29T01:30:17Z oxum joined #lisp 2020-05-29T01:32:28Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-29T01:33:48Z orivej joined #lisp 2020-05-29T01:35:58Z oxum quit (Ping timeout: 265 seconds) 2020-05-29T01:36:07Z ArthurSt1ong quit (Ping timeout: 246 seconds) 2020-05-29T01:42:11Z bhartrihari left #lisp 2020-05-29T01:42:23Z bhartrihari joined #lisp 2020-05-29T02:01:05Z ahungry quit (Remote host closed the connection) 2020-05-29T02:02:36Z orivej quit (Ping timeout: 256 seconds) 2020-05-29T02:07:53Z EvW joined #lisp 2020-05-29T02:11:49Z oxum joined #lisp 2020-05-29T02:17:43Z karlosz quit (Quit: karlosz) 2020-05-29T02:22:16Z jesse1010 quit (Ping timeout: 256 seconds) 2020-05-29T02:23:43Z ArthurStrong joined #lisp 2020-05-29T02:25:39Z oxum quit (Remote host closed the connection) 2020-05-29T02:25:52Z karlosz joined #lisp 2020-05-29T02:25:55Z oxum joined #lisp 2020-05-29T02:31:41Z Kundry_Wag quit (Remote host closed the connection) 2020-05-29T02:37:21Z voidlily quit (Ping timeout: 265 seconds) 2020-05-29T02:37:33Z voidlily joined #lisp 2020-05-29T02:38:53Z rpg joined #lisp 2020-05-29T02:47:52Z mono joined #lisp 2020-05-29T02:48:13Z Kundry_Wag joined #lisp 2020-05-29T02:49:16Z gaqwas quit (Ping timeout: 246 seconds) 2020-05-29T02:49:44Z gaqwas joined #lisp 2020-05-29T02:50:14Z monokrom quit (Ping timeout: 246 seconds) 2020-05-29T02:52:43Z Kundry_Wag quit (Ping timeout: 260 seconds) 2020-05-29T02:58:38Z abhixec quit (Ping timeout: 260 seconds) 2020-05-29T03:00:33Z abhixec joined #lisp 2020-05-29T03:13:03Z beach: Good morning everyone! 2020-05-29T03:18:30Z bhartrihari: Good morning. 2020-05-29T03:19:37Z ArthurStrong: beach: good morning 2020-05-29T03:21:59Z EvW quit (Ping timeout: 272 seconds) 2020-05-29T03:24:23Z Kundry_Wag joined #lisp 2020-05-29T03:30:02Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-29T03:32:15Z oxum quit (Remote host closed the connection) 2020-05-29T03:32:45Z dyelar quit (Quit: Leaving.) 2020-05-29T03:32:52Z oxum joined #lisp 2020-05-29T03:37:38Z oxum quit (Ping timeout: 256 seconds) 2020-05-29T03:42:44Z bhartrihari left #lisp 2020-05-29T03:42:52Z bhartrihari joined #lisp 2020-05-29T03:59:22Z Bit_MCP joined #lisp 2020-05-29T03:59:54Z seok quit (Remote host closed the connection) 2020-05-29T04:00:37Z pjb quit (Ping timeout: 272 seconds) 2020-05-29T04:05:03Z oxum joined #lisp 2020-05-29T04:06:20Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-29T04:07:37Z buffergn0me quit (Ping timeout: 260 seconds) 2020-05-29T04:10:45Z buffergn0me joined #lisp 2020-05-29T04:11:06Z oxum quit (Ping timeout: 272 seconds) 2020-05-29T04:22:07Z Bike quit (Quit: leaving) 2020-05-29T04:24:45Z oxum joined #lisp 2020-05-29T04:26:14Z SGASAU quit (Remote host closed the connection) 2020-05-29T04:27:16Z SGASAU joined #lisp 2020-05-29T04:27:21Z kaftejiman quit (Remote host closed the connection) 2020-05-29T04:30:53Z sdumi quit (Ping timeout: 258 seconds) 2020-05-29T04:31:22Z sdumi joined #lisp 2020-05-29T04:31:46Z kamid joined #lisp 2020-05-29T04:32:32Z Blukunfando quit (Ping timeout: 256 seconds) 2020-05-29T04:32:48Z pjb joined #lisp 2020-05-29T04:36:01Z jealousmonk joined #lisp 2020-05-29T04:42:34Z oxum quit (Remote host closed the connection) 2020-05-29T04:42:35Z sdumi quit (Read error: Connection reset by peer) 2020-05-29T04:43:23Z sdumi joined #lisp 2020-05-29T04:43:25Z oxum joined #lisp 2020-05-29T04:44:41Z jealousmonk quit (Quit: Leaving) 2020-05-29T04:48:02Z _whitelogger quit (Remote host closed the connection) 2020-05-29T04:48:13Z sdumi quit (Ping timeout: 264 seconds) 2020-05-29T04:48:28Z oxum quit (Ping timeout: 272 seconds) 2020-05-29T04:50:16Z _whitelogger joined #lisp 2020-05-29T04:50:39Z malm quit (Quit: Bye bye) 2020-05-29T04:53:53Z smazga quit (Ping timeout: 258 seconds) 2020-05-29T05:00:42Z nicktick joined #lisp 2020-05-29T05:00:44Z nicktick quit (Changing host) 2020-05-29T05:00:44Z nicktick joined #lisp 2020-05-29T05:03:06Z abhixec quit (Quit: leaving) 2020-05-29T05:03:13Z oxum joined #lisp 2020-05-29T05:05:15Z ech quit (Ping timeout: 260 seconds) 2020-05-29T05:06:29Z pjb quit (Ping timeout: 272 seconds) 2020-05-29T05:12:50Z pjb joined #lisp 2020-05-29T05:14:34Z shifty joined #lisp 2020-05-29T05:18:02Z _whitelogger quit (Remote host closed the connection) 2020-05-29T05:18:36Z jw4 quit (Quit: tot siens) 2020-05-29T05:19:22Z jw4 joined #lisp 2020-05-29T05:20:15Z _whitelogger joined #lisp 2020-05-29T05:25:04Z shifty quit (Ping timeout: 265 seconds) 2020-05-29T05:26:06Z sdumi joined #lisp 2020-05-29T05:26:07Z shifty joined #lisp 2020-05-29T05:27:19Z Kundry_Wag joined #lisp 2020-05-29T05:27:30Z gravicappa joined #lisp 2020-05-29T05:29:38Z bhartrihari left #lisp 2020-05-29T05:31:09Z sauvin joined #lisp 2020-05-29T05:31:50Z Kundry_Wag quit (Ping timeout: 265 seconds) 2020-05-29T05:33:31Z bhartrihari joined #lisp 2020-05-29T05:34:27Z sdumi quit (Read error: Connection reset by peer) 2020-05-29T05:35:15Z sdumi joined #lisp 2020-05-29T05:36:03Z shka_ joined #lisp 2020-05-29T05:39:26Z parjanya` is now known as parjanya 2020-05-29T05:42:12Z brandelune joined #lisp 2020-05-29T05:48:01Z malm joined #lisp 2020-05-29T05:49:47Z smazga joined #lisp 2020-05-29T05:50:12Z scymtym_ quit (Remote host closed the connection) 2020-05-29T05:52:36Z Codaraxis quit (Remote host closed the connection) 2020-05-29T05:53:59Z sdumi quit (Ping timeout: 246 seconds) 2020-05-29T05:54:20Z smazga quit (Ping timeout: 246 seconds) 2020-05-29T05:54:29Z Codaraxis joined #lisp 2020-05-29T05:55:38Z Jeanne-Kamikaze quit (Quit: Leaving) 2020-05-29T05:56:18Z sdumi joined #lisp 2020-05-29T05:57:37Z brandelune quit (Quit: Leaving) 2020-05-29T05:58:49Z Bit_MCP quit (Quit: Leaving) 2020-05-29T05:59:51Z davsebam1e joined #lisp 2020-05-29T06:02:15Z sdumi quit (Read error: Connection reset by peer) 2020-05-29T06:02:51Z sdumi joined #lisp 2020-05-29T06:03:12Z davsebamse quit (Ping timeout: 256 seconds) 2020-05-29T06:06:52Z Posterdati joined #lisp 2020-05-29T06:23:00Z gxt quit (Quit: WeeChat 2.8) 2020-05-29T06:27:01Z gxt joined #lisp 2020-05-29T06:27:38Z twelvemonkeys quit (Ping timeout: 256 seconds) 2020-05-29T06:29:09Z bhartrihari left #lisp 2020-05-29T06:29:16Z twelvemonkeys joined #lisp 2020-05-29T06:31:02Z _Ark_ quit (Quit: ZNC 1.7.4 - https://znc.in) 2020-05-29T06:32:07Z shangul joined #lisp 2020-05-29T06:33:47Z jprajzne1 joined #lisp 2020-05-29T06:35:34Z bhartrihari joined #lisp 2020-05-29T06:38:31Z drainful quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-29T06:38:49Z drainful joined #lisp 2020-05-29T06:42:43Z random-nick joined #lisp 2020-05-29T06:47:39Z oxum quit (Remote host closed the connection) 2020-05-29T06:47:39Z lemoinem is now known as Guest1684 2020-05-29T06:47:39Z Guest1684 quit (Killed (weber.freenode.net (Nickname regained by services))) 2020-05-29T06:47:41Z lemoinem joined #lisp 2020-05-29T06:54:21Z parjanya quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-29T06:55:37Z parjanya joined #lisp 2020-05-29T06:59:28Z parjanya left #lisp 2020-05-29T07:00:47Z parjanya joined #lisp 2020-05-29T07:01:12Z oxum joined #lisp 2020-05-29T07:01:16Z parjanya quit (Remote host closed the connection) 2020-05-29T07:01:22Z seok joined #lisp 2020-05-29T07:01:32Z seok: Hey guys, does this look like a db that is bottlenecking? https://ibb.co/kSvfXM7 2020-05-29T07:01:50Z ljavorsk joined #lisp 2020-05-29T07:02:18Z parjanya joined #lisp 2020-05-29T07:03:09Z pve joined #lisp 2020-05-29T07:03:17Z phoe stares 2020-05-29T07:03:41Z phoe: I see no parentheses in that screenshot, I don't think I can help 2020-05-29T07:04:02Z seok: Hah 2020-05-29T07:04:12Z seok: well, I am calling from lisp 2020-05-29T07:04:40Z seok: spreading the task using bt didn't improve performance by any, so I'm wondering if it is the db 2020-05-29T07:04:55Z seok: which I doubt, not doing that many reads 2020-05-29T07:07:46Z no-defun-allowed: Maybe, that's a lot of TPS. 2020-05-29T07:08:18Z terpri quit (Quit: Leaving) 2020-05-29T07:08:26Z seok: Is it? 2020-05-29T07:08:28Z seok: What is tps? 2020-05-29T07:08:33Z phoe: transactions per second 2020-05-29T07:08:36Z seok: ok 2020-05-29T07:08:36Z terpri joined #lisp 2020-05-29T07:09:33Z seok: no-defun-allowed thanks! I don't have much experience with big tps to for comparison 2020-05-29T07:10:29Z no-defun-allowed: Can you look at how fast it writes to disk, and how that compares to how fast you think your disk can be written to? 2020-05-29T07:10:41Z seok: How would I do that? 2020-05-29T07:11:02Z seok: Yeah, it could be the hd now you mention it 2020-05-29T07:11:08Z seok: Since I'm writing the output to file too 2020-05-29T07:11:44Z no-defun-allowed: On my system, I can have the activity monitor program show me how much each process writes and reads. 2020-05-29T07:11:46Z ArthurStrong quit (Ping timeout: 246 seconds) 2020-05-29T07:13:28Z seok: https://ibb.co/MkWsXcv nope don't see much disc usage 2020-05-29T07:13:39Z no-defun-allowed: I would watch that while having my program do its doings, and compare that to how fast the disk can be written to (which is around 100MB/s for a mechanical drive and more than 1000MB/s for a good solid state drive). 2020-05-29T07:14:29Z Archenoth joined #lisp 2020-05-29T07:14:29Z parjanya quit (Read error: Connection reset by peer) 2020-05-29T07:15:39Z no-defun-allowed: How long does each burst of transactions last? 2020-05-29T07:15:53Z Mawile quit (Ping timeout: 246 seconds) 2020-05-29T07:16:13Z seok: Not sure by exact, but the program is spewing out 3.5mb file per second 2020-05-29T07:16:18Z mikecheck quit (Remote host closed the connection) 2020-05-29T07:16:38Z seok: so probably 1-2 sec 2020-05-29T07:17:04Z no-defun-allowed: That graph could be smoothing it all out, I'm not sure. 2020-05-29T07:17:34Z seok: maybe if I have 2 processes it will smooth out 2020-05-29T07:18:51Z seok: ok, the graph does go up with 3 2020-05-29T07:19:04Z seok: hm, guess it is a bit faster 2020-05-29T07:19:47Z scymtym joined #lisp 2020-05-29T07:21:30Z seok: Nevermind, it is a bit better with bt 2020-05-29T07:23:35Z parjanya joined #lisp 2020-05-29T07:24:16Z shangul quit (Remote host closed the connection) 2020-05-29T07:24:18Z Cymew joined #lisp 2020-05-29T07:26:10Z shifty quit (Ping timeout: 272 seconds) 2020-05-29T07:26:21Z shifty joined #lisp 2020-05-29T07:26:25Z andrei-n joined #lisp 2020-05-29T07:29:55Z Kundry_Wag joined #lisp 2020-05-29T07:34:28Z R4v3n joined #lisp 2020-05-29T07:35:50Z Kundry_Wag quit (Ping timeout: 260 seconds) 2020-05-29T07:37:35Z Rav3n quit (Ping timeout: 246 seconds) 2020-05-29T07:43:13Z oxum quit (Quit: Leaving...) 2020-05-29T07:46:12Z gaqwas quit (Remote host closed the connection) 2020-05-29T07:48:42Z leedleLoo joined #lisp 2020-05-29T07:49:50Z seok quit (Remote host closed the connection) 2020-05-29T07:53:45Z heisig joined #lisp 2020-05-29T07:54:20Z Kundry_Wag joined #lisp 2020-05-29T07:56:34Z leedleLoo left #lisp 2020-05-29T07:59:44Z Kundry_Wag quit (Ping timeout: 272 seconds) 2020-05-29T07:59:48Z jprajzne quit (Quit: jprajzne) 2020-05-29T08:00:09Z jprajzne joined #lisp 2020-05-29T08:04:19Z jprajzne quit (Client Quit) 2020-05-29T08:04:42Z jprajzne joined #lisp 2020-05-29T08:09:10Z kapil_ joined #lisp 2020-05-29T08:10:57Z kapil_: i am totally new to lisp. 2020-05-29T08:11:34Z kapil_: is lisp is good language to learn to learn functional programming? 2020-05-29T08:12:28Z Oddity quit (Ping timeout: 256 seconds) 2020-05-29T08:13:01Z ralt joined #lisp 2020-05-29T08:13:36Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-29T08:14:38Z beach: kapil_: There are better languages is you want to do purely functional programming. 2020-05-29T08:14:53Z beach: kapil_: Common Lisp is a multi-paradigm language. 2020-05-29T08:15:03Z kapil_: oh 2020-05-29T08:15:03Z beach: It does support functional programming is one of the paradigms. 2020-05-29T08:15:22Z beach: But it also has the best object-oriented subsystem around. 2020-05-29T08:15:46Z anticrisis_ quit (Read error: Connection reset by peer) 2020-05-29T08:16:01Z kapil_: i only want to learn functional programming 2020-05-29T08:16:14Z beach: I see. 2020-05-29T08:16:35Z beach: You are probably better off with something like Haskell then, or maybe Clojure. 2020-05-29T08:16:48Z kapil_: is Practical Common Lisp book is still valid today? 2020-05-29T08:17:01Z beach: Yes, the language hasn't changed. 2020-05-29T08:17:09Z kapil_: oh thanks 2020-05-29T08:17:17Z beach: The tools have, so when you get ready, ask here for the latest tools. 2020-05-29T08:17:53Z beach: One of the strengths of Common Lisp is that it has an international standard that is stable. 2020-05-29T08:18:03Z kapil_: i download and installed https://portacle.github.io/ 2020-05-29T08:18:05Z ldb joined #lisp 2020-05-29T08:18:11Z beach: Yes, that's good. 2020-05-29T08:18:23Z kapil_: is it all i need to learn and use common lisp? 2020-05-29T08:18:34Z beach: And the literature, yes. 2020-05-29T08:18:40Z kapil_: thanks 2020-05-29T08:18:43Z beach: Sure. 2020-05-29T08:18:50Z Oddity joined #lisp 2020-05-29T08:19:34Z kapil_: in how many days i can learn common lisp? 2020-05-29T08:20:05Z beach: As with anything, count 10 years to be a master. But you can learn the basics in a week or two if you work hard on it. 2020-05-29T08:20:30Z kapil_: thank you so much 2020-05-29T08:20:37Z beach: A warning: If C++ is what you are used to, you will have some "aha" moments, and when you understand what is going on, you won't want to go back. 2020-05-29T08:20:50Z ebzzry joined #lisp 2020-05-29T08:21:08Z ldb: ^ agree from my observation 2020-05-29T08:21:10Z kapil_: oh thanks a lot. you motivated me to learn now 2020-05-29T08:21:30Z beach: So if, say, your livelihood depends on developing C++ code, you will no longer be happy at work. :) 2020-05-29T08:22:22Z kapil_: i have currently a c++ back end web server. i want to use common lisp . if it is easy 2020-05-29T08:22:54Z kapil_: beach, why its so cool then c++? 2020-05-29T08:23:31Z beach: Oh, I don't even know where to begin. Let's see if I can find the URL... 2020-05-29T08:23:59Z kaftejiman joined #lisp 2020-05-29T08:24:58Z beach: random-state.net/features-of-common-lisp.html 2020-05-29T08:25:38Z phoe: beach: fun fact: there is a proposal to introduce metaclasses to C++ 2020-05-29T08:25:55Z beach: Why am I not surprised. 2020-05-29T08:26:06Z phoe: I know right 2020-05-29T08:26:29Z beach: But they won't get there ultimately anyway, until they abandon manual memory management and that crazy syntax. 2020-05-29T08:26:59Z pjb: phoe: you mean beyound OpenC++? https://www.informatimago.com/articles/life-saver.html 2020-05-29T08:27:05Z pjb: s/un/n/ 2020-05-29T08:27:36Z pjb: Anyways, there's no point in tracking languages that asymptotically tend toward lisp. 2020-05-29T08:28:21Z ldb ^ +1 2020-05-29T08:30:16Z kapil_: beach, thanks 2020-05-29T08:33:09Z beach: kapil_: Feel free to ask questions if there is something in that document that you do not understand. 2020-05-29T08:33:44Z beach: It was initially written by me, but then Abhishek Reddy improved it vastly. 2020-05-29T08:38:12Z Guest2239 joined #lisp 2020-05-29T08:40:04Z Guest2239: Isn't (= (min 0d0 (/ 0d0 0d0)) (min (/ 0d0 0d0) 0d0)) supposed to return t? 2020-05-29T08:40:54Z beach: You can't divide by 0. 2020-05-29T08:40:56Z phoe: that's a division by zero for you 2020-05-29T08:41:00Z Guest2239: it's weird that nan is handled asymmetrically 2020-05-29T08:41:46Z Guest2239: use (sb-int:set-floating-point-modes :traps nil) in SBCL, for example 2020-05-29T08:42:27Z beach: There are no NaNs in the standard, so the behavior is implementation specific. 2020-05-29T08:42:52Z phoe: (float-features:with-float-traps-masked (:invalid) (list (min 0d0 (/ 0d0 0d0)) (min (/ 0d0 0d0) 0d0))) ;=> (# 0.0d0) 2020-05-29T08:42:55Z phoe: hmmmm 2020-05-29T08:43:21Z phoe: I know what is happening 2020-05-29T08:43:27Z phoe: you cannot compare NaNs using < 2020-05-29T08:44:13Z phoe: (float-features:with-float-traps-masked (:invalid) (list (> 0d0 (/ 0d0 0d0)) (= 0d0 (/ 0d0 0d0)) (< 0d0 (/ 0d0 0d0)))) ;=> (NIL NIL NIL) 2020-05-29T08:44:16Z Guest2239: actually, I was wrong because the original = should return nil because nan != nan 2020-05-29T08:44:19Z phoe: that is what confuses MIN 2020-05-29T08:44:24Z phoe: it returns NIL 2020-05-29T08:44:42Z Guest2239: but nevertheless, (min nan 0d0) should return nan irrespective of the arrgument order 2020-05-29T08:44:49Z phoe: why? 2020-05-29T08:45:39Z phoe: NaN < 0d0 is false, so obviously NaN is smaller 2020-05-29T08:45:51Z phoe: at the same time, NaN > 0d0 is false, so obviously NaN is larger 2020-05-29T08:46:00Z Guest2239: because that makes way more sense mathematically, and if one needs less consistence then should use a low level primitive 2020-05-29T08:46:11Z phoe: NaN makes *no* sense mathematically 2020-05-29T08:46:19Z Shinmera: How does "not a number" make any mathematical sense 2020-05-29T08:46:24Z no-defun-allowed: I don't remember NaN from any of my maths classes. 2020-05-29T08:46:46Z phoe: if you have NaNs compared to numbers, you've already screwed up, and no amount of lacquer on top of that will fix that 2020-05-29T08:47:21Z ldb: try import floating point theory from sat solver 2020-05-29T08:47:30Z phoe: orders like #'< are only defined for real numbers, and NaN is, well, not a number. garbage in, garbage out. 2020-05-29T08:48:29Z Guest2239: this reasoning makes * / + - handling nan-s the way they do completely useless 2020-05-29T08:48:53Z Guest2239: I'm not talking about < <= etc but min, max specifically 2020-05-29T08:48:59Z Guest2239: I don't care how it's implemented 2020-05-29T08:49:07Z phoe: let's see where IEEE 754 mentions minimum and maximum operations 2020-05-29T08:49:11Z Guest2239: whether it's < or anything else inside 2020-05-29T08:49:18Z Shinmera: well you must, because it's implementation specific 2020-05-29T08:49:34Z Guest2239: I'm not talking about the standard 2020-05-29T08:50:45Z phoe: https://2pi.dk/2016/05/ieee-min-max 2020-05-29T08:51:24Z phoe: "IEEE however, treats NaN as a missing value for the purpose of the minNum and maxNum functions. They will suppress a single NaN operand and return the number instead." 2020-05-29T08:51:44Z phoe: okay, found it 2020-05-29T08:53:10Z Guest2239: so it either supposed to return the other number independently of the argument order or nan 2020-05-29T08:55:34Z phoe: a naïve implementation of the algorithm there is (defun float< (x y) (cond ((> x y) x) ((< x y) x) ((= x y) x) ((float-features:float-nan-p x) y) ((float-features:float-nan-p y) x) (t x))) 2020-05-29T08:55:38Z midre quit (Ping timeout: 246 seconds) 2020-05-29T08:57:53Z midre joined #lisp 2020-05-29T08:58:25Z ayuce joined #lisp 2020-05-29T08:58:39Z karlosz quit (Read error: Connection reset by peer) 2020-05-29T08:58:48Z karlosz joined #lisp 2020-05-29T08:58:54Z phoe: but then again, it's up to the implementations to say whether they support ieee754-2008 float comparison 2020-05-29T08:59:08Z dddddd quit (Ping timeout: 246 seconds) 2020-05-29T08:59:09Z phoe: so if you're e.g. using SBCL, you should ask on #sbcl mayhaps 2020-05-29T09:04:01Z ebzzry quit (Quit: WeeChat 2.8) 2020-05-29T09:10:10Z Guest2239 quit (Quit: Connection closed) 2020-05-29T09:12:37Z MrtnDk[m] joined #lisp 2020-05-29T09:15:31Z dale quit (Quit: My computer has gone to sleep) 2020-05-29T09:22:36Z karlosz quit (Quit: karlosz) 2020-05-29T09:22:50Z karlosz joined #lisp 2020-05-29T09:26:21Z SGASAU quit (Remote host closed the connection) 2020-05-29T09:27:32Z SGASAU joined #lisp 2020-05-29T09:27:35Z frgo joined #lisp 2020-05-29T09:30:02Z nicktick quit (Ping timeout: 256 seconds) 2020-05-29T09:31:05Z frgo_ quit (Ping timeout: 265 seconds) 2020-05-29T09:34:57Z gaqwas joined #lisp 2020-05-29T09:36:38Z buffergn0me quit (Ping timeout: 260 seconds) 2020-05-29T09:40:37Z SGASAU quit (Remote host closed the connection) 2020-05-29T09:41:37Z SGASAU joined #lisp 2020-05-29T09:43:43Z jesse1010 joined #lisp 2020-05-29T09:47:05Z ech joined #lisp 2020-05-29T09:49:13Z cosimone joined #lisp 2020-05-29T09:50:30Z smazga joined #lisp 2020-05-29T09:54:54Z smazga quit (Ping timeout: 260 seconds) 2020-05-29T09:55:01Z Misha_B quit (Remote host closed the connection) 2020-05-29T09:55:27Z amerlyq joined #lisp 2020-05-29T09:55:33Z karlosz quit (Quit: karlosz) 2020-05-29T09:58:49Z Bourne quit (Read error: Connection reset by peer) 2020-05-29T10:00:59Z karlosz joined #lisp 2020-05-29T10:01:52Z shifty quit (Ping timeout: 246 seconds) 2020-05-29T10:14:02Z frgo quit (Remote host closed the connection) 2020-05-29T10:14:34Z frgo joined #lisp 2020-05-29T10:19:04Z karlosz quit (Quit: karlosz) 2020-05-29T10:20:08Z ldb quit (Quit: leaving) 2020-05-29T10:22:11Z Bourne joined #lisp 2020-05-29T10:22:12Z Jachy quit (Quit: Idle for 30+ days) 2020-05-29T10:34:47Z rogersm joined #lisp 2020-05-29T10:38:45Z edgar-rft quit (Ping timeout: 265 seconds) 2020-05-29T10:45:46Z milanj joined #lisp 2020-05-29T10:50:07Z jello_pudding quit (Ping timeout: 260 seconds) 2020-05-29T10:53:21Z Lord_of_Life_ joined #lisp 2020-05-29T10:55:02Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-29T10:55:02Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-29T10:55:15Z kaftejiman quit (Ping timeout: 260 seconds) 2020-05-29T11:03:23Z kaftejiman joined #lisp 2020-05-29T11:04:19Z enrio joined #lisp 2020-05-29T11:05:34Z dmiles quit (Ping timeout: 240 seconds) 2020-05-29T11:08:32Z dmiles joined #lisp 2020-05-29T11:10:30Z bhartrihari left #lisp 2020-05-29T11:10:32Z bhartrihari joined #lisp 2020-05-29T11:10:41Z jello_pudding joined #lisp 2020-05-29T11:11:38Z dtman34 joined #lisp 2020-05-29T11:12:08Z dtman34 quit (Remote host closed the connection) 2020-05-29T11:13:58Z jgkamat quit (Quit: ZNC - https://znc.in) 2020-05-29T11:14:09Z sdumi quit (Read error: Connection reset by peer) 2020-05-29T11:14:15Z jgkamat joined #lisp 2020-05-29T11:19:31Z hhdave joined #lisp 2020-05-29T11:19:48Z bhartrihari left #lisp 2020-05-29T11:19:52Z bhartrihari joined #lisp 2020-05-29T11:22:04Z sdumi joined #lisp 2020-05-29T11:30:14Z edgar-rft joined #lisp 2020-05-29T11:34:49Z jeosol quit (Remote host closed the connection) 2020-05-29T11:46:54Z jmercouris: Looking for reccomendations for a simple matrix library or method 2020-05-29T11:47:04Z jmercouris: I could use 2D array, but maybe there is something better? 2020-05-29T11:47:19Z jmercouris: I've looked at a few online, I'm more interested in opinions 2020-05-29T11:50:49Z smazga joined #lisp 2020-05-29T11:51:22Z Shinmera: My opinion is it depends on what you need. If you just need matrix multiplication for small sizes you can write that triple loop yourself in like five lines. If you need large sizes and high performance you'll have to go for blas bindings. If it's in the middle, take your pick. 2020-05-29T11:51:54Z jmercouris: A good point, I will think more about my required application 2020-05-29T11:51:58Z jmercouris: there is no single truth after all 2020-05-29T11:53:38Z Bike joined #lisp 2020-05-29T11:55:11Z smazga quit (Ping timeout: 246 seconds) 2020-05-29T11:58:47Z pjb quit (Ping timeout: 272 seconds) 2020-05-29T12:00:55Z v3ga quit (Ping timeout: 265 seconds) 2020-05-29T12:03:24Z edgar-rft quit (Remote host closed the connection) 2020-05-29T12:03:40Z Bourne quit (Read error: Connection reset by peer) 2020-05-29T12:04:04Z edgar-rft joined #lisp 2020-05-29T12:04:45Z dmiles quit (Ping timeout: 258 seconds) 2020-05-29T12:08:42Z edgar-rft quit (Ping timeout: 256 seconds) 2020-05-29T12:10:35Z frgo quit (Ping timeout: 246 seconds) 2020-05-29T12:10:57Z dmiles joined #lisp 2020-05-29T12:13:07Z whartung quit (Ping timeout: 246 seconds) 2020-05-29T12:13:57Z whartung joined #lisp 2020-05-29T12:14:27Z T3ns0r quit (Ping timeout: 260 seconds) 2020-05-29T12:17:59Z edgar-rft joined #lisp 2020-05-29T12:27:37Z orivej joined #lisp 2020-05-29T12:30:41Z pjb joined #lisp 2020-05-29T12:31:01Z bean joined #lisp 2020-05-29T12:31:16Z bean: hi 2020-05-29T12:32:00Z bean quit (Client Quit) 2020-05-29T12:32:36Z ljavorsk joined #lisp 2020-05-29T12:36:08Z nicktick joined #lisp 2020-05-29T12:37:49Z phoe: heyy 2020-05-29T12:39:18Z dmiles quit (Ping timeout: 256 seconds) 2020-05-29T12:41:26Z Kundry_Wag joined #lisp 2020-05-29T12:41:51Z delial quit (Quit: Leaving) 2020-05-29T12:42:56Z nicktick quit (Ping timeout: 256 seconds) 2020-05-29T12:43:00Z jackdaniel: s/single/simple/ 2020-05-29T12:44:34Z Kundry_Wag quit (Client Quit) 2020-05-29T12:45:22Z dmiles joined #lisp 2020-05-29T12:48:13Z shifty joined #lisp 2020-05-29T12:49:50Z shka_ quit (Read error: No route to host) 2020-05-29T12:50:53Z Bourne joined #lisp 2020-05-29T12:56:17Z bitmapper joined #lisp 2020-05-29T13:00:50Z nicktick joined #lisp 2020-05-29T13:03:40Z Cymew quit (Ping timeout: 256 seconds) 2020-05-29T13:03:56Z pjb quit (Ping timeout: 265 seconds) 2020-05-29T13:07:14Z gxt quit (Remote host closed the connection) 2020-05-29T13:07:51Z gxt joined #lisp 2020-05-29T13:12:23Z madage quit (Ping timeout: 240 seconds) 2020-05-29T13:16:08Z pjb joined #lisp 2020-05-29T13:16:48Z shifty quit (Ping timeout: 265 seconds) 2020-05-29T13:17:36Z shifty joined #lisp 2020-05-29T13:19:46Z jprajzne quit (Ping timeout: 260 seconds) 2020-05-29T13:22:10Z ahungry joined #lisp 2020-05-29T13:22:57Z notzmv quit (Ping timeout: 258 seconds) 2020-05-29T13:28:31Z rippa joined #lisp 2020-05-29T13:29:51Z dmiles quit (Ping timeout: 258 seconds) 2020-05-29T13:36:17Z leo_song quit (Read error: Connection reset by peer) 2020-05-29T13:37:58Z leo_song joined #lisp 2020-05-29T13:38:24Z wsinatra joined #lisp 2020-05-29T13:40:53Z ljavorsk quit (Ping timeout: 246 seconds) 2020-05-29T13:41:29Z |Pirx| joined #lisp 2020-05-29T13:43:45Z cosimone quit (Quit: Quit.) 2020-05-29T13:44:45Z karswell_ joined #lisp 2020-05-29T13:45:26Z smazga joined #lisp 2020-05-29T13:46:17Z dmiles joined #lisp 2020-05-29T13:49:46Z madage joined #lisp 2020-05-29T13:50:15Z smazga quit (Ping timeout: 260 seconds) 2020-05-29T13:51:04Z narimiran joined #lisp 2020-05-29T13:54:26Z EvW1 joined #lisp 2020-05-29T14:04:00Z gaqwas quit (Remote host closed the connection) 2020-05-29T14:06:07Z scymtym quit (Ping timeout: 260 seconds) 2020-05-29T14:08:43Z kaftejiman quit (Remote host closed the connection) 2020-05-29T14:12:14Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2020-05-29T14:12:52Z shifty quit (Ping timeout: 265 seconds) 2020-05-29T14:13:07Z shifty joined #lisp 2020-05-29T14:14:04Z sjl_ joined #lisp 2020-05-29T14:14:42Z gigetoo quit (Ping timeout: 258 seconds) 2020-05-29T14:15:08Z cosimone joined #lisp 2020-05-29T14:16:36Z rpg joined #lisp 2020-05-29T14:17:45Z hhdave quit (Read error: Connection reset by peer) 2020-05-29T14:18:36Z hhdave joined #lisp 2020-05-29T14:21:47Z lucasb joined #lisp 2020-05-29T14:22:27Z Bourne quit (Read error: Connection reset by peer) 2020-05-29T14:29:50Z Misha_B joined #lisp 2020-05-29T14:32:28Z Bit_MCP joined #lisp 2020-05-29T14:34:54Z shifty quit (Ping timeout: 256 seconds) 2020-05-29T14:35:06Z shifty joined #lisp 2020-05-29T14:39:02Z orivej quit (Read error: Connection reset by peer) 2020-05-29T14:39:16Z orivej joined #lisp 2020-05-29T14:40:45Z ark joined #lisp 2020-05-29T14:44:19Z notzmv joined #lisp 2020-05-29T14:44:44Z karswell_ quit (Read error: Connection reset by peer) 2020-05-29T14:45:55Z karswell_ joined #lisp 2020-05-29T14:51:27Z jprajzne1 left #lisp 2020-05-29T14:56:43Z smazga joined #lisp 2020-05-29T14:58:37Z karswell_ quit (Read error: Connection reset by peer) 2020-05-29T14:59:34Z Josh_2: afternoon 2020-05-29T14:59:36Z rpg: Anyone know anything about the SBCL images on Dockerhub? There are a lot of them, and it seems hard to figure out which one to use. 2020-05-29T14:59:45Z sdumi quit (Ping timeout: 265 seconds) 2020-05-29T14:59:47Z beach: Hello Josh_2. 2020-05-29T14:59:51Z karswell_ joined #lisp 2020-05-29T15:00:01Z phoe: these ones were linked to me, https://github.com/daewok/docker-sbcl/ 2020-05-29T15:00:20Z phoe: and they seem sorta maintained if the last commit there is from 12 days ago and merges something from Stas 2020-05-29T15:02:52Z scymtym joined #lisp 2020-05-29T15:05:31Z rgherdt joined #lisp 2020-05-29T15:07:07Z X-Scale` joined #lisp 2020-05-29T15:10:03Z X-Scale quit (Ping timeout: 260 seconds) 2020-05-29T15:10:03Z X-Scale` is now known as X-Scale 2020-05-29T15:12:07Z dddddd joined #lisp 2020-05-29T15:12:14Z shifty quit (Ping timeout: 246 seconds) 2020-05-29T15:14:20Z orivej quit (Ping timeout: 246 seconds) 2020-05-29T15:19:32Z orivej joined #lisp 2020-05-29T15:21:05Z rpg: phoe: Thanks! I'll look at those. 2020-05-29T15:31:39Z orivej quit (Ping timeout: 265 seconds) 2020-05-29T15:31:43Z orivej_ joined #lisp 2020-05-29T15:33:07Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-29T15:34:05Z _jrjsmrtn joined #lisp 2020-05-29T15:34:44Z __jrjsmrtn__ quit (Ping timeout: 246 seconds) 2020-05-29T15:36:35Z Bourne joined #lisp 2020-05-29T15:44:32Z orivej_ quit (Quit: No Ping reply in 180 seconds.) 2020-05-29T15:45:51Z orivej joined #lisp 2020-05-29T15:53:20Z dyelar joined #lisp 2020-05-29T15:54:02Z EvW1 quit (Ping timeout: 260 seconds) 2020-05-29T15:57:52Z zaquest quit (Quit: Leaving) 2020-05-29T16:01:15Z zaquest joined #lisp 2020-05-29T16:02:01Z shka_ joined #lisp 2020-05-29T16:06:06Z bhartrihari left #lisp 2020-05-29T16:06:10Z bhartrihari joined #lisp 2020-05-29T16:12:04Z bhartrihari left #lisp 2020-05-29T16:12:15Z bhartrihari joined #lisp 2020-05-29T16:22:26Z rpg joined #lisp 2020-05-29T16:25:17Z dxtr quit (Ping timeout: 260 seconds) 2020-05-29T16:25:42Z efm quit (Read error: Connection reset by peer) 2020-05-29T16:32:51Z frgo joined #lisp 2020-05-29T16:33:16Z frgo quit (Remote host closed the connection) 2020-05-29T16:33:35Z frgo joined #lisp 2020-05-29T16:34:42Z frgo quit (Client Quit) 2020-05-29T16:34:57Z Ankhers quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-29T16:35:27Z Ankhers joined #lisp 2020-05-29T16:35:32Z dxtr joined #lisp 2020-05-29T16:39:43Z hhdave_ joined #lisp 2020-05-29T16:41:52Z bitmapper quit (Remote host closed the connection) 2020-05-29T16:43:30Z hhdave quit (Ping timeout: 272 seconds) 2020-05-29T16:43:30Z hhdave_ is now known as hhdave 2020-05-29T16:43:56Z dxtr quit (Ping timeout: 246 seconds) 2020-05-29T16:44:12Z bitmapper joined #lisp 2020-05-29T16:44:37Z dxtr joined #lisp 2020-05-29T16:48:34Z ArthurStrong joined #lisp 2020-05-29T16:54:23Z madage quit (Ping timeout: 240 seconds) 2020-05-29T16:54:43Z gxt quit (Ping timeout: 240 seconds) 2020-05-29T16:56:16Z gxt joined #lisp 2020-05-29T16:57:14Z Bit_MCP quit (Ping timeout: 260 seconds) 2020-05-29T16:58:04Z frgo joined #lisp 2020-05-29T17:00:55Z sdumi joined #lisp 2020-05-29T17:03:46Z madage joined #lisp 2020-05-29T17:04:34Z frgo_ joined #lisp 2020-05-29T17:05:39Z frgo__ joined #lisp 2020-05-29T17:07:51Z frgo quit (Ping timeout: 272 seconds) 2020-05-29T17:09:17Z frgo_ quit (Ping timeout: 260 seconds) 2020-05-29T17:10:41Z shifty joined #lisp 2020-05-29T17:17:41Z bitmapper quit (Remote host closed the connection) 2020-05-29T17:23:41Z rogersm: folks, maybe you're able to help. I'm trying to locate 'easy to plug' Garbage Collectors. 2020-05-29T17:23:55Z phoe: easy to plug in where? 2020-05-29T17:24:00Z rogersm: I currently have identified Boehm and Arlequin/Ravenbrook MPS 2020-05-29T17:24:11Z gaqwas joined #lisp 2020-05-29T17:24:15Z rogersm: to a C like interface 2020-05-29T17:24:47Z rogersm: any other you may be aware? 2020-05-29T17:24:52Z phoe: I am aware only of these two you listed 2020-05-29T17:25:00Z bitmapper joined #lisp 2020-05-29T17:27:32Z bhartrihari left #lisp 2020-05-29T17:27:49Z Bike: it's difficult to do garbage collection as a library since it needs to know object layouts and probably should do some things inline. So I also only know those two. 2020-05-29T17:27:50Z bhartrihari joined #lisp 2020-05-29T17:30:21Z FreeBirdLjj joined #lisp 2020-05-29T17:31:27Z rogersm: Yes, it's pretty implementation specific 2020-05-29T17:32:36Z buffergn0me joined #lisp 2020-05-29T17:33:13Z rogersm: but I was expecting to find more 2020-05-29T17:34:51Z jw4 quit (Read error: Connection reset by peer) 2020-05-29T17:34:54Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2020-05-29T17:35:34Z terpri quit (Remote host closed the connection) 2020-05-29T17:35:55Z bhartrihari left #lisp 2020-05-29T17:36:06Z bhartrihari joined #lisp 2020-05-29T17:36:58Z jw4 joined #lisp 2020-05-29T17:41:46Z shifty quit (Ping timeout: 246 seconds) 2020-05-29T17:42:22Z shifty joined #lisp 2020-05-29T17:43:05Z terpri joined #lisp 2020-05-29T17:44:08Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-29T17:49:01Z bhartrihari left #lisp 2020-05-29T17:49:16Z bhartrihari joined #lisp 2020-05-29T17:52:10Z notzmv quit (Ping timeout: 256 seconds) 2020-05-29T17:52:24Z akoana joined #lisp 2020-05-29T17:52:30Z notzmv joined #lisp 2020-05-29T17:53:39Z renzhi joined #lisp 2020-05-29T17:56:56Z dale_ joined #lisp 2020-05-29T17:57:23Z dale_ is now known as dale 2020-05-29T17:58:17Z rogersm quit (Quit: Leaving...) 2020-05-29T17:59:46Z rpg joined #lisp 2020-05-29T18:01:03Z bhartrihari left #lisp 2020-05-29T18:01:06Z bhartrihari joined #lisp 2020-05-29T18:06:59Z pjb quit (Ping timeout: 265 seconds) 2020-05-29T18:07:17Z RedMallet joined #lisp 2020-05-29T18:11:35Z Bit_MCP joined #lisp 2020-05-29T18:13:27Z buffergn0me quit (Ping timeout: 260 seconds) 2020-05-29T18:17:37Z RedMallet quit (Quit: WeeChat 2.6) 2020-05-29T18:17:49Z karswell_ quit (Ping timeout: 246 seconds) 2020-05-29T18:21:10Z milanj quit (Quit: This computer has gone to sleep) 2020-05-29T18:21:43Z cantstanya quit (Ping timeout: 240 seconds) 2020-05-29T18:23:57Z cantstanya joined #lisp 2020-05-29T18:29:10Z sauvin quit (Ping timeout: 260 seconds) 2020-05-29T18:30:42Z Lycurgus joined #lisp 2020-05-29T18:35:14Z pjb joined #lisp 2020-05-29T18:40:55Z Krystof quit (Ping timeout: 246 seconds) 2020-05-29T18:47:07Z anticrisis joined #lisp 2020-05-29T18:53:18Z orivej quit (Ping timeout: 256 seconds) 2020-05-29T18:53:31Z orivej joined #lisp 2020-05-29T18:54:40Z karlosz joined #lisp 2020-05-29T18:54:45Z Lycurgus quit (Remote host closed the connection) 2020-05-29T18:58:24Z renzhi quit (Ping timeout: 272 seconds) 2020-05-29T19:01:02Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-29T19:02:11Z orivej joined #lisp 2020-05-29T19:02:41Z ralt quit (Quit: Connection closed for inactivity) 2020-05-29T19:04:48Z tylerdmace quit (Ping timeout: 265 seconds) 2020-05-29T19:08:49Z pjb quit (Ping timeout: 272 seconds) 2020-05-29T19:11:05Z tylerdmace joined #lisp 2020-05-29T19:11:17Z midre quit (Ping timeout: 246 seconds) 2020-05-29T19:12:24Z buffergn0me joined #lisp 2020-05-29T19:14:28Z shifty quit (Ping timeout: 265 seconds) 2020-05-29T19:14:47Z shifty joined #lisp 2020-05-29T19:15:58Z midre joined #lisp 2020-05-29T19:21:07Z Cymew joined #lisp 2020-05-29T19:21:33Z bhartrihari left #lisp 2020-05-29T19:21:43Z bhartrihari joined #lisp 2020-05-29T19:24:57Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-29T19:33:48Z shka_ quit (Ping timeout: 265 seconds) 2020-05-29T19:35:19Z Cymew quit (Quit: Konversation terminated!) 2020-05-29T19:35:47Z pjb joined #lisp 2020-05-29T19:36:35Z wsinatra joined #lisp 2020-05-29T19:38:37Z orivej quit (Ping timeout: 258 seconds) 2020-05-29T19:38:51Z orivej joined #lisp 2020-05-29T19:43:14Z wsinatra quit (Quit: WeeChat 2.8) 2020-05-29T19:43:28Z shifty quit (Ping timeout: 265 seconds) 2020-05-29T19:44:09Z shifty joined #lisp 2020-05-29T19:47:46Z smazga quit (Ping timeout: 256 seconds) 2020-05-29T19:47:46Z enrio quit (Ping timeout: 256 seconds) 2020-05-29T19:49:20Z Krystof joined #lisp 2020-05-29T19:50:08Z orivej quit (Ping timeout: 246 seconds) 2020-05-29T19:50:31Z orivej joined #lisp 2020-05-29T20:00:44Z SGASAU quit (Remote host closed the connection) 2020-05-29T20:01:28Z SGASAU joined #lisp 2020-05-29T20:04:26Z msk joined #lisp 2020-05-29T20:08:47Z pjb quit (Ping timeout: 265 seconds) 2020-05-29T20:11:44Z dale quit (Quit: dale) 2020-05-29T20:11:45Z heisig quit (Quit: Leaving) 2020-05-29T20:13:32Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-29T20:14:41Z orivej joined #lisp 2020-05-29T20:23:14Z smazga joined #lisp 2020-05-29T20:23:30Z Lord_of_Life_ joined #lisp 2020-05-29T20:24:04Z narimiran quit (Ping timeout: 265 seconds) 2020-05-29T20:24:31Z Lord_of_Life quit (Ping timeout: 246 seconds) 2020-05-29T20:24:36Z bars0 quit (Remote host closed the connection) 2020-05-29T20:26:21Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-29T20:26:46Z orivej quit (Ping timeout: 260 seconds) 2020-05-29T20:26:54Z orivej_ joined #lisp 2020-05-29T20:31:32Z bfig_ joined #lisp 2020-05-29T20:31:33Z bfig quit (Read error: Connection reset by peer) 2020-05-29T20:34:42Z orivej_ quit (Ping timeout: 265 seconds) 2020-05-29T20:35:02Z orivej joined #lisp 2020-05-29T20:35:41Z marusich joined #lisp 2020-05-29T20:37:02Z bhartrihari left #lisp 2020-05-29T20:37:17Z bhartrihari joined #lisp 2020-05-29T20:38:05Z shifty quit (Ping timeout: 246 seconds) 2020-05-29T20:38:25Z shifty joined #lisp 2020-05-29T20:41:28Z dale joined #lisp 2020-05-29T20:43:10Z pjb joined #lisp 2020-05-29T20:43:15Z t-m3n joined #lisp 2020-05-29T20:43:30Z t-m3n: hello 2020-05-29T20:43:52Z orivej quit (Quit: No Ping reply in 180 seconds.) 2020-05-29T20:44:01Z t-m3n: can any1 help me with my lab in clisp 2020-05-29T20:45:11Z orivej joined #lisp 2020-05-29T20:45:40Z Shinmera: it's customary to expect people to do their homework by themselves. 2020-05-29T20:47:00Z t-m3n: i know but maybe some1 can help, it's firts year stuff 2020-05-29T20:47:12Z Shinmera: ask your TAs 2020-05-29T20:48:05Z gendl: t-m3n: I'm curious though, what school are you in where they're teaching clisp? 2020-05-29T20:48:14Z t-m3n: Define an array of integers of size 3 x 3, which will be initialized with increasing numbers from 1 to 9 2020-05-29T20:48:14Z t-m3n: 2) Define a function that returns the element from position (i, j) in the array defined in point 1) 2020-05-29T20:48:14Z t-m3n: 3) Define a function that returns a new array of size 2 x 2 starting from the array defined in point 1) 2020-05-29T20:48:14Z t-m3n: (note: will start from element with displacement 5 in the initial array) 2020-05-29T20:48:22Z gendl: And is it the actual clisp implementation, or by clisp do you mean "common lisp" 2020-05-29T20:48:31Z t-m3n: common lisp 2020-05-29T20:48:40Z bhartrihari left #lisp 2020-05-29T20:48:43Z bhartrihari joined #lisp 2020-05-29T20:49:27Z t-m3n: first year at the engineering faculty 2020-05-29T20:50:54Z gendl: t-m3n: that's not very hard but people here aren't keen on doing homework for folks. I'm happy to see that they're teaching CL somewhere though. May I ask your university? 2020-05-29T20:51:03Z gendl: and what CL textbooks or documentation do you have access to? 2020-05-29T20:52:24Z t-m3n: Technische Hochschule Mittelhessen 2020-05-29T20:52:31Z t-m3n: in germany 2020-05-29T20:52:57Z t-m3n: it's complicated for me bcs i'm not fluent in german 2020-05-29T20:53:08Z noobineer quit (Ping timeout: 246 seconds) 2020-05-29T20:53:20Z gendl: well most of the CL docs you'll find will be in English anyway. 2020-05-29T20:54:00Z t-m3n: i did get some doc in german on our sharepoint but i need to download from internet in eng 2020-05-29T20:54:02Z karayan quit (Remote host closed the connection) 2020-05-29T20:54:56Z gendl: all: isn't there another channel in here for lisp-noobs or something? At least someone could give him hits what functions he needs and so on.. 2020-05-29T20:54:58Z t-m3n: i'm using GNU Clisp2.49 on windows 2020-05-29T20:56:06Z gendl: I think the easiest way to do the first one is to make a list-o-lists with the incrementing numbers, then call (make-array '(3 3) :initial-contents ) 2020-05-29T20:56:41Z Aurora_v_kosmose: t-m3n: You might be interested in this: http://www.gigamonkeys.com/book/ 2020-05-29T20:56:43Z gendl: You could play around by manually making the list first, like 2020-05-29T20:56:43Z gendl: (setq my-list '((1 2 3) (4 5 6) (7 8 0))) 2020-05-29T20:56:58Z gendl: then do (make-array :initial-contents my-list) 2020-05-29T20:57:08Z Shinmera: >>> #clschool 2020-05-29T20:57:59Z t-m3n: thanks a lot gendl and shifty 2020-05-29T20:58:10Z t-m3n: thanks a lot gendl and Shinmera sorry 2020-05-29T20:58:15Z ArthurSt1ong joined #lisp 2020-05-29T21:00:09Z ArthurStrong quit (Read error: Connection reset by peer) 2020-05-29T21:00:11Z marusich quit (Quit: Leaving) 2020-05-29T21:02:32Z fourier joined #lisp 2020-05-29T21:05:22Z Lycurgus joined #lisp 2020-05-29T21:06:50Z karayan joined #lisp 2020-05-29T21:09:22Z shifty quit (Ping timeout: 256 seconds) 2020-05-29T21:09:59Z shifty joined #lisp 2020-05-29T21:15:50Z ahungry quit (Remote host closed the connection) 2020-05-29T21:16:45Z pjb quit (Ping timeout: 272 seconds) 2020-05-29T21:19:37Z Jesin quit (Quit: Leaving) 2020-05-29T21:20:10Z orivej quit (Ping timeout: 246 seconds) 2020-05-29T21:20:11Z bhartrihari left #lisp 2020-05-29T21:20:14Z bhartrihari joined #lisp 2020-05-29T21:20:42Z shifty quit (Ping timeout: 256 seconds) 2020-05-29T21:20:51Z orivej joined #lisp 2020-05-29T21:21:53Z Jesin joined #lisp 2020-05-29T21:33:01Z cosimone quit (Remote host closed the connection) 2020-05-29T21:33:27Z cosimone joined #lisp 2020-05-29T21:37:58Z cosimone_ joined #lisp 2020-05-29T21:38:47Z cosimone quit (Ping timeout: 260 seconds) 2020-05-29T21:38:53Z cosimone_ is now known as cosimone 2020-05-29T21:39:48Z ralt joined #lisp 2020-05-29T21:42:15Z marusich joined #lisp 2020-05-29T21:44:15Z pjb joined #lisp 2020-05-29T21:45:34Z gravicappa quit (Ping timeout: 256 seconds) 2020-05-29T21:46:52Z sjl_ quit (Ping timeout: 272 seconds) 2020-05-29T21:49:32Z noobineer joined #lisp 2020-05-29T21:51:34Z smazga quit (Ping timeout: 240 seconds) 2020-05-29T21:55:41Z frgo__ is now known as frgo 2020-05-29T22:05:06Z cosimone quit (Quit: Quit.) 2020-05-29T22:09:23Z andrei-n quit (Quit: Leaving) 2020-05-29T22:14:07Z frgo quit (Remote host closed the connection) 2020-05-29T22:14:43Z frgo joined #lisp 2020-05-29T22:17:21Z pjb quit (Ping timeout: 265 seconds) 2020-05-29T22:24:25Z parjanya quit (Remote host closed the connection) 2020-05-29T22:25:33Z buffergn0me quit (Remote host closed the connection) 2020-05-29T22:26:04Z SGASAU quit (Remote host closed the connection) 2020-05-29T22:26:09Z buffergn0me joined #lisp 2020-05-29T22:26:42Z jesse1010 quit (Ping timeout: 260 seconds) 2020-05-29T22:26:46Z SGASAU joined #lisp 2020-05-29T22:28:04Z pve quit (Quit: leaving) 2020-05-29T22:31:07Z SGASAU` joined #lisp 2020-05-29T22:33:56Z orivej quit (Ping timeout: 246 seconds) 2020-05-29T22:35:06Z SGASAU quit (Ping timeout: 260 seconds) 2020-05-29T22:35:22Z Bit_MCP quit (Quit: Leaving) 2020-05-29T22:37:42Z buffergn0me quit (Ping timeout: 260 seconds) 2020-05-29T22:39:19Z buffergn0me joined #lisp 2020-05-29T22:39:27Z buffergn0me quit (Client Quit) 2020-05-29T22:40:57Z jesse1010 joined #lisp 2020-05-29T22:43:40Z parjanya joined #lisp 2020-05-29T22:47:12Z pjb joined #lisp 2020-05-29T22:47:18Z Lycurgus quit (Remote host closed the connection) 2020-05-29T22:50:40Z parjanya quit (Read error: Connection reset by peer) 2020-05-29T22:52:01Z orivej joined #lisp 2020-05-29T22:53:16Z Lord_of_Life_ joined #lisp 2020-05-29T22:54:26Z parjanya joined #lisp 2020-05-29T22:55:34Z Lord_of_Life quit (Ping timeout: 240 seconds) 2020-05-29T22:56:09Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-29T22:57:13Z orivej quit (Ping timeout: 264 seconds) 2020-05-29T23:07:40Z gaqwas quit (Remote host closed the connection) 2020-05-29T23:20:53Z pjb quit (Ping timeout: 272 seconds) 2020-05-29T23:23:21Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-29T23:28:03Z orivej joined #lisp 2020-05-29T23:35:10Z orivej quit (Ping timeout: 256 seconds) 2020-05-29T23:38:09Z rgherdt quit (Quit: Leaving) 2020-05-29T23:42:11Z fourier quit (Ping timeout: 246 seconds) 2020-05-29T23:43:11Z random-nick quit (Ping timeout: 258 seconds) 2020-05-29T23:49:02Z orivej joined #lisp 2020-05-29T23:52:34Z pjb joined #lisp 2020-05-30T00:19:42Z orivej quit (Ping timeout: 256 seconds) 2020-05-30T00:25:55Z pjb quit (Ping timeout: 265 seconds) 2020-05-30T00:27:10Z SGASAU` quit (Remote host closed the connection) 2020-05-30T00:27:49Z SGASAU` joined #lisp 2020-05-30T00:36:02Z orivej joined #lisp 2020-05-30T00:43:34Z orivej quit (Ping timeout: 272 seconds) 2020-05-30T00:45:01Z ldb joined #lisp 2020-05-30T00:45:08Z ldb: morning 2020-05-30T00:46:04Z wxie joined #lisp 2020-05-30T00:46:24Z rabuf: Evening. 2020-05-30T00:47:15Z White_Flame: $FACET_OF_TIME_CUBE 2020-05-30T00:49:36Z parjanya quit (Remote host closed the connection) 2020-05-30T00:54:52Z ldb quit (Ping timeout: 258 seconds) 2020-05-30T00:54:56Z edgar-rft: is it time to load some bytes? 2020-05-30T00:55:24Z ldb joined #lisp 2020-05-30T00:57:52Z pjb joined #lisp 2020-05-30T00:59:43Z ldb: z 2020-05-30T00:59:50Z edgar-rft: (time (ldb )) => morning 2020-05-30T01:02:37Z orivej joined #lisp 2020-05-30T01:07:38Z orivej quit (Ping timeout: 272 seconds) 2020-05-30T01:11:28Z lucasb quit (Quit: Connection closed for inactivity) 2020-05-30T01:17:24Z ArthurSt1ong quit (Quit: leaving) 2020-05-30T01:17:44Z ArthurStrong joined #lisp 2020-05-30T01:20:45Z seok joined #lisp 2020-05-30T01:20:47Z seok: is there a library to draw charts? 2020-05-30T01:21:42Z Josh_2: there are wrappers for gnuplot 2020-05-30T01:22:14Z abhixec joined #lisp 2020-05-30T01:31:21Z pjb quit (Ping timeout: 272 seconds) 2020-05-30T01:35:30Z bitmapper quit (Ping timeout: 258 seconds) 2020-05-30T01:48:51Z smazga joined #lisp 2020-05-30T01:53:52Z smazga quit (Ping timeout: 272 seconds) 2020-05-30T01:53:56Z R4v3n quit (Quit: R4v3n) 2020-05-30T01:53:57Z msk quit (Read error: Connection reset by peer) 2020-05-30T01:55:01Z msk joined #lisp 2020-05-30T01:58:45Z zaquest quit (Read error: Connection reset by peer) 2020-05-30T02:00:43Z wxie quit (Ping timeout: 260 seconds) 2020-05-30T02:03:26Z dev quit (Remote host closed the connection) 2020-05-30T02:06:33Z pjb joined #lisp 2020-05-30T02:15:53Z dyelar quit (Quit: Leaving.) 2020-05-30T02:17:26Z wxie joined #lisp 2020-05-30T02:21:56Z Lycurgus joined #lisp 2020-05-30T02:24:13Z dddddd quit (Ping timeout: 264 seconds) 2020-05-30T02:31:22Z gekkou joined #lisp 2020-05-30T02:40:23Z pjb quit (Ping timeout: 272 seconds) 2020-05-30T02:41:33Z wxie quit (Ping timeout: 265 seconds) 2020-05-30T02:42:09Z mason joined #lisp 2020-05-30T02:46:54Z monok joined #lisp 2020-05-30T02:47:11Z |Pirx| quit (Ping timeout: 258 seconds) 2020-05-30T02:49:25Z mono quit (Ping timeout: 264 seconds) 2020-05-30T02:49:32Z ralt quit (Quit: Connection closed for inactivity) 2020-05-30T02:58:53Z ldb quit (Ping timeout: 246 seconds) 2020-05-30T02:59:03Z ldb joined #lisp 2020-05-30T03:11:29Z ldb quit (Ping timeout: 246 seconds) 2020-05-30T03:11:45Z ldb joined #lisp 2020-05-30T03:14:45Z zaquest joined #lisp 2020-05-30T03:16:13Z pjb joined #lisp 2020-05-30T03:17:17Z beach: Good morning everyone! 2020-05-30T03:17:45Z efm joined #lisp 2020-05-30T03:19:32Z jesse1010 quit (Ping timeout: 246 seconds) 2020-05-30T03:25:59Z EvW joined #lisp 2020-05-30T03:28:25Z seok: morning! 2020-05-30T03:28:44Z seok: how do I check if a variable is a string? 2020-05-30T03:28:55Z seok: (equal (type-of x) ??) 2020-05-30T03:29:08Z seok: 'string doesnt work 2020-05-30T03:29:19Z seok: '(simple-array character) neither 2020-05-30T03:34:45Z ffwacom: (stringp x) 2020-05-30T03:37:50Z seok: thank you 2020-05-30T03:41:37Z orivej joined #lisp 2020-05-30T03:49:08Z smazga joined #lisp 2020-05-30T03:49:24Z pjb quit (Ping timeout: 265 seconds) 2020-05-30T03:51:57Z beach: seok: You mean if THE VALUE OF A VARIABLE is a string? 2020-05-30T03:53:09Z beach: seok: In general, if you don't have a predicate like STRINGP, the way to check it is (TYPEP ') so in this case (TYPEP X 'STRING). 2020-05-30T03:53:58Z smazga quit (Ping timeout: 256 seconds) 2020-05-30T03:59:27Z seok: Thank you 2020-05-30T04:00:49Z gekkou quit (Quit: WeeChat 2.6) 2020-05-30T04:01:27Z edgar-rft: AFAIK a string string can be made variable by using a fill-pointer 2020-05-30T04:01:42Z edgar-rft: * one string too many 2020-05-30T04:02:06Z ffwacom: can I (use-package :blah) but assign :blah to an alias? 2020-05-30T04:02:42Z ffwacom: the main issue is the package :iterate and :generators both define the #'next symbol 2020-05-30T04:02:45Z ffwacom: this is in common lisp 2020-05-30T04:02:51Z beach: What does it mean to assign a keyword to an alias? 2020-05-30T04:03:13Z beach: You should avoid :USEing packages other than the CL package. 2020-05-30T04:03:30Z ffwacom: how should I approach it? 2020-05-30T04:03:37Z beach: Use explicit package prefixes. 2020-05-30T04:03:59Z beach: And if the name of the package is too long, use package-local nicknames, now available in every significant implementation. 2020-05-30T04:05:10Z beach: By using explicit package prefixes, your code is easier to understand, because the person reading it can immediately see what package a symbol comes from. 2020-05-30T04:05:44Z marusich quit (Ping timeout: 246 seconds) 2020-05-30T04:06:39Z ffwacom: that sounds fine, I'd really like the package names shorter 2020-05-30T04:07:03Z arbv quit (Ping timeout: 260 seconds) 2020-05-30T04:07:16Z beach: You can make it a single letter if you want, using package-local nicknames. 2020-05-30T04:08:05Z vutral_ joined #lisp 2020-05-30T04:08:05Z vutral_ quit (Changing host) 2020-05-30T04:08:05Z vutral_ joined #lisp 2020-05-30T04:08:22Z beach: ... so that i:next is the symbol in iterators, and g:next is the one from generators. 2020-05-30T04:08:48Z arbv joined #lisp 2020-05-30T04:11:43Z ffwacom: beach: That worked a treat, thanks 2020-05-30T04:12:09Z beach: Anytime. 2020-05-30T04:19:06Z wxie joined #lisp 2020-05-30T04:24:28Z marusich joined #lisp 2020-05-30T04:24:56Z pjb joined #lisp 2020-05-30T04:26:37Z ldb quit (Ping timeout: 264 seconds) 2020-05-30T04:32:09Z seok quit (Remote host closed the connection) 2020-05-30T04:36:45Z Bike quit (Quit: Lost terminal) 2020-05-30T04:40:56Z wxie quit (Ping timeout: 265 seconds) 2020-05-30T04:41:56Z ldb joined #lisp 2020-05-30T04:44:42Z White_Flame: ffwacom: there's package-local-nicknames, which is an extension that pretty much every lisp implementationhas now 2020-05-30T04:45:03Z beach: I think that's what I said. No? 2020-05-30T04:45:15Z White_Flame: oh, right at the end, yeah 2020-05-30T04:45:27Z White_Flame skimmed too fast 2020-05-30T04:46:47Z ldb quit (Ping timeout: 258 seconds) 2020-05-30T04:47:32Z karlosz quit (Quit: karlosz) 2020-05-30T04:47:40Z karlosz joined #lisp 2020-05-30T04:52:20Z moon-child quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-30T04:53:33Z moon-child joined #lisp 2020-05-30T04:53:50Z gravicappa joined #lisp 2020-05-30T04:56:18Z orivej quit (Ping timeout: 256 seconds) 2020-05-30T04:56:33Z EvW quit (Ping timeout: 272 seconds) 2020-05-30T04:56:52Z kaftejiman joined #lisp 2020-05-30T04:59:14Z ech quit (Ping timeout: 240 seconds) 2020-05-30T05:00:50Z narimiran joined #lisp 2020-05-30T05:01:10Z abhixec quit (Quit: leaving) 2020-05-30T05:02:19Z ldb joined #lisp 2020-05-30T05:07:04Z srazzaque joined #lisp 2020-05-30T05:07:40Z ldb quit (Ping timeout: 272 seconds) 2020-05-30T05:13:33Z ayuce quit (Remote host closed the connection) 2020-05-30T05:16:50Z yh_ joined #lisp 2020-05-30T05:17:02Z creat joined #lisp 2020-05-30T05:17:47Z yh_ left #lisp 2020-05-30T05:20:12Z creat_ quit (Ping timeout: 260 seconds) 2020-05-30T05:20:47Z _whitelogger quit (Ping timeout: 260 seconds) 2020-05-30T05:22:35Z ldb joined #lisp 2020-05-30T05:27:20Z ldb quit (Ping timeout: 265 seconds) 2020-05-30T05:27:47Z nymphet is now known as loli 2020-05-30T05:29:54Z _whitelogger joined #lisp 2020-05-30T05:42:53Z ldb joined #lisp 2020-05-30T05:46:55Z sauvin joined #lisp 2020-05-30T05:47:14Z ldb quit (Ping timeout: 240 seconds) 2020-05-30T05:53:34Z igemnace quit (Quit: WeeChat 2.8) 2020-05-30T05:54:15Z ArthurStrong quit (Ping timeout: 258 seconds) 2020-05-30T06:03:07Z ldb joined #lisp 2020-05-30T06:07:55Z ldb quit (Ping timeout: 260 seconds) 2020-05-30T06:17:42Z Lycurgus quit (Remote host closed the connection) 2020-05-30T06:19:38Z narimiran quit (Quit: leaving) 2020-05-30T06:19:57Z ldb joined #lisp 2020-05-30T06:20:23Z akoana quit (Quit: leaving) 2020-05-30T06:21:33Z bhartrihari left #lisp 2020-05-30T06:21:41Z bhartrihari joined #lisp 2020-05-30T06:30:10Z ldb quit (Ping timeout: 265 seconds) 2020-05-30T06:30:24Z ldb joined #lisp 2020-05-30T06:35:42Z ldb quit (Quit: leaving) 2020-05-30T06:36:01Z nitrix quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-05-30T06:40:18Z phoe: good morning, lispers 2020-05-30T06:40:47Z no-defun-allowed: Hello phoe. 2020-05-30T06:44:07Z bhartrihari left #lisp 2020-05-30T06:44:25Z bhartrihari joined #lisp 2020-05-30T06:45:13Z karlosz quit (Quit: karlosz) 2020-05-30T06:45:29Z karlosz joined #lisp 2020-05-30T06:45:55Z Lycurgus joined #lisp 2020-05-30T06:48:16Z bhartrihari left #lisp 2020-05-30T06:48:33Z bhartrihari joined #lisp 2020-05-30T06:49:08Z shka_ joined #lisp 2020-05-30T06:50:27Z beach: Hello phoe. 2020-05-30T06:52:31Z phoe: heyyyy 2020-05-30T06:53:14Z igemnace joined #lisp 2020-05-30T06:54:18Z _jrjsmrtn quit (Quit: Bye !) 2020-05-30T06:54:20Z sdumi quit (Ping timeout: 265 seconds) 2020-05-30T06:54:56Z __jrjsmrtn__ joined #lisp 2020-05-30T06:55:15Z Lycurgus quit (Quit: Exeunt) 2020-05-30T06:56:48Z zaquest quit (Quit: Leaving) 2020-05-30T06:58:12Z ralt joined #lisp 2020-05-30T07:00:46Z __jrjsmrtn__ is now known as _jrjsmrtn 2020-05-30T07:01:28Z _jrjsmrtn is now known as jrjsmrtn 2020-05-30T07:01:43Z nopf quit (Ping timeout: 260 seconds) 2020-05-30T07:01:58Z nopf joined #lisp 2020-05-30T07:09:06Z sdumi joined #lisp 2020-05-30T07:10:32Z cdegroot quit (Ping timeout: 258 seconds) 2020-05-30T07:10:49Z cdegroot joined #lisp 2020-05-30T07:11:10Z pve joined #lisp 2020-05-30T07:17:14Z t-m3n quit (Remote host closed the connection) 2020-05-30T07:17:40Z t-m3n joined #lisp 2020-05-30T07:20:22Z karayan quit (Ping timeout: 260 seconds) 2020-05-30T07:30:10Z sdumi quit (Read error: Connection reset by peer) 2020-05-30T07:30:29Z sdumi joined #lisp 2020-05-30T07:31:40Z liberliver joined #lisp 2020-05-30T07:31:54Z srazzaque quit (Ping timeout: 240 seconds) 2020-05-30T07:34:47Z liberliver1 joined #lisp 2020-05-30T07:36:30Z liberliver quit (Ping timeout: 272 seconds) 2020-05-30T07:36:31Z liberliver1 is now known as liberliver 2020-05-30T07:38:53Z sdumi quit (Ping timeout: 246 seconds) 2020-05-30T07:41:56Z zaquest joined #lisp 2020-05-30T07:43:35Z liberliver quit (Ping timeout: 260 seconds) 2020-05-30T07:47:06Z hineios3 joined #lisp 2020-05-30T07:50:50Z hineios quit (Ping timeout: 256 seconds) 2020-05-30T07:50:50Z hineios3 is now known as hineios 2020-05-30T07:52:25Z Bourne left #lisp 2020-05-30T07:59:32Z nightfly quit (Ping timeout: 246 seconds) 2020-05-30T07:59:35Z rgherdt joined #lisp 2020-05-30T07:59:57Z nightfly joined #lisp 2020-05-30T08:07:26Z beach: Do we have a collective name for the type specifier names AND, OR, EQL, MEMBER, MOD, NOT, SATISFIES, and VALUES. 2020-05-30T08:07:44Z beach: ? 2020-05-30T08:08:35Z beach: They are the ones that are not names of any types. 2020-05-30T08:13:11Z phoe: beach: 2020-05-30T08:13:13Z phoe: clhs 4.2.3 2020-05-30T08:13:13Z specbot: Type Specifiers: http://www.lispworks.com/reference/HyperSpec/Body/04_bc.htm 2020-05-30T08:13:15Z phoe: figure 4-4 2020-05-30T08:13:28Z phoe: compound-only type specifiers 2020-05-30T08:13:48Z beach: Lame. :) But thanks. 2020-05-30T08:14:07Z beach: I guess I can live with that. 2020-05-30T08:15:25Z cosimone joined #lisp 2020-05-30T08:23:30Z bhartrihari left #lisp 2020-05-30T08:23:40Z bhartrihari joined #lisp 2020-05-30T08:33:12Z bfig joined #lisp 2020-05-30T08:36:14Z bfig_ quit (Ping timeout: 240 seconds) 2020-05-30T08:40:22Z pjb quit (Ping timeout: 265 seconds) 2020-05-30T08:42:32Z karayan joined #lisp 2020-05-30T08:47:58Z marusich quit (Quit: Leaving) 2020-05-30T08:52:11Z datajerk quit (Ping timeout: 260 seconds) 2020-05-30T09:00:27Z datajerk joined #lisp 2020-05-30T09:12:54Z pjb joined #lisp 2020-05-30T09:25:26Z MrtnDk[m]: How? 2020-05-30T09:26:05Z no-defun-allowed: Quite easily, that's the phrase used in the Common Lisp Hyperspec. 2020-05-30T09:26:06Z beach: I'll just put "compound-only" in the name of the file in which I planned to put code for those type specifier names. 2020-05-30T09:26:38Z sdumi joined #lisp 2020-05-30T09:27:22Z beach: MrtnDk[m]: Are you new here? I don't recognize your nick. 2020-05-30T09:27:44Z MrtnDk[m]: beach: I think so, yes. 2020-05-30T09:28:00Z beach: Great! What brings you to #lisp? 2020-05-30T09:28:13Z phoe: MrtnDk[m]: helloooo, welcome to #lisp 2020-05-30T09:32:21Z MrtnDk[m]: phoe: Thank you! 🙂 2020-05-30T09:33:08Z epony quit (Ping timeout: 258 seconds) 2020-05-30T09:33:59Z dale quit (Quit: My computer has gone to sleep) 2020-05-30T09:35:26Z Oddity quit (Ping timeout: 258 seconds) 2020-05-30T09:36:25Z epony joined #lisp 2020-05-30T09:37:06Z phoe: if we can help you in anything related to Common Lisp, just post it here 2020-05-30T09:40:55Z Oddity joined #lisp 2020-05-30T09:42:53Z orivej joined #lisp 2020-05-30T09:42:59Z anticrisis quit (Read error: Connection reset by peer) 2020-05-30T09:46:33Z hineios quit (Read error: Connection reset by peer) 2020-05-30T09:46:37Z pjb quit (Ping timeout: 272 seconds) 2020-05-30T09:48:10Z hineios joined #lisp 2020-05-30T09:49:28Z smazga joined #lisp 2020-05-30T09:54:06Z smazga quit (Ping timeout: 260 seconds) 2020-05-30T09:58:36Z dddddd joined #lisp 2020-05-30T10:03:02Z _whitelogger quit (Remote host closed the connection) 2020-05-30T10:05:15Z _whitelogger joined #lisp 2020-05-30T10:11:12Z wxie joined #lisp 2020-05-30T10:13:07Z frgo quit (Remote host closed the connection) 2020-05-30T10:13:13Z pjb joined #lisp 2020-05-30T10:13:40Z frgo joined #lisp 2020-05-30T10:14:35Z shifty joined #lisp 2020-05-30T10:20:08Z frgo quit 2020-05-30T10:21:11Z t-m3n quit (Remote host closed the connection) 2020-05-30T10:39:02Z _whitelogger quit (Remote host closed the connection) 2020-05-30T10:41:15Z _whitelogger joined #lisp 2020-05-30T10:41:17Z lukego: Anybody have a Lisp genetic algorithms library they can recommend? 2020-05-30T10:43:38Z MrtnDk[m]: I'm mostly into scheme and e-lisp. I guess E-lisp and common lisp are very similar, in some ways at least, maybe not so much in other ways. I understand that CL is more complex. 2020-05-30T10:43:45Z MrtnDk[m]: Sorry. 2020-05-30T10:44:13Z kpoeck joined #lisp 2020-05-30T10:44:58Z MrtnDk[m]: phoe: I'm mostly into scheme and e-lisp. I guess E-lisp and common lisp are very similar, in some ways at least, maybe not so much in other ways. I understand that CL is more complex. 2020-05-30T10:44:58Z phoe: hmmmmm, the two are off-topic here, since this is a Common Lisp place 2020-05-30T10:45:28Z phoe: elisp most likely belongs to #emacs and scheme to #scheme and/or other channels related to the various scheme implementations 2020-05-30T10:46:41Z MrtnDk[m]: I do a little in common LISP also, on my android. 2020-05-30T10:47:19Z phoe: nice! I know someone else as well who does their Lisp learning on ecl on android 2020-05-30T10:48:08Z phoe: also Lisp ain't LISP, no need to use all caps since it's not 1960s anymore 2020-05-30T10:49:06Z MrtnDk[m]: Right .. Lisp is case-sensitive now. I didn't think about that. 2020-05-30T10:49:28Z phoe: well I mean the reader still upcases everything by default 2020-05-30T10:49:35Z phoe: but you know what I mean :D 2020-05-30T10:49:55Z jackdaniel: technically speaking Common Lisp is LISP (unlike scheme which was designed from scratch) 2020-05-30T10:50:24Z random-nick joined #lisp 2020-05-30T10:51:08Z MrtnDk[m]: I kinda like Scratch, but it is not for programming, it is for fun and learning. 2020-05-30T10:51:37Z MrtnDk[m]: I am doubtful that Lisp was originally implemented in Scratch though. 2020-05-30T10:51:48Z nika joined #lisp 2020-05-30T10:51:51Z MrtnDk[m]: (Maybe I am confusing it with something else) 2020-05-30T10:51:58Z phoe: you are confusing Scratch with scratch 2020-05-30T10:52:03Z phoe: again, a capitalization issue 2020-05-30T10:52:38Z phoe: jackdaniel meant that scheme was designed from |scratch|, not |Scratch| 2020-05-30T10:52:39Z no-defun-allowed: Time to go to #scheme and ask what operator changes the colour of the cat. 2020-05-30T10:53:51Z Lord_of_Life_ joined #lisp 2020-05-30T10:54:32Z jonatack quit (Ping timeout: 246 seconds) 2020-05-30T10:54:41Z frgo joined #lisp 2020-05-30T10:57:10Z jonatack joined #lisp 2020-05-30T10:57:13Z Lord_of_Life quit (Ping timeout: 264 seconds) 2020-05-30T10:57:21Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-30T11:07:25Z wxie quit (Ping timeout: 264 seconds) 2020-05-30T11:20:11Z EvW joined #lisp 2020-05-30T11:22:28Z karlosz quit (Quit: karlosz) 2020-05-30T11:23:13Z igemnace quit (Quit: WeeChat 2.8) 2020-05-30T11:27:05Z scymtym__ joined #lisp 2020-05-30T11:27:39Z scymtym__ quit (Client Quit) 2020-05-30T11:28:36Z scymtym quit (Ping timeout: 256 seconds) 2020-05-30T11:28:56Z scymtym joined #lisp 2020-05-30T11:36:29Z ech joined #lisp 2020-05-30T11:40:08Z Bike joined #lisp 2020-05-30T11:47:14Z hineios4 joined #lisp 2020-05-30T11:48:17Z sdumi quit (Read error: Connection reset by peer) 2020-05-30T11:48:17Z hineios5 joined #lisp 2020-05-30T11:48:29Z sdumi joined #lisp 2020-05-30T11:50:27Z hineios quit (Ping timeout: 260 seconds) 2020-05-30T11:50:27Z hineios5 is now known as hineios 2020-05-30T11:51:18Z kpoeck quit (Remote host closed the connection) 2020-05-30T11:52:10Z hineios4 quit (Ping timeout: 260 seconds) 2020-05-30T11:53:15Z whiteline quit (Remote host closed the connection) 2020-05-30T11:53:32Z orivej quit (Ping timeout: 256 seconds) 2020-05-30T11:53:41Z whiteline joined #lisp 2020-05-30T11:54:02Z orivej joined #lisp 2020-05-30T12:07:20Z quazimodo quit (Ping timeout: 246 seconds) 2020-05-30T12:07:39Z quazimodo joined #lisp 2020-05-30T12:15:02Z _whitelogger quit (Remote host closed the connection) 2020-05-30T12:17:16Z _whitelogger joined #lisp 2020-05-30T12:19:48Z pjb quit (Ping timeout: 265 seconds) 2020-05-30T12:42:08Z bitmapper joined #lisp 2020-05-30T12:46:38Z ljavorsk joined #lisp 2020-05-30T12:53:13Z pjb joined #lisp 2020-05-30T12:53:25Z aeth: Emacs Lisp is essentially a historic Lisp in its design, and CL was designed to replace historic Lisps (rms disagreed, and hence we got the archaic-on-release Emacs Lisp), so that's why they're similar. 2020-05-30T12:53:37Z epony quit (Ping timeout: 258 seconds) 2020-05-30T12:54:58Z Lord_of_Life quit (Read error: Connection reset by peer) 2020-05-30T12:55:54Z Lord_of_Life joined #lisp 2020-05-30T12:56:32Z beach: Was work on Common Lisp as finished as that when RMS wrote Emacs Lisp? Where did you see this information? 2020-05-30T12:57:34Z ljavorsk quit (Ping timeout: 256 seconds) 2020-05-30T12:57:39Z aeth: Ah, CLtL 2 is 1990 and only the first CLtL (1984) was available in 1985. https://en.wikipedia.org/wiki/Common_Lisp_the_Language 2020-05-30T12:57:53Z aeth: Still, afaik, RMS was opposed to CL's design iirc. 2020-05-30T12:58:08Z aeth: It's in one of those histories of GNU (or Emacs) things online, so it would probably be pretty hard to find. 2020-05-30T12:58:14Z phoe: https://www.gnu.org/gnu/rms-lisp.html 2020-05-30T12:58:24Z aeth: so of course phoe found it in 6 seconds 2020-05-30T12:58:33Z phoe: > of course 2020-05-30T12:58:38Z phoe: I just googled for "emacs lisp common lisp rms" 2020-05-30T12:58:44Z beach: I think he still is, but I doubt that it was as finished enough when he wrote Emacs Lisp. 2020-05-30T12:59:00Z aeth: phoe: and that is in fact the top result on DDG as well 2020-05-30T12:59:15Z aeth: phoe: Sorry, I'm used to search engines being trash these days even when I remember the exact phrases I'm trying to search 2020-05-30T12:59:16Z phoe: ANSI CL did not yet exist 2020-05-30T12:59:34Z phoe: CLtL1 existed, that's all 2020-05-30T12:59:35Z White_Flame: afair, CL was too big/complex to implement in emacs, so RMS took a simpler route 2020-05-30T12:59:35Z beach: Certainly not ANSI Common Lisp, no. 2020-05-30T12:59:51Z White_Flame: at least, too big/complex for what he wanted to do 2020-05-30T13:00:50Z aeth: White_Flame: well, phoe's link says that RMS opposed some elements of its design, like keyword arguments 2020-05-30T13:01:00Z aeth: (since this was before CLOS existed as the thing to hate) 2020-05-30T13:01:25Z nicktick quit (Ping timeout: 264 seconds) 2020-05-30T13:01:42Z phoe: and he called CLtL1 "huge" 2020-05-30T13:01:44Z beach: I am not sure about that. I sometimes quote the email exchange I had with him when he first released GNU Emacs. I wrote something like "It would be better to first implement a real Lisp system, and then write Emacs in it" (since I had used Multics Emacs then), and he answered something like "Sounds good. Let me know when you have implemented it.". 2020-05-30T13:02:01Z beach: White_Flame: ^ 2020-05-30T13:02:38Z beach: I just think he wanted Emacs released as soon as possible, and it would have taken longer to write a Lisp system first." 2020-05-30T13:03:22Z White_Flame: yep 2020-05-30T13:04:15Z McParen joined #lisp 2020-05-30T13:05:15Z aeth: But then we have this from last year: https://sourceforge.net/p/sbcl/mailman/message/36659403/ 2020-05-30T13:05:24Z aeth: So things might come full circle 2020-05-30T13:06:26Z White_Flame: or alternatively, pull python out of sbcl and use emacs lisp underneath instead 2020-05-30T13:07:27Z aeth: elisp-on-CL would be the way to go for that. There already is at least one of those attempts, but it wouldn't be hard to write a fresh one that meets GNU Emacs's expectations exactly. 2020-05-30T13:08:10Z White_Flame meant sbcl-on-elisp for the other full circle direction 2020-05-30T13:08:52Z aeth: Writing a smaller language on the larger language is the easier route. e.g. Scheme-on-CL is only really a few thousand lines while CL-on-Scheme is a large undertaking. 2020-05-30T13:09:00Z aeth: (And the latter probably requires modifying the implementation.) 2020-05-30T13:09:33Z jmercouris: what would be the advantage of having Elisp? 2020-05-30T13:09:41Z krid joined #lisp 2020-05-30T13:09:42Z jmercouris: None, you need the elisp environment 2020-05-30T13:09:55Z jmercouris: it is not enough to have an elisp interpreter 2020-05-30T13:11:30Z aeth: jmercouris: The only advantage of having elisp-on-CL in a fully GNU Emacs compliant way would be if people were actually going forward with the GNU Emacs on SBCL project which was in the mailing list a year ago 2020-05-30T13:13:55Z jmercouris: I wouldn't count on it, needs more support 2020-05-30T13:14:08Z jmercouris: also, too many problems with assumptions made in existing elisp code, actual reuse would be trivial 2020-05-30T13:14:31Z phoe: getting elisp to run is 10% of the trouble 2020-05-30T13:14:54Z phoe: the remaining 180% is reimplementing all of emacs that existing code depends on 2020-05-30T13:15:13Z aeth: phoe: porting, not reimplementing 2020-05-30T13:15:23Z phoe: aeth: no, reimplementing 2020-05-30T13:15:42Z phoe: elisp as a language is small, but then there's buffers, windows, all the stuff that is more emacs than elisp 2020-05-30T13:15:48Z phoe: reimplementing *that* is a nightmare 2020-05-30T13:16:10Z jmercouris: and implementing all of its quirks 2020-05-30T13:17:33Z aeth: phoe: CFFI. You port the parts that assume elisp to parts that assume CFFI. 2020-05-30T13:17:47Z aeth: No, it's not an optimal solution, but it will at least give you a working program. Then you can talk about rewriting. 2020-05-30T13:20:08Z lemoinem is now known as Guest29374 2020-05-30T13:20:09Z lemoinem joined #lisp 2020-05-30T13:21:49Z hineios0 joined #lisp 2020-05-30T13:21:58Z Guest29374 quit (Ping timeout: 265 seconds) 2020-05-30T13:25:39Z hineios quit (Ping timeout: 260 seconds) 2020-05-30T13:25:39Z hineios0 is now known as hineios 2020-05-30T13:25:54Z gko joined #lisp 2020-05-30T13:31:10Z shifty quit (Ping timeout: 272 seconds) 2020-05-30T13:31:28Z shifty joined #lisp 2020-05-30T13:32:32Z epony joined #lisp 2020-05-30T13:37:30Z orivej quit (Ping timeout: 272 seconds) 2020-05-30T13:37:33Z epony quit (Remote host closed the connection) 2020-05-30T13:38:03Z epony joined #lisp 2020-05-30T13:38:25Z ioa quit (Ping timeout: 272 seconds) 2020-05-30T13:39:16Z ioa joined #lisp 2020-05-30T13:49:56Z papachan quit (Quit: WeeChat 2.7.1) 2020-05-30T13:51:01Z papachan joined #lisp 2020-05-30T13:51:55Z Lycurgus joined #lisp 2020-05-30T13:53:05Z rgherdt quit (Ping timeout: 265 seconds) 2020-05-30T13:58:27Z orivej joined #lisp 2020-05-30T14:04:01Z shifty quit (Ping timeout: 265 seconds) 2020-05-30T14:04:58Z TwoNotes joined #lisp 2020-05-30T14:05:03Z shifty joined #lisp 2020-05-30T14:06:19Z MrtnDk[m]: Would an Emacs with common Lisp run multithreaded? 2020-05-30T14:06:43Z beach: Sure, when required. 2020-05-30T14:08:39Z MrtnDk[m]: That is one of the main issues I have with Emacs. It runs so slow on multicore machines, the same problems with graphical browsers, because they only exploit a faction of the available CPU's. 2020-05-30T14:10:04Z beach: The main problem with Emacs Lisp is that it is not compiled to native code, or at least it did not use to be. An implementation of Emacs in Common Lisp would make it possible to use one of the Common Lisp implementations that compile to fast native code. 2020-05-30T14:10:23Z beach: Maybe they are JIT-ing these days, though. 2020-05-30T14:10:35Z beach: But it is still very slow. 2020-05-30T14:14:52Z shifty quit (Ping timeout: 272 seconds) 2020-05-30T14:15:02Z jesse1010 joined #lisp 2020-05-30T14:15:50Z lucasb joined #lisp 2020-05-30T14:17:06Z aeth: Not being multithreaded is only going to be more of a problem each year. e.g. AMD's current Zen 2 desktop lineup: https://en.wikipedia.org/wiki/List_of_AMD_Ryzen_microprocessors#Zen_2_based 2020-05-30T14:17:47Z aeth: 4, 6, 8, 12, 16, 24, 32, 64. Laptops are 4, 6, and 8. Intel isn't too different. Intel has a random 10-core for some reason. 2020-05-30T14:17:57Z bobross joined #lisp 2020-05-30T14:18:14Z TwoNotes: Maybe they just crank up the core count until the yield drops too much 2020-05-30T14:18:20Z aeth: I'm not sure how much of it is elisp and how much of it is deeper built-in assumptions into Emacs, though 2020-05-30T14:18:45Z aeth: So even moving to SBCL wouldn't necessarily make Emacs work multithreaded, at least the core 2020-05-30T14:19:08Z beach: A Common Lisp system with a stop-the-world GC would not be to great either. 2020-05-30T14:19:28Z beach: too 2020-05-30T14:19:31Z TwoNotes: SLIME starts additional threads. I don't think EMACS does 2020-05-30T14:20:24Z beach: There is something going on though. One can use editing commands while a process is filling up a buffer, say with compiler messages. 2020-05-30T14:20:46Z phoe: beach: one can tune an incremental GC to have pauses that are tens of milliseconds long; suitable for soft real-time applications. 2020-05-30T14:20:56Z shymega quit (Quit: Adiós!) 2020-05-30T14:21:06Z beach: phoe: That wasn't the point of the discussion. 2020-05-30T14:21:19Z phoe: oh! sorry. you mentioned stop-the-world GC. 2020-05-30T14:21:35Z beach: phoe: The point was, if you want to take advantage of a large number of cores, then stopping ever thread is not so great. 2020-05-30T14:21:42Z TwoNotes: Shared-nothing threads (like in Erlang) make localized GC easy. 2020-05-30T14:21:43Z phoe: oh, that is correct 2020-05-30T14:21:44Z beach: every 2020-05-30T14:21:53Z phoe: TwoNotes: you ain't gonna get that in CL. 2020-05-30T14:22:01Z TwoNotes: Yeah, I know. :( 2020-05-30T14:22:37Z grewal joined #lisp 2020-05-30T14:23:08Z aeth: phoe: 10s of ms sounds horrifying to me. That's a dropped frame or two with a 60 Hz monitor, which seems like it would be noticable. 2020-05-30T14:23:36Z beach: aeth: Forget about video. It's a disaster for audio. 2020-05-30T14:23:41Z aeth: Some higher end monitors might not give you much more than 5 ms 2020-05-30T14:23:57Z beach: Plus the ear is much more sensitive than the eye. 2020-05-30T14:24:15Z shymega joined #lisp 2020-05-30T14:24:39Z TwoNotes: I keep getting EOF conditions raised by read-from-string. Does it have a problem wiht long strings? (Like 500 bytes) 2020-05-30T14:24:55Z beach: "it"? 2020-05-30T14:25:06Z TwoNotes: read-from-string 2020-05-30T14:25:11Z beach: What implementation? 2020-05-30T14:25:18Z phoe: TwoNotes: give an example of sorts? 2020-05-30T14:25:19Z TwoNotes: I feed it a string containing an S-expression, 2020-05-30T14:25:21Z TwoNotes: SBCL 2020-05-30T14:25:27Z phoe: TwoNotes: paste that sexpression somewhere 2020-05-30T14:25:28Z aeth: beach: What order of magnitude of time does audio work with? I'm not familiar with audio. 2020-05-30T14:25:34Z phoe: https://plaster.tymoon.eu/ 2020-05-30T14:25:50Z jfrancis joined #lisp 2020-05-30T14:26:07Z beach: aeth: I forget my calculations in the past, but I have estimated 1-2ms at most. 2020-05-30T14:26:12Z TwoNotes: I will write a test case 2020-05-30T14:26:15Z bobross: Could someone help me with cl+ssl? I'm unable to read from the stream and I can't understand why. It seems to hang until the connection is closed, then receives the request at that point. 2020-05-30T14:26:24Z phoe: bobross: FINISH-OUTPUT 2020-05-30T14:26:29Z beach: TwoNotes: Conditions are not "raised" in Common Lisp, they are "signaled". 2020-05-30T14:26:44Z phoe: bobross: is the request-sending part finishing its output before it closes the connection? 2020-05-30T14:26:56Z phoe: if it isn't, it might be that stream buffering kicks in. 2020-05-30T14:27:19Z bobross: Not on my end. But I also tried with an external application and had the same issue (well, my "client" in Lisp signals an error...) 2020-05-30T14:27:21Z phoe: TwoNotes: please do write. 2020-05-30T14:27:24Z bobross: I will try finish-output 2020-05-30T14:29:23Z beach: aeth: The problem is that if you use real-time audio, like for a synthesizer program, the ear is very sensitive to delays, so you can't fill the audio buffer too much. Then you need to react very fast when the buffer is about to get empty. 2020-05-30T14:30:17Z phoe: yes, that part is very sensitive to delays of any kind, including GC delays 2020-05-30T14:30:33Z beach: In fact, the standard Linux kernel can't handle a synthesizer program correctly. It requires special kernels options. 2020-05-30T14:30:39Z bobross: https://bin.privacytools.io/?1bfac7ec8036a25c#iDiwwxT7hu3R2UZ6vaKsnna/LLtrzBQDj0IaLi8a2gg= this is the code, if someone could have a look. Trying to handle the connection in 'ssl-handler' 2020-05-30T14:31:08Z efm quit (Quit: Konversation terminated!) 2020-05-30T14:31:42Z phoe: bobross: yes, this should be enough 2020-05-30T14:31:56Z phoe: I mean, the (finish-output tls-stream) 2020-05-30T14:32:18Z phoe: if cl+ssl handles this correctly, then this will flush the buffers and send all data stored there to the server 2020-05-30T14:32:20Z bobross: Right. I'm getting: "An I/O error occurred: undocumented reason (return code: 5). 2020-05-30T14:32:20Z bobross: SSL error queue is empty. 2020-05-30T14:32:20Z bobross: [Condition of type CL+SSL::SSL-ERROR-SYSCALL]" 2020-05-30T14:34:44Z phoe: bobross: does that come from the client or the server? could you paste the stacktrace somewhere? 2020-05-30T14:35:36Z bobross: As far as I can tell it comes from trivial-utf-8:read-utf-8-string. Will post stack trace, 1 moment. 2020-05-30T14:35:47Z phoe: sure! (please use a pastebin) 2020-05-30T14:36:00Z phoe: also, read-utf-8-string isn't a cl+ssl function... hmm 2020-05-30T14:36:20Z bobross: https://bin.privacytools.io/?89260da78d6ba548#LfRQc/oOOxDH61J9k5yoRAsJlg8mctnYK9ErIe0qfsY= 2020-05-30T14:37:09Z bobross: Yea, I'm using trivial-utf-8 because the application I will use it for needs to use UTF-8 encoded messages. But really, that call could be replaced with a "read-bytes" of some sort. Not sure how to do this in CL. 2020-05-30T14:37:52Z ralt quit (Quit: Connection closed for inactivity) 2020-05-30T14:38:20Z phoe: that's from read-byte 2020-05-30T14:39:08Z phoe: so now we know that the server is unable to read the request. 2020-05-30T14:40:00Z bobross: Hmm. What's strange is that earlier I managed to read the request after closing the connection of the client (using an external application for the client) 2020-05-30T14:40:53Z shifty joined #lisp 2020-05-30T14:40:58Z cosimone quit (Quit: Quit.) 2020-05-30T14:41:11Z Josh_2: afternoon all 2020-05-30T14:41:14Z phoe: nope, I give up - I have no idea what is happening in there on the SSL side 2020-05-30T14:48:05Z bobross: A side note: when using the 'bombadillo' client I can send a request with 'bombadillo gemini://127.0.0.1:61111/test', which hangs, but once I ctrl-C the request is received successfully 2020-05-30T14:48:33Z bobross: Same with 'elpher' in emacs 2020-05-30T14:49:02Z ech quit (Ping timeout: 246 seconds) 2020-05-30T14:49:39Z phoe: hmmmm 2020-05-30T14:49:54Z phoe: does the Lisp client actually establish the SSL connection correctly? 2020-05-30T14:50:01Z sdumi quit (Ping timeout: 264 seconds) 2020-05-30T14:50:32Z bobross: Honestly I'm not sure. I found the documentation a bit vague. But the clients I mentioned in the previous comment should setup TLS correctly. 2020-05-30T14:50:46Z phoe: I wonder if there are any tests for https://github.com/jfmcbrayer/germinal 2020-05-30T14:51:03Z phoe: because such tests would, well, need to implement a basic client that also use SSL 2020-05-30T14:51:06Z ech joined #lisp 2020-05-30T14:52:40Z bobross: I've looked at that code, and from what I can tell the primary difference is that in the handler 'cl+ssl::*ssl-global-context*' is set directly, and that 'read-line-crlf' (from cl+ssl docs) is used to read from the stream. I couldn't get the 'read-line-crlf' function to run on my end 2020-05-30T14:53:43Z bobross: There are some short examples for cl+ssl here: https://github.com/cl-plus-ssl/cl-plus-ssl/blob/master/example.lisp 2020-05-30T14:53:48Z arduo joined #lisp 2020-05-30T14:57:03Z CrazyEddy quit (Remote host closed the connection) 2020-05-30T14:57:18Z shifty quit (Ping timeout: 272 seconds) 2020-05-30T15:02:42Z Lycurgus quit (Remote host closed the connection) 2020-05-30T15:03:03Z scymtym_ joined #lisp 2020-05-30T15:03:30Z rgherdt joined #lisp 2020-05-30T15:05:01Z scymtym quit (Ping timeout: 264 seconds) 2020-05-30T15:07:42Z X-Scale` joined #lisp 2020-05-30T15:09:51Z sdumi joined #lisp 2020-05-30T15:10:25Z X-Scale quit (Ping timeout: 264 seconds) 2020-05-30T15:10:34Z twelvemonkeys quit (Ping timeout: 256 seconds) 2020-05-30T15:11:07Z arpunk joined #lisp 2020-05-30T15:11:42Z X-Scale joined #lisp 2020-05-30T15:12:17Z twelvemonkeys joined #lisp 2020-05-30T15:13:46Z X-Scale` quit (Ping timeout: 272 seconds) 2020-05-30T15:14:12Z krid quit (Remote host closed the connection) 2020-05-30T15:14:35Z gko quit (Ping timeout: 265 seconds) 2020-05-30T15:15:40Z ralt joined #lisp 2020-05-30T15:17:23Z gaqwas joined #lisp 2020-05-30T15:19:21Z scymtym_ quit (Remote host closed the connection) 2020-05-30T15:19:50Z scymtym__ joined #lisp 2020-05-30T15:19:50Z twelvemonkeys quit (Ping timeout: 246 seconds) 2020-05-30T15:21:51Z twelvemonkeys joined #lisp 2020-05-30T15:23:57Z EvW quit (Ping timeout: 260 seconds) 2020-05-30T15:26:10Z nikita` left #lisp 2020-05-30T15:28:25Z sdumi quit (Ping timeout: 264 seconds) 2020-05-30T15:34:37Z orivej quit (Ping timeout: 258 seconds) 2020-05-30T15:38:29Z sdumi joined #lisp 2020-05-30T15:40:02Z scymtym__ quit (Remote host closed the connection) 2020-05-30T15:41:12Z scymtym__ joined #lisp 2020-05-30T15:41:46Z funnel quit (Ping timeout: 260 seconds) 2020-05-30T15:47:52Z bobross: phoe: After some fiddling the error stops when not using '(usocket:socket-close socket)' on the client, and the request can be read by looping read-byte 2020-05-30T15:48:02Z phoe: bobross: oh! 2020-05-30T15:48:15Z lerax quit (Ping timeout: 272 seconds) 2020-05-30T15:48:16Z phoe: you are closing the socket?... one second 2020-05-30T15:48:44Z phoe: still, that is weird 2020-05-30T15:48:53Z phoe: looping read-bytes is a weird way of doing that 2020-05-30T15:49:09Z phoe: what happens if you first close the tls-stream and then close the socket? 2020-05-30T15:49:24Z bobross: Yep I agree. I would have thought you could read a "TCP message" completely with a single command? 2020-05-30T15:49:25Z funnel joined #lisp 2020-05-30T15:49:49Z phoe: yes, that is my thought, and it is certainly possible with non-TLS socket streams 2020-05-30T15:50:18Z TwoNotes: I don't think there is a concept of a "TCP message". It is a byte stream. 2020-05-30T15:50:18Z lerax joined #lisp 2020-05-30T15:50:27Z phoe: I think there might be some sort of weirdness happening if you pull the carpet from under cl+ssl while it does its work - that's why I suggested first closing the tls-stream and then closing the socket stream 2020-05-30T15:51:04Z bobross: Hmm what function would I use to close tls-stream 2020-05-30T15:51:20Z phoe: clhs close 2020-05-30T15:51:20Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_close.htm 2020-05-30T15:51:25Z phoe: same as with all streams 2020-05-30T15:51:41Z phoe: (cl:close tls-stream) (usocket:socket-close socket) 2020-05-30T15:52:27Z orivej joined #lisp 2020-05-30T15:53:25Z bobross: Still getting the same error in that case. But from how I interpret the documentation https://common-lisp.net/project/cl-plus-ssl/ the stream should be closed automatically 2020-05-30T15:53:32Z phoe: welp 2020-05-30T15:53:51Z phoe: I see 2020-05-30T15:55:45Z bobross: TwoNotes: so since it is a byte stream it is not possible to "read the single TCP message" without reading byte by byte and detecting the end of the message? 2020-05-30T15:56:26Z phoe: bobross: more like "there's no concept of a message in TCP" 2020-05-30T15:56:49Z phoe: ultimately, TCP is a stream protocol, meaning that you get a stream of bytes instead of a stream of messages 2020-05-30T15:57:11Z phoe: that's different than e.g. UDP, where each packet is its own message, or SCTP, which has a concept of messages. 2020-05-30T15:57:21Z bobross: Ahh I see 2020-05-30T15:57:23Z scymtym__ quit (Read error: Connection reset by peer) 2020-05-30T15:57:48Z scymtym joined #lisp 2020-05-30T15:59:19Z bobross: Is there a function like read-sequence which stops when detecting a certain byte? 2020-05-30T16:00:01Z phoe: I'm afraid not; that's where the issue of socket buffering comes in 2020-05-30T16:00:41Z phoe: when working with raw TCP sockets and nonetheless doing messaging over the stream, usually you read whatever you can and then check if you can "pop" a complete message off the stream 2020-05-30T16:01:19Z phoe: if you do so, you copy it from the buffer, send into the system, and flush the buffer to remove the already processed bytes 2020-05-30T16:01:39Z TwoNotes: protocols built on top of TCP define their own 'message' boundaries. Some use prefix byte counts 2020-05-30T16:02:10Z bobross: So what you mean is that I create in Lisp a "buffer" (e.g. array), read byte by byte, stop at some point, convert the message to e.g. string, then handle it? 2020-05-30T16:02:23Z bobross: In this case the message should end with CRLF 2020-05-30T16:02:44Z phoe: clhs read-line 2020-05-30T16:02:44Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_rd_lin.htm 2020-05-30T16:02:48Z phoe: you're lucky 2020-05-30T16:02:55Z TwoNotes: Yes. Just remember that when you start doing that, the end of your 'message' may not have yet arroived over the stream. 2020-05-30T16:03:25Z TwoNotes: A TCP impolementation that delivers data to you two bytes ata time is perfectly valid. 2020-05-30T16:03:58Z bobross: Right, but they are guaranteed to be in the correct order due to the protocol right? 2020-05-30T16:04:02Z TwoNotes: yes 2020-05-30T16:08:13Z twelvemonkeys quit (Ping timeout: 246 seconds) 2020-05-30T16:09:20Z bobross: Thank you both very much. Btw I get an error when trying (read-line ...) https://bin.privacytools.io/?043fafaff2b73aab#hGRcZWXG7y/LsZvbrlBxJAr2aRkQWeOS7c8qPxjxON4= 2020-05-30T16:10:43Z phoe: ...wait, cl+ssl does not implement that? 2020-05-30T16:10:51Z twelvemonkeys joined #lisp 2020-05-30T16:11:08Z cosimone joined #lisp 2020-05-30T16:11:15Z phoe: oh, is that a binary stream or a character stream? 2020-05-30T16:11:34Z bobross: (unsigned-byte 8) 2020-05-30T16:12:19Z phoe: oh, so read-line won't work on it. 2020-05-30T16:12:28Z phoe: ...unless you apply flexi-streams on top, welp 2020-05-30T16:12:44Z bobross: I will try a similar approach to read-line-crlf in https://github.com/cl-plus-ssl/cl-plus-ssl/blob/master/example.lisp I guess 2020-05-30T16:14:13Z bobross: Anyways I need to go. Thanks again for all the help! 2020-05-30T16:14:52Z phoe: ...wtf, it should be a bivalent stream then 2020-05-30T16:15:03Z phoe: I mean, if it is capable of reading characters from it 2020-05-30T16:15:25Z FreeBirdLjj joined #lisp 2020-05-30T16:15:26Z bobross: cl+ssl has flexi-streams as a dependency, but I'm not familiar with that package 2020-05-30T16:15:32Z phoe: https://github.com/cl-plus-ssl/cl-plus-ssl/blob/2b823f11ec69f32ebb94bb96031682009374d4f7/test.lisp#L181 2020-05-30T16:15:36Z phoe: this has read-line in there 2020-05-30T16:15:39Z phoe: wtf 2020-05-30T16:16:25Z sdumi quit (Read error: Connection reset by peer) 2020-05-30T16:16:33Z sdumi joined #lisp 2020-05-30T16:17:30Z amerlyq quit (Quit: amerlyq) 2020-05-30T16:18:38Z twelvemonkeys quit (Ping timeout: 260 seconds) 2020-05-30T16:18:45Z rpg joined #lisp 2020-05-30T16:18:45Z bobross: Seems they are using ':iso-8859-1' as the format 2020-05-30T16:19:09Z phoe: what format is your data? 2020-05-30T16:19:27Z bobross: I'm using '(unsigned-byte 8) since I will send UTF-8 as bytes 2020-05-30T16:19:37Z phoe: ...ouch 2020-05-30T16:19:44Z phoe: why not as characters? 2020-05-30T16:19:51Z FreeBirdLjj quit (Ping timeout: 258 seconds) 2020-05-30T16:20:19Z phoe: you could try passing :external-format '(:utf-8 :eol-style :crlf) to the created stream and use characters/strings 2020-05-30T16:20:20Z bobross: I'm trying to implement a Gemini server following the protocol, which says all headers must be UTF-8 2020-05-30T16:20:27Z twelvemonkeys joined #lisp 2020-05-30T16:20:35Z phoe: sure, and you can let Lisp handle the conversion instead of doing it yourself 2020-05-30T16:20:59Z bobross: Oh I see. I will try that later, thank you! Really need to go to walk my dog. I might drop by later. 2020-05-30T16:21:05Z phoe: good luck! 2020-05-30T16:21:12Z bobross: Thanks! 2020-05-30T16:21:24Z bobross quit (Quit: ERC (IRC client for Emacs 27.0.90)) 2020-05-30T16:21:31Z _death: lisp is full of happy little trees 2020-05-30T16:27:16Z hhdave_ joined #lisp 2020-05-30T16:28:42Z hhdave quit (Ping timeout: 256 seconds) 2020-05-30T16:28:43Z hhdave_ is now known as hhdave 2020-05-30T16:37:14Z ArthurStrong joined #lisp 2020-05-30T16:42:26Z pjb quit (Ping timeout: 246 seconds) 2020-05-30T16:43:35Z EvW joined #lisp 2020-05-30T16:44:42Z TwoNotes quit (Quit: Leaving) 2020-05-30T16:48:53Z rogersm joined #lisp 2020-05-30T16:49:27Z Admin1 joined #lisp 2020-05-30T16:49:32Z Admin1 is now known as Cuccslayer 2020-05-30T16:50:05Z Cuccslayer: https://pastebin.com/6xZ4vh8u can anybody help me with this error? 2020-05-30T16:50:53Z rogersm: you need to install the foreign library interface (dll) 2020-05-30T16:51:12Z Cuccslayer: oh ok 2020-05-30T16:51:22Z Cuccslayer: can you give me the git link? 2020-05-30T16:51:46Z rogersm: check the installation part of the docs: 2020-05-30T16:51:47Z rogersm: http://quickdocs.org/cl-tcod/ 2020-05-30T16:51:59Z Cuccslayer: oh thanks 2020-05-30T16:51:59Z rogersm: On windows, .dll files should be put in one of the directories listed in the PATH environment variable. 2020-05-30T16:52:48Z rogersm: and if you're interested to move from roguelikes to mud, give me a call :D 2020-05-30T16:53:24Z rogersm quit (Client Quit) 2020-05-30T16:54:14Z cosimone quit (Quit: Quit.) 2020-05-30T16:58:46Z Cuccslayer: can i use binaries instead of dlls? 2020-05-30T17:00:13Z APic: Ar not DLL-Files Binary-Files too? 2020-05-30T17:00:15Z APic: +e 2020-05-30T17:01:40Z hhdave quit (Quit: hhdave) 2020-05-30T17:12:47Z pjb joined #lisp 2020-05-30T17:15:40Z hhdave joined #lisp 2020-05-30T17:17:23Z Cuccslayer quit (Quit: WeeChat 2.7) 2020-05-30T17:18:21Z xuxuru joined #lisp 2020-05-30T17:24:30Z bobross joined #lisp 2020-05-30T17:25:23Z bobross: phoe: Reading/writing through the TLS stream seems to work using ":external-format '(:utf-8 :eol-style :crlf)" as you suggested! 2020-05-30T17:30:02Z EvW quit (Ping timeout: 246 seconds) 2020-05-30T17:34:55Z jw4 quit (Read error: Connection reset by peer) 2020-05-30T17:37:07Z jw4 joined #lisp 2020-05-30T17:40:31Z hhdave quit (Quit: hhdave) 2020-05-30T17:40:37Z narimiran joined #lisp 2020-05-30T17:40:41Z phoe: bobross: <3 2020-05-30T17:40:45Z phoe: glad to hear it! 2020-05-30T17:52:46Z max3 joined #lisp 2020-05-30T17:58:44Z frgo quit (Remote host closed the connection) 2020-05-30T17:58:54Z emacsomancer: for SBCL compiled binaries, what is the source of a "Can't find core file relative to ...." error? 2020-05-30T17:59:20Z frgo joined #lisp 2020-05-30T18:00:17Z phoe: emacsomancer: when trying to run SBCL? 2020-05-30T18:00:21Z phoe: how did you install it? 2020-05-30T18:00:37Z emacsomancer: no, for a lisp program compiled into a binary with SBCL 2020-05-30T18:00:55Z emacsomancer: it should just be an executable at that point, no? 2020-05-30T18:01:00Z phoe: depends 2020-05-30T18:01:03Z Xach: emacsomancer: how did you compile it to a binary? 2020-05-30T18:01:08Z phoe: it can compile into a single binary 2020-05-30T18:01:21Z phoe: or it can compile into a C kernel + a heap image 2020-05-30T18:02:08Z emacsomancer: http://dpaste.com/2M5H5DD + a Makefile 2020-05-30T18:02:27Z max3: are there other languages that have symbols like in lisp? 2020-05-30T18:02:36Z phoe: max3: C 2020-05-30T18:02:45Z max3: what? how? 2020-05-30T18:02:47Z phoe: okay, that was a bad answer; it has symbols, just not like in C 2020-05-30T18:02:52Z phoe: they disappear after compilation. 2020-05-30T18:03:12Z max3: okay but that's not the way i mean 2020-05-30T18:03:16Z phoe: Ruby has them, kind of 2020-05-30T18:03:21Z max3: i mean as far as manipulation of unevaluated names 2020-05-30T18:03:58Z emacsomancer: where the Makefile calls `(asdf:make :volemad-cli)` 2020-05-30T18:04:05Z phoe: Erlang has atoms, which are very similar 2020-05-30T18:04:25Z max3: oh yea i remember that vaguely 2020-05-30T18:04:34Z max3: i guess julia has some of this kind of functionality 2020-05-30T18:04:34Z max3: https://docs.julialang.org/en/v1/base/base/#Core.Symbol 2020-05-30T18:04:38Z phoe: https://gitlab.com/emacsomancer/volemad/-/blob/master/volemad-cli/volemad-cli.asd#L19 2020-05-30T18:04:41Z phoe: hmmm 2020-05-30T18:04:47Z max3: "a Symbol identifying the kind of expression. A symbol is an interned string identifier (more discussion below)." 2020-05-30T18:04:56Z phoe: now, which SBCL options does asdf:progam-op invoke... 2020-05-30T18:06:01Z max3 quit (Remote host closed the connection) 2020-05-30T18:06:34Z emacsomancer: maybe there's a better :build-operation to specify? 2020-05-30T18:06:52Z phoe: emacsomancer: I use https://github.com/Shinmera/deploy 2020-05-30T18:06:59Z ralt: I would suggest static-program-op 2020-05-30T18:07:18Z phoe: it pops out standalone binaries for me 2020-05-30T18:08:24Z emacsomancer: thanks, I'll look at static-program-op & Shinmera's deploy-op 2020-05-30T18:11:02Z Jeanne-Kamikaze joined #lisp 2020-05-30T18:11:50Z Xach wonders if avl-tree is a goner 2020-05-30T18:12:08Z phoe: axion: ^ 2020-05-30T18:15:13Z axion: Xach: Oh shoot... 2020-05-30T18:15:24Z axion: avl-tree _and_ doubly-linked-list have moved 2020-05-30T18:15:30Z axion: I forgot to post an issue 2020-05-30T18:15:34Z Xach: Where to? 2020-05-30T18:15:45Z axion: https://github.com/mfiano/algae 2020-05-30T18:18:01Z axion: We wanted all of our game algorithms in one repository/system, so there is only a single system now. 2020-05-30T18:18:13Z axion: Hope this doesn't cause too much work for you 2020-05-30T18:18:15Z pjb: minion: memo for beach: quicksort optimization (branchless Lomuto partitioning): https://blog.reverberate.org/2020/05/29/hoares-rebuttal-bubble-sorts-comeback.html 2020-05-30T18:18:15Z minion: Remembered. I'll tell beach when he/she/it next speaks. 2020-05-30T18:20:53Z Xach: axion: no worries, i'll add algae and rebuild 2020-05-30T18:22:53Z axion: There was a backwards-incompatible change with all my Quicklisp releases anyway, in that I adopted reverse domain name notation for system/package names, now that PLN is widespread enough, as some of my systems and packages were rather generic and not fair to the ecosystem and Lisp image 2020-05-30T18:28:44Z SGASAU` quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-05-30T18:29:09Z nika quit 2020-05-30T18:29:22Z SGASAU joined #lisp 2020-05-30T18:31:35Z Xach files bugs for grammatech sel 2020-05-30T18:33:04Z frgo_ joined #lisp 2020-05-30T18:36:49Z EvW joined #lisp 2020-05-30T18:37:02Z frgo quit (Ping timeout: 260 seconds) 2020-05-30T18:45:54Z narimiran quit (Ping timeout: 240 seconds) 2020-05-30T18:51:52Z Misha_B quit (Read error: Connection reset by peer) 2020-05-30T18:54:53Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-30T19:00:16Z narimiran joined #lisp 2020-05-30T19:00:35Z emacsomancer: maybe related to the "can't find file relative to core..." errors, does uiop:run-program expect a full path (for a compiled binary)? [e.g. is (uiop:run-program "bash") ok, or should it be (uiop:run-program "/usr/bin/bash") ? ] - I would have assumed it would just check the relevant $PATH 2020-05-30T19:06:22Z tsrt^ joined #lisp 2020-05-30T19:11:53Z kaftejiman_ joined #lisp 2020-05-30T19:12:13Z kaftejiman quit (Read error: Connection reset by peer) 2020-05-30T19:14:48Z phoe: emacsomancer: not really relevant I think 2020-05-30T19:14:52Z phoe: it should use the PATH 2020-05-30T19:15:13Z phoe: wait a second though - could you paste the full error along with the stacktrace anywhere? 2020-05-30T19:16:38Z emacsomancer: phoe: I'm getting reports from someone else, so this is all I have currently: http://dpaste.com/0PNDSZ8 2020-05-30T19:17:23Z phoe: that's a pre-Lisp error 2020-05-30T19:17:27Z emacsomancer: (I'm still wondering if asdf:progam-op shouldn't be sufficient - e.g. next browser (which is relatively complex with a number of moving pieces) builds everything with asdf:progam-op) 2020-05-30T19:17:41Z phoe: SBCL cannot find the heap image 2020-05-30T19:17:57Z phoe: how was this application installed? 2020-05-30T19:17:57Z emacsomancer: but shouldn't the heap image be built into the binary? 2020-05-30T19:18:02Z phoe: it should, I think, yes 2020-05-30T19:18:19Z phoe: no idea why it doesn't find it 2020-05-30T19:19:15Z emacsomancer: yeah, I don't understand 2020-05-30T19:19:31Z phoe: do you have this binary anywhere on your system? can you try running it? 2020-05-30T19:19:54Z emacsomancer: when I build and run on my own system, they run find, no matter where I run them from 2020-05-30T19:21:00Z phoe: try running it inside a VM? 2020-05-30T19:21:37Z ralt: Looks like you're running asdf:image-op rather than program-op somehow 2020-05-30T19:22:06Z gaqwas quit (Remote host closed the connection) 2020-05-30T19:23:57Z emacsomancer: ralt: ah, maybe that's it 2020-05-30T19:24:10Z phoe: but how? the linked ASDF file has program-op in it 2020-05-30T19:24:27Z phoe: https://gitlab.com/emacsomancer/volemad/-/blob/master/volemad-cli/volemad-cli.asd#L19 2020-05-30T19:24:57Z emacsomancer: but the sb-core-compression definition has image-op 2020-05-30T19:25:36Z phoe: woop 2020-05-30T19:25:43Z phoe: no idea how that interacts 2020-05-30T19:25:49Z ajb` joined #lisp 2020-05-30T19:25:55Z emacsomancer: neither do I 2020-05-30T19:30:14Z liberliver joined #lisp 2020-05-30T19:30:40Z hiroaki quit (Ping timeout: 256 seconds) 2020-05-30T19:36:02Z _whitelogger quit (Remote host closed the connection) 2020-05-30T19:36:32Z urmane joined #lisp 2020-05-30T19:36:50Z Krystof quit (Ping timeout: 256 seconds) 2020-05-30T19:38:15Z _whitelogger joined #lisp 2020-05-30T19:39:15Z jw4 quit (Read error: Connection reset by peer) 2020-05-30T19:40:17Z jw4 joined #lisp 2020-05-30T19:43:22Z Krystof joined #lisp 2020-05-30T19:43:57Z hiroaki joined #lisp 2020-05-30T19:46:31Z karayan quit (Remote host closed the connection) 2020-05-30T19:47:39Z pjb quit (Ping timeout: 272 seconds) 2020-05-30T19:48:20Z whiteline quit (Remote host closed the connection) 2020-05-30T19:49:05Z whiteline joined #lisp 2020-05-30T19:49:07Z hiroaki quit (Ping timeout: 265 seconds) 2020-05-30T19:49:20Z jesse1010 quit (Ping timeout: 246 seconds) 2020-05-30T19:51:46Z karayan joined #lisp 2020-05-30T19:54:55Z gaqwas joined #lisp 2020-05-30T19:55:10Z liberliver quit (Ping timeout: 260 seconds) 2020-05-30T20:00:31Z pjb joined #lisp 2020-05-30T20:01:02Z narimiran quit (Ping timeout: 258 seconds) 2020-05-30T20:05:26Z zooey quit (Remote host closed the connection) 2020-05-30T20:05:49Z zooey joined #lisp 2020-05-30T20:06:17Z karlosz joined #lisp 2020-05-30T20:07:17Z dale joined #lisp 2020-05-30T20:10:47Z karlosz quit (Client Quit) 2020-05-30T20:11:55Z hhdave joined #lisp 2020-05-30T20:12:55Z hhdave quit (Client Quit) 2020-05-30T20:13:31Z bobross: phoe: Another update... Successfully managed to load a file with an external Gemini client now :D 2020-05-30T20:13:48Z karlosz joined #lisp 2020-05-30T20:16:45Z anticrisis joined #lisp 2020-05-30T20:24:15Z whiteline quit (Remote host closed the connection) 2020-05-30T20:25:18Z whiteline joined #lisp 2020-05-30T20:26:15Z whiteline quit (Remote host closed the connection) 2020-05-30T20:26:44Z whiteline joined #lisp 2020-05-30T20:27:14Z _death: hmmm.. define-modify-macro in the clhs takes a parameter named "function" which is a symbol.. but I don't see anything saying it should be the name of a function.. since it shows an equivalency I claim it should work with names of other kinds of operators as well, say (define-modify-macro andf (&rest args) and) .. apparently the message introducing d-f-m ( http://cl-su-ai.lisp.se/msg05411.html ) uses that name and it's just been kept 2020-05-30T20:27:15Z _death: as-is.. I don't yet understand the define-setf-expander ("define-setf-method") example there btw.. 2020-05-30T20:27:28Z kaftejiman_ quit (Remote host closed the connection) 2020-05-30T20:27:47Z ArthurSt1ong joined #lisp 2020-05-30T20:28:51Z Bike: you wouldn't get short circuit evaluation 2020-05-30T20:29:23Z phoe: bobross: <3 2020-05-30T20:29:26Z phoe: please keep me updated 2020-05-30T20:29:34Z phoe: I am curious about gemini development in CL 2020-05-30T20:30:42Z bobross: Will do! I am planning to make the source code available when I feel it's in a good state... Will let you know at that point 2020-05-30T20:31:25Z ArthurStrong quit (Ping timeout: 264 seconds) 2020-05-30T20:31:59Z dale quit (Quit: dale) 2020-05-30T20:35:38Z bfig quit (Read error: Connection reset by peer) 2020-05-30T20:35:39Z dale joined #lisp 2020-05-30T20:35:50Z bfig joined #lisp 2020-05-30T20:42:20Z hhdave joined #lisp 2020-05-30T20:43:40Z Bike: _death: the define-setf-method thing seems to be defining a destructurer. like (let (x y) (setf (cons x y) (list 1 2 3)) (values x y)) => 1, (2 3) 2020-05-30T20:46:59Z andrei-n joined #lisp 2020-05-30T20:47:01Z bobross quit (Quit: ERC (IRC client for Emacs 27.0.90)) 2020-05-30T20:48:41Z _death: that makes sense.. but what functionality does get-destructuring-backquote-setf-method give (as opposed to get-setf-method/expansion) .. maybe it's more like (setf `(,x ,y) ...) ? 2020-05-30T20:50:31Z pfdietz joined #lisp 2020-05-30T20:51:30Z pfdietz: Xach: I will deal with that finalize-inheritance problem in sel within the next couple of days. It's problematic. 2020-05-30T20:53:54Z Bike: _death: at the time this was written, did get-setf-expansion even exist? 2020-05-30T20:56:48Z kamil19 joined #lisp 2020-05-30T20:56:55Z _death: Bike: I guess it was still not exposed.. it's a good question whether get-destructuring-backquote-setf-method is actually get-setf-expansion 2020-05-30T20:57:05Z kamil19 left #lisp 2020-05-30T20:58:31Z _death: a few days later the example was replaced with LDB and that uses get-setf-method-1 2020-05-30T21:00:39Z _death: apparently there was get-setf-method-multiple-value as well.. 2020-05-30T21:02:06Z mathrick quit (Ping timeout: 272 seconds) 2020-05-30T21:02:14Z anticrisis quit (Read error: Connection reset by peer) 2020-05-30T21:05:17Z Jesin quit (Quit: Leaving) 2020-05-30T21:08:28Z Jesin joined #lisp 2020-05-30T21:10:33Z akoana joined #lisp 2020-05-30T21:16:34Z gravicappa quit (Ping timeout: 246 seconds) 2020-05-30T21:23:13Z random-nick quit (Ping timeout: 246 seconds) 2020-05-30T21:26:41Z xuxuru quit (Quit: xuxuru) 2020-05-30T21:26:57Z hhdave quit (Quit: hhdave) 2020-05-30T21:29:10Z lemoinem quit (Ping timeout: 265 seconds) 2020-05-30T21:32:32Z liberliver joined #lisp 2020-05-30T21:33:31Z shka_ quit (Ping timeout: 265 seconds) 2020-05-30T21:34:32Z lessandro` joined #lisp 2020-05-30T21:35:59Z lessandro`: Hi there 2020-05-30T21:36:16Z random-nick joined #lisp 2020-05-30T21:37:31Z lessandro`: Is there a way to see the previous messages in this channel? 2020-05-30T21:38:35Z scymtym: lessandro`: the channel topic has links to multiple websites with logs. one is https://irclog.tymoon.eu/freenode/%23lisp 2020-05-30T21:42:47Z andrei-n quit (Quit: Leaving) 2020-05-30T21:44:22Z pve: hi, is something like #\Newlin|e| allowed syntax? (it works on sbcl and gives #\Newline) 2020-05-30T21:49:05Z McParen left #lisp 2020-05-30T21:50:34Z phoe: clhs #\ 2020-05-30T21:50:35Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/02_dha.htm 2020-05-30T21:50:58Z phoe: "When the token x is more than one character long, the x must have the syntax of a symbol with no embedded package markers. In this case, the sharpsign backslash notation parses as the character whose name is (string-upcase x)" 2020-05-30T21:51:03Z phoe: Yes, it is allowed 2020-05-30T21:52:18Z pve: thank you, was just curious 2020-05-30T21:52:30Z phoe: but, hmmmmm... 2020-05-30T21:52:37Z pve: #\|Newline| doesn't work though 2020-05-30T21:52:49Z pve: it gives precedence to #\| i think 2020-05-30T21:53:32Z phoe: that is an interesting question 2020-05-30T21:53:43Z phoe: |Newline| is valid notation of a symbol with no embedded package markers 2020-05-30T21:54:40Z phoe: but, let's read this a big more 2020-05-30T21:54:42Z phoe: bit* 2020-05-30T21:55:18Z Codaraxis quit (Quit: Leaving) 2020-05-30T21:55:23Z phoe: ...nope, not going there tonight 2020-05-30T21:55:26Z phoe: too sleepy 2020-05-30T21:55:55Z pfdietz: #\N|ewline| maybe? :) 2020-05-30T21:56:25Z phoe: oh right, if I understand correctly, then the \ in #\Newline is re-interpreted as a single escape 2020-05-30T21:56:52Z phoe: #\N\e\w\l\i\n\e works 2020-05-30T21:57:23Z pve: neat! 2020-05-30T22:01:11Z frgo_ quit (Remote host closed the connection) 2020-05-30T22:01:45Z frgo joined #lisp 2020-05-30T22:08:31Z kamid quit (Quit: WeeChat 2.7.1) 2020-05-30T22:13:04Z frgo quit (Remote host closed the connection) 2020-05-30T22:13:36Z frgo joined #lisp 2020-05-30T22:16:48Z pve quit (Quit: leaving) 2020-05-30T22:23:14Z shifty joined #lisp 2020-05-30T22:29:21Z gekkou joined #lisp 2020-05-30T22:38:00Z pierpa joined #lisp 2020-05-30T22:39:52Z lessandro` quit (Remote host closed the connection) 2020-05-30T22:42:31Z sirmacik left #lisp 2020-05-30T22:54:31Z Lord_of_Life_ joined #lisp 2020-05-30T22:57:40Z Lord_of_Life quit (Ping timeout: 256 seconds) 2020-05-30T22:57:40Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-30T23:07:46Z liberliver quit (Ping timeout: 265 seconds) 2020-05-30T23:09:34Z gekkou quit (Quit: WeeChat 2.6) 2020-05-30T23:10:58Z karswell_ joined #lisp 2020-05-30T23:20:54Z rgherdt quit (Ping timeout: 240 seconds) 2020-05-30T23:20:54Z ajb` quit (Remote host closed the connection) 2020-05-30T23:21:55Z karswell_ is now known as karswell 2020-05-30T23:24:59Z ArthurSt1ong quit (Quit: leaving) 2020-05-30T23:25:17Z ArthurStrong joined #lisp 2020-05-30T23:29:03Z arduo quit (Ping timeout: 260 seconds) 2020-05-30T23:32:28Z Guest4 quit (Quit: Connection closed) 2020-05-30T23:40:09Z random-nick quit (Ping timeout: 265 seconds) 2020-05-30T23:42:54Z kamid joined #lisp 2020-05-30T23:45:21Z lucasb quit (Quit: Connection closed for inactivity) 2020-05-30T23:47:07Z hineios4 joined #lisp 2020-05-30T23:50:47Z hineios quit (Ping timeout: 265 seconds) 2020-05-30T23:50:47Z hineios4 is now known as hineios 2020-05-30T23:52:13Z random-nick joined #lisp 2020-05-30T23:58:42Z mathrick joined #lisp 2020-05-31T00:00:59Z vsync_ is now known as vsync 2020-05-31T00:01:28Z ArthurStrong quit (Quit: leaving) 2020-05-31T00:05:37Z random-nick quit (Ping timeout: 246 seconds) 2020-05-31T00:08:29Z ldb joined #lisp 2020-05-31T00:08:31Z ldb: morning 2020-05-31T00:09:13Z pjb quit (Ping timeout: 272 seconds) 2020-05-31T00:35:43Z madage quit (Ping timeout: 240 seconds) 2020-05-31T00:40:05Z madage joined #lisp 2020-05-31T00:41:10Z karswell quit (Remote host closed the connection) 2020-05-31T00:41:18Z karswell_ joined #lisp 2020-05-31T00:42:51Z nitrix joined #lisp 2020-05-31T00:42:57Z pjb joined #lisp 2020-05-31T00:52:05Z chipolux quit (Quit: chipolux) 2020-05-31T01:00:34Z shifty quit (Ping timeout: 246 seconds) 2020-05-31T01:03:00Z marusich joined #lisp 2020-05-31T01:24:26Z Jesin quit (Quit: Leaving) 2020-05-31T01:26:29Z joast quit (Quit: Leaving.) 2020-05-31T01:27:39Z Jesin joined #lisp 2020-05-31T01:28:56Z lottaquestions joined #lisp 2020-05-31T01:33:13Z ldb quit (Ping timeout: 264 seconds) 2020-05-31T01:34:06Z karswell_ quit (Read error: No route to host) 2020-05-31T01:36:01Z gekkou joined #lisp 2020-05-31T01:45:02Z _whitelogger quit (Remote host closed the connection) 2020-05-31T01:47:15Z _whitelogger joined #lisp 2020-05-31T01:48:23Z ldb joined #lisp 2020-05-31T01:53:26Z ldb quit (Ping timeout: 272 seconds) 2020-05-31T02:05:45Z pjb quit (Ping timeout: 272 seconds) 2020-05-31T02:07:52Z ralt quit (Quit: Connection closed for inactivity) 2020-05-31T02:08:40Z ldb joined #lisp 2020-05-31T02:10:01Z pierpa quit (Remote host closed the connection) 2020-05-31T02:13:17Z ldb quit (Ping timeout: 246 seconds) 2020-05-31T02:29:00Z ldb joined #lisp 2020-05-31T02:33:40Z ldb quit (Ping timeout: 265 seconds) 2020-05-31T02:34:01Z pjb joined #lisp 2020-05-31T02:34:40Z CrazyEddy joined #lisp 2020-05-31T02:45:52Z mono joined #lisp 2020-05-31T02:47:37Z gaqwas quit (Ping timeout: 264 seconds) 2020-05-31T02:48:01Z gaqwas joined #lisp 2020-05-31T02:48:18Z monok quit (Ping timeout: 256 seconds) 2020-05-31T02:49:03Z ldb joined #lisp 2020-05-31T02:53:48Z ldb quit (Ping timeout: 256 seconds) 2020-05-31T02:54:47Z wxie joined #lisp 2020-05-31T02:55:29Z hineios quit (Read error: Connection reset by peer) 2020-05-31T02:56:27Z hineios joined #lisp 2020-05-31T02:57:24Z SGASAU quit (Remote host closed the connection) 2020-05-31T02:58:02Z SGASAU joined #lisp 2020-05-31T02:58:15Z dtman34 joined #lisp 2020-05-31T02:58:16Z xlei quit (Quit: ZNC - https://znc.in) 2020-05-31T02:59:04Z xlei joined #lisp 2020-05-31T02:59:22Z Jesin quit (Ping timeout: 260 seconds) 2020-05-31T02:59:30Z dtman34 quit (Remote host closed the connection) 2020-05-31T02:59:50Z ck_ quit (Ping timeout: 260 seconds) 2020-05-31T03:00:23Z ldb joined #lisp 2020-05-31T03:00:41Z ck_ joined #lisp 2020-05-31T03:03:30Z gekkou quit (Quit: WeeChat 2.6) 2020-05-31T03:09:10Z ldb quit (Ping timeout: 260 seconds) 2020-05-31T03:15:20Z wxie quit (Ping timeout: 256 seconds) 2020-05-31T03:20:48Z beach: Good morning everyone! 2020-05-31T03:20:48Z minion: beach, memo from pjb: quicksort optimization (branchless Lomuto partitioning): https://blog.reverberate.org/2020/05/29/hoares-rebuttal-bubble-sorts-comeback.html 2020-05-31T03:20:58Z beach: Good morning everyone! 2020-05-31T03:20:58Z Josh_2: Morning beach 2020-05-31T03:21:12Z beach: Hello Josh_2. 2020-05-31T03:29:03Z beach: pjb: Thanks. Interesting. 2020-05-31T03:29:14Z pfdietz quit (Ping timeout: 245 seconds) 2020-05-31T03:34:40Z __jrjsmrtn__ joined #lisp 2020-05-31T03:35:53Z jrjsmrtn quit (Ping timeout: 246 seconds) 2020-05-31T03:36:04Z Bike quit (Quit: Lost terminal) 2020-05-31T03:36:57Z pjb quit (Ping timeout: 272 seconds) 2020-05-31T03:40:20Z akoana quit (Quit: leaving) 2020-05-31T03:48:02Z _whitelogger quit (Remote host closed the connection) 2020-05-31T03:50:15Z _whitelogger joined #lisp 2020-05-31T03:53:52Z dddddd quit (Ping timeout: 256 seconds) 2020-05-31T03:57:38Z Decs joined #lisp 2020-05-31T04:10:06Z ldb joined #lisp 2020-05-31T04:10:56Z pjb joined #lisp 2020-05-31T04:12:28Z T3ns0r joined #lisp 2020-05-31T04:14:49Z ldb quit (Ping timeout: 246 seconds) 2020-05-31T04:26:13Z Decs: Hey all, this week I wrote a small runtime to support the Actor Model of computation. Pastebin if you're interested: https://pastebin.com/piPY0GVX. First time I've tackled a problem like this, all comments are welcome. 2020-05-31T04:27:21Z Decs: ooops the pastebin link dissapeared 2020-05-31T04:27:33Z no-defun-allowed: It is unusual to represent objects like queues and tickers as closures. 2020-05-31T04:27:53Z beach: Decs: No, it's just the . at the end. 2020-05-31T04:28:15Z wxie joined #lisp 2020-05-31T04:28:24Z beach: Decs: CASE doesn't evaluate its keys, so don't quote them. 2020-05-31T04:28:34Z beach: Decs: As it stands, you include QUOTE in the case. 2020-05-31T04:28:50Z Decs: I was reading let over lambda this week too haha 2020-05-31T04:28:53Z beach: Decs: You need to indent your LOOP clauses. SLIME will do this right for you. 2020-05-31T04:29:53Z beach: And, yes, as no-defun-allowed points out, you would typically use a standard class for a queue, not a closure. 2020-05-31T04:30:26Z no-defun-allowed: And then it might be more efficient to use a lock and condition variable per queue. 2020-05-31T04:30:26Z ldb joined #lisp 2020-05-31T04:30:34Z Decs: okay thanks beach. There may be something funky with my emacs as I can never get my loops to indent properly 2020-05-31T04:30:47Z beach: Are you using SLIME? 2020-05-31T04:31:13Z beach: Apparently, the contribution slime-indentation is now part of the default setup. But if you have an older version, you may have to include it manually. 2020-05-31T04:31:37Z Decs: Yes, okay I'll look into that. 2020-05-31T04:32:00Z Decs: There is only the one message queue 2020-05-31T04:32:31Z beach: There are an awful lot of c*r calls in there. That's a sign that you need to use standard classes or structs instead of lists. 2020-05-31T04:32:37Z no-defun-allowed: I would also represent each actor as an object that holds its own message queue and closure. 2020-05-31T04:32:53Z wxie quit (Remote host closed the connection) 2020-05-31T04:33:37Z beach: At the very least, you should introduce a layer of named abstractions as "aliases" for those c*r calls. 2020-05-31T04:34:21Z Decs: The use of closures are a symptom of having just learnt of them, its my new superpower! 2020-05-31T04:34:32Z beach: I mean, (setf (car timer) (car (cadr timer))) is totally incomprehensible. 2020-05-31T04:34:59Z beach: You need to put some names on those operations. 2020-05-31T04:35:30Z ldb quit (Ping timeout: 260 seconds) 2020-05-31T04:35:34Z beach: You seem to have several IFs with only a `then' branch. Use WHEN for those. 2020-05-31T04:35:40Z beach: Then you can remove the PROGN. 2020-05-31T04:36:15Z beach: Or if it is an (IF (NOT ...)) then use UNLESS instead. 2020-05-31T04:36:34Z Decs: I totally agree I need to name some things, so when i come back to this code it's not incomprehensible like you say 2020-05-31T04:37:25Z no-defun-allowed: You could probably get away with using a package like safe-queue for the queue implementation too. 2020-05-31T04:38:22Z beach: So I think that sums it up: Use standard classes. Indent properly. Don't quote your CASE keys. Introduce abstractions. Use WHEN and UNLESS for single-branch conditionals. 2020-05-31T04:38:54Z Decs: Hehe I'm particularly find of the cluster-fudge of cars and cdrs in the ticker closure 2020-05-31T04:39:01Z ebrasca joined #lisp 2020-05-31T04:39:15Z no-defun-allowed: That's not anythig to be proud of. 2020-05-31T04:39:34Z no-defun-allowed: ..anything? 2020-05-31T04:39:44Z Decs: awesome thanks for your comments beach. much appreciated! 2020-05-31T04:39:50Z beach: Anytime. 2020-05-31T04:40:11Z Decs: *find/fond 2020-05-31T04:40:28Z no-defun-allowed: The trouble with making structures from lists is that you have to infer the shape from wherever that structure is created. 2020-05-31T04:40:29Z Decs: didn't say proud 2020-05-31T04:41:44Z no-defun-allowed: I read "fond, noun: Having a strong liking, inclination, or affection", and you told us all. But to keep this productive, let's say I said fond instead. 2020-05-31T04:42:03Z kaftejiman joined #lisp 2020-05-31T04:42:21Z no-defun-allowed: noun→adjective. God dammit, I should focus on just my homework and not #lisp and my homework. 2020-05-31T04:44:07Z shifty joined #lisp 2020-05-31T04:44:43Z pjb quit (Ping timeout: 272 seconds) 2020-05-31T04:45:16Z no-defun-allowed: But beach summarised what should be done nicely. 2020-05-31T04:48:14Z Decs: Cheers yeah it's been at the back of my mind that the list destructuring (?) is messy. I'll definitely look into making every thing more explicit 2020-05-31T04:50:31Z ldb joined #lisp 2020-05-31T04:52:05Z beach: Good luck. 2020-05-31T04:55:04Z ldb quit (Ping timeout: 256 seconds) 2020-05-31T04:55:10Z Decs: I had read Carl Hewitt didnt consider actors having their own message queues as fundamental so I decided on a whim that I would take that approach. even though all the implementations Ive seen tack them onto the actors class. Not sure of the pros and cons of either approach. 2020-05-31T04:56:13Z niceplaces joined #lisp 2020-05-31T04:56:39Z no-defun-allowed: If you had an implementation where actors had their own threads, and receiving a message blocked the thread, I think it would be a requirement to use separate queues. 2020-05-31T04:57:06Z niceplace quit (Ping timeout: 272 seconds) 2020-05-31T04:57:25Z Jesin joined #lisp 2020-05-31T04:58:58Z orivej quit (Ping timeout: 256 seconds) 2020-05-31T04:58:59Z no-defun-allowed: You use message handlers to represent actors and a scheduler running on one thread, which does not require that. I have not tested this, but I would also expect that using a message queue per actor (and an appropriate means of scheduling) would improve throughput with many worker threads. 2020-05-31T05:00:13Z pjb joined #lisp 2020-05-31T05:01:22Z ech quit (Ping timeout: 246 seconds) 2020-05-31T05:05:04Z gravicappa joined #lisp 2020-05-31T05:05:42Z ldb joined #lisp 2020-05-31T05:06:10Z Decs: ahh, yes I tried to make the queue operations as fast as i could to limit blocking between worker threads, but I can see how it may be a problem with more worker threads operating on the queue potentially simultaneously 2020-05-31T05:07:49Z no-defun-allowed: (Oh, and if you're on SBCL, safe-queue will use SB-CONCURRENCY, which is likely faster as it uses compare-and-swap instead of a lock.) 2020-05-31T05:08:31Z Decs: with the multi queue approach threads will only block if trying to write to the same actors queue 2020-05-31T05:09:16Z Decs: as opposed to potentially every time a message is sent 2020-05-31T05:09:53Z Decs: awesome thanks, although I'm using ecl on my phone. 2020-05-31T05:12:23Z ldb_ joined #lisp 2020-05-31T05:12:56Z ldb quit (Ping timeout: 272 seconds) 2020-05-31T05:15:25Z marusich quit (Quit: afk means offline :D) 2020-05-31T05:17:58Z ldb joined #lisp 2020-05-31T05:19:54Z ldb_ quit (Ping timeout: 272 seconds) 2020-05-31T05:20:53Z libertyprime joined #lisp 2020-05-31T05:32:25Z narimiran joined #lisp 2020-05-31T05:35:02Z EvW quit (Ping timeout: 260 seconds) 2020-05-31T05:35:36Z Decs quit (Remote host closed the connection) 2020-05-31T05:38:12Z ldb quit (Quit: leaving) 2020-05-31T05:38:24Z seok joined #lisp 2020-05-31T05:38:45Z srazzaque joined #lisp 2020-05-31T05:39:05Z seok: can you pass multiple values (values a b c ...) to a function which takes same number of arguments? 2020-05-31T05:40:01Z no-defun-allowed: multiple-value-call? 2020-05-31T05:41:17Z seok: no-defun-allowed oh that works! thanks 2020-05-31T05:41:18Z seok: amazing 2020-05-31T05:41:41Z seok: Nice 2020-05-31T05:58:02Z bhartrihari left #lisp 2020-05-31T05:58:23Z bhartrihari joined #lisp 2020-05-31T06:00:51Z rgherdt joined #lisp 2020-05-31T06:07:44Z GuerrillaMonkey joined #lisp 2020-05-31T06:08:08Z libertyprime quit (Ping timeout: 246 seconds) 2020-05-31T06:08:53Z shifty quit (Remote host closed the connection) 2020-05-31T06:09:07Z shifty joined #lisp 2020-05-31T06:09:23Z narimiran quit (Ping timeout: 258 seconds) 2020-05-31T06:11:01Z Jeanne-Kamikaze quit (Ping timeout: 246 seconds) 2020-05-31T06:11:14Z Jeanne-Kamikaze joined #lisp 2020-05-31T06:12:34Z GuerrillaMonkey quit (Ping timeout: 260 seconds) 2020-05-31T06:19:48Z bhartrihari left #lisp 2020-05-31T06:19:59Z bhartrihari joined #lisp 2020-05-31T06:35:09Z libertyprime joined #lisp 2020-05-31T06:37:11Z sdumi quit (Ping timeout: 246 seconds) 2020-05-31T06:37:58Z bitmapper quit 2020-05-31T06:39:27Z sdumi joined #lisp 2020-05-31T06:41:31Z sdumi quit (Read error: Connection reset by peer) 2020-05-31T06:42:46Z sdumi joined #lisp 2020-05-31T06:48:02Z _whitelogger quit (Remote host closed the connection) 2020-05-31T06:50:15Z _whitelogger joined #lisp 2020-05-31T07:05:37Z frgo_ joined #lisp 2020-05-31T07:06:00Z seok: How would I use (min ) on an alist? 2020-05-31T07:06:06Z seok: like this one (("EURUSD" . 1388620800487) ("GBPUSD" . 1388620800709) 2020-05-31T07:06:12Z seok: oops is that too big? 2020-05-31T07:08:40Z beach: What is the result you want? 2020-05-31T07:09:00Z pve joined #lisp 2020-05-31T07:09:07Z frgo quit (Ping timeout: 272 seconds) 2020-05-31T07:09:50Z seok: i want to know the key of the one that has the smallest number 2020-05-31T07:09:54Z toorevitimirp joined #lisp 2020-05-31T07:12:25Z beach: (loop with min-entry = (first alist) with min-value = (cdr min-entry) for entry in (rest alist) when (< (cdr entry) min-value) do (setf min-entry entry) (setf min-value (cdr entry)) finally (return min-entry)) 2020-05-31T07:12:29Z beach: Something like that. 2020-05-31T07:13:14Z beach: Alternatively, you can define a comparison predicate and use #'REDUCE. 2020-05-31T07:13:31Z phoe: (reduce (lambda (x y) (if (< (cdr x) (cdr y)) x y)) '((a . 335) (b . 29385) (c . 839875) (d . -32) (e . 447))) 2020-05-31T07:13:37Z phoe: hey beach I was just writing that out 2020-05-31T07:15:08Z beach: Heh. 2020-05-31T07:15:27Z sdumi quit (Ping timeout: 265 seconds) 2020-05-31T07:24:13Z sdumi joined #lisp 2020-05-31T07:25:28Z flip214: ITERATE has a MINIMIZE clause as well 2020-05-31T07:25:46Z luis quit (Quit: The Lounge - https://thelounge.chat) 2020-05-31T07:30:09Z liberliver joined #lisp 2020-05-31T07:30:44Z luis joined #lisp 2020-05-31T07:32:35Z luckless quit (Quit: Leaving) 2020-05-31T07:39:56Z seok: phoe: hey that works! 2020-05-31T07:40:01Z seok: flip214 nice 2020-05-31T07:40:12Z seok: beach 2020-05-31T07:40:14Z seok: thank you 2020-05-31T07:43:38Z phoe: seok: <3 2020-05-31T07:47:08Z hineios5 joined #lisp 2020-05-31T07:50:58Z hineios quit (Ping timeout: 258 seconds) 2020-05-31T07:50:58Z hineios5 is now known as hineios 2020-05-31T07:53:03Z pve: seok: I've had this in my utils for a while: https://plaster.tymoon.eu/view/1898 2020-05-31T07:54:14Z Jeanne-Kamikaze quit (Ping timeout: 240 seconds) 2020-05-31T07:55:05Z beach: pve: How come you don't do the assignment conditionally? 2020-05-31T07:56:00Z beach: As in: when (funcall predicate (funcall key item) (funcall key best)) (setf best item) 2020-05-31T07:56:17Z beach: Er, do (setf best item) 2020-05-31T07:57:22Z pve: beach: i guess that would be better 2020-05-31T08:00:45Z Adamclisi joined #lisp 2020-05-31T08:02:45Z pve: beach: i changed it now.. did you mean like that? 2020-05-31T08:03:35Z beach: Yeah. 2020-05-31T08:04:13Z shka_ joined #lisp 2020-05-31T08:12:03Z ralt joined #lisp 2020-05-31T08:14:11Z liberliver quit (Quit: liberliver) 2020-05-31T08:25:10Z Adamclisi quit (Quit: leaving) 2020-05-31T08:37:36Z bfig_ joined #lisp 2020-05-31T08:40:48Z bfig quit (Ping timeout: 258 seconds) 2020-05-31T08:41:55Z bhartrihari left #lisp 2020-05-31T08:41:57Z bhartrihari joined #lisp 2020-05-31T08:57:02Z _whitelogger quit (Remote host closed the connection) 2020-05-31T08:59:15Z _whitelogger joined #lisp 2020-05-31T09:00:02Z sdumi quit (Ping timeout: 256 seconds) 2020-05-31T09:00:41Z sdumi joined #lisp 2020-05-31T09:02:00Z orivej joined #lisp 2020-05-31T09:02:18Z dddddd joined #lisp 2020-05-31T09:03:13Z gaqwas quit (Changing host) 2020-05-31T09:03:13Z gaqwas joined #lisp 2020-05-31T09:09:02Z _whitelogger quit (Remote host closed the connection) 2020-05-31T09:11:15Z _whitelogger joined #lisp 2020-05-31T09:14:41Z bhartrihari left #lisp 2020-05-31T09:14:50Z bhartrihari joined #lisp 2020-05-31T09:14:56Z seok: How do I look up alist by cdr? 2020-05-31T09:15:11Z no-defun-allowed: clhs rassoc 2020-05-31T09:15:11Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_rassoc.htm 2020-05-31T09:15:23Z seok: Thanks! 2020-05-31T09:18:57Z pjb quit (Ping timeout: 272 seconds) 2020-05-31T09:19:15Z seok: how do I rassoc all cons with that value? 2020-05-31T09:20:07Z beach: You want to keep all the entries with a particular CDR value? 2020-05-31T09:20:12Z seok: yes 2020-05-31T09:20:18Z beach: clhs remove-if-not 2020-05-31T09:20:18Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_rm_rm.htm 2020-05-31T09:20:23Z seok: ah 2020-05-31T09:20:30Z beach: Or 2020-05-31T09:20:36Z beach: clhs remove 2020-05-31T09:20:36Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_rm_rm.htm 2020-05-31T09:21:23Z beach: (remove alist :key #'cdr :test-not ) 2020-05-31T09:21:27Z beach: Something like that. 2020-05-31T09:21:30Z beach: Not debugged. 2020-05-31T09:22:20Z seok: nice, that works 2020-05-31T09:22:27Z seok: remove is good 2020-05-31T09:22:28Z beach: Of course. :) 2020-05-31T09:22:37Z seok: remove-if-not is just another way of doing the same thing? 2020-05-31T09:22:49Z seok: Couldn't get that to work. Do I need to use a lambda? 2020-05-31T09:23:08Z beach: Probably yes. 2020-05-31T09:23:23Z seok: yeah, remove seems to be nice and simple 2020-05-31T09:23:43Z beach: Sure, bit it is less general, so sometimes REMOVE-IF-NOT is called for. 2020-05-31T09:24:00Z beach: For example, if you want to keep all the entries where the CDR is a prime number. 2020-05-31T09:24:17Z seok: Yeah, if you need to test some predicate function you need to use remove-if-not eh? 2020-05-31T09:24:25Z beach: Exactly! 2020-05-31T09:24:31Z seok: nice 2020-05-31T09:24:54Z ebrasca quit (Remote host closed the connection) 2020-05-31T09:26:42Z zaquest quit (Remote host closed the connection) 2020-05-31T09:29:31Z dale quit (Quit: My computer has gone to sleep) 2020-05-31T09:44:00Z lerax quit (Remote host closed the connection) 2020-05-31T09:47:33Z rogersm joined #lisp 2020-05-31T09:50:33Z pjb joined #lisp 2020-05-31T09:53:53Z parjanya joined #lisp 2020-05-31T09:56:42Z srji quit (Ping timeout: 256 seconds) 2020-05-31T10:10:46Z rogersm quit (Quit: Leaving...) 2020-05-31T10:12:05Z frgo_ quit (Remote host closed the connection) 2020-05-31T10:12:39Z frgo joined #lisp 2020-05-31T10:13:26Z karlosz quit (Quit: karlosz) 2020-05-31T10:22:26Z random-nick joined #lisp 2020-05-31T10:24:11Z pjb quit (Ping timeout: 272 seconds) 2020-05-31T10:26:22Z gravicappa quit (Ping timeout: 265 seconds) 2020-05-31T10:28:08Z cosimone joined #lisp 2020-05-31T10:38:31Z ech joined #lisp 2020-05-31T10:41:27Z papachan quit (Quit: WeeChat 2.7.1) 2020-05-31T10:55:51Z Lord_of_Life quit (Ping timeout: 246 seconds) 2020-05-31T10:56:00Z Lord_of_Life_ joined #lisp 2020-05-31T10:56:19Z pjb joined #lisp 2020-05-31T10:57:20Z Lord_of_Life_ is now known as Lord_of_Life 2020-05-31T11:01:50Z ralt quit (Quit: Connection closed for inactivity) 2020-05-31T11:03:20Z shifty quit (Ping timeout: 256 seconds) 2020-05-31T11:04:20Z ggole joined #lisp 2020-05-31T11:06:49Z scymtym_ joined #lisp 2020-05-31T11:08:37Z scymtym quit (Ping timeout: 264 seconds) 2020-05-31T11:19:53Z ech quit (Ping timeout: 258 seconds) 2020-05-31T11:25:29Z jeosol joined #lisp 2020-05-31T11:26:57Z ralt joined #lisp 2020-05-31T11:28:57Z zaquest joined #lisp 2020-05-31T11:29:37Z tinga quit (Ping timeout: 264 seconds) 2020-05-31T11:30:03Z pjb quit (Ping timeout: 272 seconds) 2020-05-31T11:33:08Z scymtym_ quit (Remote host closed the connection) 2020-05-31T11:33:26Z scymtym joined #lisp 2020-05-31T11:33:26Z tinga joined #lisp 2020-05-31T11:43:36Z bhartrihari left #lisp 2020-05-31T11:43:42Z bhartrihari joined #lisp 2020-05-31T11:47:51Z Inline joined #lisp 2020-05-31T11:49:03Z SGASAU quit (Remote host closed the connection) 2020-05-31T11:49:45Z SGASAU joined #lisp 2020-05-31T11:56:18Z pjb joined #lisp 2020-05-31T12:06:53Z cmatei joined #lisp 2020-05-31T12:08:11Z gravicappa joined #lisp 2020-05-31T12:20:30Z bhartrihari left #lisp 2020-05-31T12:20:39Z bhartrihari joined #lisp 2020-05-31T12:28:56Z pjb quit (Ping timeout: 246 seconds) 2020-05-31T12:40:48Z rpg joined #lisp 2020-05-31T12:43:18Z sdumi quit (Ping timeout: 256 seconds) 2020-05-31T12:50:25Z bhartrihari left #lisp 2020-05-31T12:50:32Z bhartrihari joined #lisp 2020-05-31T12:52:49Z Krystof quit (Ping timeout: 265 seconds) 2020-05-31T12:54:03Z cantstanya quit (Ping timeout: 240 seconds) 2020-05-31T12:57:49Z cantstanya joined #lisp 2020-05-31T12:59:01Z shifty joined #lisp 2020-05-31T13:00:49Z bhartrihari left #lisp 2020-05-31T13:01:05Z bhartrihari joined #lisp 2020-05-31T13:03:23Z pjb joined #lisp 2020-05-31T13:06:24Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-05-31T13:16:48Z Bike joined #lisp 2020-05-31T13:19:43Z EvW1 joined #lisp 2020-05-31T13:28:05Z random-nick quit (Ping timeout: 246 seconds) 2020-05-31T13:28:52Z Inline quit (Remote host closed the connection) 2020-05-31T13:32:35Z Krystof joined #lisp 2020-05-31T13:37:30Z Lycurgus joined #lisp 2020-05-31T13:38:17Z toorevitimirp quit (Read error: Connection reset by peer) 2020-05-31T13:38:44Z toorevitimirp joined #lisp 2020-05-31T13:41:18Z random-nick joined #lisp 2020-05-31T13:49:30Z Xach: https://github.com/quicklisp/quicklisp-client/issues/198 is a real head-scratcher for moe 2020-05-31T13:49:33Z Xach: for me, rather 2020-05-31T13:50:36Z karswell_ joined #lisp 2020-05-31T13:50:53Z hiroaki joined #lisp 2020-05-31T13:53:08Z MichaelRaskin: That reminds me of a post I read yesterday 2020-05-31T13:53:34Z toorevitimirp quit (Remote host closed the connection) 2020-05-31T13:53:52Z ralt: Xach: the root CA cert in the chain is expired 2020-05-31T13:54:20Z Xach: i guess i should read more posts 2020-05-31T13:54:27Z MichaelRaskin: Root signed by another root 2020-05-31T13:54:47Z MichaelRaskin: https://news.ycombinator.com/item?id=23362759 2020-05-31T13:55:19Z MichaelRaskin: Nah, you can always ask and find someone with a link 2020-05-31T13:55:33Z MichaelRaskin: https://support.sectigo.com/articles/Knowledge/Sectigo-AddTrust-External-CA-Root-Expiring-May-30-2020 is the link to the upstream post 2020-05-31T13:55:51Z MichaelRaskin: (took me some time to dig up _where_ I read the post) 2020-05-31T13:56:15Z p_l: yeah 2020-05-31T13:56:31Z p_l: the systems that have issues don't have updated root CA cert 2020-05-31T13:57:33Z MichaelRaskin: Or paranoidally check everything provided in the chain even if it is not actually necessary to establish trust 2020-05-31T13:57:36Z Xach: ah, ok. hmm. i don't think my operating systems have updates for certs pending, though. 2020-05-31T13:57:53Z lnostdal joined #lisp 2020-05-31T14:02:29Z Xach: thanks for the help, i think it has moved out of the realm of #lisp 2020-05-31T14:09:27Z sdumi joined #lisp 2020-05-31T14:11:38Z sdumi quit (Read error: Connection reset by peer) 2020-05-31T14:12:37Z bhartrihari left #lisp 2020-05-31T14:12:43Z sdumi joined #lisp 2020-05-31T14:12:43Z bhartrihari joined #lisp 2020-05-31T14:15:04Z gravicappa quit (Ping timeout: 258 seconds) 2020-05-31T14:16:44Z karswell_ quit (Ping timeout: 246 seconds) 2020-05-31T14:20:18Z karswell_ joined #lisp 2020-05-31T14:22:36Z theseb joined #lisp 2020-05-31T14:23:21Z theseb: Good practice to always check types of all macro arguments? 2020-05-31T14:23:46Z theseb: I'm imagining lots of hard to find bugs if macros are not always made bulletproof 2020-05-31T14:23:51Z phoe: theseb: kind of; usually the types are either conses or symbols 2020-05-31T14:24:09Z phoe: and for conses, you want stronger checks than just typechecking - you usually want destructuring of some sort 2020-05-31T14:24:23Z Bike: a form can be anything, so there's nothing to check. the rest of the syntax is usually covered by the lambda list 2020-05-31T14:25:54Z jeosol quit (Ping timeout: 245 seconds) 2020-05-31T14:26:24Z theseb: e.g. I made a for loop macro that works like this...(for i (list 1 2 3) ....) ......Seems like it may avoid issues to check if 1st for macro arg is a symbol and 2nd macro arg evals to a list 2020-05-31T14:26:59Z theseb: otherwise....bugs may "sneak in" to a massive lisp program 2020-05-31T14:30:32Z andrei-n joined #lisp 2020-05-31T14:31:50Z karswell_ is now known as karswell 2020-05-31T14:32:47Z theseb: Oh one last thing.....is it easy to switch between CL and Clojure....I'm hoping that Clojure becoming fashionable is a good thing for the CL and Lisp community in general 2020-05-31T14:32:57Z aeth: theseb: you can check that the first is a symbol, but you can't check the second at macro time, at best you can insert a CHECK-TYPE in your expansion 2020-05-31T14:34:50Z theseb: aeth: right...it would be in the expansion that list type is checked 2020-05-31T14:36:41Z Josh_2: Afternoon all 2020-05-31T14:36:57Z lucasb joined #lisp 2020-05-31T14:45:09Z pjb: theseb: it really depends on the complexity of your function (macros are functions), and whether you use the values immediately, or later or deeper in the code. If you use the value immediately, then a type error will be soon detected and reported, in a way that should be understandable to the programmer. 2020-05-31T14:45:54Z pjb: theseb: on the other hand, if the values are used later or deeper in the code, the relationship between the bad value and the call (or macrocall) can be less obvious. Then it may be helpful to the programmer to check the types and report the error earlier. 2020-05-31T14:46:48Z pjb: theseb: but it's rarely done. One objection is that the programmer checking the types often is too restrictive. Lisp is a generic programming language: you don't write function processing specific types, but functions processing ANY type that it can. 2020-05-31T14:47:43Z pjb: theseb: as for the ease of switching, 1- there's a clojure implementation written in CL, 2- just try to convert 10kLOC of Clojure to CL, and tell us! (better write directly in CL). 2020-05-31T14:48:20Z lnostdal quit (Ping timeout: 265 seconds) 2020-05-31T14:48:37Z pjb: theseb: also for the types if you don't check it, then the type restrictions may depend on the implementation of the function. Which can be considered good or bad… 2020-05-31T14:50:51Z narimiran joined #lisp 2020-05-31T14:53:44Z cosimone quit (Quit: Quit.) 2020-05-31T14:54:59Z aeth: pjb: afaik there are two Clojures in CL, not one 2020-05-31T14:55:29Z aeth: theseb: this is off-topic, but Clojure looks past fashionable, not "becoming fashionable", to me. That's the risk of relying on "fashion" in the first place. 2020-05-31T14:57:17Z bitmapper joined #lisp 2020-05-31T14:57:20Z aeth: pjb: You want to check the type early so you can fail early. Sure, a for loop macro would probably fail fairly early (but the message won't be as clear to the user) without a list (but it should be a sequence) as the input, but most things could fail very deep 2020-05-31T14:58:01Z aeth: IME it's fairly common in a large program to get a random NIL pop up when it could've been generated somewhere very far from where it shows. 2020-05-31T15:00:54Z pjb: I prefer that, than artificially restrictive type checks. 2020-05-31T15:01:12Z pjb: That's the curse of C and C++. 2020-05-31T15:01:42Z pjb: it leads to tons of duplicated code and inefficiencies. 2020-05-31T15:02:04Z lnostdal joined #lisp 2020-05-31T15:02:21Z theseb: aeth, pjb: i see both sides....dynamic typing is a wonderful thing that leads to cleaner code but may also lead to hard to find bugs. 2020-05-31T15:02:38Z theseb: aeth: are you saying Clojure isn't as popular anymore? 2020-05-31T15:03:17Z aeth: pjb: duplicated code is efficiency, at the cost of space, at least. That's sort of the point of C++ templates or https://github.com/markcox80/specialization-store/ 2020-05-31T15:03:20Z theseb: aeth: or are you saying it is way popular and 'beyond just fashionable' 2020-05-31T15:03:52Z aeth: theseb: it appears to have peaked 5-6 years ago in multiple (obviously all unreliable in their own way) measures, e.g. Google Trends. 2020-05-31T15:04:41Z pjb: aeth: it's wrong. the generated binaries are often identical, since most type have the same size. 2020-05-31T15:04:49Z theseb: aeth: i would think ClojureScript will rocket to the moon since apparently anything in the browser becomes super popular 2020-05-31T15:05:21Z froggey quit (Remote host closed the connection) 2020-05-31T15:05:21Z aeth: theseb: 5-10 years ago, everyone was trying to compile things to JS (including dozens of Lisps, mostly Schemes, but two CLs) 2020-05-31T15:05:32Z sdumi quit (Ping timeout: 256 seconds) 2020-05-31T15:05:34Z aeth: theseb: These days, it seems to have consolidated on TypeScript. Maybe WASM will be another chance for Lisp in the browser. 2020-05-31T15:06:54Z froggey joined #lisp 2020-05-31T15:07:04Z theseb: aeth: yes WASM breathes new life into new langs for the browser 2020-05-31T15:07:22Z aeth: Not yet. Afaik, it still doesn't support GC 2020-05-31T15:07:29Z aeth: It's mostly aimed at C/C++/Rust 2020-05-31T15:07:39Z aeth: Those languages don't compete with JS at all, and most importantly, aren't CL 2020-05-31T15:09:37Z p_l: aeth: thanks to V8, you can't even expect C to work right 2020-05-31T15:09:53Z aeth: pjb: Quite a few CL APIs are for a specific type or for the union of a specific type and NIL (i.e. (or null foo) which I use a DEFTYPE to write as (maybe foo)). 2020-05-31T15:10:10Z aeth: Although admittedly a lot of that doesn't need anything more than an IF/WHEN 2020-05-31T15:10:26Z bhartrihari left #lisp 2020-05-31T15:10:39Z bhartrihari joined #lisp 2020-05-31T15:10:49Z p_l: currently V8, and thus Chrome, can't handle WASM that isn't representable as straight JS 2020-05-31T15:11:29Z X-Scale` joined #lisp 2020-05-31T15:13:03Z aeth: p_l: Chrome is the new IE6 2020-05-31T15:13:31Z p_l: this is related to Chrome apparently translating WASM to JS 2020-05-31T15:13:52Z X-Scale quit (Ping timeout: 256 seconds) 2020-05-31T15:13:53Z X-Scale` is now known as X-Scale 2020-05-31T15:15:16Z lnostdal quit (Ping timeout: 246 seconds) 2020-05-31T15:18:45Z bhartrihari left #lisp 2020-05-31T15:18:48Z bhartrihari joined #lisp 2020-05-31T15:21:04Z decs joined #lisp 2020-05-31T15:22:33Z emacsomancer quit (Read error: Connection reset by peer) 2020-05-31T15:25:16Z jesse1010 joined #lisp 2020-05-31T15:25:29Z emacsomancer joined #lisp 2020-05-31T15:28:25Z lnostdal joined #lisp 2020-05-31T15:29:49Z phoe: I once came into #lisp and saw Chrome, being the new IE6, apparently translating WASM to JS 2020-05-31T15:30:10Z p_l: phoe: the context was "chances for lisp on wasm" 2020-05-31T15:30:21Z p_l: actually, a cross compiler for a limited language could be useful... 2020-05-31T15:30:25Z p_l: also for eBPF programs 2020-05-31T15:30:50Z decs: Thanks for your advice earlier guys, I've spruced up my little hobby framework in accordance with your comments. I kept the closures for the moment though as I'd like to experiment with some of the material in Let Over Lambda. Pastebin https://pastebin.com/ZCjSjA37 if you feel like having a squiz 2020-05-31T15:32:03Z hsaziz joined #lisp 2020-05-31T15:32:54Z srazzaque quit (Remote host closed the connection) 2020-05-31T15:34:08Z stoneglass joined #lisp 2020-05-31T15:36:02Z emacsomancer quit (Read error: Connection reset by peer) 2020-05-31T15:36:21Z lnostdal quit (Quit: "Fascism, Nazism, Communism and Socialism are only superficial variations of the same monstrous theme—collectivism." -- Ayn Rand) 2020-05-31T15:39:18Z emacsomancer joined #lisp 2020-05-31T15:42:59Z decs quit (Remote host closed the connection) 2020-05-31T15:45:51Z hsaziz quit (Ping timeout: 265 seconds) 2020-05-31T15:46:32Z X-Scale` joined #lisp 2020-05-31T15:46:58Z Bit_MCP joined #lisp 2020-05-31T15:47:57Z thmprover joined #lisp 2020-05-31T15:48:10Z X-Scale quit (Ping timeout: 272 seconds) 2020-05-31T15:48:11Z X-Scale` is now known as X-Scale 2020-05-31T15:50:33Z smazga joined #lisp 2020-05-31T15:55:41Z orivej_ joined #lisp 2020-05-31T15:56:00Z smazga quit (Ping timeout: 265 seconds) 2020-05-31T15:56:00Z orivej quit (Ping timeout: 265 seconds) 2020-05-31T15:56:17Z aeth: phoe: the context (with a bunch of offtopic thrown in, yes) being why we still don't have Lisp in the browser. 2020-05-31T15:56:34Z scymtym_ joined #lisp 2020-05-31T15:56:40Z flip214: does someone know of a REPL over HTTP, ie. with a HTML